-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathMockProcessorStore.sol
More file actions
114 lines (98 loc) · 3.47 KB
/
MockProcessorStore.sol
File metadata and controls
114 lines (98 loc) · 3.47 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// Neptune Mutual Protocol (https://neptunemutual.com)
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;
import "../base/MockStore.sol";
import "../base/MockProtocol.sol";
import "./MockVault.sol";
import "../../libraries/ProtoUtilV1.sol";
import "../../fakes/FakePriceOracle.sol";
library MockProcessorStoreLib {
function initialize(
MockStore s,
bytes32 coverKey,
bytes32 productKey,
address cxToken,
uint256 incidentDate
) external returns (address[] memory values) {
MockProtocol protocol = new MockProtocol();
MockVault vault = new MockVault();
FakePriceOracle oracle = new FakePriceOracle();
s.setAddress(ProtoUtilV1.CNS_CORE, address(protocol));
s.setAddress(ProtoUtilV1.CNS_COVER_STABLECOIN, cxToken);
s.setAddress(ProtoUtilV1.CNS_NPM_PRICE_ORACLE, address(oracle));
s.setBool(ProtoUtilV1.NS_COVER_CXTOKEN, cxToken);
s.setBool(ProtoUtilV1.NS_MEMBERS, cxToken);
s.setUint(keccak256(abi.encodePacked(ProtoUtilV1.NS_GOVERNANCE_REPORTING_INCIDENT_DATE, coverKey, productKey)), incidentDate);
s.setBool(ProtoUtilV1.NS_MEMBERS, address(vault));
s.setAddress(ProtoUtilV1.NS_CONTRACTS, "cns:cover:vault", coverKey, address(vault));
setProductStatus(s, coverKey, productKey, incidentDate, 4);
setClaimBeginTimestamp(s, coverKey, productKey, block.timestamp - 100 days); // solhint-disable-line
setClaimExpiryTimestamp(s, coverKey, productKey, block.timestamp + 100 days); // solhint-disable-line
values = new address[](2);
values[0] = address(protocol);
values[1] = address(vault);
}
function disassociateCxToken(MockStore s, address cxToken) external {
s.unsetBool(ProtoUtilV1.NS_COVER_CXTOKEN, cxToken);
}
function setProductStatus(
MockStore s,
bytes32 coverKey,
bytes32 productKey,
uint256 incidentDate,
uint256 value
) public {
s.setUint(keccak256(abi.encodePacked(ProtoUtilV1.NS_COVER_STATUS, coverKey, productKey, incidentDate)), value);
}
function setClaimBeginTimestamp(
MockStore s,
bytes32 coverKey,
bytes32 productKey,
uint256 value
) public {
s.setUint(keccak256(abi.encodePacked(ProtoUtilV1.NS_CLAIM_BEGIN_TS, coverKey, productKey)), value);
}
function setClaimExpiryTimestamp(
MockStore s,
bytes32 coverKey,
bytes32 productKey,
uint256 value
) public {
s.setUint(keccak256(abi.encodePacked(ProtoUtilV1.NS_CLAIM_EXPIRY_TS, coverKey, productKey)), value);
}
}
contract MockProcessorStore is MockStore {
function initialize(
bytes32 coverKey,
bytes32 productKey,
address cxToken,
uint256 incidentDate
) external returns (address[] memory values) {
return MockProcessorStoreLib.initialize(this, coverKey, productKey, cxToken, incidentDate);
}
function disassociateCxToken(address cxToken) external {
MockProcessorStoreLib.disassociateCxToken(this, cxToken);
}
function setProductStatus(
bytes32 coverKey,
bytes32 productKey,
uint256 incidentDate,
uint256 value
) external {
MockProcessorStoreLib.setProductStatus(this, coverKey, productKey, incidentDate, value);
}
function setClaimBeginTimestamp(
bytes32 coverKey,
bytes32 productKey,
uint256 value
) external {
MockProcessorStoreLib.setClaimBeginTimestamp(this, coverKey, productKey, value);
}
function setClaimExpiryTimestamp(
bytes32 coverKey,
bytes32 productKey,
uint256 value
) external {
MockProcessorStoreLib.setClaimExpiryTimestamp(this, coverKey, productKey, value);
}
}