-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
Copy pathTierProviderBase.sol
75 lines (68 loc) · 2.52 KB
/
TierProviderBase.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import "../../common/LibStrings.sol";
import "./ITierProvider.sol";
/// @title TierProviderBase
/// @custom:security-contact [email protected]
abstract contract TierProviderBase is ITierProvider {
/// @inheritdoc ITierProvider
function getTier(uint16 _tierId)
public
pure
virtual
override
returns (ITierProvider.Tier memory)
{
if (_tierId == LibTiers.TIER_OPTIMISTIC) {
return ITierProvider.Tier({
verifierName: "",
validityBond: 250 ether, // TKO
contestBond: 500 ether, // TKO
cooldownWindow: 1440, //24 hours
provingWindow: 120, // 2 hours
maxBlocksToVerifyPerProof: 16
});
}
if (_tierId == LibTiers.TIER_SGX) {
return ITierProvider.Tier({
verifierName: LibStrings.B_TIER_SGX,
validityBond: 250 ether, // TKO
contestBond: 1640 ether, // =250TKO * 6.5625
cooldownWindow: 1440, //24 hours
provingWindow: 60, // 1 hours
maxBlocksToVerifyPerProof: 8
});
}
if (_tierId == LibTiers.TIER_SGX_ZKVM) {
return ITierProvider.Tier({
verifierName: LibStrings.B_TIER_SGX_ZKVM,
validityBond: 500 ether, // TKO
contestBond: 3280 ether, // =500TKO * 6.5625
cooldownWindow: 1440, //24 hours
provingWindow: 240, // 4 hours
maxBlocksToVerifyPerProof: 4
});
}
if (_tierId == LibTiers.TIER_GUARDIAN_MINORITY) {
return ITierProvider.Tier({
verifierName: LibStrings.B_TIER_GUARDIAN_MINORITY,
validityBond: 500 ether, // TKO
contestBond: 3280 ether, // =500TKO * 6.5625
cooldownWindow: 1440, //24 hours
provingWindow: 2880, // 48 hours
maxBlocksToVerifyPerProof: 16
});
}
if (_tierId == LibTiers.TIER_GUARDIAN) {
return ITierProvider.Tier({
verifierName: LibStrings.B_TIER_GUARDIAN,
validityBond: 0, // must be 0 for top tier
contestBond: 0, // must be 0 for top tier
cooldownWindow: 60, //1 hours
provingWindow: 2880, // 48 hours
maxBlocksToVerifyPerProof: 16
});
}
revert TIER_NOT_FOUND();
}
}