@@ -276,19 +276,21 @@ The `"rlp"` key loads the block information.
276276 , "nonce" : TN , "r" : TR , "s" : TS
277277 , "to" : TT , "v" : TW , "value" : TV
278278 , "type" : #dasmTxPrefix(Legacy) , "maxPriorityFeePerGas" : TP
279- , "maxFeePerGas": TP , .JSONs
279+ , "maxFeePerGas": TP , "maxFeePerBlobGas" : 0
280+ , "blobVersionedHashes" : [ .JSONs ] , .JSONs
280281 }
281282 ~> load "transaction" : [ REST ]
282283 ...
283284 </k>
284285
285286 rule <k> load "transaction" : [ [TYPE , [TC, TN, TP, TG, TT, TV, TI, TA, TY , TR, TS ]] , REST ]
286287 => mkTX !ID:Int
287- ~> loadTransaction !ID { "data" : TI , "gasLimit" : TG , "gasPrice" : TP
288- , "nonce" : TN , "r" : TR , "s" : TS
289- , "to" : TT , "v" : TY , "value" : TV
290- , "accessList" : TA , "type" : TYPE , "chainID" : TC
291- , "maxPriorityFeePerGas" : TP , "maxFeePerGas": TP
288+ ~> loadTransaction !ID { "data" : TI , "gasLimit" : TG , "gasPrice" : TP
289+ , "nonce" : TN , "r" : TR , "s" : TS
290+ , "to" : TT , "v" : TY , "value" : TV
291+ , "accessList" : TA , "type" : TYPE , "chainID" : TC
292+ , "maxPriorityFeePerGas" : TP , "maxFeePerGas" : TP
293+ , "maxFeePerBlobGas" : 0 , "blobVersionedHashes" : [ .JSONs ]
292294 , .JSONs
293295 }
294296 ~> load "transaction" : [ REST ]
@@ -303,13 +305,28 @@ The `"rlp"` key loads the block information.
303305 , "nonce" : TN , "r" : TR , "s" : TS
304306 , "to" : TT , "v" : TY , "value" : TV
305307 , "accessList" : TA , "type" : TYPE , "chainID" : TC
306- , "maxFeePerGas" : TF , .JSONs
308+ , "maxFeePerGas" : TF , "maxFeePerBlobGas" : 0
309+ , "blobVersionedHashes" : [ .JSONs ] , .JSONs
307310 }
308311 ~> load "transaction" : [ REST ]
309312 ...
310313 </k>
311314 requires #asWord(TYPE) ==Int #dasmTxPrefix(DynamicFee)
312315
316+ rule <k> load "transaction" : [ [TYPE , [TC, TN, TP, TF, TG, TT, TV, TI, TA, TY, TVH, TB, TR, TS ]] , REST ]
317+ => mkTX !ID:Int
318+ ~> loadTransaction !ID { "data" : TI , "gasLimit" : TG , "maxPriorityFeePerGas" : TP
319+ , "nonce" : TN , "r" : TR , "s" : TS
320+ , "to" : TT , "v" : TY , "value" : TV
321+ , "accessList" : TA , "type" : TYPE , "chainID" : TC
322+ , "maxFeePerGas" : TF , "maxFeePerBlobGas" : TB , "blobVersionedHashes" : TVH
323+ , .JSONs
324+ }
325+ ~> load "transaction" : [ REST ]
326+ ...
327+ </k>
328+ requires #asWord(TYPE) ==Int #dasmTxPrefix(Blob)
329+
313330 syntax EthereumCommand ::= "loadTransaction" Int JSON
314331 // -----------------------------------------------------
315332 rule <k> loadTransaction _ { .JSONs } => .K ... </k>
@@ -356,6 +373,12 @@ The `"rlp"` key loads the block information.
356373
357374 rule <k> loadTransaction TXID { "maxFeePerGas" : TF:Int, REST => REST } ... </k>
358375 <message> <msgID> TXID </msgID> <txMaxFee> _ => TF </txMaxFee> ... </message>
376+
377+ rule <k> loadTransaction TXID { "maxFeePerBlobGas" : TB:Int, REST => REST } ... </k>
378+ <message> <msgID> TXID </msgID> <txMaxBlobFee> _ => TB </txMaxBlobFee> ... </message>
379+
380+ rule <k> loadTransaction TXID { "blobVersionedHashes" : [TVH:JSONs], REST => REST } ... </k>
381+ <message> <msgID> TXID </msgID> <txVersionedHashes> _ => [TVH] </txVersionedHashes> ... </message>
359382```
360383
361384### Getting State
@@ -426,6 +449,25 @@ The `"rlp"` key loads the block information.
426449 <txType> DynamicFee </txType>
427450 ...
428451 </message>
452+
453+ rule [[ #getTxData( TXID ) => BlobTxData(TN, TPF, TM, TG, TT, TV, DATA, CID, TA, TB, TVH) ]]
454+ <message>
455+ <msgID> TXID </msgID>
456+ <txNonce> TN </txNonce>
457+ <txGasPrice> TP </txGasPrice>
458+ <txGasLimit> TG </txGasLimit>
459+ <to> TT </to>
460+ <value> TV </value>
461+ <data> DATA </data>
462+ <txChainID> CID </txChainID>
463+ <txAccess> TA </txAccess>
464+ <txPriorityFee> TPF </txPriorityFee>
465+ <txMaxFee> TM </txMaxFee>
466+ <txMaxBlobFee> TB </txMaxBlobFee>
467+ <txVersionedHashes> TVH </txVersionedHashes>
468+ <txType> Blob </txType>
469+ ...
470+ </message>
429471```
430472
431473- ` #effectiveGasPrice ` will compute the gas price for TXID, as specified by EIP-1559
0 commit comments