@openzeppelin/confidential-contracts 0.2.0-rc.1 → 0.2.0-rc.2
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.
- package/build/contracts/Checkpoints.json +2 -2
- package/build/contracts/CheckpointsConfidential.json +2 -2
- package/build/contracts/ConfidentialFungibleTokenUtils.json +2 -2
- package/build/contracts/TFHESafeMath.json +2 -2
- package/build/contracts/VestingWalletConfidentialFactory.json +290 -0
- package/finance/ERC7821WithExecutor.sol +1 -1
- package/finance/VestingWalletCliffConfidential.sol +1 -1
- package/finance/VestingWalletConfidential.sol +2 -2
- package/finance/{VestingWalletCliffExecutorConfidentialFactory.sol → VestingWalletConfidentialFactory.sol} +29 -28
- package/governance/utils/VotesConfidential.sol +1 -1
- package/interfaces/IConfidentialFungibleToken.sol +1 -1
- package/interfaces/IConfidentialFungibleTokenReceiver.sol +1 -1
- package/package.json +1 -1
- package/token/ConfidentialFungibleToken.sol +1 -1
- package/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol +1 -1
- package/token/extensions/ConfidentialFungibleTokenVotes.sol +1 -1
- package/token/utils/ConfidentialFungibleTokenUtils.sol +1 -1
- package/utils/TFHESafeMath.sol +1 -1
- package/utils/structs/CheckpointsConfidential.sol +1 -1
- package/utils/structs/temporary-Checkpoints.sol +1 -1
- package/build/contracts/VestingWalletCliffExecutorConfidential.json +0 -424
- package/build/contracts/VestingWalletCliffExecutorConfidentialFactory.json +0 -290
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"type": "error"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
|
-
"bytecode": "
|
|
13
|
-
"deployedBytecode": "
|
|
12
|
+
"bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220fae0bfd796eb509c298d3dbe84db66209673e90a0fef5e9327e8cc01bfdb512364736f6c634300081d0033",
|
|
13
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220fae0bfd796eb509c298d3dbe84db66209673e90a0fef5e9327e8cc01bfdb512364736f6c634300081d0033",
|
|
14
14
|
"linkReferences": {},
|
|
15
15
|
"deployedLinkReferences": {}
|
|
16
16
|
}
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"type": "error"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
|
-
"bytecode": "
|
|
13
|
-
"deployedBytecode": "
|
|
12
|
+
"bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208d10bbb6df7f7649514536955adf1972a6b98a5041d01dae6110903bae3bd54264736f6c634300081d0033",
|
|
13
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212208d10bbb6df7f7649514536955adf1972a6b98a5041d01dae6110903bae3bd54264736f6c634300081d0033",
|
|
14
14
|
"linkReferences": {},
|
|
15
15
|
"deployedLinkReferences": {}
|
|
16
16
|
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "ConfidentialFungibleTokenUtils",
|
|
4
4
|
"sourceName": "contracts/token/utils/ConfidentialFungibleTokenUtils.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212205cc35163a526cc9f1c44e34cb185c44eb4c490f59215936ad87fe3140963d2bb64736f6c634300081d0033",
|
|
7
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212205cc35163a526cc9f1c44e34cb185c44eb4c490f59215936ad87fe3140963d2bb64736f6c634300081d0033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"contractName": "TFHESafeMath",
|
|
4
4
|
"sourceName": "contracts/utils/TFHESafeMath.sol",
|
|
5
5
|
"abi": [],
|
|
6
|
-
"bytecode": "
|
|
7
|
-
"deployedBytecode": "
|
|
6
|
+
"bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212202db981d102d3bd3880b704612058ffa3febefb18c1373c66a5feb1a1993637a564736f6c634300081d0033",
|
|
7
|
+
"deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212202db981d102d3bd3880b704612058ffa3febefb18c1373c66a5feb1a1993637a564736f6c634300081d0033",
|
|
8
8
|
"linkReferences": {},
|
|
9
9
|
"deployedLinkReferences": {}
|
|
10
10
|
}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "VestingWalletConfidentialFactory",
|
|
4
|
+
"sourceName": "contracts/finance/VestingWalletConfidentialFactory.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "FailedDeployment",
|
|
9
|
+
"type": "error"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"inputs": [
|
|
13
|
+
{
|
|
14
|
+
"internalType": "uint256",
|
|
15
|
+
"name": "balance",
|
|
16
|
+
"type": "uint256"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "uint256",
|
|
20
|
+
"name": "needed",
|
|
21
|
+
"type": "uint256"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"name": "InsufficientBalance",
|
|
25
|
+
"type": "error"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"inputs": [
|
|
29
|
+
{
|
|
30
|
+
"internalType": "address",
|
|
31
|
+
"name": "owner",
|
|
32
|
+
"type": "address"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"name": "OwnableInvalidOwner",
|
|
36
|
+
"type": "error"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"inputs": [
|
|
40
|
+
{
|
|
41
|
+
"internalType": "uint64",
|
|
42
|
+
"name": "cliffSeconds",
|
|
43
|
+
"type": "uint64"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"internalType": "uint64",
|
|
47
|
+
"name": "durationSeconds",
|
|
48
|
+
"type": "uint64"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"name": "VestingWalletCliffConfidentialInvalidCliffDuration",
|
|
52
|
+
"type": "error"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"anonymous": false,
|
|
56
|
+
"inputs": [
|
|
57
|
+
{
|
|
58
|
+
"indexed": true,
|
|
59
|
+
"internalType": "address",
|
|
60
|
+
"name": "vestingWalletConfidential",
|
|
61
|
+
"type": "address"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"indexed": true,
|
|
65
|
+
"internalType": "address",
|
|
66
|
+
"name": "beneficiary",
|
|
67
|
+
"type": "address"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"indexed": false,
|
|
71
|
+
"internalType": "uint48",
|
|
72
|
+
"name": "startTimestamp",
|
|
73
|
+
"type": "uint48"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"indexed": false,
|
|
77
|
+
"internalType": "uint48",
|
|
78
|
+
"name": "durationSeconds",
|
|
79
|
+
"type": "uint48"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"indexed": false,
|
|
83
|
+
"internalType": "uint48",
|
|
84
|
+
"name": "cliffSeconds",
|
|
85
|
+
"type": "uint48"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"indexed": true,
|
|
89
|
+
"internalType": "address",
|
|
90
|
+
"name": "executor",
|
|
91
|
+
"type": "address"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"name": "VestingWalletConfidentialCreated",
|
|
95
|
+
"type": "event"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"anonymous": false,
|
|
99
|
+
"inputs": [
|
|
100
|
+
{
|
|
101
|
+
"indexed": true,
|
|
102
|
+
"internalType": "address",
|
|
103
|
+
"name": "vestingWalletConfidential",
|
|
104
|
+
"type": "address"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"indexed": true,
|
|
108
|
+
"internalType": "address",
|
|
109
|
+
"name": "beneficiary",
|
|
110
|
+
"type": "address"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"indexed": true,
|
|
114
|
+
"internalType": "address",
|
|
115
|
+
"name": "confidentialFungibleToken",
|
|
116
|
+
"type": "address"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"indexed": false,
|
|
120
|
+
"internalType": "euint64",
|
|
121
|
+
"name": "encryptedAmount",
|
|
122
|
+
"type": "bytes32"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"indexed": false,
|
|
126
|
+
"internalType": "uint48",
|
|
127
|
+
"name": "startTimestamp",
|
|
128
|
+
"type": "uint48"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"indexed": false,
|
|
132
|
+
"internalType": "uint48",
|
|
133
|
+
"name": "durationSeconds",
|
|
134
|
+
"type": "uint48"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"indexed": false,
|
|
138
|
+
"internalType": "uint48",
|
|
139
|
+
"name": "cliffSeconds",
|
|
140
|
+
"type": "uint48"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"indexed": false,
|
|
144
|
+
"internalType": "address",
|
|
145
|
+
"name": "executor",
|
|
146
|
+
"type": "address"
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"name": "VestingWalletConfidentialFunded",
|
|
150
|
+
"type": "event"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"inputs": [
|
|
154
|
+
{
|
|
155
|
+
"internalType": "address",
|
|
156
|
+
"name": "confidentialFungibleToken",
|
|
157
|
+
"type": "address"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"components": [
|
|
161
|
+
{
|
|
162
|
+
"internalType": "address",
|
|
163
|
+
"name": "beneficiary",
|
|
164
|
+
"type": "address"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"internalType": "externalEuint64",
|
|
168
|
+
"name": "encryptedAmount",
|
|
169
|
+
"type": "bytes32"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"internalType": "uint48",
|
|
173
|
+
"name": "startTimestamp",
|
|
174
|
+
"type": "uint48"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"internalType": "uint48",
|
|
178
|
+
"name": "durationSeconds",
|
|
179
|
+
"type": "uint48"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"internalType": "uint48",
|
|
183
|
+
"name": "cliffSeconds",
|
|
184
|
+
"type": "uint48"
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"internalType": "struct VestingWalletConfidentialFactory.VestingPlan[]",
|
|
188
|
+
"name": "vestingPlans",
|
|
189
|
+
"type": "tuple[]"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"internalType": "address",
|
|
193
|
+
"name": "executor",
|
|
194
|
+
"type": "address"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"internalType": "bytes",
|
|
198
|
+
"name": "inputProof",
|
|
199
|
+
"type": "bytes"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
"name": "batchFundVestingWalletConfidential",
|
|
203
|
+
"outputs": [],
|
|
204
|
+
"stateMutability": "nonpayable",
|
|
205
|
+
"type": "function"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"inputs": [
|
|
209
|
+
{
|
|
210
|
+
"internalType": "address",
|
|
211
|
+
"name": "beneficiary",
|
|
212
|
+
"type": "address"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"internalType": "uint48",
|
|
216
|
+
"name": "startTimestamp",
|
|
217
|
+
"type": "uint48"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"internalType": "uint48",
|
|
221
|
+
"name": "durationSeconds",
|
|
222
|
+
"type": "uint48"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"internalType": "uint48",
|
|
226
|
+
"name": "cliffSeconds",
|
|
227
|
+
"type": "uint48"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"internalType": "address",
|
|
231
|
+
"name": "executor",
|
|
232
|
+
"type": "address"
|
|
233
|
+
}
|
|
234
|
+
],
|
|
235
|
+
"name": "createVestingWalletConfidential",
|
|
236
|
+
"outputs": [
|
|
237
|
+
{
|
|
238
|
+
"internalType": "address",
|
|
239
|
+
"name": "",
|
|
240
|
+
"type": "address"
|
|
241
|
+
}
|
|
242
|
+
],
|
|
243
|
+
"stateMutability": "nonpayable",
|
|
244
|
+
"type": "function"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"inputs": [
|
|
248
|
+
{
|
|
249
|
+
"internalType": "address",
|
|
250
|
+
"name": "beneficiary",
|
|
251
|
+
"type": "address"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"internalType": "uint48",
|
|
255
|
+
"name": "startTimestamp",
|
|
256
|
+
"type": "uint48"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"internalType": "uint48",
|
|
260
|
+
"name": "durationSeconds",
|
|
261
|
+
"type": "uint48"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"internalType": "uint48",
|
|
265
|
+
"name": "cliffSeconds",
|
|
266
|
+
"type": "uint48"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"internalType": "address",
|
|
270
|
+
"name": "executor",
|
|
271
|
+
"type": "address"
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
"name": "predictVestingWalletConfidential",
|
|
275
|
+
"outputs": [
|
|
276
|
+
{
|
|
277
|
+
"internalType": "address",
|
|
278
|
+
"name": "",
|
|
279
|
+
"type": "address"
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"stateMutability": "view",
|
|
283
|
+
"type": "function"
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
"bytecode": "0x",
|
|
287
|
+
"deployedBytecode": "0x",
|
|
288
|
+
"linkReferences": {},
|
|
289
|
+
"deployedLinkReferences": {}
|
|
290
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/ERC7821WithExecutor.sol)
|
|
3
3
|
pragma solidity ^0.8.20;
|
|
4
4
|
|
|
5
5
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/VestingWalletCliffConfidential.sol)
|
|
3
3
|
pragma solidity ^0.8.27;
|
|
4
4
|
|
|
5
5
|
import {euint128} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/VestingWalletConfidential.sol)
|
|
3
3
|
pragma solidity ^0.8.24;
|
|
4
4
|
|
|
5
5
|
import {FHE, ebool, euint64, euint128} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -83,7 +83,7 @@ abstract contract VestingWalletConfidential is OwnableUpgradeable, ReentrancyGua
|
|
|
83
83
|
emit VestingWalletConfidentialTokenReleased(token, amountSent);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
/// @dev Calculates the amount of tokens that
|
|
86
|
+
/// @dev Calculates the amount of tokens that have already vested. Default implementation is a linear vesting curve.
|
|
87
87
|
function vestedAmount(address token, uint64 timestamp) public virtual returns (euint128) {
|
|
88
88
|
return
|
|
89
89
|
_vestingSchedule(
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/VestingWalletConfidentialFactory.sol)
|
|
3
3
|
pragma solidity ^0.8.27;
|
|
4
4
|
|
|
5
5
|
import {FHE, euint64, externalEuint64, euint128} from "@fhevm/solidity/lib/FHE.sol";
|
|
6
6
|
import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
|
|
7
7
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
|
8
8
|
import {IConfidentialFungibleToken} from "./../interfaces/IConfidentialFungibleToken.sol";
|
|
9
|
-
import {ERC7821WithExecutor} from "./ERC7821WithExecutor.sol";
|
|
10
9
|
import {VestingWalletCliffConfidential} from "./VestingWalletCliffConfidential.sol";
|
|
11
|
-
import {VestingWalletConfidential} from "./VestingWalletConfidential.sol";
|
|
12
10
|
|
|
13
11
|
/**
|
|
14
|
-
* @dev
|
|
12
|
+
* @dev A factory which enables batch funding of vesting wallets.
|
|
15
13
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* The {_deployVestingWalletImplementation} and {_initializeVestingWallet} functions remain unimplemented
|
|
15
|
+
* to allow for custom implementations of the vesting wallet to be used.
|
|
18
16
|
*/
|
|
19
|
-
contract
|
|
17
|
+
abstract contract VestingWalletConfidentialFactory {
|
|
20
18
|
struct VestingPlan {
|
|
21
19
|
address beneficiary;
|
|
22
20
|
externalEuint64 encryptedAmount;
|
|
@@ -25,7 +23,7 @@ contract VestingWalletCliffExecutorConfidentialFactory {
|
|
|
25
23
|
uint48 cliffSeconds;
|
|
26
24
|
}
|
|
27
25
|
|
|
28
|
-
address private immutable _vestingImplementation
|
|
26
|
+
address private immutable _vestingImplementation;
|
|
29
27
|
|
|
30
28
|
event VestingWalletConfidentialFunded(
|
|
31
29
|
address indexed vestingWalletConfidential,
|
|
@@ -46,6 +44,10 @@ contract VestingWalletCliffExecutorConfidentialFactory {
|
|
|
46
44
|
address indexed executor
|
|
47
45
|
);
|
|
48
46
|
|
|
47
|
+
constructor() {
|
|
48
|
+
_vestingImplementation = _deployVestingWalletImplementation();
|
|
49
|
+
}
|
|
50
|
+
|
|
49
51
|
/**
|
|
50
52
|
* @dev Batches the funding of multiple confidential vesting wallets.
|
|
51
53
|
*
|
|
@@ -128,7 +130,8 @@ contract VestingWalletCliffExecutorConfidentialFactory {
|
|
|
128
130
|
executor
|
|
129
131
|
)
|
|
130
132
|
);
|
|
131
|
-
|
|
133
|
+
_initializeVestingWallet(
|
|
134
|
+
vestingWalletConfidentialAddress,
|
|
132
135
|
beneficiary,
|
|
133
136
|
startTimestamp,
|
|
134
137
|
durationSeconds,
|
|
@@ -147,7 +150,7 @@ contract VestingWalletCliffExecutorConfidentialFactory {
|
|
|
147
150
|
}
|
|
148
151
|
|
|
149
152
|
/**
|
|
150
|
-
* @dev Predicts deterministic address for a confidential vesting wallet.
|
|
153
|
+
* @dev Predicts the deterministic address for a confidential vesting wallet.
|
|
151
154
|
*/
|
|
152
155
|
function predictVestingWalletConfidential(
|
|
153
156
|
address beneficiary,
|
|
@@ -169,35 +172,33 @@ contract VestingWalletCliffExecutorConfidentialFactory {
|
|
|
169
172
|
);
|
|
170
173
|
}
|
|
171
174
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
function _getCreate2VestingWalletConfidentialSalt(
|
|
175
|
+
/// @dev Virtual function that must be implemented to initialize the vesting wallet at `vestingWalletAddress`.
|
|
176
|
+
function _initializeVestingWallet(
|
|
177
|
+
address vestingWalletAddress,
|
|
176
178
|
address beneficiary,
|
|
177
179
|
uint48 startTimestamp,
|
|
178
180
|
uint48 durationSeconds,
|
|
179
181
|
uint48 cliffSeconds,
|
|
180
182
|
address executor
|
|
181
|
-
) internal
|
|
182
|
-
return keccak256(abi.encodePacked(beneficiary, startTimestamp, durationSeconds, cliffSeconds, executor));
|
|
183
|
-
}
|
|
184
|
-
}
|
|
183
|
+
) internal virtual;
|
|
185
184
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
185
|
+
/**
|
|
186
|
+
* @dev Internal function that is called once to deploy the vesting wallet implementation.
|
|
187
|
+
*
|
|
188
|
+
* Vesting wallet clones will be initialized by calls to the {_initializeVestingWallet} function.
|
|
189
|
+
*/
|
|
190
|
+
function _deployVestingWalletImplementation() internal virtual returns (address);
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
/**
|
|
193
|
+
* @dev Gets create2 salt for a confidential vesting wallet.
|
|
194
|
+
*/
|
|
195
|
+
function _getCreate2VestingWalletConfidentialSalt(
|
|
193
196
|
address beneficiary,
|
|
194
197
|
uint48 startTimestamp,
|
|
195
198
|
uint48 durationSeconds,
|
|
196
199
|
uint48 cliffSeconds,
|
|
197
200
|
address executor
|
|
198
|
-
)
|
|
199
|
-
|
|
200
|
-
__VestingWalletCliffConfidential_init(cliffSeconds);
|
|
201
|
-
__ERC7821WithExecutor_init(executor);
|
|
201
|
+
) internal pure virtual returns (bytes32) {
|
|
202
|
+
return keccak256(abi.encodePacked(beneficiary, startTimestamp, durationSeconds, cliffSeconds, executor));
|
|
202
203
|
}
|
|
203
204
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (governance/utils/VotesConfidential.sol)
|
|
3
3
|
pragma solidity ^0.8.24;
|
|
4
4
|
|
|
5
5
|
import {FHE, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (interfaces/IConfidentialFungibleToken.sol)
|
|
3
3
|
pragma solidity ^0.8.24;
|
|
4
4
|
|
|
5
5
|
import {euint64, externalEuint64} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (interfaces/IConfidentialFungibleTokenReceiver.sol)
|
|
3
3
|
pragma solidity ^0.8.24;
|
|
4
4
|
|
|
5
5
|
import {ebool, euint64} from "@fhevm/solidity/lib/FHE.sol";
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/ConfidentialFungibleToken.sol)
|
|
3
3
|
pragma solidity ^0.8.27;
|
|
4
4
|
|
|
5
5
|
import {FHE, externalEuint64, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol)
|
|
3
3
|
|
|
4
4
|
pragma solidity ^0.8.27;
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/extensions/ConfidentialFungibleTokenVotes.sol)
|
|
3
3
|
pragma solidity ^0.8.27;
|
|
4
4
|
|
|
5
5
|
import {euint64} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/utils/ConfidentialFungibleTokenUtils.sol)
|
|
3
3
|
pragma solidity ^0.8.24;
|
|
4
4
|
|
|
5
5
|
import {FHE, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol";
|
package/utils/TFHESafeMath.sol
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (utils/TFHESafeMath.sol)
|
|
3
3
|
pragma solidity ^0.8.24;
|
|
4
4
|
|
|
5
5
|
import {FHE, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (utils/structs/CheckpointsConfidential.sol)
|
|
3
3
|
// This file was procedurally generated from scripts/generate/templates/CheckpointsConfidential.js.
|
|
4
4
|
|
|
5
5
|
pragma solidity ^0.8.24;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
|
-
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.
|
|
2
|
+
// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (utils/structs/temporary-Checkpoints.sol)
|
|
3
3
|
// OpenZeppelin Contracts (last updated v5.3.0) (utils/structs/Checkpoints.sol)
|
|
4
4
|
// This file was procedurally generated from scripts/generate/templates/Checkpoints.js.
|
|
5
5
|
// WARNING: This file is temporary and will be deleted once the latest version of the file is released in v5.5.0 of @openzeppelin/contracts.
|