@@ -1113,3 +1113,47 @@ def test_tx_replacement(cronos):
1113
1113
{"to" : ADDRS ["community" ], "value" : 15 , "gasPrice" : gas_price },
1114
1114
)
1115
1115
assert "has already been mined" in str (exc )
1116
+
1117
+
1118
+ def test_block_tx_properties (cronos ):
1119
+ """
1120
+ test block tx properties on cronos network
1121
+ - deploy test contract
1122
+ - call contract
1123
+ - check all values are correct in log
1124
+ """
1125
+ w3 = cronos .w3
1126
+ contract = deploy_contract (
1127
+ w3 ,
1128
+ CONTRACTS ["TestBlockTxProperties" ],
1129
+ )
1130
+
1131
+ tx = contract .functions .emitTxDetails ().build_transaction (
1132
+ {"from" : ADDRS ["validator" ]}
1133
+ )
1134
+ receipt = send_transaction (w3 , tx )
1135
+
1136
+ assert receipt .status == 1
1137
+ assert len (receipt .logs ) == 1
1138
+
1139
+ assert contract .address == receipt .logs [0 ]["address" ]
1140
+ event_signature = HexBytes (
1141
+ abi .event_signature_to_log_topic (
1142
+ "TxDetailsEvent(address,address,uint256,bytes,uint256,uint256,bytes4)"
1143
+ )
1144
+ )
1145
+ assert event_signature == receipt .logs [0 ]["topics" ][0 ]
1146
+ validator_hex_address = HexBytes (b"\x00 " * 12 + HexBytes (ADDRS ["validator" ]))
1147
+ assert validator_hex_address == receipt .logs [0 ]["topics" ][1 ]
1148
+ assert validator_hex_address == receipt .logs [0 ]["topics" ][2 ]
1149
+
1150
+ # check event values
1151
+ tx_details_event = contract .events .TxDetailsEvent ().process_receipt (receipt )
1152
+ data = tx_details_event [0 ]["args" ]
1153
+ assert data ["origin" ] == ADDRS ["validator" ]
1154
+ assert data ["sender" ] == ADDRS ["validator" ]
1155
+ assert data ["value" ] == 0
1156
+ assert data ["data" ] == bytes .fromhex ("8e091b5e" )
1157
+ assert data ["price" ] > 0
1158
+ assert data ["gas" ] == 3633
1159
+ assert data ["sig" ] == bytes .fromhex ("8e091b5e" )
0 commit comments