@algorandfoundation/algokit-utils 10.0.0-alpha.11 → 10.0.0-alpha.12
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/package.json +1 -1
- package/packages/algod_client/src/models/block.d.ts +17 -17
- package/packages/algod_client/src/models/block.js +18 -18
- package/packages/algod_client/src/models/block.js.map +1 -1
- package/packages/algod_client/src/models/block.mjs +18 -18
- package/packages/algod_client/src/models/block.mjs.map +1 -1
- package/packages/indexer_client/src/models/block.d.ts +5 -5
- package/packages/indexer_client/src/models/block.js +5 -5
- package/packages/indexer_client/src/models/block.js.map +1 -1
- package/packages/indexer_client/src/models/block.mjs +5 -5
- package/packages/indexer_client/src/models/block.mjs.map +1 -1
- package/packages/indexer_client/src/models/participation-updates.d.ts +2 -2
- package/packages/indexer_client/src/models/participation-updates.js +2 -2
- package/packages/indexer_client/src/models/participation-updates.js.map +1 -1
- package/packages/indexer_client/src/models/participation-updates.mjs +2 -2
- package/packages/indexer_client/src/models/participation-updates.mjs.map +1 -1
- package/types/algorand-client-transaction-creator.d.ts +42 -42
- package/types/algorand-client-transaction-sender.d.ts +44 -44
- package/types/app-client.d.ts +108 -108
- package/types/app-factory.d.ts +45 -45
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"**"
|
|
7
7
|
],
|
|
8
8
|
"name": "@algorandfoundation/algokit-utils",
|
|
9
|
-
"version": "10.0.0-alpha.
|
|
9
|
+
"version": "10.0.0-alpha.12",
|
|
10
10
|
"private": false,
|
|
11
11
|
"description": "A set of core Algorand utilities written in TypeScript and released via npm that make it easier to build solutions on Algorand.",
|
|
12
12
|
"author": "Algorand Foundation",
|
|
@@ -64,9 +64,9 @@ type SignedTxnInBlock = {
|
|
|
64
64
|
};
|
|
65
65
|
type ParticipationUpdates = {
|
|
66
66
|
/** [partupdrmv] Expired participation accounts. */
|
|
67
|
-
expiredParticipationAccounts
|
|
67
|
+
expiredParticipationAccounts: string[];
|
|
68
68
|
/** [partupdabs] Absent participation accounts. */
|
|
69
|
-
absentParticipationAccounts
|
|
69
|
+
absentParticipationAccounts: string[];
|
|
70
70
|
};
|
|
71
71
|
/** Transaction commitment hashes for the block. */
|
|
72
72
|
type TxnCommitments = {
|
|
@@ -80,22 +80,22 @@ type TxnCommitments = {
|
|
|
80
80
|
/** Reward distribution state for the block. */
|
|
81
81
|
type RewardState = {
|
|
82
82
|
/** [fees] FeeSink address. */
|
|
83
|
-
feeSink
|
|
83
|
+
feeSink: Address;
|
|
84
84
|
/** [rwd] RewardsPool address. */
|
|
85
|
-
rewardsPool
|
|
85
|
+
rewardsPool: Address;
|
|
86
86
|
/** [earn] Rewards level. */
|
|
87
|
-
rewardsLevel
|
|
87
|
+
rewardsLevel: bigint;
|
|
88
88
|
/** [rate] Rewards rate. */
|
|
89
|
-
rewardsRate
|
|
89
|
+
rewardsRate: bigint;
|
|
90
90
|
/** [frac] Rewards residue. */
|
|
91
|
-
rewardsResidue
|
|
91
|
+
rewardsResidue: bigint;
|
|
92
92
|
/** [rwcalr] Rewards recalculation round. */
|
|
93
|
-
rewardsRecalculationRound
|
|
93
|
+
rewardsRecalculationRound: bigint;
|
|
94
94
|
};
|
|
95
95
|
/** Protocol upgrade state for the block. */
|
|
96
96
|
type UpgradeState = {
|
|
97
97
|
/** [proto] Current consensus protocol. */
|
|
98
|
-
currentProtocol
|
|
98
|
+
currentProtocol: string;
|
|
99
99
|
/** [nextproto] Next proposed protocol. */
|
|
100
100
|
nextProtocol?: string;
|
|
101
101
|
/** [nextyes] Next protocol approvals. */
|
|
@@ -116,21 +116,21 @@ type UpgradeVote = {
|
|
|
116
116
|
};
|
|
117
117
|
type BlockHeader = {
|
|
118
118
|
/** [rnd] Round number. */
|
|
119
|
-
round
|
|
119
|
+
round: bigint;
|
|
120
120
|
/** [prev] Previous block hash. */
|
|
121
|
-
previousBlockHash
|
|
121
|
+
previousBlockHash: Uint8Array;
|
|
122
122
|
/** [prev512] Previous block hash using SHA-512. */
|
|
123
123
|
previousBlockHash512?: Uint8Array;
|
|
124
124
|
/** [seed] Sortition seed. */
|
|
125
|
-
seed
|
|
125
|
+
seed: Uint8Array;
|
|
126
126
|
/** Authenticates the set of transactions appearing in the block. */
|
|
127
127
|
txnCommitments: TxnCommitments;
|
|
128
128
|
/** [ts] Block timestamp in seconds since epoch. */
|
|
129
|
-
timestamp
|
|
129
|
+
timestamp: bigint;
|
|
130
130
|
/** [gen] Genesis ID. */
|
|
131
|
-
genesisId
|
|
131
|
+
genesisId: string;
|
|
132
132
|
/** [gh] Genesis hash. */
|
|
133
|
-
genesisHash
|
|
133
|
+
genesisHash: Uint8Array;
|
|
134
134
|
/** [prp] Proposer address. */
|
|
135
135
|
proposer?: Address;
|
|
136
136
|
/** [fc] Fees collected in this block. */
|
|
@@ -150,7 +150,7 @@ type BlockHeader = {
|
|
|
150
150
|
/** [spt] State proof tracking data keyed by state proof type. */
|
|
151
151
|
stateProofTracking?: Map<number, BlockStateProofTrackingData>;
|
|
152
152
|
/** Represents participation account data that needs to be checked/acted on by the network */
|
|
153
|
-
participationUpdates
|
|
153
|
+
participationUpdates: ParticipationUpdates;
|
|
154
154
|
};
|
|
155
155
|
/**
|
|
156
156
|
* Block contains the BlockHeader and the list of transactions (Payset).
|
|
@@ -159,7 +159,7 @@ type Block = {
|
|
|
159
159
|
/** The block information (Header) */
|
|
160
160
|
header: BlockHeader;
|
|
161
161
|
/** [txns] Block transactions (Payset). */
|
|
162
|
-
payset
|
|
162
|
+
payset: SignedTxnInBlock[];
|
|
163
163
|
};
|
|
164
164
|
//#endregion
|
|
165
165
|
export { ApplyData, Block, BlockAppEvalDelta, BlockEvalDelta, BlockHeader, BlockStateProofTrackingData, ParticipationUpdates, RewardState, SignedTxnInBlock, SignedTxnWithAD, TxnCommitments, UpgradeState, UpgradeVote };
|
|
@@ -194,12 +194,12 @@ const ParticipationUpdatesMeta = {
|
|
|
194
194
|
fields: [{
|
|
195
195
|
name: "expiredParticipationAccounts",
|
|
196
196
|
wireKey: "partupdrmv",
|
|
197
|
-
optional:
|
|
197
|
+
optional: false,
|
|
198
198
|
codec: require_array.addressArrayCodec
|
|
199
199
|
}, {
|
|
200
200
|
name: "absentParticipationAccounts",
|
|
201
201
|
wireKey: "partupdabs",
|
|
202
|
-
optional:
|
|
202
|
+
optional: false,
|
|
203
203
|
codec: require_array.addressArrayCodec
|
|
204
204
|
}]
|
|
205
205
|
};
|
|
@@ -234,37 +234,37 @@ const RewardStateMeta = {
|
|
|
234
234
|
{
|
|
235
235
|
name: "feeSink",
|
|
236
236
|
wireKey: "fees",
|
|
237
|
-
optional:
|
|
237
|
+
optional: false,
|
|
238
238
|
codec: require_address.addressCodec
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
name: "rewardsPool",
|
|
242
242
|
wireKey: "rwd",
|
|
243
|
-
optional:
|
|
243
|
+
optional: false,
|
|
244
244
|
codec: require_address.addressCodec
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
name: "rewardsLevel",
|
|
248
248
|
wireKey: "earn",
|
|
249
|
-
optional:
|
|
249
|
+
optional: false,
|
|
250
250
|
codec: require_bigint.bigIntCodec
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
name: "rewardsRate",
|
|
254
254
|
wireKey: "rate",
|
|
255
|
-
optional:
|
|
255
|
+
optional: false,
|
|
256
256
|
codec: require_bigint.bigIntCodec
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
name: "rewardsResidue",
|
|
260
260
|
wireKey: "frac",
|
|
261
|
-
optional:
|
|
261
|
+
optional: false,
|
|
262
262
|
codec: require_bigint.bigIntCodec
|
|
263
263
|
},
|
|
264
264
|
{
|
|
265
265
|
name: "rewardsRecalculationRound",
|
|
266
266
|
wireKey: "rwcalr",
|
|
267
|
-
optional:
|
|
267
|
+
optional: false,
|
|
268
268
|
codec: require_bigint.bigIntCodec
|
|
269
269
|
}
|
|
270
270
|
]
|
|
@@ -276,7 +276,7 @@ const UpgradeStateMeta = {
|
|
|
276
276
|
{
|
|
277
277
|
name: "currentProtocol",
|
|
278
278
|
wireKey: "proto",
|
|
279
|
-
optional:
|
|
279
|
+
optional: false,
|
|
280
280
|
codec: require_string.stringCodec
|
|
281
281
|
},
|
|
282
282
|
{
|
|
@@ -343,13 +343,13 @@ const BlockMeta = {
|
|
|
343
343
|
{
|
|
344
344
|
name: "round",
|
|
345
345
|
wireKey: "rnd",
|
|
346
|
-
optional:
|
|
346
|
+
optional: false,
|
|
347
347
|
codec: require_bigint.bigIntCodec
|
|
348
348
|
},
|
|
349
349
|
{
|
|
350
350
|
name: "previousBlockHash",
|
|
351
351
|
wireKey: "prev",
|
|
352
|
-
optional:
|
|
352
|
+
optional: false,
|
|
353
353
|
codec: require_fixed_bytes.fixedBytes32Codec
|
|
354
354
|
},
|
|
355
355
|
{
|
|
@@ -361,7 +361,7 @@ const BlockMeta = {
|
|
|
361
361
|
{
|
|
362
362
|
name: "seed",
|
|
363
363
|
wireKey: "seed",
|
|
364
|
-
optional:
|
|
364
|
+
optional: false,
|
|
365
365
|
codec: require_bytes.bytesCodec
|
|
366
366
|
},
|
|
367
367
|
{
|
|
@@ -373,19 +373,19 @@ const BlockMeta = {
|
|
|
373
373
|
{
|
|
374
374
|
name: "timestamp",
|
|
375
375
|
wireKey: "ts",
|
|
376
|
-
optional:
|
|
376
|
+
optional: false,
|
|
377
377
|
codec: require_bigint.bigIntCodec
|
|
378
378
|
},
|
|
379
379
|
{
|
|
380
380
|
name: "genesisId",
|
|
381
381
|
wireKey: "gen",
|
|
382
|
-
optional:
|
|
382
|
+
optional: false,
|
|
383
383
|
codec: require_string.stringCodec
|
|
384
384
|
},
|
|
385
385
|
{
|
|
386
386
|
name: "genesisHash",
|
|
387
387
|
wireKey: "gh",
|
|
388
|
-
optional:
|
|
388
|
+
optional: false,
|
|
389
389
|
codec: require_fixed_bytes.fixedBytes32Codec
|
|
390
390
|
},
|
|
391
391
|
{
|
|
@@ -427,7 +427,7 @@ const BlockMeta = {
|
|
|
427
427
|
{
|
|
428
428
|
name: "upgradeVote",
|
|
429
429
|
flattened: true,
|
|
430
|
-
optional:
|
|
430
|
+
optional: true,
|
|
431
431
|
codec: new require_object_model.ObjectModelCodec(UpgradeVoteMeta)
|
|
432
432
|
},
|
|
433
433
|
{
|
|
@@ -445,7 +445,7 @@ const BlockMeta = {
|
|
|
445
445
|
{
|
|
446
446
|
name: "participationUpdates",
|
|
447
447
|
flattened: true,
|
|
448
|
-
optional:
|
|
448
|
+
optional: false,
|
|
449
449
|
codec: new require_object_model.ObjectModelCodec(ParticipationUpdatesMeta)
|
|
450
450
|
}
|
|
451
451
|
]
|
|
@@ -453,7 +453,7 @@ const BlockMeta = {
|
|
|
453
453
|
}, {
|
|
454
454
|
name: "payset",
|
|
455
455
|
wireKey: "txns",
|
|
456
|
-
optional:
|
|
456
|
+
optional: false,
|
|
457
457
|
codec: new require_array.ArrayCodec(new require_object_model.ObjectModelCodec(SignedTxnInBlockMeta))
|
|
458
458
|
}]
|
|
459
459
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","names":["BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta>","numberCodec","bytesCodec","bigIntCodec","BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta>","MapCodec","ObjectModelCodec","ArrayCodec","addressArrayCodec","bytesArrayCodec","BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData>","ApplyDataMeta: ObjectModelMetadata<ApplyData>","SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD>","SignedTransactionMeta","SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock>","booleanCodec","ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates>","TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments>","fixedBytes32Codec","fixedBytes64Codec","RewardStateMeta: ObjectModelMetadata<RewardState>","addressCodec","UpgradeStateMeta: ObjectModelMetadata<UpgradeState>","stringCodec","UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote>","BlockMeta: ObjectModelMetadata<Block>"],"sources":["../../../../../packages/algod_client/src/models/block.ts"],"sourcesContent":["import {\n Address,\n ArrayCodec,\n MapCodec,\n ObjectModelCodec,\n type EncodingFormat,\n type ObjectModelMetadata,\n type WireObject,\n addressArrayCodec,\n addressCodec,\n bigIntCodec,\n booleanCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n stringCodec,\n} from '@algorandfoundation/algokit-common'\nimport { type SignedTransaction, SignedTransactionMeta } from '@algorandfoundation/algokit-transact'\n\n/** BlockEvalDelta represents a TEAL value delta (block/msgpack wire keys). */\nexport type BlockEvalDelta = {\n /** [at] delta action. */\n action: number\n /** [bs] bytes value. */\n bytes?: Uint8Array\n /** [ui] uint value. */\n uint?: bigint\n}\n\nconst BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta> = {\n name: 'BlockEvalDelta',\n kind: 'object',\n fields: [\n { name: 'action', wireKey: 'at', optional: false, codec: numberCodec },\n { name: 'bytes', wireKey: 'bs', optional: true, codec: bytesCodec },\n { name: 'uint', wireKey: 'ui', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * State changes from application execution, including inner transactions and logs.\n */\nexport type BlockAppEvalDelta = {\n /** [gd] Global state delta for the application. */\n globalDelta?: Map<Uint8Array, BlockEvalDelta>\n /** [ld] Local state deltas keyed by address index. */\n localDeltas?: Map<number, Map<Uint8Array, BlockEvalDelta>>\n /** [itx] Inner transactions produced by this application execution. */\n innerTxns?: SignedTxnWithAD[]\n /** [sa] Shared accounts referenced by local deltas. */\n sharedAccounts?: Address[]\n /** [lg] Application log outputs. */\n logs?: Uint8Array[]\n}\n\nconst BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta> = {\n name: 'BlockAppEvalDelta',\n kind: 'object',\n fields: [\n {\n name: 'globalDelta',\n wireKey: 'gd',\n optional: true,\n codec: new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta)),\n },\n {\n name: 'localDeltas',\n wireKey: 'ld',\n optional: true,\n codec: new MapCodec(numberCodec, new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta))),\n },\n {\n name: 'innerTxns',\n wireKey: 'itx',\n optional: true,\n codec: new ArrayCodec(new ObjectModelCodec(() => SignedTxnWithADMeta)),\n },\n {\n name: 'sharedAccounts',\n wireKey: 'sa',\n optional: true,\n codec: addressArrayCodec,\n },\n { name: 'logs', wireKey: 'lg', optional: true, codec: bytesArrayCodec },\n ],\n}\n\n/** Tracking metadata for a specific StateProofType. */\nexport type BlockStateProofTrackingData = {\n /** [v] Vector commitment root of state proof voters. */\n stateProofVotersCommitment?: Uint8Array\n /** [t] Online total weight during state proof round. */\n stateProofOnlineTotalWeight?: bigint\n /** [n] Next round for which state proofs are accepted. */\n stateProofNextRound?: bigint\n}\n\nconst BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData> = {\n name: 'BlockStateProofTrackingData',\n kind: 'object',\n fields: [\n { name: 'stateProofVotersCommitment', wireKey: 'v', optional: true, codec: bytesCodec },\n { name: 'stateProofOnlineTotalWeight', wireKey: 't', optional: true, codec: bigIntCodec },\n { name: 'stateProofNextRound', wireKey: 'n', optional: true, codec: bigIntCodec },\n ],\n}\n\nexport type ApplyData = {\n closingAmount?: bigint\n assetClosingAmount?: bigint\n senderRewards?: bigint\n receiverRewards?: bigint\n closeRewards?: bigint\n evalDelta?: BlockAppEvalDelta\n configAsset?: bigint\n applicationId?: bigint\n}\n\nconst ApplyDataMeta: ObjectModelMetadata<ApplyData> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n { name: 'closingAmount', wireKey: 'ca', optional: true, codec: bigIntCodec },\n { name: 'assetClosingAmount', wireKey: 'aca', optional: true, codec: bigIntCodec },\n { name: 'senderRewards', wireKey: 'rs', optional: true, codec: bigIntCodec },\n { name: 'receiverRewards', wireKey: 'rr', optional: true, codec: bigIntCodec },\n { name: 'closeRewards', wireKey: 'rc', optional: true, codec: bigIntCodec },\n { name: 'evalDelta', wireKey: 'dt', optional: true, codec: new ObjectModelCodec(BlockAppEvalDeltaMeta) },\n { name: 'configAsset', wireKey: 'caid', optional: true, codec: bigIntCodec },\n { name: 'applicationId', wireKey: 'apid', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * SignedTxnWithAD is a SignedTransaction with additional ApplyData.\n */\nexport type SignedTxnWithAD = {\n /** The signed transaction. */\n signedTxn: SignedTransaction\n /** Apply data containing transaction execution information. */\n applyData?: ApplyData\n}\n\nconst SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD> = {\n name: 'SignedTxnWithAD',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTransactionMeta),\n },\n {\n name: 'applyData',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(ApplyDataMeta),\n },\n ],\n}\n\n/**\n * SignedTxnInBlock is a SignedTransaction with additional ApplyData and block-specific metadata.\n */\nexport type SignedTxnInBlock = {\n signedTxn: SignedTxnWithAD\n hasGenesisId?: boolean\n hasGenesisHash?: boolean\n}\n\nconst SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTxnWithADMeta),\n },\n { name: 'hasGenesisId', wireKey: 'hgi', optional: true, codec: booleanCodec },\n { name: 'hasGenesisHash', wireKey: 'hgh', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type ParticipationUpdates = {\n /** [partupdrmv] Expired participation accounts. */\n expiredParticipationAccounts?: string[]\n /** [partupdabs] Absent participation accounts. */\n absentParticipationAccounts?: string[]\n}\n\nconst ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates> = {\n name: 'ParticipationUpdates',\n kind: 'object',\n fields: [\n {\n name: 'expiredParticipationAccounts',\n wireKey: 'partupdrmv',\n optional: true,\n codec: addressArrayCodec,\n },\n {\n name: 'absentParticipationAccounts',\n wireKey: 'partupdabs',\n optional: true,\n codec: addressArrayCodec,\n },\n ],\n}\n\n/** Transaction commitment hashes for the block. */\nexport type TxnCommitments = {\n /** [txn] Root of transaction merkle tree using SHA512_256. */\n nativeSha512_256Commitment: Uint8Array\n /** [txn256] Root of transaction vector commitment using SHA256. */\n sha256Commitment?: Uint8Array\n /** [txn512] Root of transaction vector commitment using SHA512. */\n sha512Commitment?: Uint8Array\n}\n\nconst TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments> = {\n name: 'TxnCommitments',\n kind: 'object',\n fields: [\n { name: 'nativeSha512_256Commitment', wireKey: 'txn', optional: false, codec: fixedBytes32Codec },\n { name: 'sha256Commitment', wireKey: 'txn256', optional: true, codec: fixedBytes32Codec },\n { name: 'sha512Commitment', wireKey: 'txn512', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\n/** Reward distribution state for the block. */\nexport type RewardState = {\n /** [fees] FeeSink address. */\n feeSink?: Address\n /** [rwd] RewardsPool address. */\n rewardsPool?: Address\n /** [earn] Rewards level. */\n rewardsLevel?: bigint\n /** [rate] Rewards rate. */\n rewardsRate?: bigint\n /** [frac] Rewards residue. */\n rewardsResidue?: bigint\n /** [rwcalr] Rewards recalculation round. */\n rewardsRecalculationRound?: bigint\n}\n\nconst RewardStateMeta: ObjectModelMetadata<RewardState> = {\n name: 'RewardState',\n kind: 'object',\n fields: [\n { name: 'feeSink', wireKey: 'fees', optional: true, codec: addressCodec },\n { name: 'rewardsPool', wireKey: 'rwd', optional: true, codec: addressCodec },\n { name: 'rewardsLevel', wireKey: 'earn', optional: true, codec: bigIntCodec },\n { name: 'rewardsRate', wireKey: 'rate', optional: true, codec: bigIntCodec },\n { name: 'rewardsResidue', wireKey: 'frac', optional: true, codec: bigIntCodec },\n { name: 'rewardsRecalculationRound', wireKey: 'rwcalr', optional: true, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade state for the block. */\nexport type UpgradeState = {\n /** [proto] Current consensus protocol. */\n currentProtocol?: string\n /** [nextproto] Next proposed protocol. */\n nextProtocol?: string\n /** [nextyes] Next protocol approvals. */\n nextProtocolApprovals?: bigint\n /** [nextbefore] Next protocol vote deadline. */\n nextProtocolVoteBefore?: bigint\n /** [nextswitch] Next protocol switch round. */\n nextProtocolSwitchOn?: bigint\n}\n\nconst UpgradeStateMeta: ObjectModelMetadata<UpgradeState> = {\n name: 'UpgradeState',\n kind: 'object',\n fields: [\n { name: 'currentProtocol', wireKey: 'proto', optional: true, codec: stringCodec },\n { name: 'nextProtocol', wireKey: 'nextproto', optional: true, codec: stringCodec },\n { name: 'nextProtocolApprovals', wireKey: 'nextyes', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolVoteBefore', wireKey: 'nextbefore', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolSwitchOn', wireKey: 'nextswitch', optional: true, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade vote parameters for the block. */\nexport type UpgradeVote = {\n /** [upgradeprop] Upgrade proposal. */\n upgradePropose?: string\n /** [upgradedelay] Upgrade delay in rounds. */\n upgradeDelay?: bigint\n /** [upgradeyes] Upgrade approval flag. */\n upgradeApprove?: boolean\n}\n\nconst UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote> = {\n name: 'UpgradeVote',\n kind: 'object',\n fields: [\n { name: 'upgradePropose', wireKey: 'upgradeprop', optional: true, codec: stringCodec },\n { name: 'upgradeDelay', wireKey: 'upgradedelay', optional: true, codec: bigIntCodec },\n { name: 'upgradeApprove', wireKey: 'upgradeyes', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type BlockHeader = {\n /** [rnd] Round number. */\n round?: bigint\n /** [prev] Previous block hash. */\n previousBlockHash?: Uint8Array\n /** [prev512] Previous block hash using SHA-512. */\n previousBlockHash512?: Uint8Array\n /** [seed] Sortition seed. */\n seed?: Uint8Array\n /** Authenticates the set of transactions appearing in the block. */\n txnCommitments: TxnCommitments\n /** [ts] Block timestamp in seconds since epoch. */\n timestamp?: bigint\n /** [gen] Genesis ID. */\n genesisId?: string\n /** [gh] Genesis hash. */\n genesisHash?: Uint8Array\n /** [prp] Proposer address. */\n proposer?: Address\n /** [fc] Fees collected in this block. */\n feesCollected?: bigint\n /** [bi] Bonus incentive for block proposal. */\n bonus?: bigint\n /** [pp] Proposer payout. */\n proposerPayout?: bigint\n /** Reward distribution state. */\n rewardState: RewardState\n /** Protocol upgrade state. */\n upgradeState: UpgradeState\n /** Protocol upgrade vote parameters. */\n upgradeVote: UpgradeVote\n /** [tc] Transaction counter. */\n txnCounter?: bigint\n /** [spt] State proof tracking data keyed by state proof type. */\n stateProofTracking?: Map<number, BlockStateProofTrackingData>\n /** Represents participation account data that needs to be checked/acted on by the network */\n participationUpdates?: ParticipationUpdates\n}\n\nconst BlockHeaderMeta: ObjectModelMetadata<BlockHeader> = {\n name: 'BlockHeader',\n kind: 'object',\n fields: [\n { name: 'round', wireKey: 'rnd', optional: true, codec: bigIntCodec },\n { name: 'previousBlockHash', wireKey: 'prev', optional: true, codec: fixedBytes32Codec },\n { name: 'previousBlockHash512', wireKey: 'prev512', optional: true, codec: fixedBytes64Codec },\n { name: 'seed', wireKey: 'seed', optional: true, codec: bytesCodec },\n {\n name: 'txnCommitments',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(TxnCommitmentsMeta),\n },\n { name: 'timestamp', wireKey: 'ts', optional: true, codec: bigIntCodec },\n { name: 'genesisId', wireKey: 'gen', optional: true, codec: stringCodec },\n { name: 'genesisHash', wireKey: 'gh', optional: true, codec: fixedBytes32Codec },\n { name: 'proposer', wireKey: 'prp', optional: true, codec: addressCodec },\n { name: 'feesCollected', wireKey: 'fc', optional: true, codec: bigIntCodec },\n { name: 'bonus', wireKey: 'bi', optional: true, codec: bigIntCodec },\n { name: 'proposerPayout', wireKey: 'pp', optional: true, codec: bigIntCodec },\n {\n name: 'rewardState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(RewardStateMeta),\n },\n {\n name: 'upgradeState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(UpgradeStateMeta),\n },\n {\n name: 'upgradeVote',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(UpgradeVoteMeta),\n },\n { name: 'txnCounter', wireKey: 'tc', optional: true, codec: bigIntCodec },\n {\n name: 'stateProofTracking',\n wireKey: 'spt',\n optional: true,\n codec: new MapCodec(numberCodec, new ObjectModelCodec(BlockStateProofTrackingDataMeta)),\n },\n {\n name: 'participationUpdates',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(ParticipationUpdatesMeta),\n },\n ],\n}\n\n/**\n * Block contains the BlockHeader and the list of transactions (Payset).\n */\nexport type Block = {\n /** The block information (Header) */\n header: BlockHeader\n\n /** [txns] Block transactions (Payset). */\n payset?: SignedTxnInBlock[]\n}\n\nconst BlockMeta: ObjectModelMetadata<Block> = {\n name: 'Block',\n kind: 'object',\n fields: [\n { name: 'header', flattened: true, optional: false, codec: new ObjectModelCodec(BlockHeaderMeta) },\n {\n name: 'payset',\n wireKey: 'txns',\n optional: true,\n codec: new ArrayCodec(new ObjectModelCodec(SignedTxnInBlockMeta)),\n },\n ],\n}\n\n/**\n * Custom codec for Block that populates genesis information on transactions after decoding.\n *\n * When blocks are returned from algod, transactions may not include the genesisId\n * and genesisHash fields even though they are required for correct transaction ID calculation.\n * The block contains `hasGenesisId` and `hasGenesisHash` flags that indicate whether these\n * fields should be populated from the block header.\n *\n * This codec automatically populates these fields after decoding to ensure transaction IDs\n * can be calculated correctly.\n */\nclass BlockCodec extends ObjectModelCodec<Block> {\n constructor() {\n super(BlockMeta)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Block {\n const block = super.fromEncoded(value, format)\n\n // Populate genesis id and hash on transactions if required to ensure tx id's are correct\n const genesisId = block.header.genesisId\n const genesisHash = block.header.genesisHash\n\n for (const txnInBlock of block.payset ?? []) {\n const txn = txnInBlock.signedTxn.signedTxn.txn\n\n if (txnInBlock.hasGenesisId && txn.genesisId === undefined) {\n txn.genesisId = genesisId\n }\n\n // The following assumes that Consensus.RequireGenesisHash is true\n // so assigns genesis hash unless explicitly set to false\n if (txnInBlock.hasGenesisHash !== false && txn.genesisHash === undefined) {\n txn.genesisHash = genesisHash\n }\n }\n\n return block\n }\n}\n\nexport const blockCodec = new BlockCodec()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"block.js","names":["BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta>","numberCodec","bytesCodec","bigIntCodec","BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta>","MapCodec","ObjectModelCodec","ArrayCodec","addressArrayCodec","bytesArrayCodec","BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData>","ApplyDataMeta: ObjectModelMetadata<ApplyData>","SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD>","SignedTransactionMeta","SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock>","booleanCodec","ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates>","TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments>","fixedBytes32Codec","fixedBytes64Codec","RewardStateMeta: ObjectModelMetadata<RewardState>","addressCodec","UpgradeStateMeta: ObjectModelMetadata<UpgradeState>","stringCodec","UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote>","BlockMeta: ObjectModelMetadata<Block>"],"sources":["../../../../../packages/algod_client/src/models/block.ts"],"sourcesContent":["import {\n Address,\n ArrayCodec,\n MapCodec,\n ObjectModelCodec,\n type EncodingFormat,\n type ObjectModelMetadata,\n type WireObject,\n addressArrayCodec,\n addressCodec,\n bigIntCodec,\n booleanCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n stringCodec,\n} from '@algorandfoundation/algokit-common'\nimport { type SignedTransaction, SignedTransactionMeta } from '@algorandfoundation/algokit-transact'\n\n/** BlockEvalDelta represents a TEAL value delta (block/msgpack wire keys). */\nexport type BlockEvalDelta = {\n /** [at] delta action. */\n action: number\n /** [bs] bytes value. */\n bytes?: Uint8Array\n /** [ui] uint value. */\n uint?: bigint\n}\n\nconst BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta> = {\n name: 'BlockEvalDelta',\n kind: 'object',\n fields: [\n { name: 'action', wireKey: 'at', optional: false, codec: numberCodec },\n { name: 'bytes', wireKey: 'bs', optional: true, codec: bytesCodec },\n { name: 'uint', wireKey: 'ui', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * State changes from application execution, including inner transactions and logs.\n */\nexport type BlockAppEvalDelta = {\n /** [gd] Global state delta for the application. */\n globalDelta?: Map<Uint8Array, BlockEvalDelta>\n /** [ld] Local state deltas keyed by address index. */\n localDeltas?: Map<number, Map<Uint8Array, BlockEvalDelta>>\n /** [itx] Inner transactions produced by this application execution. */\n innerTxns?: SignedTxnWithAD[]\n /** [sa] Shared accounts referenced by local deltas. */\n sharedAccounts?: Address[]\n /** [lg] Application log outputs. */\n logs?: Uint8Array[]\n}\n\nconst BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta> = {\n name: 'BlockAppEvalDelta',\n kind: 'object',\n fields: [\n {\n name: 'globalDelta',\n wireKey: 'gd',\n optional: true,\n codec: new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta)),\n },\n {\n name: 'localDeltas',\n wireKey: 'ld',\n optional: true,\n codec: new MapCodec(numberCodec, new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta))),\n },\n {\n name: 'innerTxns',\n wireKey: 'itx',\n optional: true,\n codec: new ArrayCodec(new ObjectModelCodec(() => SignedTxnWithADMeta)),\n },\n {\n name: 'sharedAccounts',\n wireKey: 'sa',\n optional: true,\n codec: addressArrayCodec,\n },\n { name: 'logs', wireKey: 'lg', optional: true, codec: bytesArrayCodec },\n ],\n}\n\n/** Tracking metadata for a specific StateProofType. */\nexport type BlockStateProofTrackingData = {\n /** [v] Vector commitment root of state proof voters. */\n stateProofVotersCommitment?: Uint8Array\n /** [t] Online total weight during state proof round. */\n stateProofOnlineTotalWeight?: bigint\n /** [n] Next round for which state proofs are accepted. */\n stateProofNextRound?: bigint\n}\n\nconst BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData> = {\n name: 'BlockStateProofTrackingData',\n kind: 'object',\n fields: [\n { name: 'stateProofVotersCommitment', wireKey: 'v', optional: true, codec: bytesCodec },\n { name: 'stateProofOnlineTotalWeight', wireKey: 't', optional: true, codec: bigIntCodec },\n { name: 'stateProofNextRound', wireKey: 'n', optional: true, codec: bigIntCodec },\n ],\n}\n\nexport type ApplyData = {\n closingAmount?: bigint\n assetClosingAmount?: bigint\n senderRewards?: bigint\n receiverRewards?: bigint\n closeRewards?: bigint\n evalDelta?: BlockAppEvalDelta\n configAsset?: bigint\n applicationId?: bigint\n}\n\nconst ApplyDataMeta: ObjectModelMetadata<ApplyData> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n { name: 'closingAmount', wireKey: 'ca', optional: true, codec: bigIntCodec },\n { name: 'assetClosingAmount', wireKey: 'aca', optional: true, codec: bigIntCodec },\n { name: 'senderRewards', wireKey: 'rs', optional: true, codec: bigIntCodec },\n { name: 'receiverRewards', wireKey: 'rr', optional: true, codec: bigIntCodec },\n { name: 'closeRewards', wireKey: 'rc', optional: true, codec: bigIntCodec },\n { name: 'evalDelta', wireKey: 'dt', optional: true, codec: new ObjectModelCodec(BlockAppEvalDeltaMeta) },\n { name: 'configAsset', wireKey: 'caid', optional: true, codec: bigIntCodec },\n { name: 'applicationId', wireKey: 'apid', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * SignedTxnWithAD is a SignedTransaction with additional ApplyData.\n */\nexport type SignedTxnWithAD = {\n /** The signed transaction. */\n signedTxn: SignedTransaction\n /** Apply data containing transaction execution information. */\n applyData?: ApplyData\n}\n\nconst SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD> = {\n name: 'SignedTxnWithAD',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTransactionMeta),\n },\n {\n name: 'applyData',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(ApplyDataMeta),\n },\n ],\n}\n\n/**\n * SignedTxnInBlock is a SignedTransaction with additional ApplyData and block-specific metadata.\n */\nexport type SignedTxnInBlock = {\n signedTxn: SignedTxnWithAD\n hasGenesisId?: boolean\n hasGenesisHash?: boolean\n}\n\nconst SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTxnWithADMeta),\n },\n { name: 'hasGenesisId', wireKey: 'hgi', optional: true, codec: booleanCodec },\n { name: 'hasGenesisHash', wireKey: 'hgh', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type ParticipationUpdates = {\n /** [partupdrmv] Expired participation accounts. */\n expiredParticipationAccounts: string[]\n /** [partupdabs] Absent participation accounts. */\n absentParticipationAccounts: string[]\n}\n\nconst ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates> = {\n name: 'ParticipationUpdates',\n kind: 'object',\n fields: [\n {\n name: 'expiredParticipationAccounts',\n wireKey: 'partupdrmv',\n optional: false,\n codec: addressArrayCodec,\n },\n {\n name: 'absentParticipationAccounts',\n wireKey: 'partupdabs',\n optional: false,\n codec: addressArrayCodec,\n },\n ],\n}\n\n/** Transaction commitment hashes for the block. */\nexport type TxnCommitments = {\n /** [txn] Root of transaction merkle tree using SHA512_256. */\n nativeSha512_256Commitment: Uint8Array\n /** [txn256] Root of transaction vector commitment using SHA256. */\n sha256Commitment?: Uint8Array\n /** [txn512] Root of transaction vector commitment using SHA512. */\n sha512Commitment?: Uint8Array\n}\n\nconst TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments> = {\n name: 'TxnCommitments',\n kind: 'object',\n fields: [\n { name: 'nativeSha512_256Commitment', wireKey: 'txn', optional: false, codec: fixedBytes32Codec },\n { name: 'sha256Commitment', wireKey: 'txn256', optional: true, codec: fixedBytes32Codec },\n { name: 'sha512Commitment', wireKey: 'txn512', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\n/** Reward distribution state for the block. */\nexport type RewardState = {\n /** [fees] FeeSink address. */\n feeSink: Address\n /** [rwd] RewardsPool address. */\n rewardsPool: Address\n /** [earn] Rewards level. */\n rewardsLevel: bigint\n /** [rate] Rewards rate. */\n rewardsRate: bigint\n /** [frac] Rewards residue. */\n rewardsResidue: bigint\n /** [rwcalr] Rewards recalculation round. */\n rewardsRecalculationRound: bigint\n}\n\nconst RewardStateMeta: ObjectModelMetadata<RewardState> = {\n name: 'RewardState',\n kind: 'object',\n fields: [\n { name: 'feeSink', wireKey: 'fees', optional: false, codec: addressCodec },\n { name: 'rewardsPool', wireKey: 'rwd', optional: false, codec: addressCodec },\n { name: 'rewardsLevel', wireKey: 'earn', optional: false, codec: bigIntCodec },\n { name: 'rewardsRate', wireKey: 'rate', optional: false, codec: bigIntCodec },\n { name: 'rewardsResidue', wireKey: 'frac', optional: false, codec: bigIntCodec },\n { name: 'rewardsRecalculationRound', wireKey: 'rwcalr', optional: false, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade state for the block. */\nexport type UpgradeState = {\n /** [proto] Current consensus protocol. */\n currentProtocol: string\n /** [nextproto] Next proposed protocol. */\n nextProtocol?: string\n /** [nextyes] Next protocol approvals. */\n nextProtocolApprovals?: bigint\n /** [nextbefore] Next protocol vote deadline. */\n nextProtocolVoteBefore?: bigint\n /** [nextswitch] Next protocol switch round. */\n nextProtocolSwitchOn?: bigint\n}\n\nconst UpgradeStateMeta: ObjectModelMetadata<UpgradeState> = {\n name: 'UpgradeState',\n kind: 'object',\n fields: [\n { name: 'currentProtocol', wireKey: 'proto', optional: false, codec: stringCodec },\n { name: 'nextProtocol', wireKey: 'nextproto', optional: true, codec: stringCodec },\n { name: 'nextProtocolApprovals', wireKey: 'nextyes', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolVoteBefore', wireKey: 'nextbefore', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolSwitchOn', wireKey: 'nextswitch', optional: true, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade vote parameters for the block. */\nexport type UpgradeVote = {\n /** [upgradeprop] Upgrade proposal. */\n upgradePropose?: string\n /** [upgradedelay] Upgrade delay in rounds. */\n upgradeDelay?: bigint\n /** [upgradeyes] Upgrade approval flag. */\n upgradeApprove?: boolean\n}\n\nconst UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote> = {\n name: 'UpgradeVote',\n kind: 'object',\n fields: [\n { name: 'upgradePropose', wireKey: 'upgradeprop', optional: true, codec: stringCodec },\n { name: 'upgradeDelay', wireKey: 'upgradedelay', optional: true, codec: bigIntCodec },\n { name: 'upgradeApprove', wireKey: 'upgradeyes', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type BlockHeader = {\n /** [rnd] Round number. */\n round: bigint\n /** [prev] Previous block hash. */\n previousBlockHash: Uint8Array\n /** [prev512] Previous block hash using SHA-512. */\n previousBlockHash512?: Uint8Array\n /** [seed] Sortition seed. */\n seed: Uint8Array\n /** Authenticates the set of transactions appearing in the block. */\n txnCommitments: TxnCommitments\n /** [ts] Block timestamp in seconds since epoch. */\n timestamp: bigint\n /** [gen] Genesis ID. */\n genesisId: string\n /** [gh] Genesis hash. */\n genesisHash: Uint8Array\n /** [prp] Proposer address. */\n proposer?: Address\n /** [fc] Fees collected in this block. */\n feesCollected?: bigint\n /** [bi] Bonus incentive for block proposal. */\n bonus?: bigint\n /** [pp] Proposer payout. */\n proposerPayout?: bigint\n /** Reward distribution state. */\n rewardState: RewardState\n /** Protocol upgrade state. */\n upgradeState: UpgradeState\n /** Protocol upgrade vote parameters. */\n upgradeVote: UpgradeVote\n /** [tc] Transaction counter. */\n txnCounter?: bigint\n /** [spt] State proof tracking data keyed by state proof type. */\n stateProofTracking?: Map<number, BlockStateProofTrackingData>\n /** Represents participation account data that needs to be checked/acted on by the network */\n participationUpdates: ParticipationUpdates\n}\n\nconst BlockHeaderMeta: ObjectModelMetadata<BlockHeader> = {\n name: 'BlockHeader',\n kind: 'object',\n fields: [\n { name: 'round', wireKey: 'rnd', optional: false, codec: bigIntCodec },\n { name: 'previousBlockHash', wireKey: 'prev', optional: false, codec: fixedBytes32Codec },\n { name: 'previousBlockHash512', wireKey: 'prev512', optional: true, codec: fixedBytes64Codec },\n { name: 'seed', wireKey: 'seed', optional: false, codec: bytesCodec },\n {\n name: 'txnCommitments',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(TxnCommitmentsMeta),\n },\n { name: 'timestamp', wireKey: 'ts', optional: false, codec: bigIntCodec },\n { name: 'genesisId', wireKey: 'gen', optional: false, codec: stringCodec },\n { name: 'genesisHash', wireKey: 'gh', optional: false, codec: fixedBytes32Codec },\n { name: 'proposer', wireKey: 'prp', optional: true, codec: addressCodec },\n { name: 'feesCollected', wireKey: 'fc', optional: true, codec: bigIntCodec },\n { name: 'bonus', wireKey: 'bi', optional: true, codec: bigIntCodec },\n { name: 'proposerPayout', wireKey: 'pp', optional: true, codec: bigIntCodec },\n {\n name: 'rewardState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(RewardStateMeta),\n },\n {\n name: 'upgradeState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(UpgradeStateMeta),\n },\n {\n name: 'upgradeVote',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(UpgradeVoteMeta),\n },\n { name: 'txnCounter', wireKey: 'tc', optional: true, codec: bigIntCodec },\n {\n name: 'stateProofTracking',\n wireKey: 'spt',\n optional: true,\n codec: new MapCodec(numberCodec, new ObjectModelCodec(BlockStateProofTrackingDataMeta)),\n },\n {\n name: 'participationUpdates',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(ParticipationUpdatesMeta),\n },\n ],\n}\n\n/**\n * Block contains the BlockHeader and the list of transactions (Payset).\n */\nexport type Block = {\n /** The block information (Header) */\n header: BlockHeader\n\n /** [txns] Block transactions (Payset). */\n payset: SignedTxnInBlock[]\n}\n\nconst BlockMeta: ObjectModelMetadata<Block> = {\n name: 'Block',\n kind: 'object',\n fields: [\n { name: 'header', flattened: true, optional: false, codec: new ObjectModelCodec(BlockHeaderMeta) },\n {\n name: 'payset',\n wireKey: 'txns',\n optional: false,\n codec: new ArrayCodec(new ObjectModelCodec(SignedTxnInBlockMeta)),\n },\n ],\n}\n\n/**\n * Custom codec for Block that populates genesis information on transactions after decoding.\n *\n * When blocks are returned from algod, transactions may not include the genesisId\n * and genesisHash fields even though they are required for correct transaction ID calculation.\n * The block contains `hasGenesisId` and `hasGenesisHash` flags that indicate whether these\n * fields should be populated from the block header.\n *\n * This codec automatically populates these fields after decoding to ensure transaction IDs\n * can be calculated correctly.\n */\nclass BlockCodec extends ObjectModelCodec<Block> {\n constructor() {\n super(BlockMeta)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Block {\n const block = super.fromEncoded(value, format)\n\n // Populate genesis id and hash on transactions if required to ensure tx id's are correct\n const genesisId = block.header.genesisId\n const genesisHash = block.header.genesisHash\n\n for (const txnInBlock of block.payset ?? []) {\n const txn = txnInBlock.signedTxn.signedTxn.txn\n\n if (txnInBlock.hasGenesisId && txn.genesisId === undefined) {\n txn.genesisId = genesisId\n }\n\n // The following assumes that Consensus.RequireGenesisHash is true\n // so assigns genesis hash unless explicitly set to false\n if (txnInBlock.hasGenesisHash !== false && txn.genesisHash === undefined) {\n txn.genesisHash = genesisHash\n }\n }\n\n return block\n }\n}\n\nexport const blockCodec = new BlockCodec()\n"],"mappings":"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"}
|
|
@@ -194,12 +194,12 @@ const ParticipationUpdatesMeta = {
|
|
|
194
194
|
fields: [{
|
|
195
195
|
name: "expiredParticipationAccounts",
|
|
196
196
|
wireKey: "partupdrmv",
|
|
197
|
-
optional:
|
|
197
|
+
optional: false,
|
|
198
198
|
codec: addressArrayCodec
|
|
199
199
|
}, {
|
|
200
200
|
name: "absentParticipationAccounts",
|
|
201
201
|
wireKey: "partupdabs",
|
|
202
|
-
optional:
|
|
202
|
+
optional: false,
|
|
203
203
|
codec: addressArrayCodec
|
|
204
204
|
}]
|
|
205
205
|
};
|
|
@@ -234,37 +234,37 @@ const RewardStateMeta = {
|
|
|
234
234
|
{
|
|
235
235
|
name: "feeSink",
|
|
236
236
|
wireKey: "fees",
|
|
237
|
-
optional:
|
|
237
|
+
optional: false,
|
|
238
238
|
codec: addressCodec
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
241
|
name: "rewardsPool",
|
|
242
242
|
wireKey: "rwd",
|
|
243
|
-
optional:
|
|
243
|
+
optional: false,
|
|
244
244
|
codec: addressCodec
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
name: "rewardsLevel",
|
|
248
248
|
wireKey: "earn",
|
|
249
|
-
optional:
|
|
249
|
+
optional: false,
|
|
250
250
|
codec: bigIntCodec
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
name: "rewardsRate",
|
|
254
254
|
wireKey: "rate",
|
|
255
|
-
optional:
|
|
255
|
+
optional: false,
|
|
256
256
|
codec: bigIntCodec
|
|
257
257
|
},
|
|
258
258
|
{
|
|
259
259
|
name: "rewardsResidue",
|
|
260
260
|
wireKey: "frac",
|
|
261
|
-
optional:
|
|
261
|
+
optional: false,
|
|
262
262
|
codec: bigIntCodec
|
|
263
263
|
},
|
|
264
264
|
{
|
|
265
265
|
name: "rewardsRecalculationRound",
|
|
266
266
|
wireKey: "rwcalr",
|
|
267
|
-
optional:
|
|
267
|
+
optional: false,
|
|
268
268
|
codec: bigIntCodec
|
|
269
269
|
}
|
|
270
270
|
]
|
|
@@ -276,7 +276,7 @@ const UpgradeStateMeta = {
|
|
|
276
276
|
{
|
|
277
277
|
name: "currentProtocol",
|
|
278
278
|
wireKey: "proto",
|
|
279
|
-
optional:
|
|
279
|
+
optional: false,
|
|
280
280
|
codec: stringCodec
|
|
281
281
|
},
|
|
282
282
|
{
|
|
@@ -343,13 +343,13 @@ const BlockMeta = {
|
|
|
343
343
|
{
|
|
344
344
|
name: "round",
|
|
345
345
|
wireKey: "rnd",
|
|
346
|
-
optional:
|
|
346
|
+
optional: false,
|
|
347
347
|
codec: bigIntCodec
|
|
348
348
|
},
|
|
349
349
|
{
|
|
350
350
|
name: "previousBlockHash",
|
|
351
351
|
wireKey: "prev",
|
|
352
|
-
optional:
|
|
352
|
+
optional: false,
|
|
353
353
|
codec: fixedBytes32Codec
|
|
354
354
|
},
|
|
355
355
|
{
|
|
@@ -361,7 +361,7 @@ const BlockMeta = {
|
|
|
361
361
|
{
|
|
362
362
|
name: "seed",
|
|
363
363
|
wireKey: "seed",
|
|
364
|
-
optional:
|
|
364
|
+
optional: false,
|
|
365
365
|
codec: bytesCodec
|
|
366
366
|
},
|
|
367
367
|
{
|
|
@@ -373,19 +373,19 @@ const BlockMeta = {
|
|
|
373
373
|
{
|
|
374
374
|
name: "timestamp",
|
|
375
375
|
wireKey: "ts",
|
|
376
|
-
optional:
|
|
376
|
+
optional: false,
|
|
377
377
|
codec: bigIntCodec
|
|
378
378
|
},
|
|
379
379
|
{
|
|
380
380
|
name: "genesisId",
|
|
381
381
|
wireKey: "gen",
|
|
382
|
-
optional:
|
|
382
|
+
optional: false,
|
|
383
383
|
codec: stringCodec
|
|
384
384
|
},
|
|
385
385
|
{
|
|
386
386
|
name: "genesisHash",
|
|
387
387
|
wireKey: "gh",
|
|
388
|
-
optional:
|
|
388
|
+
optional: false,
|
|
389
389
|
codec: fixedBytes32Codec
|
|
390
390
|
},
|
|
391
391
|
{
|
|
@@ -427,7 +427,7 @@ const BlockMeta = {
|
|
|
427
427
|
{
|
|
428
428
|
name: "upgradeVote",
|
|
429
429
|
flattened: true,
|
|
430
|
-
optional:
|
|
430
|
+
optional: true,
|
|
431
431
|
codec: new ObjectModelCodec(UpgradeVoteMeta)
|
|
432
432
|
},
|
|
433
433
|
{
|
|
@@ -445,7 +445,7 @@ const BlockMeta = {
|
|
|
445
445
|
{
|
|
446
446
|
name: "participationUpdates",
|
|
447
447
|
flattened: true,
|
|
448
|
-
optional:
|
|
448
|
+
optional: false,
|
|
449
449
|
codec: new ObjectModelCodec(ParticipationUpdatesMeta)
|
|
450
450
|
}
|
|
451
451
|
]
|
|
@@ -453,7 +453,7 @@ const BlockMeta = {
|
|
|
453
453
|
}, {
|
|
454
454
|
name: "payset",
|
|
455
455
|
wireKey: "txns",
|
|
456
|
-
optional:
|
|
456
|
+
optional: false,
|
|
457
457
|
codec: new ArrayCodec(new ObjectModelCodec(SignedTxnInBlockMeta))
|
|
458
458
|
}]
|
|
459
459
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.mjs","names":["BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta>","BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta>","BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData>","ApplyDataMeta: ObjectModelMetadata<ApplyData>","SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD>","SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock>","ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates>","TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments>","RewardStateMeta: ObjectModelMetadata<RewardState>","UpgradeStateMeta: ObjectModelMetadata<UpgradeState>","UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote>","BlockMeta: ObjectModelMetadata<Block>"],"sources":["../../../../../packages/algod_client/src/models/block.ts"],"sourcesContent":["import {\n Address,\n ArrayCodec,\n MapCodec,\n ObjectModelCodec,\n type EncodingFormat,\n type ObjectModelMetadata,\n type WireObject,\n addressArrayCodec,\n addressCodec,\n bigIntCodec,\n booleanCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n stringCodec,\n} from '@algorandfoundation/algokit-common'\nimport { type SignedTransaction, SignedTransactionMeta } from '@algorandfoundation/algokit-transact'\n\n/** BlockEvalDelta represents a TEAL value delta (block/msgpack wire keys). */\nexport type BlockEvalDelta = {\n /** [at] delta action. */\n action: number\n /** [bs] bytes value. */\n bytes?: Uint8Array\n /** [ui] uint value. */\n uint?: bigint\n}\n\nconst BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta> = {\n name: 'BlockEvalDelta',\n kind: 'object',\n fields: [\n { name: 'action', wireKey: 'at', optional: false, codec: numberCodec },\n { name: 'bytes', wireKey: 'bs', optional: true, codec: bytesCodec },\n { name: 'uint', wireKey: 'ui', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * State changes from application execution, including inner transactions and logs.\n */\nexport type BlockAppEvalDelta = {\n /** [gd] Global state delta for the application. */\n globalDelta?: Map<Uint8Array, BlockEvalDelta>\n /** [ld] Local state deltas keyed by address index. */\n localDeltas?: Map<number, Map<Uint8Array, BlockEvalDelta>>\n /** [itx] Inner transactions produced by this application execution. */\n innerTxns?: SignedTxnWithAD[]\n /** [sa] Shared accounts referenced by local deltas. */\n sharedAccounts?: Address[]\n /** [lg] Application log outputs. */\n logs?: Uint8Array[]\n}\n\nconst BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta> = {\n name: 'BlockAppEvalDelta',\n kind: 'object',\n fields: [\n {\n name: 'globalDelta',\n wireKey: 'gd',\n optional: true,\n codec: new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta)),\n },\n {\n name: 'localDeltas',\n wireKey: 'ld',\n optional: true,\n codec: new MapCodec(numberCodec, new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta))),\n },\n {\n name: 'innerTxns',\n wireKey: 'itx',\n optional: true,\n codec: new ArrayCodec(new ObjectModelCodec(() => SignedTxnWithADMeta)),\n },\n {\n name: 'sharedAccounts',\n wireKey: 'sa',\n optional: true,\n codec: addressArrayCodec,\n },\n { name: 'logs', wireKey: 'lg', optional: true, codec: bytesArrayCodec },\n ],\n}\n\n/** Tracking metadata for a specific StateProofType. */\nexport type BlockStateProofTrackingData = {\n /** [v] Vector commitment root of state proof voters. */\n stateProofVotersCommitment?: Uint8Array\n /** [t] Online total weight during state proof round. */\n stateProofOnlineTotalWeight?: bigint\n /** [n] Next round for which state proofs are accepted. */\n stateProofNextRound?: bigint\n}\n\nconst BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData> = {\n name: 'BlockStateProofTrackingData',\n kind: 'object',\n fields: [\n { name: 'stateProofVotersCommitment', wireKey: 'v', optional: true, codec: bytesCodec },\n { name: 'stateProofOnlineTotalWeight', wireKey: 't', optional: true, codec: bigIntCodec },\n { name: 'stateProofNextRound', wireKey: 'n', optional: true, codec: bigIntCodec },\n ],\n}\n\nexport type ApplyData = {\n closingAmount?: bigint\n assetClosingAmount?: bigint\n senderRewards?: bigint\n receiverRewards?: bigint\n closeRewards?: bigint\n evalDelta?: BlockAppEvalDelta\n configAsset?: bigint\n applicationId?: bigint\n}\n\nconst ApplyDataMeta: ObjectModelMetadata<ApplyData> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n { name: 'closingAmount', wireKey: 'ca', optional: true, codec: bigIntCodec },\n { name: 'assetClosingAmount', wireKey: 'aca', optional: true, codec: bigIntCodec },\n { name: 'senderRewards', wireKey: 'rs', optional: true, codec: bigIntCodec },\n { name: 'receiverRewards', wireKey: 'rr', optional: true, codec: bigIntCodec },\n { name: 'closeRewards', wireKey: 'rc', optional: true, codec: bigIntCodec },\n { name: 'evalDelta', wireKey: 'dt', optional: true, codec: new ObjectModelCodec(BlockAppEvalDeltaMeta) },\n { name: 'configAsset', wireKey: 'caid', optional: true, codec: bigIntCodec },\n { name: 'applicationId', wireKey: 'apid', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * SignedTxnWithAD is a SignedTransaction with additional ApplyData.\n */\nexport type SignedTxnWithAD = {\n /** The signed transaction. */\n signedTxn: SignedTransaction\n /** Apply data containing transaction execution information. */\n applyData?: ApplyData\n}\n\nconst SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD> = {\n name: 'SignedTxnWithAD',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTransactionMeta),\n },\n {\n name: 'applyData',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(ApplyDataMeta),\n },\n ],\n}\n\n/**\n * SignedTxnInBlock is a SignedTransaction with additional ApplyData and block-specific metadata.\n */\nexport type SignedTxnInBlock = {\n signedTxn: SignedTxnWithAD\n hasGenesisId?: boolean\n hasGenesisHash?: boolean\n}\n\nconst SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTxnWithADMeta),\n },\n { name: 'hasGenesisId', wireKey: 'hgi', optional: true, codec: booleanCodec },\n { name: 'hasGenesisHash', wireKey: 'hgh', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type ParticipationUpdates = {\n /** [partupdrmv] Expired participation accounts. */\n expiredParticipationAccounts?: string[]\n /** [partupdabs] Absent participation accounts. */\n absentParticipationAccounts?: string[]\n}\n\nconst ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates> = {\n name: 'ParticipationUpdates',\n kind: 'object',\n fields: [\n {\n name: 'expiredParticipationAccounts',\n wireKey: 'partupdrmv',\n optional: true,\n codec: addressArrayCodec,\n },\n {\n name: 'absentParticipationAccounts',\n wireKey: 'partupdabs',\n optional: true,\n codec: addressArrayCodec,\n },\n ],\n}\n\n/** Transaction commitment hashes for the block. */\nexport type TxnCommitments = {\n /** [txn] Root of transaction merkle tree using SHA512_256. */\n nativeSha512_256Commitment: Uint8Array\n /** [txn256] Root of transaction vector commitment using SHA256. */\n sha256Commitment?: Uint8Array\n /** [txn512] Root of transaction vector commitment using SHA512. */\n sha512Commitment?: Uint8Array\n}\n\nconst TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments> = {\n name: 'TxnCommitments',\n kind: 'object',\n fields: [\n { name: 'nativeSha512_256Commitment', wireKey: 'txn', optional: false, codec: fixedBytes32Codec },\n { name: 'sha256Commitment', wireKey: 'txn256', optional: true, codec: fixedBytes32Codec },\n { name: 'sha512Commitment', wireKey: 'txn512', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\n/** Reward distribution state for the block. */\nexport type RewardState = {\n /** [fees] FeeSink address. */\n feeSink?: Address\n /** [rwd] RewardsPool address. */\n rewardsPool?: Address\n /** [earn] Rewards level. */\n rewardsLevel?: bigint\n /** [rate] Rewards rate. */\n rewardsRate?: bigint\n /** [frac] Rewards residue. */\n rewardsResidue?: bigint\n /** [rwcalr] Rewards recalculation round. */\n rewardsRecalculationRound?: bigint\n}\n\nconst RewardStateMeta: ObjectModelMetadata<RewardState> = {\n name: 'RewardState',\n kind: 'object',\n fields: [\n { name: 'feeSink', wireKey: 'fees', optional: true, codec: addressCodec },\n { name: 'rewardsPool', wireKey: 'rwd', optional: true, codec: addressCodec },\n { name: 'rewardsLevel', wireKey: 'earn', optional: true, codec: bigIntCodec },\n { name: 'rewardsRate', wireKey: 'rate', optional: true, codec: bigIntCodec },\n { name: 'rewardsResidue', wireKey: 'frac', optional: true, codec: bigIntCodec },\n { name: 'rewardsRecalculationRound', wireKey: 'rwcalr', optional: true, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade state for the block. */\nexport type UpgradeState = {\n /** [proto] Current consensus protocol. */\n currentProtocol?: string\n /** [nextproto] Next proposed protocol. */\n nextProtocol?: string\n /** [nextyes] Next protocol approvals. */\n nextProtocolApprovals?: bigint\n /** [nextbefore] Next protocol vote deadline. */\n nextProtocolVoteBefore?: bigint\n /** [nextswitch] Next protocol switch round. */\n nextProtocolSwitchOn?: bigint\n}\n\nconst UpgradeStateMeta: ObjectModelMetadata<UpgradeState> = {\n name: 'UpgradeState',\n kind: 'object',\n fields: [\n { name: 'currentProtocol', wireKey: 'proto', optional: true, codec: stringCodec },\n { name: 'nextProtocol', wireKey: 'nextproto', optional: true, codec: stringCodec },\n { name: 'nextProtocolApprovals', wireKey: 'nextyes', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolVoteBefore', wireKey: 'nextbefore', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolSwitchOn', wireKey: 'nextswitch', optional: true, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade vote parameters for the block. */\nexport type UpgradeVote = {\n /** [upgradeprop] Upgrade proposal. */\n upgradePropose?: string\n /** [upgradedelay] Upgrade delay in rounds. */\n upgradeDelay?: bigint\n /** [upgradeyes] Upgrade approval flag. */\n upgradeApprove?: boolean\n}\n\nconst UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote> = {\n name: 'UpgradeVote',\n kind: 'object',\n fields: [\n { name: 'upgradePropose', wireKey: 'upgradeprop', optional: true, codec: stringCodec },\n { name: 'upgradeDelay', wireKey: 'upgradedelay', optional: true, codec: bigIntCodec },\n { name: 'upgradeApprove', wireKey: 'upgradeyes', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type BlockHeader = {\n /** [rnd] Round number. */\n round?: bigint\n /** [prev] Previous block hash. */\n previousBlockHash?: Uint8Array\n /** [prev512] Previous block hash using SHA-512. */\n previousBlockHash512?: Uint8Array\n /** [seed] Sortition seed. */\n seed?: Uint8Array\n /** Authenticates the set of transactions appearing in the block. */\n txnCommitments: TxnCommitments\n /** [ts] Block timestamp in seconds since epoch. */\n timestamp?: bigint\n /** [gen] Genesis ID. */\n genesisId?: string\n /** [gh] Genesis hash. */\n genesisHash?: Uint8Array\n /** [prp] Proposer address. */\n proposer?: Address\n /** [fc] Fees collected in this block. */\n feesCollected?: bigint\n /** [bi] Bonus incentive for block proposal. */\n bonus?: bigint\n /** [pp] Proposer payout. */\n proposerPayout?: bigint\n /** Reward distribution state. */\n rewardState: RewardState\n /** Protocol upgrade state. */\n upgradeState: UpgradeState\n /** Protocol upgrade vote parameters. */\n upgradeVote: UpgradeVote\n /** [tc] Transaction counter. */\n txnCounter?: bigint\n /** [spt] State proof tracking data keyed by state proof type. */\n stateProofTracking?: Map<number, BlockStateProofTrackingData>\n /** Represents participation account data that needs to be checked/acted on by the network */\n participationUpdates?: ParticipationUpdates\n}\n\nconst BlockHeaderMeta: ObjectModelMetadata<BlockHeader> = {\n name: 'BlockHeader',\n kind: 'object',\n fields: [\n { name: 'round', wireKey: 'rnd', optional: true, codec: bigIntCodec },\n { name: 'previousBlockHash', wireKey: 'prev', optional: true, codec: fixedBytes32Codec },\n { name: 'previousBlockHash512', wireKey: 'prev512', optional: true, codec: fixedBytes64Codec },\n { name: 'seed', wireKey: 'seed', optional: true, codec: bytesCodec },\n {\n name: 'txnCommitments',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(TxnCommitmentsMeta),\n },\n { name: 'timestamp', wireKey: 'ts', optional: true, codec: bigIntCodec },\n { name: 'genesisId', wireKey: 'gen', optional: true, codec: stringCodec },\n { name: 'genesisHash', wireKey: 'gh', optional: true, codec: fixedBytes32Codec },\n { name: 'proposer', wireKey: 'prp', optional: true, codec: addressCodec },\n { name: 'feesCollected', wireKey: 'fc', optional: true, codec: bigIntCodec },\n { name: 'bonus', wireKey: 'bi', optional: true, codec: bigIntCodec },\n { name: 'proposerPayout', wireKey: 'pp', optional: true, codec: bigIntCodec },\n {\n name: 'rewardState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(RewardStateMeta),\n },\n {\n name: 'upgradeState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(UpgradeStateMeta),\n },\n {\n name: 'upgradeVote',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(UpgradeVoteMeta),\n },\n { name: 'txnCounter', wireKey: 'tc', optional: true, codec: bigIntCodec },\n {\n name: 'stateProofTracking',\n wireKey: 'spt',\n optional: true,\n codec: new MapCodec(numberCodec, new ObjectModelCodec(BlockStateProofTrackingDataMeta)),\n },\n {\n name: 'participationUpdates',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(ParticipationUpdatesMeta),\n },\n ],\n}\n\n/**\n * Block contains the BlockHeader and the list of transactions (Payset).\n */\nexport type Block = {\n /** The block information (Header) */\n header: BlockHeader\n\n /** [txns] Block transactions (Payset). */\n payset?: SignedTxnInBlock[]\n}\n\nconst BlockMeta: ObjectModelMetadata<Block> = {\n name: 'Block',\n kind: 'object',\n fields: [\n { name: 'header', flattened: true, optional: false, codec: new ObjectModelCodec(BlockHeaderMeta) },\n {\n name: 'payset',\n wireKey: 'txns',\n optional: true,\n codec: new ArrayCodec(new ObjectModelCodec(SignedTxnInBlockMeta)),\n },\n ],\n}\n\n/**\n * Custom codec for Block that populates genesis information on transactions after decoding.\n *\n * When blocks are returned from algod, transactions may not include the genesisId\n * and genesisHash fields even though they are required for correct transaction ID calculation.\n * The block contains `hasGenesisId` and `hasGenesisHash` flags that indicate whether these\n * fields should be populated from the block header.\n *\n * This codec automatically populates these fields after decoding to ensure transaction IDs\n * can be calculated correctly.\n */\nclass BlockCodec extends ObjectModelCodec<Block> {\n constructor() {\n super(BlockMeta)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Block {\n const block = super.fromEncoded(value, format)\n\n // Populate genesis id and hash on transactions if required to ensure tx id's are correct\n const genesisId = block.header.genesisId\n const genesisHash = block.header.genesisHash\n\n for (const txnInBlock of block.payset ?? []) {\n const txn = txnInBlock.signedTxn.signedTxn.txn\n\n if (txnInBlock.hasGenesisId && txn.genesisId === undefined) {\n txn.genesisId = genesisId\n }\n\n // The following assumes that Consensus.RequireGenesisHash is true\n // so assigns genesis hash unless explicitly set to false\n if (txnInBlock.hasGenesisHash !== false && txn.genesisHash === undefined) {\n txn.genesisHash = genesisHash\n }\n }\n\n return block\n }\n}\n\nexport const blockCodec = new BlockCodec()\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"block.mjs","names":["BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta>","BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta>","BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData>","ApplyDataMeta: ObjectModelMetadata<ApplyData>","SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD>","SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock>","ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates>","TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments>","RewardStateMeta: ObjectModelMetadata<RewardState>","UpgradeStateMeta: ObjectModelMetadata<UpgradeState>","UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote>","BlockMeta: ObjectModelMetadata<Block>"],"sources":["../../../../../packages/algod_client/src/models/block.ts"],"sourcesContent":["import {\n Address,\n ArrayCodec,\n MapCodec,\n ObjectModelCodec,\n type EncodingFormat,\n type ObjectModelMetadata,\n type WireObject,\n addressArrayCodec,\n addressCodec,\n bigIntCodec,\n booleanCodec,\n bytesArrayCodec,\n bytesCodec,\n fixedBytes32Codec,\n fixedBytes64Codec,\n numberCodec,\n stringCodec,\n} from '@algorandfoundation/algokit-common'\nimport { type SignedTransaction, SignedTransactionMeta } from '@algorandfoundation/algokit-transact'\n\n/** BlockEvalDelta represents a TEAL value delta (block/msgpack wire keys). */\nexport type BlockEvalDelta = {\n /** [at] delta action. */\n action: number\n /** [bs] bytes value. */\n bytes?: Uint8Array\n /** [ui] uint value. */\n uint?: bigint\n}\n\nconst BlockEvalDeltaMeta: ObjectModelMetadata<BlockEvalDelta> = {\n name: 'BlockEvalDelta',\n kind: 'object',\n fields: [\n { name: 'action', wireKey: 'at', optional: false, codec: numberCodec },\n { name: 'bytes', wireKey: 'bs', optional: true, codec: bytesCodec },\n { name: 'uint', wireKey: 'ui', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * State changes from application execution, including inner transactions and logs.\n */\nexport type BlockAppEvalDelta = {\n /** [gd] Global state delta for the application. */\n globalDelta?: Map<Uint8Array, BlockEvalDelta>\n /** [ld] Local state deltas keyed by address index. */\n localDeltas?: Map<number, Map<Uint8Array, BlockEvalDelta>>\n /** [itx] Inner transactions produced by this application execution. */\n innerTxns?: SignedTxnWithAD[]\n /** [sa] Shared accounts referenced by local deltas. */\n sharedAccounts?: Address[]\n /** [lg] Application log outputs. */\n logs?: Uint8Array[]\n}\n\nconst BlockAppEvalDeltaMeta: ObjectModelMetadata<BlockAppEvalDelta> = {\n name: 'BlockAppEvalDelta',\n kind: 'object',\n fields: [\n {\n name: 'globalDelta',\n wireKey: 'gd',\n optional: true,\n codec: new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta)),\n },\n {\n name: 'localDeltas',\n wireKey: 'ld',\n optional: true,\n codec: new MapCodec(numberCodec, new MapCodec(bytesCodec, new ObjectModelCodec(BlockEvalDeltaMeta))),\n },\n {\n name: 'innerTxns',\n wireKey: 'itx',\n optional: true,\n codec: new ArrayCodec(new ObjectModelCodec(() => SignedTxnWithADMeta)),\n },\n {\n name: 'sharedAccounts',\n wireKey: 'sa',\n optional: true,\n codec: addressArrayCodec,\n },\n { name: 'logs', wireKey: 'lg', optional: true, codec: bytesArrayCodec },\n ],\n}\n\n/** Tracking metadata for a specific StateProofType. */\nexport type BlockStateProofTrackingData = {\n /** [v] Vector commitment root of state proof voters. */\n stateProofVotersCommitment?: Uint8Array\n /** [t] Online total weight during state proof round. */\n stateProofOnlineTotalWeight?: bigint\n /** [n] Next round for which state proofs are accepted. */\n stateProofNextRound?: bigint\n}\n\nconst BlockStateProofTrackingDataMeta: ObjectModelMetadata<BlockStateProofTrackingData> = {\n name: 'BlockStateProofTrackingData',\n kind: 'object',\n fields: [\n { name: 'stateProofVotersCommitment', wireKey: 'v', optional: true, codec: bytesCodec },\n { name: 'stateProofOnlineTotalWeight', wireKey: 't', optional: true, codec: bigIntCodec },\n { name: 'stateProofNextRound', wireKey: 'n', optional: true, codec: bigIntCodec },\n ],\n}\n\nexport type ApplyData = {\n closingAmount?: bigint\n assetClosingAmount?: bigint\n senderRewards?: bigint\n receiverRewards?: bigint\n closeRewards?: bigint\n evalDelta?: BlockAppEvalDelta\n configAsset?: bigint\n applicationId?: bigint\n}\n\nconst ApplyDataMeta: ObjectModelMetadata<ApplyData> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n { name: 'closingAmount', wireKey: 'ca', optional: true, codec: bigIntCodec },\n { name: 'assetClosingAmount', wireKey: 'aca', optional: true, codec: bigIntCodec },\n { name: 'senderRewards', wireKey: 'rs', optional: true, codec: bigIntCodec },\n { name: 'receiverRewards', wireKey: 'rr', optional: true, codec: bigIntCodec },\n { name: 'closeRewards', wireKey: 'rc', optional: true, codec: bigIntCodec },\n { name: 'evalDelta', wireKey: 'dt', optional: true, codec: new ObjectModelCodec(BlockAppEvalDeltaMeta) },\n { name: 'configAsset', wireKey: 'caid', optional: true, codec: bigIntCodec },\n { name: 'applicationId', wireKey: 'apid', optional: true, codec: bigIntCodec },\n ],\n}\n\n/**\n * SignedTxnWithAD is a SignedTransaction with additional ApplyData.\n */\nexport type SignedTxnWithAD = {\n /** The signed transaction. */\n signedTxn: SignedTransaction\n /** Apply data containing transaction execution information. */\n applyData?: ApplyData\n}\n\nconst SignedTxnWithADMeta: ObjectModelMetadata<SignedTxnWithAD> = {\n name: 'SignedTxnWithAD',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTransactionMeta),\n },\n {\n name: 'applyData',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(ApplyDataMeta),\n },\n ],\n}\n\n/**\n * SignedTxnInBlock is a SignedTransaction with additional ApplyData and block-specific metadata.\n */\nexport type SignedTxnInBlock = {\n signedTxn: SignedTxnWithAD\n hasGenesisId?: boolean\n hasGenesisHash?: boolean\n}\n\nconst SignedTxnInBlockMeta: ObjectModelMetadata<SignedTxnInBlock> = {\n name: 'SignedTxnInBlock',\n kind: 'object',\n fields: [\n {\n name: 'signedTxn',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(SignedTxnWithADMeta),\n },\n { name: 'hasGenesisId', wireKey: 'hgi', optional: true, codec: booleanCodec },\n { name: 'hasGenesisHash', wireKey: 'hgh', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type ParticipationUpdates = {\n /** [partupdrmv] Expired participation accounts. */\n expiredParticipationAccounts: string[]\n /** [partupdabs] Absent participation accounts. */\n absentParticipationAccounts: string[]\n}\n\nconst ParticipationUpdatesMeta: ObjectModelMetadata<ParticipationUpdates> = {\n name: 'ParticipationUpdates',\n kind: 'object',\n fields: [\n {\n name: 'expiredParticipationAccounts',\n wireKey: 'partupdrmv',\n optional: false,\n codec: addressArrayCodec,\n },\n {\n name: 'absentParticipationAccounts',\n wireKey: 'partupdabs',\n optional: false,\n codec: addressArrayCodec,\n },\n ],\n}\n\n/** Transaction commitment hashes for the block. */\nexport type TxnCommitments = {\n /** [txn] Root of transaction merkle tree using SHA512_256. */\n nativeSha512_256Commitment: Uint8Array\n /** [txn256] Root of transaction vector commitment using SHA256. */\n sha256Commitment?: Uint8Array\n /** [txn512] Root of transaction vector commitment using SHA512. */\n sha512Commitment?: Uint8Array\n}\n\nconst TxnCommitmentsMeta: ObjectModelMetadata<TxnCommitments> = {\n name: 'TxnCommitments',\n kind: 'object',\n fields: [\n { name: 'nativeSha512_256Commitment', wireKey: 'txn', optional: false, codec: fixedBytes32Codec },\n { name: 'sha256Commitment', wireKey: 'txn256', optional: true, codec: fixedBytes32Codec },\n { name: 'sha512Commitment', wireKey: 'txn512', optional: true, codec: fixedBytes64Codec },\n ],\n}\n\n/** Reward distribution state for the block. */\nexport type RewardState = {\n /** [fees] FeeSink address. */\n feeSink: Address\n /** [rwd] RewardsPool address. */\n rewardsPool: Address\n /** [earn] Rewards level. */\n rewardsLevel: bigint\n /** [rate] Rewards rate. */\n rewardsRate: bigint\n /** [frac] Rewards residue. */\n rewardsResidue: bigint\n /** [rwcalr] Rewards recalculation round. */\n rewardsRecalculationRound: bigint\n}\n\nconst RewardStateMeta: ObjectModelMetadata<RewardState> = {\n name: 'RewardState',\n kind: 'object',\n fields: [\n { name: 'feeSink', wireKey: 'fees', optional: false, codec: addressCodec },\n { name: 'rewardsPool', wireKey: 'rwd', optional: false, codec: addressCodec },\n { name: 'rewardsLevel', wireKey: 'earn', optional: false, codec: bigIntCodec },\n { name: 'rewardsRate', wireKey: 'rate', optional: false, codec: bigIntCodec },\n { name: 'rewardsResidue', wireKey: 'frac', optional: false, codec: bigIntCodec },\n { name: 'rewardsRecalculationRound', wireKey: 'rwcalr', optional: false, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade state for the block. */\nexport type UpgradeState = {\n /** [proto] Current consensus protocol. */\n currentProtocol: string\n /** [nextproto] Next proposed protocol. */\n nextProtocol?: string\n /** [nextyes] Next protocol approvals. */\n nextProtocolApprovals?: bigint\n /** [nextbefore] Next protocol vote deadline. */\n nextProtocolVoteBefore?: bigint\n /** [nextswitch] Next protocol switch round. */\n nextProtocolSwitchOn?: bigint\n}\n\nconst UpgradeStateMeta: ObjectModelMetadata<UpgradeState> = {\n name: 'UpgradeState',\n kind: 'object',\n fields: [\n { name: 'currentProtocol', wireKey: 'proto', optional: false, codec: stringCodec },\n { name: 'nextProtocol', wireKey: 'nextproto', optional: true, codec: stringCodec },\n { name: 'nextProtocolApprovals', wireKey: 'nextyes', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolVoteBefore', wireKey: 'nextbefore', optional: true, codec: bigIntCodec },\n { name: 'nextProtocolSwitchOn', wireKey: 'nextswitch', optional: true, codec: bigIntCodec },\n ],\n}\n\n/** Protocol upgrade vote parameters for the block. */\nexport type UpgradeVote = {\n /** [upgradeprop] Upgrade proposal. */\n upgradePropose?: string\n /** [upgradedelay] Upgrade delay in rounds. */\n upgradeDelay?: bigint\n /** [upgradeyes] Upgrade approval flag. */\n upgradeApprove?: boolean\n}\n\nconst UpgradeVoteMeta: ObjectModelMetadata<UpgradeVote> = {\n name: 'UpgradeVote',\n kind: 'object',\n fields: [\n { name: 'upgradePropose', wireKey: 'upgradeprop', optional: true, codec: stringCodec },\n { name: 'upgradeDelay', wireKey: 'upgradedelay', optional: true, codec: bigIntCodec },\n { name: 'upgradeApprove', wireKey: 'upgradeyes', optional: true, codec: booleanCodec },\n ],\n}\n\nexport type BlockHeader = {\n /** [rnd] Round number. */\n round: bigint\n /** [prev] Previous block hash. */\n previousBlockHash: Uint8Array\n /** [prev512] Previous block hash using SHA-512. */\n previousBlockHash512?: Uint8Array\n /** [seed] Sortition seed. */\n seed: Uint8Array\n /** Authenticates the set of transactions appearing in the block. */\n txnCommitments: TxnCommitments\n /** [ts] Block timestamp in seconds since epoch. */\n timestamp: bigint\n /** [gen] Genesis ID. */\n genesisId: string\n /** [gh] Genesis hash. */\n genesisHash: Uint8Array\n /** [prp] Proposer address. */\n proposer?: Address\n /** [fc] Fees collected in this block. */\n feesCollected?: bigint\n /** [bi] Bonus incentive for block proposal. */\n bonus?: bigint\n /** [pp] Proposer payout. */\n proposerPayout?: bigint\n /** Reward distribution state. */\n rewardState: RewardState\n /** Protocol upgrade state. */\n upgradeState: UpgradeState\n /** Protocol upgrade vote parameters. */\n upgradeVote: UpgradeVote\n /** [tc] Transaction counter. */\n txnCounter?: bigint\n /** [spt] State proof tracking data keyed by state proof type. */\n stateProofTracking?: Map<number, BlockStateProofTrackingData>\n /** Represents participation account data that needs to be checked/acted on by the network */\n participationUpdates: ParticipationUpdates\n}\n\nconst BlockHeaderMeta: ObjectModelMetadata<BlockHeader> = {\n name: 'BlockHeader',\n kind: 'object',\n fields: [\n { name: 'round', wireKey: 'rnd', optional: false, codec: bigIntCodec },\n { name: 'previousBlockHash', wireKey: 'prev', optional: false, codec: fixedBytes32Codec },\n { name: 'previousBlockHash512', wireKey: 'prev512', optional: true, codec: fixedBytes64Codec },\n { name: 'seed', wireKey: 'seed', optional: false, codec: bytesCodec },\n {\n name: 'txnCommitments',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(TxnCommitmentsMeta),\n },\n { name: 'timestamp', wireKey: 'ts', optional: false, codec: bigIntCodec },\n { name: 'genesisId', wireKey: 'gen', optional: false, codec: stringCodec },\n { name: 'genesisHash', wireKey: 'gh', optional: false, codec: fixedBytes32Codec },\n { name: 'proposer', wireKey: 'prp', optional: true, codec: addressCodec },\n { name: 'feesCollected', wireKey: 'fc', optional: true, codec: bigIntCodec },\n { name: 'bonus', wireKey: 'bi', optional: true, codec: bigIntCodec },\n { name: 'proposerPayout', wireKey: 'pp', optional: true, codec: bigIntCodec },\n {\n name: 'rewardState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(RewardStateMeta),\n },\n {\n name: 'upgradeState',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(UpgradeStateMeta),\n },\n {\n name: 'upgradeVote',\n flattened: true,\n optional: true,\n codec: new ObjectModelCodec(UpgradeVoteMeta),\n },\n { name: 'txnCounter', wireKey: 'tc', optional: true, codec: bigIntCodec },\n {\n name: 'stateProofTracking',\n wireKey: 'spt',\n optional: true,\n codec: new MapCodec(numberCodec, new ObjectModelCodec(BlockStateProofTrackingDataMeta)),\n },\n {\n name: 'participationUpdates',\n flattened: true,\n optional: false,\n codec: new ObjectModelCodec(ParticipationUpdatesMeta),\n },\n ],\n}\n\n/**\n * Block contains the BlockHeader and the list of transactions (Payset).\n */\nexport type Block = {\n /** The block information (Header) */\n header: BlockHeader\n\n /** [txns] Block transactions (Payset). */\n payset: SignedTxnInBlock[]\n}\n\nconst BlockMeta: ObjectModelMetadata<Block> = {\n name: 'Block',\n kind: 'object',\n fields: [\n { name: 'header', flattened: true, optional: false, codec: new ObjectModelCodec(BlockHeaderMeta) },\n {\n name: 'payset',\n wireKey: 'txns',\n optional: false,\n codec: new ArrayCodec(new ObjectModelCodec(SignedTxnInBlockMeta)),\n },\n ],\n}\n\n/**\n * Custom codec for Block that populates genesis information on transactions after decoding.\n *\n * When blocks are returned from algod, transactions may not include the genesisId\n * and genesisHash fields even though they are required for correct transaction ID calculation.\n * The block contains `hasGenesisId` and `hasGenesisHash` flags that indicate whether these\n * fields should be populated from the block header.\n *\n * This codec automatically populates these fields after decoding to ensure transaction IDs\n * can be calculated correctly.\n */\nclass BlockCodec extends ObjectModelCodec<Block> {\n constructor() {\n super(BlockMeta)\n }\n\n protected fromEncoded(value: WireObject, format: EncodingFormat): Block {\n const block = super.fromEncoded(value, format)\n\n // Populate genesis id and hash on transactions if required to ensure tx id's are correct\n const genesisId = block.header.genesisId\n const genesisHash = block.header.genesisHash\n\n for (const txnInBlock of block.payset ?? []) {\n const txn = txnInBlock.signedTxn.signedTxn.txn\n\n if (txnInBlock.hasGenesisId && txn.genesisId === undefined) {\n txn.genesisId = genesisId\n }\n\n // The following assumes that Consensus.RequireGenesisHash is true\n // so assigns genesis hash unless explicitly set to false\n if (txnInBlock.hasGenesisHash !== false && txn.genesisHash === undefined) {\n txn.genesisHash = genesisHash\n }\n }\n\n return block\n }\n}\n\nexport const blockCodec = new BlockCodec()\n"],"mappings":";;;;;;;;;;;;;AA+BA,MAAMA,qBAA0D;CAC9D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAU,SAAS;GAAM,UAAU;GAAO,OAAO;GAAa;EACtE;GAAE,MAAM;GAAS,SAAS;GAAM,UAAU;GAAM,OAAO;GAAY;EACnE;GAAE,MAAM;GAAQ,SAAS;GAAM,UAAU;GAAM,OAAO;GAAa;EACpE;CACF;AAkBD,MAAMC,wBAAgE;CACpE,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,SAAS,YAAY,IAAI,iBAAiB,mBAAmB,CAAC;GAC1E;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,SAAS,aAAa,IAAI,SAAS,YAAY,IAAI,iBAAiB,mBAAmB,CAAC,CAAC;GACrG;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO,IAAI,WAAW,IAAI,uBAAuB,oBAAoB,CAAC;GACvE;EACD;GACE,MAAM;GACN,SAAS;GACT,UAAU;GACV,OAAO;GACR;EACD;GAAE,MAAM;GAAQ,SAAS;GAAM,UAAU;GAAM,OAAO;GAAiB;EACxE;CACF;AAYD,MAAMC,kCAAoF;CACxF,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAA8B,SAAS;GAAK,UAAU;GAAM,OAAO;GAAY;EACvF;GAAE,MAAM;GAA+B,SAAS;GAAK,UAAU;GAAM,OAAO;GAAa;EACzF;GAAE,MAAM;GAAuB,SAAS;GAAK,UAAU;GAAM,OAAO;GAAa;EAClF;CACF;AAaD,MAAMC,gBAAgD;CACpD,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAiB,SAAS;GAAM,UAAU;GAAM,OAAO;GAAa;EAC5E;GAAE,MAAM;GAAsB,SAAS;GAAO,UAAU;GAAM,OAAO;GAAa;EAClF;GAAE,MAAM;GAAiB,SAAS;GAAM,UAAU;GAAM,OAAO;GAAa;EAC5E;GAAE,MAAM;GAAmB,SAAS;GAAM,UAAU;GAAM,OAAO;GAAa;EAC9E;GAAE,MAAM;GAAgB,SAAS;GAAM,UAAU;GAAM,OAAO;GAAa;EAC3E;GAAE,MAAM;GAAa,SAAS;GAAM,UAAU;GAAM,OAAO,IAAI,iBAAiB,sBAAsB;GAAE;EACxG;GAAE,MAAM;GAAe,SAAS;GAAQ,UAAU;GAAM,OAAO;GAAa;EAC5E;GAAE,MAAM;GAAiB,SAAS;GAAQ,UAAU;GAAM,OAAO;GAAa;EAC/E;CACF;AAYD,MAAMC,sBAA4D;CAChE,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,WAAW;EACX,UAAU;EACV,OAAO,IAAI,iBAAiB,sBAAsB;EACnD,EACD;EACE,MAAM;EACN,WAAW;EACX,UAAU;EACV,OAAO,IAAI,iBAAiB,cAAc;EAC3C,CACF;CACF;AAWD,MAAMC,uBAA8D;CAClE,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GACE,MAAM;GACN,WAAW;GACX,UAAU;GACV,OAAO,IAAI,iBAAiB,oBAAoB;GACjD;EACD;GAAE,MAAM;GAAgB,SAAS;GAAO,UAAU;GAAM,OAAO;GAAc;EAC7E;GAAE,MAAM;GAAkB,SAAS;GAAO,UAAU;GAAM,OAAO;GAAc;EAChF;CACF;AASD,MAAMC,2BAAsE;CAC1E,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,EACD;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO;EACR,CACF;CACF;AAYD,MAAMC,qBAA0D;CAC9D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAA8B,SAAS;GAAO,UAAU;GAAO,OAAO;GAAmB;EACjG;GAAE,MAAM;GAAoB,SAAS;GAAU,UAAU;GAAM,OAAO;GAAmB;EACzF;GAAE,MAAM;GAAoB,SAAS;GAAU,UAAU;GAAM,OAAO;GAAmB;EAC1F;CACF;AAkBD,MAAMC,kBAAoD;CACxD,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAW,SAAS;GAAQ,UAAU;GAAO,OAAO;GAAc;EAC1E;GAAE,MAAM;GAAe,SAAS;GAAO,UAAU;GAAO,OAAO;GAAc;EAC7E;GAAE,MAAM;GAAgB,SAAS;GAAQ,UAAU;GAAO,OAAO;GAAa;EAC9E;GAAE,MAAM;GAAe,SAAS;GAAQ,UAAU;GAAO,OAAO;GAAa;EAC7E;GAAE,MAAM;GAAkB,SAAS;GAAQ,UAAU;GAAO,OAAO;GAAa;EAChF;GAAE,MAAM;GAA6B,SAAS;GAAU,UAAU;GAAO,OAAO;GAAa;EAC9F;CACF;AAgBD,MAAMC,mBAAsD;CAC1D,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAmB,SAAS;GAAS,UAAU;GAAO,OAAO;GAAa;EAClF;GAAE,MAAM;GAAgB,SAAS;GAAa,UAAU;GAAM,OAAO;GAAa;EAClF;GAAE,MAAM;GAAyB,SAAS;GAAW,UAAU;GAAM,OAAO;GAAa;EACzF;GAAE,MAAM;GAA0B,SAAS;GAAc,UAAU;GAAM,OAAO;GAAa;EAC7F;GAAE,MAAM;GAAwB,SAAS;GAAc,UAAU;GAAM,OAAO;GAAa;EAC5F;CACF;AAYD,MAAMC,kBAAoD;CACxD,MAAM;CACN,MAAM;CACN,QAAQ;EACN;GAAE,MAAM;GAAkB,SAAS;GAAe,UAAU;GAAM,OAAO;GAAa;EACtF;GAAE,MAAM;GAAgB,SAAS;GAAgB,UAAU;GAAM,OAAO;GAAa;EACrF;GAAE,MAAM;GAAkB,SAAS;GAAc,UAAU;GAAM,OAAO;GAAc;EACvF;CACF;AA2GD,MAAMC,YAAwC;CAC5C,MAAM;CACN,MAAM;CACN,QAAQ,CACN;EAAE,MAAM;EAAU,WAAW;EAAM,UAAU;EAAO,OAAO,IAAI,iBAtET;GACxD,MAAM;GACN,MAAM;GACN,QAAQ;IACN;KAAE,MAAM;KAAS,SAAS;KAAO,UAAU;KAAO,OAAO;KAAa;IACtE;KAAE,MAAM;KAAqB,SAAS;KAAQ,UAAU;KAAO,OAAO;KAAmB;IACzF;KAAE,MAAM;KAAwB,SAAS;KAAW,UAAU;KAAM,OAAO;KAAmB;IAC9F;KAAE,MAAM;KAAQ,SAAS;KAAQ,UAAU;KAAO,OAAO;KAAY;IACrE;KACE,MAAM;KACN,WAAW;KACX,UAAU;KACV,OAAO,IAAI,iBAAiB,mBAAmB;KAChD;IACD;KAAE,MAAM;KAAa,SAAS;KAAM,UAAU;KAAO,OAAO;KAAa;IACzE;KAAE,MAAM;KAAa,SAAS;KAAO,UAAU;KAAO,OAAO;KAAa;IAC1E;KAAE,MAAM;KAAe,SAAS;KAAM,UAAU;KAAO,OAAO;KAAmB;IACjF;KAAE,MAAM;KAAY,SAAS;KAAO,UAAU;KAAM,OAAO;KAAc;IACzE;KAAE,MAAM;KAAiB,SAAS;KAAM,UAAU;KAAM,OAAO;KAAa;IAC5E;KAAE,MAAM;KAAS,SAAS;KAAM,UAAU;KAAM,OAAO;KAAa;IACpE;KAAE,MAAM;KAAkB,SAAS;KAAM,UAAU;KAAM,OAAO;KAAa;IAC7E;KACE,MAAM;KACN,WAAW;KACX,UAAU;KACV,OAAO,IAAI,iBAAiB,gBAAgB;KAC7C;IACD;KACE,MAAM;KACN,WAAW;KACX,UAAU;KACV,OAAO,IAAI,iBAAiB,iBAAiB;KAC9C;IACD;KACE,MAAM;KACN,WAAW;KACX,UAAU;KACV,OAAO,IAAI,iBAAiB,gBAAgB;KAC7C;IACD;KAAE,MAAM;KAAc,SAAS;KAAM,UAAU;KAAM,OAAO;KAAa;IACzE;KACE,MAAM;KACN,SAAS;KACT,UAAU;KACV,OAAO,IAAI,SAAS,aAAa,IAAI,iBAAiB,gCAAgC,CAAC;KACxF;IACD;KACE,MAAM;KACN,WAAW;KACX,UAAU;KACV,OAAO,IAAI,iBAAiB,yBAAyB;KACtD;IACF;GACF,CAiBmG;EAAE,EAClG;EACE,MAAM;EACN,SAAS;EACT,UAAU;EACV,OAAO,IAAI,WAAW,IAAI,iBAAiB,qBAAqB,CAAC;EAClE,CACF;CACF;;;;;;;;;;;;AAaD,IAAM,aAAN,cAAyB,iBAAwB;CAC/C,cAAc;AACZ,QAAM,UAAU;;CAGlB,AAAU,YAAY,OAAmB,QAA+B;EACtE,MAAM,QAAQ,MAAM,YAAY,OAAO,OAAO;EAG9C,MAAM,YAAY,MAAM,OAAO;EAC/B,MAAM,cAAc,MAAM,OAAO;AAEjC,OAAK,MAAM,cAAc,MAAM,UAAU,EAAE,EAAE;GAC3C,MAAM,MAAM,WAAW,UAAU,UAAU;AAE3C,OAAI,WAAW,gBAAgB,IAAI,cAAc,OAC/C,KAAI,YAAY;AAKlB,OAAI,WAAW,mBAAmB,SAAS,IAAI,gBAAgB,OAC7D,KAAI,cAAc;;AAItB,SAAO;;;AAIX,MAAa,aAAa,IAAI,YAAY"}
|
|
@@ -47,7 +47,7 @@ type Block = {
|
|
|
47
47
|
* \[prev512\] Previous block hash, using SHA-512.
|
|
48
48
|
*/
|
|
49
49
|
previousBlockHash512?: Uint8Array;
|
|
50
|
-
rewards
|
|
50
|
+
rewards: BlockRewards;
|
|
51
51
|
/**
|
|
52
52
|
* \[rnd\] Current round on which this block was appended to the chain.
|
|
53
53
|
*/
|
|
@@ -67,7 +67,7 @@ type Block = {
|
|
|
67
67
|
/**
|
|
68
68
|
* \[txns\] list of transactions corresponding to a given round.
|
|
69
69
|
*/
|
|
70
|
-
transactions
|
|
70
|
+
transactions: Transaction[];
|
|
71
71
|
/**
|
|
72
72
|
* \[txn\] TransactionsRoot authenticates the set of transactions appearing in the block. More specifically, it's the root of a merkle tree whose leaves are the block's Txids, in lexicographic order. For the empty block, it's 0. Note that the TxnRoot does not authenticate the signatures on the transactions, only the transactions themselves. Two blocks with the same transactions but in a different order and with different signatures will have the same TxnRoot.
|
|
73
73
|
*/
|
|
@@ -75,7 +75,7 @@ type Block = {
|
|
|
75
75
|
/**
|
|
76
76
|
* \[txn256\] TransactionsRootSHA256 is an auxiliary TransactionRoot, built using a vector commitment instead of a merkle tree, and SHA256 hash function instead of the default SHA512_256. This commitment can be used on environments where only the SHA256 function exists.
|
|
77
77
|
*/
|
|
78
|
-
transactionsRootSha256
|
|
78
|
+
transactionsRootSha256?: Uint8Array;
|
|
79
79
|
/**
|
|
80
80
|
* \[txn512\] TransactionsRootSHA512 is an auxiliary TransactionRoot, built using a vector commitment instead of a merkle tree, and SHA512 hash function instead of the default SHA512_256.
|
|
81
81
|
*/
|
|
@@ -86,9 +86,9 @@ type Block = {
|
|
|
86
86
|
* Specifically, TxnCounter is the number of the next transaction that will be committed after this block. It is 0 when no transactions have ever been committed (since TxnCounter started being supported).
|
|
87
87
|
*/
|
|
88
88
|
txnCounter?: number;
|
|
89
|
-
upgradeState
|
|
89
|
+
upgradeState: BlockUpgradeState;
|
|
90
90
|
upgradeVote?: BlockUpgradeVote;
|
|
91
|
-
participationUpdates
|
|
91
|
+
participationUpdates: ParticipationUpdates;
|
|
92
92
|
};
|
|
93
93
|
//#endregion
|
|
94
94
|
export { Block };
|