@venusprotocol/protocol-reserve 1.0.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +69 -0
  2. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  3. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  4. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  5. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  6. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  7. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  8. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  9. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  10. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  11. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  12. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  13. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  14. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  15. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  16. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  17. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  18. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  19. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  20. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  21. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
  22. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
  23. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
  24. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  25. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  26. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  27. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  28. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  29. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  30. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  31. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  32. package/artifacts/build-info/c112788394311939ef4c47b76cde5898.json +1 -0
  33. package/artifacts/contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +4 -0
  34. package/artifacts/contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.json +24 -0
  35. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +4 -0
  36. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.json +29 -0
  37. package/artifacts/contracts/Interfaces/IPrime.sol/IPrime.dbg.json +4 -0
  38. package/artifacts/contracts/Interfaces/IPrime.sol/IPrime.json +74 -0
  39. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
  40. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.json +34 -0
  41. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +4 -0
  42. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.json +24 -0
  43. package/artifacts/contracts/Interfaces/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +4 -0
  44. package/artifacts/contracts/Interfaces/PoolRegistryInterface.sol/PoolRegistryInterface.json +35 -0
  45. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
  46. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.json +741 -0
  47. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
  48. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.json +315 -0
  49. package/contracts/Interfaces/ComptrollerInterface.sol +6 -0
  50. package/contracts/Interfaces/IIncomeDestination.sol +6 -0
  51. package/contracts/Interfaces/IPrime.sol +12 -0
  52. package/contracts/Interfaces/IProtocolShareReserve.sol +12 -0
  53. package/contracts/Interfaces/IVToken.sol +6 -0
  54. package/contracts/Interfaces/PoolRegistryInterface.sol +7 -0
  55. package/contracts/ProtocolReserve/ProtocolShareReserve.sol +378 -0
  56. package/contracts/Test/Mocks/MockToken.sol +22 -0
  57. package/contracts/interfaces/ComptrollerInterface.sol +6 -0
  58. package/contracts/interfaces/IProtocolShareReserve.sol +12 -0
  59. package/contracts/interfaces/PoolRegistryInterface.sol +7 -0
  60. package/contracts/test/Mocks/MockToken.sol +22 -0
  61. package/package.json +116 -0
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # Protocol Reserve
2
+
3
+ ### Prerequisites
4
+
5
+ - NodeJS - 18.x
6
+
7
+ - Solc - v0.8.13 (https://github.com/ethereum/solidity/releases/tag/v0.8.13)
8
+
9
+ ### Installing
10
+
11
+ ```
12
+
13
+ npm install
14
+
15
+ ```
16
+
17
+ ### Run Tests
18
+
19
+ ```
20
+
21
+ npx hardhat test
22
+
23
+ ```
24
+
25
+ ### Hardhat Commands
26
+
27
+ ```
28
+
29
+ npx hardhat accounts
30
+
31
+ npx hardhat compile
32
+
33
+ npx hardhat clean
34
+
35
+ npx hardhat test
36
+
37
+ npx hardhat node
38
+
39
+ npx hardhat help
40
+
41
+ REPORT_GAS=true npx hardhat test
42
+
43
+ npx hardhat coverage
44
+
45
+ TS_NODE_FILES=true npx ts-node scripts/deploy.ts
46
+
47
+ npx eslint '**/*.{js,ts}'
48
+
49
+ npx eslint '**/*.{js,ts}' --fix
50
+
51
+ npx prettier '**/*.{json,sol,md}' --check
52
+
53
+ npx prettier '**/*.{json,sol,md}' --write
54
+
55
+ npx solhint 'contracts/**/*.sol'
56
+
57
+ npx solhint 'contracts/**/*.sol' --fix
58
+
59
+
60
+
61
+ MNEMONIC="<>" BSC_API_KEY="<>" npx hardhat run ./script/hardhat/deploy.ts --network testnet
62
+
63
+ ```
64
+
65
+ ### Documentation
66
+
67
+ Documentation is autogenerated using [solidity-docgen](https://github.com/OpenZeppelin/solidity-docgen).
68
+
69
+ They can be generated by running `yarn docgen`
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/c112788394311939ef4c47b76cde5898.json"
4
+ }
@@ -0,0 +1,183 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IAccessControl",
4
+ "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "bytes32",
12
+ "name": "role",
13
+ "type": "bytes32"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "bytes32",
18
+ "name": "previousAdminRole",
19
+ "type": "bytes32"
20
+ },
21
+ {
22
+ "indexed": true,
23
+ "internalType": "bytes32",
24
+ "name": "newAdminRole",
25
+ "type": "bytes32"
26
+ }
27
+ ],
28
+ "name": "RoleAdminChanged",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "bytes32",
37
+ "name": "role",
38
+ "type": "bytes32"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address",
43
+ "name": "account",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "indexed": true,
48
+ "internalType": "address",
49
+ "name": "sender",
50
+ "type": "address"
51
+ }
52
+ ],
53
+ "name": "RoleGranted",
54
+ "type": "event"
55
+ },
56
+ {
57
+ "anonymous": false,
58
+ "inputs": [
59
+ {
60
+ "indexed": true,
61
+ "internalType": "bytes32",
62
+ "name": "role",
63
+ "type": "bytes32"
64
+ },
65
+ {
66
+ "indexed": true,
67
+ "internalType": "address",
68
+ "name": "account",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "indexed": true,
73
+ "internalType": "address",
74
+ "name": "sender",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "RoleRevoked",
79
+ "type": "event"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "bytes32",
85
+ "name": "role",
86
+ "type": "bytes32"
87
+ }
88
+ ],
89
+ "name": "getRoleAdmin",
90
+ "outputs": [
91
+ {
92
+ "internalType": "bytes32",
93
+ "name": "",
94
+ "type": "bytes32"
95
+ }
96
+ ],
97
+ "stateMutability": "view",
98
+ "type": "function"
99
+ },
100
+ {
101
+ "inputs": [
102
+ {
103
+ "internalType": "bytes32",
104
+ "name": "role",
105
+ "type": "bytes32"
106
+ },
107
+ {
108
+ "internalType": "address",
109
+ "name": "account",
110
+ "type": "address"
111
+ }
112
+ ],
113
+ "name": "grantRole",
114
+ "outputs": [],
115
+ "stateMutability": "nonpayable",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [
120
+ {
121
+ "internalType": "bytes32",
122
+ "name": "role",
123
+ "type": "bytes32"
124
+ },
125
+ {
126
+ "internalType": "address",
127
+ "name": "account",
128
+ "type": "address"
129
+ }
130
+ ],
131
+ "name": "hasRole",
132
+ "outputs": [
133
+ {
134
+ "internalType": "bool",
135
+ "name": "",
136
+ "type": "bool"
137
+ }
138
+ ],
139
+ "stateMutability": "view",
140
+ "type": "function"
141
+ },
142
+ {
143
+ "inputs": [
144
+ {
145
+ "internalType": "bytes32",
146
+ "name": "role",
147
+ "type": "bytes32"
148
+ },
149
+ {
150
+ "internalType": "address",
151
+ "name": "account",
152
+ "type": "address"
153
+ }
154
+ ],
155
+ "name": "renounceRole",
156
+ "outputs": [],
157
+ "stateMutability": "nonpayable",
158
+ "type": "function"
159
+ },
160
+ {
161
+ "inputs": [
162
+ {
163
+ "internalType": "bytes32",
164
+ "name": "role",
165
+ "type": "bytes32"
166
+ },
167
+ {
168
+ "internalType": "address",
169
+ "name": "account",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "revokeRole",
174
+ "outputs": [],
175
+ "stateMutability": "nonpayable",
176
+ "type": "function"
177
+ }
178
+ ],
179
+ "bytecode": "0x",
180
+ "deployedBytecode": "0x",
181
+ "linkReferences": {},
182
+ "deployedLinkReferences": {}
183
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../../build-info/c112788394311939ef4c47b76cde5898.json"
4
+ }
@@ -0,0 +1,297 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC20",
4
+ "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "string",
10
+ "name": "name_",
11
+ "type": "string"
12
+ },
13
+ {
14
+ "internalType": "string",
15
+ "name": "symbol_",
16
+ "type": "string"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "anonymous": false,
24
+ "inputs": [
25
+ {
26
+ "indexed": true,
27
+ "internalType": "address",
28
+ "name": "owner",
29
+ "type": "address"
30
+ },
31
+ {
32
+ "indexed": true,
33
+ "internalType": "address",
34
+ "name": "spender",
35
+ "type": "address"
36
+ },
37
+ {
38
+ "indexed": false,
39
+ "internalType": "uint256",
40
+ "name": "value",
41
+ "type": "uint256"
42
+ }
43
+ ],
44
+ "name": "Approval",
45
+ "type": "event"
46
+ },
47
+ {
48
+ "anonymous": false,
49
+ "inputs": [
50
+ {
51
+ "indexed": true,
52
+ "internalType": "address",
53
+ "name": "from",
54
+ "type": "address"
55
+ },
56
+ {
57
+ "indexed": true,
58
+ "internalType": "address",
59
+ "name": "to",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "indexed": false,
64
+ "internalType": "uint256",
65
+ "name": "value",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "Transfer",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "inputs": [
74
+ {
75
+ "internalType": "address",
76
+ "name": "owner",
77
+ "type": "address"
78
+ },
79
+ {
80
+ "internalType": "address",
81
+ "name": "spender",
82
+ "type": "address"
83
+ }
84
+ ],
85
+ "name": "allowance",
86
+ "outputs": [
87
+ {
88
+ "internalType": "uint256",
89
+ "name": "",
90
+ "type": "uint256"
91
+ }
92
+ ],
93
+ "stateMutability": "view",
94
+ "type": "function"
95
+ },
96
+ {
97
+ "inputs": [
98
+ {
99
+ "internalType": "address",
100
+ "name": "spender",
101
+ "type": "address"
102
+ },
103
+ {
104
+ "internalType": "uint256",
105
+ "name": "amount",
106
+ "type": "uint256"
107
+ }
108
+ ],
109
+ "name": "approve",
110
+ "outputs": [
111
+ {
112
+ "internalType": "bool",
113
+ "name": "",
114
+ "type": "bool"
115
+ }
116
+ ],
117
+ "stateMutability": "nonpayable",
118
+ "type": "function"
119
+ },
120
+ {
121
+ "inputs": [
122
+ {
123
+ "internalType": "address",
124
+ "name": "account",
125
+ "type": "address"
126
+ }
127
+ ],
128
+ "name": "balanceOf",
129
+ "outputs": [
130
+ {
131
+ "internalType": "uint256",
132
+ "name": "",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "stateMutability": "view",
137
+ "type": "function"
138
+ },
139
+ {
140
+ "inputs": [],
141
+ "name": "decimals",
142
+ "outputs": [
143
+ {
144
+ "internalType": "uint8",
145
+ "name": "",
146
+ "type": "uint8"
147
+ }
148
+ ],
149
+ "stateMutability": "view",
150
+ "type": "function"
151
+ },
152
+ {
153
+ "inputs": [
154
+ {
155
+ "internalType": "address",
156
+ "name": "spender",
157
+ "type": "address"
158
+ },
159
+ {
160
+ "internalType": "uint256",
161
+ "name": "subtractedValue",
162
+ "type": "uint256"
163
+ }
164
+ ],
165
+ "name": "decreaseAllowance",
166
+ "outputs": [
167
+ {
168
+ "internalType": "bool",
169
+ "name": "",
170
+ "type": "bool"
171
+ }
172
+ ],
173
+ "stateMutability": "nonpayable",
174
+ "type": "function"
175
+ },
176
+ {
177
+ "inputs": [
178
+ {
179
+ "internalType": "address",
180
+ "name": "spender",
181
+ "type": "address"
182
+ },
183
+ {
184
+ "internalType": "uint256",
185
+ "name": "addedValue",
186
+ "type": "uint256"
187
+ }
188
+ ],
189
+ "name": "increaseAllowance",
190
+ "outputs": [
191
+ {
192
+ "internalType": "bool",
193
+ "name": "",
194
+ "type": "bool"
195
+ }
196
+ ],
197
+ "stateMutability": "nonpayable",
198
+ "type": "function"
199
+ },
200
+ {
201
+ "inputs": [],
202
+ "name": "name",
203
+ "outputs": [
204
+ {
205
+ "internalType": "string",
206
+ "name": "",
207
+ "type": "string"
208
+ }
209
+ ],
210
+ "stateMutability": "view",
211
+ "type": "function"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "symbol",
216
+ "outputs": [
217
+ {
218
+ "internalType": "string",
219
+ "name": "",
220
+ "type": "string"
221
+ }
222
+ ],
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [],
228
+ "name": "totalSupply",
229
+ "outputs": [
230
+ {
231
+ "internalType": "uint256",
232
+ "name": "",
233
+ "type": "uint256"
234
+ }
235
+ ],
236
+ "stateMutability": "view",
237
+ "type": "function"
238
+ },
239
+ {
240
+ "inputs": [
241
+ {
242
+ "internalType": "address",
243
+ "name": "to",
244
+ "type": "address"
245
+ },
246
+ {
247
+ "internalType": "uint256",
248
+ "name": "amount",
249
+ "type": "uint256"
250
+ }
251
+ ],
252
+ "name": "transfer",
253
+ "outputs": [
254
+ {
255
+ "internalType": "bool",
256
+ "name": "",
257
+ "type": "bool"
258
+ }
259
+ ],
260
+ "stateMutability": "nonpayable",
261
+ "type": "function"
262
+ },
263
+ {
264
+ "inputs": [
265
+ {
266
+ "internalType": "address",
267
+ "name": "from",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "internalType": "address",
272
+ "name": "to",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "internalType": "uint256",
277
+ "name": "amount",
278
+ "type": "uint256"
279
+ }
280
+ ],
281
+ "name": "transferFrom",
282
+ "outputs": [
283
+ {
284
+ "internalType": "bool",
285
+ "name": "",
286
+ "type": "bool"
287
+ }
288
+ ],
289
+ "stateMutability": "nonpayable",
290
+ "type": "function"
291
+ }
292
+ ],
293
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162000db638038062000db68339810160408190526200003491620001db565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b50505062000281565b828054620000769062000245565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200013657600080fd5b81516001600160401b03808211156200015357620001536200010e565b604051601f8301601f19908116603f011681019082821181831017156200017e576200017e6200010e565b816040528381526020925086838588010111156200019b57600080fd5b600091505b83821015620001bf5785820183015181830184015290820190620001a0565b83821115620001d15760008385830101525b9695505050505050565b60008060408385031215620001ef57600080fd5b82516001600160401b03808211156200020757600080fd5b620002158683870162000124565b935060208501519150808211156200022c57600080fd5b506200023b8582860162000124565b9150509250929050565b600181811c908216806200025a57607f821691505b6020821081036200027b57634e487b7160e01b600052602260045260246000fd5b50919050565b610b2580620002916000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610194578063a9059cbb146101a7578063dd62ed3e146101ba57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461018c57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610200565b6040516100e39190610906565b60405180910390f35b6100ff6100fa3660046109a2565b610292565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046109cc565b6102aa565b604051601281526020016100e3565b6100ff6101513660046109a2565b6102ce565b610113610164366004610a08565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100d661031a565b6100ff6101a23660046109a2565b610329565b6100ff6101b53660046109a2565b6103ff565b6101136101c8366004610a2a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020f90610a5d565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610a5d565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000336102a081858561040d565b5060019392505050565b6000336102b88582856105c0565b6102c3858585610697565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102a09082908690610315908790610ab0565b61040d565b60606004805461020f90610a5d565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102c3828686840361040d565b6000336102a0818585610697565b73ffffffffffffffffffffffffffffffffffffffff83166104af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff8216610552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106915781811015610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103e9565b610691848484840361040d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff82166107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610691565b600060208083528351808285015260005b8181101561093357858101830151858201604001528201610917565b81811115610945576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461099d57600080fd5b919050565b600080604083850312156109b557600080fd5b6109be83610979565b946020939093013593505050565b6000806000606084860312156109e157600080fd5b6109ea84610979565b92506109f860208501610979565b9150604084013590509250925092565b600060208284031215610a1a57600080fd5b610a2382610979565b9392505050565b60008060408385031215610a3d57600080fd5b610a4683610979565b9150610a5460208401610979565b90509250929050565b600181811c90821680610a7157607f821691505b602082108103610aaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008219821115610aea577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea264697066735822122098cc59a062a7683505f038865a07eeac104aedfea26546028a8c8ce7ee7ba52164736f6c634300080d0033",
294
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610194578063a9059cbb146101a7578063dd62ed3e146101ba57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461018c57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610200565b6040516100e39190610906565b60405180910390f35b6100ff6100fa3660046109a2565b610292565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f3660046109cc565b6102aa565b604051601281526020016100e3565b6100ff6101513660046109a2565b6102ce565b610113610164366004610a08565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100d661031a565b6100ff6101a23660046109a2565b610329565b6100ff6101b53660046109a2565b6103ff565b6101136101c8366004610a2a565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461020f90610a5d565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610a5d565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b6000336102a081858561040d565b5060019392505050565b6000336102b88582856105c0565b6102c3858585610697565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102a09082908690610315908790610ab0565b61040d565b60606004805461020f90610a5d565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102c3828686840361040d565b6000336102a0818585610697565b73ffffffffffffffffffffffffffffffffffffffff83166104af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff8216610552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106915781811015610684576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103e9565b610691848484840361040d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661073a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff82166107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103e9565b73ffffffffffffffffffffffffffffffffffffffff848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610691565b600060208083528351808285015260005b8181101561093357858101830151858201604001528201610917565b81811115610945576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461099d57600080fd5b919050565b600080604083850312156109b557600080fd5b6109be83610979565b946020939093013593505050565b6000806000606084860312156109e157600080fd5b6109ea84610979565b92506109f860208501610979565b9150604084013590509250925092565b600060208284031215610a1a57600080fd5b610a2382610979565b9392505050565b60008060408385031215610a3d57600080fd5b610a4683610979565b9150610a5460208401610979565b90509250929050565b600181811c90821680610a7157607f821691505b602082108103610aaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008219821115610aea577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea264697066735822122098cc59a062a7683505f038865a07eeac104aedfea26546028a8c8ce7ee7ba52164736f6c634300080d0033",
295
+ "linkReferences": {},
296
+ "deployedLinkReferences": {}
297
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../../build-info/c112788394311939ef4c47b76cde5898.json"
4
+ }