Skip to content

Commit ee61e80

Browse files
authored
Merge pull request #17 from lightclient/add-event
Add logging to system contracts
2 parents dea4517 + d338503 commit ee61e80

File tree

5 files changed

+56
-2
lines changed

5 files changed

+56
-2
lines changed

src/consolidations/main.eas

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,23 @@ check_input:
141141
swap1 ;; [slot, target[16:48], ..]
142142
sstore ;; [..]
143143

144+
145+
;; Assemble log data.
146+
caller ;; [caller, ..]
147+
push1 96 ;; [96, caller, ..]
148+
shl ;; [caller, ..]
149+
push0 ;; [0, caller, ..]
150+
mstore ;; [..]
151+
push1 INPUT_SIZE ;; [size, ..]
152+
push0 ;; [ost, size, ..]
153+
push1 20 ;; [dest, ost, size, ..]
154+
calldatacopy ;; [..]
155+
156+
;; Log record.
157+
push1 RECORD_SIZE ;; [size, ..]
158+
push0 ;; [idx, size, ..]
159+
log0 ;; [..]
160+
144161
;; Increment queue tail over last and write to storage.
145162
push1 1 ;; [1, tail_idx]
146163
add ;; [tail_idx+1]

src/withdrawals/main.eas

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,22 @@ check_input:
142142
swap1 ;; [slot, pk2_am, ..]
143143
sstore ;; [..]
144144

145+
;; Assemble log data.
146+
caller ;; [caller, ..]
147+
push1 96 ;; [96, caller, ..]
148+
shl ;; [caller, ..]
149+
push0 ;; [0, caller, ..]
150+
mstore ;; [..]
151+
push1 INPUT_SIZE ;; [size, ..]
152+
push0 ;; [ost, size, ..]
153+
push1 20 ;; [dest, ost, size, ..]
154+
calldatacopy ;; [..]
155+
156+
;; Log record.
157+
push1 RECORD_SIZE ;; [size, ..]
158+
push0 ;; [idx, size, ..]
159+
log0 ;; [..]
160+
145161
;; Increment queue tail over last and write to storage.
146162
push1 1 ;; [1, tail_idx]
147163
add ;; [tail_idx+1]

test/Consolidation.t.sol.in

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,19 @@ contract ConsolidationTest is Test {
3232
// request count is accepted and read successfully.
3333
function testConsolidation() public {
3434
bytes memory data = hex"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222";
35+
36+
vm.expectEmitAnonymous(false, false, false, false, true);
37+
assembly {
38+
let ptr := mload(0x40)
39+
mstore(ptr, shl(96, address()))
40+
mstore(add(ptr, 20), mload(add(data, 32)))
41+
mstore(add(ptr, 52), mload(add(data, 64)))
42+
mstore(add(ptr, 84), mload(add(data, 96)))
43+
log0(ptr, 116)
44+
}
45+
3546
(bool ret,) = addr.call{value: 2}(data);
36-
assertEq(ret, true);
47+
assertEq(ret, true, "call failed");
3748
assertStorage(count_slot, 1, "unexpected request count");
3849
assertExcess(0);
3950

test/Withdrawal.t.sol.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ contract WithdrawalsTest is Test {
3434
// count is accepted and read successfully.
3535
function testWithdrawal() public {
3636
bytes memory data = hex"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112222222222222222";
37+
38+
vm.expectEmitAnonymous(false, false, false, false, true);
39+
assembly {
40+
let ptr := mload(0x40)
41+
mstore(ptr, shl(96, address()))
42+
mstore(add(ptr, 20), mload(add(data, 32)))
43+
mstore(add(ptr, 52), mload(add(data, 64)))
44+
log0(ptr, 76)
45+
}
46+
3747
(bool ret,) = addr.call{value: 2}(data);
3848
assertEq(ret, true);
3949
assertStorage(count_slot, 1, "unexpected request count");

0 commit comments

Comments
 (0)