@@ -9,28 +9,34 @@ import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";
9
9
import {ScrollBadge} from "../ScrollBadge.sol " ;
10
10
import {ScrollBadgeAccessControl} from "../extensions/ScrollBadgeAccessControl.sol " ;
11
11
import {ScrollBadgeCustomPayload} from "../extensions/ScrollBadgeCustomPayload.sol " ;
12
+ import {ScrollBadgeDefaultURI} from "../extensions/ScrollBadgeDefaultURI.sol " ;
12
13
import {ScrollBadgeNoExpiry} from "../extensions/ScrollBadgeNoExpiry.sol " ;
13
14
import {ScrollBadgeNonRevocable} from "../extensions/ScrollBadgeNonRevocable.sol " ;
14
15
import {ScrollBadgeSingleton} from "../extensions/ScrollBadgeSingleton.sol " ;
15
16
16
- string constant SCROLL_EMPLOYEE_BADGE_SCHEMA = "uint256 employeeId,uint256 year " ;
17
+ string constant SCROLL_EMPLOYEE_BADGE_SCHEMA = "uint256 year " ;
17
18
18
- function decodePayloadData (bytes memory data ) pure returns (uint256 , uint256 ) {
19
- return abi.decode (data, (uint256 , uint256 ));
19
+ function decodePayloadData (bytes memory data ) pure returns (uint256 ) {
20
+ return abi.decode (data, (uint256 ));
20
21
}
21
22
22
23
/// @title ScrollEmployeeBadge
23
24
contract ScrollEmployeeBadge is
24
25
ScrollBadgeAccessControl ,
25
26
ScrollBadgeCustomPayload ,
27
+ ScrollBadgeDefaultURI ,
26
28
ScrollBadgeNoExpiry ,
27
29
ScrollBadgeNonRevocable ,
28
30
ScrollBadgeSingleton
29
31
{
30
32
/// @notice The base token URI.
31
33
string public baseTokenURI;
32
34
33
- constructor (address resolver_ , string memory baseTokenURI_ ) ScrollBadge (resolver_) {
35
+ constructor (
36
+ address resolver_ ,
37
+ string memory baseTokenURI_ ,
38
+ string memory defaultBadgeURI_
39
+ ) ScrollBadge (resolver_) ScrollBadgeDefaultURI (defaultBadgeURI_) {
34
40
baseTokenURI = baseTokenURI_;
35
41
}
36
42
@@ -41,9 +47,12 @@ contract ScrollEmployeeBadge is
41
47
}
42
48
43
49
/// @inheritdoc ScrollBadge
44
- function onIssueBadge (Attestation calldata attestation )
50
+ function onIssueBadge (
51
+ Attestation calldata attestation
52
+ )
45
53
internal
46
- override (
54
+ override (
55
+ ScrollBadge,
47
56
ScrollBadgeAccessControl,
48
57
ScrollBadgeCustomPayload,
49
58
ScrollBadgeNoExpiry,
@@ -56,22 +65,27 @@ contract ScrollEmployeeBadge is
56
65
}
57
66
58
67
/// @inheritdoc ScrollBadge
59
- function onRevokeBadge (Attestation calldata attestation )
68
+ function onRevokeBadge (
69
+ Attestation calldata attestation
70
+ )
60
71
internal
61
- override (
62
- ScrollBadge, ScrollBadgeAccessControl, ScrollBadgeCustomPayload, ScrollBadgeNoExpiry, ScrollBadgeSingleton
72
+ override (
73
+ ScrollBadge,
74
+ ScrollBadgeAccessControl,
75
+ ScrollBadgeCustomPayload,
76
+ ScrollBadgeNoExpiry,
77
+ ScrollBadgeSingleton
63
78
)
64
79
returns (bool )
65
80
{
66
81
return super .onRevokeBadge (attestation);
67
82
}
68
83
69
- /// @inheritdoc ScrollBadge
70
- /// @dev This function is TBD
71
- function badgeTokenURI (bytes32 uid ) public view override returns (string memory ) {
84
+ /// @inheritdoc ScrollBadgeDefaultURI
85
+ function getBadgeTokenURI (bytes32 uid ) internal view override returns (string memory ) {
72
86
Attestation memory attestation = getAndValidateBadge (uid);
73
87
bytes memory payload = getPayload (attestation);
74
- (, uint256 year ) = decodePayloadData (payload);
88
+ uint256 year = decodePayloadData (payload);
75
89
76
90
return string (abi.encodePacked (baseTokenURI, Strings.toString (year), ".json " ));
77
91
}
0 commit comments