@@ -28,17 +28,16 @@ contract SCRHoldingBadge is ScrollBadgeCustomPayload, ScrollBadgeDefaultURI, Own
28
28
uint256 private constant LEVEL_TWO_SCR_AMOUNT = 10 ether ;
29
29
uint256 private constant LEVEL_THREE_SCR_AMOUNT = 100 ether ;
30
30
uint256 private constant LEVEL_FOUR_SCR_AMOUNT = 1000 ether ;
31
- uint256 private constant LEVEL_FIVE_SCR_AMOUNT = 10000 ether ;
32
- uint256 private constant LEVEL_SIX_SCR_AMOUNT = 100000 ether ;
31
+ uint256 private constant LEVEL_FIVE_SCR_AMOUNT = 10_000 ether ;
32
+ uint256 private constant LEVEL_SIX_SCR_AMOUNT = 100_000 ether ;
33
33
34
34
/// @notice The address of SCR token.
35
35
address public immutable scr;
36
36
37
- constructor (
38
- address resolver_ ,
39
- string memory baseTokenURI_ ,
40
- address scr_
41
- ) ScrollBadge (resolver_) ScrollBadgeDefaultURI (baseTokenURI_) {
37
+ constructor (address resolver_ , string memory baseTokenURI_ , address scr_ )
38
+ ScrollBadge (resolver_)
39
+ ScrollBadgeDefaultURI (baseTokenURI_)
40
+ {
42
41
scr = scr_;
43
42
}
44
43
@@ -49,33 +48,48 @@ contract SCRHoldingBadge is ScrollBadgeCustomPayload, ScrollBadgeDefaultURI, Own
49
48
}
50
49
51
50
/// @inheritdoc ScrollBadge
52
- function onIssueBadge (
53
- Attestation calldata
54
- ) internal virtual override (ScrollBadge, ScrollBadgeCustomPayload) returns (bool ) {
51
+ function onIssueBadge (Attestation calldata )
52
+ internal
53
+ virtual
54
+ override (ScrollBadge, ScrollBadgeCustomPayload)
55
+ returns (bool )
56
+ {
55
57
return false ;
56
58
}
57
59
58
60
/// @inheritdoc ScrollBadge
59
- function onRevokeBadge (
60
- Attestation calldata
61
- ) internal virtual override (ScrollBadge, ScrollBadgeCustomPayload) returns (bool ) {
61
+ function onRevokeBadge (Attestation calldata )
62
+ internal
63
+ virtual
64
+ override (ScrollBadge, ScrollBadgeCustomPayload)
65
+ returns (bool )
66
+ {
62
67
return false ;
63
68
}
64
69
65
70
/// @inheritdoc ScrollBadge
66
- function badgeTokenURI (
67
- bytes32 uid
68
- ) public view override (IScrollBadge, ScrollBadge, ScrollBadgeDefaultURI) returns (string memory ) {
71
+ function badgeTokenURI (bytes32 uid )
72
+ public
73
+ view
74
+ override (IScrollBadge, ScrollBadge, ScrollBadgeDefaultURI)
75
+ returns (string memory )
76
+ {
69
77
return ScrollBadgeDefaultURI.badgeTokenURI (uid);
70
78
}
71
79
80
+ /// @inheritdoc IScrollBadge
81
+ function hasBadge (address user ) public view virtual override (IScrollBadge, ScrollBadge) returns (bool ) {
82
+ uint256 balance = IERC20 (scr).balanceOf (user);
83
+ return balance >= LEVEL_ONE_SCR_AMOUNT;
84
+ }
85
+
72
86
/// @inheritdoc ScrollBadgeDefaultURI
73
87
function getBadgeTokenURI (bytes32 uid ) internal view override returns (string memory ) {
74
88
Attestation memory attestation = getAndValidateBadge (uid);
75
89
bytes memory payload = getPayload (attestation);
76
- uint256 year = decodePayloadData (payload);
90
+ uint256 level = decodePayloadData (payload);
77
91
78
- return string (abi.encodePacked (defaultBadgeURI, Strings.toString (year ), ".json " ));
92
+ return string (abi.encodePacked (defaultBadgeURI, Strings.toString (level ), ".json " ));
79
93
}
80
94
81
95
/// @inheritdoc ScrollBadgeCustomPayload
0 commit comments