Skip to content

Commit c90ba67

Browse files
committed
add script to test signing and claiming rewards
1 parent d1c1049 commit c90ba67

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

script/RewardsSig.s.sol

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// SPDX-License-Identifier: BSD-3-Clause-Clear
2+
3+
pragma solidity 0.8.23;
4+
5+
import {Script, console} from "forge-std/Script.sol";
6+
7+
import {Rewards} from "../src/Rewards.sol";
8+
9+
contract RewardsSig is Script {
10+
uint256 internal sk;
11+
address internal tgtAddr;
12+
uint256 internal tgtAmount;
13+
address internal rewardsAddr;
14+
15+
function setUp() public {
16+
sk = vm.envUint("N_REWARDS_SIGNER");
17+
tgtAddr = vm.envAddress("N_REWARDS_TGT_ADDR");
18+
tgtAmount = vm.envUint("N_REWARDS_TGT_AMOUNT");
19+
rewardsAddr = vm.envAddress("N_REWARDS_ADDR");
20+
}
21+
22+
function run() public {
23+
Rewards rewards = Rewards(rewardsAddr);
24+
25+
uint256 tgtSequence = rewards.sequences(tgtAddr);
26+
console.log("=== Target sequence ===");
27+
console.logUint(tgtSequence);
28+
29+
Rewards.Reward memory reward = Rewards.Reward({recipient: tgtAddr, amount: tgtAmount, sequence: tgtSequence});
30+
31+
bytes32 digest = rewards.digestReward(reward);
32+
33+
console.log("=== Rewards digest ===");
34+
console.logBytes32(digest);
35+
36+
(uint8 v, bytes32 r, bytes32 s) = vm.sign(sk, digest);
37+
bytes memory sig = abi.encodePacked(r, s, v);
38+
39+
console.log("=== Signature ===");
40+
console.logBytes(sig);
41+
42+
vm.startBroadcast();
43+
rewards.mintReward(reward, sig);
44+
}
45+
}

0 commit comments

Comments
 (0)