@openzeppelin/confidential-contracts 0.2.0-rc.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 (31) hide show
  1. package/README.md +24 -0
  2. package/build/contracts/Checkpoints.json +16 -0
  3. package/build/contracts/CheckpointsConfidential.json +16 -0
  4. package/build/contracts/ConfidentialFungibleToken.json +614 -0
  5. package/build/contracts/ConfidentialFungibleTokenERC20Wrapper.json +793 -0
  6. package/build/contracts/ConfidentialFungibleTokenUtils.json +10 -0
  7. package/build/contracts/ConfidentialFungibleTokenVotes.json +1002 -0
  8. package/build/contracts/ERC7821WithExecutor.json +145 -0
  9. package/build/contracts/IConfidentialFungibleToken.json +458 -0
  10. package/build/contracts/IConfidentialFungibleTokenReceiver.json +45 -0
  11. package/build/contracts/TFHESafeMath.json +10 -0
  12. package/build/contracts/VestingWalletCliffConfidential.json +275 -0
  13. package/build/contracts/VestingWalletCliffExecutorConfidential.json +424 -0
  14. package/build/contracts/VestingWalletCliffExecutorConfidentialFactory.json +290 -0
  15. package/build/contracts/VestingWalletConfidential.json +246 -0
  16. package/build/contracts/VotesConfidential.json +412 -0
  17. package/finance/ERC7821WithExecutor.sol +46 -0
  18. package/finance/VestingWalletCliffConfidential.sol +62 -0
  19. package/finance/VestingWalletCliffExecutorConfidentialFactory.sol +203 -0
  20. package/finance/VestingWalletConfidential.sol +130 -0
  21. package/governance/utils/VotesConfidential.sol +202 -0
  22. package/interfaces/IConfidentialFungibleToken.sol +135 -0
  23. package/interfaces/IConfidentialFungibleTokenReceiver.sol +19 -0
  24. package/package.json +39 -0
  25. package/token/ConfidentialFungibleToken.sol +314 -0
  26. package/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol +175 -0
  27. package/token/extensions/ConfidentialFungibleTokenVotes.sol +29 -0
  28. package/token/utils/ConfidentialFungibleTokenUtils.sol +46 -0
  29. package/utils/TFHESafeMath.sol +37 -0
  30. package/utils/structs/CheckpointsConfidential.sol +193 -0
  31. package/utils/structs/temporary-Checkpoints.sol +835 -0
@@ -0,0 +1,290 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "VestingWalletCliffExecutorConfidentialFactory",
4
+ "sourceName": "contracts/finance/VestingWalletCliffExecutorConfidentialFactory.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 VestingWalletCliffExecutorConfidentialFactory.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": "0x60a0604052604051600e906042565b604051809103905ff0801580156026573d5f5f3e3d5ffd5b506001600160a01b0316608052348015603d575f5ffd5b50604f565b611a9680610b0983390190565b608051610a9c61006d5f395f818160a0015261033b0152610a9c5ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806314a5fd8314610043578063b4550a3814610072578063c61666db14610087575b5f5ffd5b6100566100513660046107d2565b61009a565b6040516001600160a01b03909116815260200160405180910390f35b610085610080366004610878565b6100db565b005b6100566100953660046107d2565b610334565b5f6100d17f00000000000000000000000000000000000000000000000000000000000000006100cc8888888888610454565b6104ce565b9695505050505050565b835f5b8181101561032a575f8787838181106100f9576100f961093a565b905060a0020180360381019061010f919061094e565b6060810151608082015191925065ffffffffffff808216908316111561015f576040516315956cd160e21b815265ffffffffffff9283166004820152911660248201526044015b60405180910390fd5b505080515f906001600160a01b031661019757604051631e4fbdf760e01b81526001600160a01b039091166004820152602401610156565b505f6101b5825f01518360400151846060015185608001518b61009a565b90505f5f6101fc846020015189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061053992505050565b9050610208818d610546565b5060405163eb3155b560e01b81523360048201526001600160a01b038481166024830152604482018390528d169063eb3155b5906064016020604051808303815f875af115801561025b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027f91906109e1565b9150508a6001600160a01b0316835f01516001600160a01b0316836001600160a01b03167f71711e1b968738dfe628b1cd84ad6a61f851fb28ce36f9c5c3731e797004fad5848760400151886060015189608001518f60405161031795949392919094855265ffffffffffff9384166020860152918316604085015290911660608301526001600160a01b0316608082015260a00190565b60405180910390a45050506001016100de565b5050505050505050565b5f5f61036c7f00000000000000000000000000000000000000000000000000000000000000006103678989898989610454565b610558565b604051630d5756af60e11b81526001600160a01b03898116600483015265ffffffffffff808a166024840152808916604484015287166064830152858116608483015291925090821690631aaead5e9060a4015f604051808303815f87803b1580156103d6575f5ffd5b505af11580156103e8573d5f5f3e3d5ffd5b50506040805165ffffffffffff8a81168252898116602083015288168183015290516001600160a01b03878116945085811693508b16917f9195f344285379ebeb1910bb6c9214f680b24c0a2fa4642e4e903eac944d351a919081900360600190a49695505050505050565b604080516bffffffffffffffffffffffff19606088811b821660208401526001600160d01b031960d089811b8216603486015288811b8216603a86015287901b16938301939093529183901b90911660468201525f90605a0160405160208183030381529060405280519060200120905095945050505050565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c820120607882015260556043909101205f906001600160a01b03165b9392505050565b5f61053283836005610564565b5f6105518383610684565b5090919050565b5f61053283835f61070d565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6015460405163196d0b9b60e01b81525f917fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600916001600160a01b039091169063196d0b9b906105dd9088903390899089906004016109f8565b6020604051808303815f875af11580156105f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061d91906109e1565b8154604051630f8e573b60e21b8152600481018390523360248201529193506001600160a01b031690633e395cec906044015f604051808303815f87803b158015610666575f5ffd5b505af1158015610678573d5f5f3e3d5ffd5b50505050509392505050565b5f7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6008054604051630f8e573b60e21b8152600481018690526001600160a01b038581166024830152929350911690633e395cec906044015f604051808303815f87803b1580156106f2575f5ffd5b505af1158015610704573d5f5f3e3d5ffd5b50505050505050565b5f814710156107385760405163cf47918160e01b815247600482015260248101839052604401610156565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008460601b60e81c175f526e5af43d82803e903d91602b57fd5bf38460781b17602052826037600984f590506001600160a01b0381166105325760405163b06ebf3d60e01b815260040160405180910390fd5b80356001600160a01b03811681146107b8575f5ffd5b919050565b803565ffffffffffff811681146107b8575f5ffd5b5f5f5f5f5f60a086880312156107e6575f5ffd5b6107ef866107a2565b94506107fd602087016107bd565b935061080b604087016107bd565b9250610819606087016107bd565b9150610827608087016107a2565b90509295509295909350565b5f5f83601f840112610843575f5ffd5b50813567ffffffffffffffff81111561085a575f5ffd5b602083019150836020828501011115610871575f5ffd5b9250929050565b5f5f5f5f5f5f6080878903121561088d575f5ffd5b610896876107a2565b9550602087013567ffffffffffffffff8111156108b1575f5ffd5b8701601f810189136108c1575f5ffd5b803567ffffffffffffffff8111156108d7575f5ffd5b89602060a0830284010111156108eb575f5ffd5b60209190910195509350610901604088016107a2565b9250606087013567ffffffffffffffff81111561091c575f5ffd5b61092889828a01610833565b979a9699509497509295939492505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a082840312801561095f575f5ffd5b5060405160a0810167ffffffffffffffff8111828210171561098f57634e487b7160e01b5f52604160045260245ffd5b60405261099b836107a2565b8152602083810135908201526109b3604084016107bd565b60408201526109c4606084016107bd565b60608201526109d5608084016107bd565b60808201529392505050565b5f602082840312156109f1575f5ffd5b5051919050565b84815260018060a01b0384166020820152608060408201525f8351806080840152806020860160a085015e5f60a0828501015260a0601f19601f83011684010191505060548310610a5757634e487b7160e01b5f52602160045260245ffd5b8260608301529594505050505056fea26469706673582212206e6b5747d52e1d3270b8c12f482e950ae886e7d8f9e61e7c0a0331b9cb4f52cd64736f6c634300081d00336080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6119c0806100d65f395ff3fe6080604052600436106100e4575f3560e01c80639852595c11610087578063d03c791411610057578063d03c791414610290578063e9ae5c53146102bf578063efbe1c1c146102d2578063f2fde38b146102e6575f5ffd5b80639852595c14610202578063a3f8eace14610221578063be9a655514610240578063c34c08e514610254575f5ffd5b80631aaead5e116100c25780631aaead5e14610176578063715018a614610195578063810ec23b146101a95780638da5cb5b146101d6575f5ffd5b80630fb5a6b4146100e857806313d033c0146101195780631916558714610155575b5f5ffd5b3480156100f3575f5ffd5b506100fc610305565b6040516001600160401b0390911681526020015b60405180910390f35b348015610124575f5ffd5b507f3c715f77db997bdb68403fafb54820cd57dedce553ed6315028656b0d601c700546001600160401b03166100fc565b348015610160575f5ffd5b5061017461016f36600461160d565b61033a565b005b348015610181575f5ffd5b5061017461019036600461163b565b61048f565b3480156101a0575f5ffd5b5061017461059e565b3480156101b4575f5ffd5b506101c86101c336600461169c565b6105b1565b604051908152602001610110565b3480156101e1575f5ffd5b506101ea610647565b6040516001600160a01b039091168152602001610110565b34801561020d575f5ffd5b506101c861021c36600461160d565b610675565b34801561022c575f5ffd5b506101c861023b36600461160d565b6106ae565b34801561024b575f5ffd5b506100fc6106d2565b34801561025f575f5ffd5b507f246106ffca67a7d3806ba14f6748826b9c39c9fa594b14f83fe454e8e9d0dc00546001600160a01b03166101ea565b34801561029b575f5ffd5b506102af6102aa3660046116dc565b610700565b6040519015158152602001610110565b6101746102cd3660046116f3565b610757565b3480156102dd575f5ffd5b506100fc6107be565b3480156102f1575f5ffd5b5061017461030036600461160d565b6107de565b7f78ce9ee9eb65fa0cf5bf10e861c3a95cb7c3c713c96ab1e5323a21e84679680154600160401b90046001600160401b031690565b610342610818565b5f61034c826106ae565b90506103588183610885565b505f826001600160a01b0316635bebed7e610371610647565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303815f875af11580156103bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103df9190611768565b90505f6103f46103ee85610675565b83610897565b905061040781610402610647565b6108c5565b50610411816108d0565b50807f78ce9ee9eb65fa0cf5bf10e861c3a95cb7c3c713c96ab1e5323a21e8467968006001600160a01b0386165f81815260209283526040908190209390935591518481527f2b0c4ec6f49851e91126b16eb680925b819182e196af5660912b8845a868b66d910160405180910390a250505061048c6108df565b50565b5f610498610909565b805490915060ff600160401b82041615906001600160401b03165f811580156104be5750825b90505f826001600160401b031660011480156104d95750303b155b9050811580156104e7575080155b156105055760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561052f57845460ff60401b1916600160401b1785555b61053a8a8a8a610931565b61054387610995565b61054c86610a5a565b831561059257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6105a6610aa3565b6105af5f610ad5565b565b60405163344ff10160e01b81523060048201525f9061063e906106389061062a906001600160a01b0387169063344ff10190602401602060405180830381865afa158015610601573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106259190611768565b610b45565b61063386610675565b610b51565b83610b87565b90505b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03165f9081527f78ce9ee9eb65fa0cf5bf10e861c3a95cb7c3c713c96ab1e5323a21e846796800602052604090205490565b5f6106416106cd6106bf84426105b1565b6106c885610675565b610be8565b610c1e565b7f78ce9ee9eb65fa0cf5bf10e861c3a95cb7c3c713c96ab1e5323a21e846796801546001600160401b031690565b5f5f5f5f61070d85610c2a565b50919450925090506001600160f81b03198316600160f81b14801561073a57506001600160f81b03198216155b801561074e57506001600160e01b03198116155b95945050505050565b61076333848484610c68565b61078757604051637cf8632b60e01b81523360048201526024015b60405180910390fd5b61079083610700565b6107ad57604051637f18127560e01b815260040160405180910390fd5b6107b882825f610cc5565b50505050565b5f6107c7610305565b6107cf6106d2565b6107d99190611793565b905090565b6107e6610aa3565b6001600160a01b03811661080f57604051631e4fbdf760e01b81525f600482015260240161077e565b61048c81610ad5565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c1561085857604051633ee5aeb560e01b815260040160405180910390fd5b6105af60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90610df5565b5f6108908383610dfc565b5090919050565b5f826108a9576108a65f610e70565b92505b816108ba576108b75f610e70565b91505b61063e83835f610e85565b5f6108908383610f32565b5f6108db8230610f32565b5090565b6105af5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0061087f565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610641565b610939610f78565b61094283610f9d565b7f78ce9ee9eb65fa0cf5bf10e861c3a95cb7c3c713c96ab1e5323a21e846796801805465ffffffffffff9384166fffffffffffffffffffffffffffffffff199091161791909216600160401b0217905550565b61099d610f78565b6109a5610305565b6001600160401b03168165ffffffffffff161115816109c2610305565b90916109fa576040516315956cd160e21b815265ffffffffffff90921660048301526001600160401b0316602482015260440161077e565b50508065ffffffffffff16610a0d6106d2565b610a179190611793565b7f3c715f77db997bdb68403fafb54820cd57dedce553ed6315028656b0d601c700805467ffffffffffffffff19166001600160401b039290921691909117905550565b610a62610f78565b7f246106ffca67a7d3806ba14f6748826b9c39c9fa594b14f83fe454e8e9d0dc0080546001600160a01b0319166001600160a01b0392909216919091179055565b33610aac610647565b6001600160a01b0316146105af5760405163118cdaa760e01b815233600482015260240161077e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f610641826006610fae565b5f82610b6357610b605f611045565b92505b81610b7457610b715f610e70565b91505b61063e83610b8184610b45565b5f610e85565b5f610bb97f3c715f77db997bdb68403fafb54820cd57dedce553ed6315028656b0d601c700546001600160401b031690565b6001600160401b0316826001600160401b031610610be057610bdb838361105a565b61063e565b505f92915050565b5f82610bfa57610bf75f611045565b92505b81610c0b57610c085f610e70565b91505b61063e83610c1884610b45565b5f6110ee565b5f610641826005610fae565b5f5f5f5f610c38855f611151565b610c43866001611151565b610c4e876006611189565b610c5988600a6111c1565b93509350935093509193509193565b5f610c9a7f246106ffca67a7d3806ba14f6748826b9c39c9fa594b14f83fe454e8e9d0dc00546001600160a01b031690565b6001600160a01b0316856001600160a01b0316148061074e5750306001600160a01b0386161461074e565b6060365f610cd386866111fc565b9092509050806001600160401b03811115610cf057610cf06117b2565b604051908082528060200260200182016040528015610d2357816020015b6060815260200190600190039081610d0e5790505b5092505f5b81811015610deb57610dc68186858585818110610d4757610d476117c6565b9050602002810190610d5991906117da565b610d6790602081019061160d565b868686818110610d7957610d796117c6565b9050602002810190610d8b91906117da565b60200135878787818110610da157610da16117c6565b9050602002810190610db391906117da565b610dc19060408101906117f8565b6112c1565b848281518110610dd857610dd86117c6565b6020908102919091010152600101610d28565b5050509392505050565b80825d5050565b5f51602061194b5f395f51905f528054604051630f8e573b60e21b8152600481018590526001600160a01b03848116602483015290911690633e395cec906044015b5f604051808303815f87803b158015610e55575f5ffd5b505af1158015610e67573d5f5f3e3d5ffd5b50505050505050565b5f610641826001600160401b03166005611353565b5f5f8215610e985750600160f81b610e9b565b505f5b5f51602061196b5f395f51905f525460405163022f65e760e31b81525f51602061194b5f395f51905f52916001600160a01b03169063117b2f3890610ee890899089908790600401611841565b6020604051808303815f875af1158015610f04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f289190611768565b9695505050505050565b5f51602061194b5f395f51905f528054604051635ca4b5b160e11b8152600481018590526001600160a01b0384811660248301529091169063b9496b6290604401610e3e565b610f806113a2565b6105af57604051631afcd79f60e31b815260040160405180910390fd5b610fa5610f78565b61048c816113bb565b5f51602061196b5f395f51905f52546040516307227b9160e21b81525f915f51602061194b5f395f51905f52916001600160a01b0390911690631c89ee4490610ffd9087908790600401611881565b6020604051808303815f875af1158015611019573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103d9190611768565b949350505050565b5f610641826001600160801b03166006611353565b5f6110636106d2565b6001600160401b0316826001600160401b0316101561108357505f610641565b61108b6107be565b6001600160401b0316826001600160401b0316106110aa575081610641565b6110e76110d1846110b96106d2565b6110c3908661189c565b6001600160401b03166113c3565b6110d9610305565b6001600160401b03166113ea565b9050610641565b5f5f82156111015750600160f81b611104565b505f5b5f51602061196b5f395f51905f52546040516303056db360e31b81525f51602061194b5f395f51905f52916001600160a01b03169063182b6d9890610ee890899089908790600401611841565b5f601f8260ff16111561117757604051631dd4bb1b60e11b815260040160405180910390fd5b506008021b6001600160f81b03191690565b5f601c8260ff1611156111af57604051631dd4bb1b60e11b815260040160405180910390fd5b506008021b6001600160e01b03191690565b5f600a8260ff1611156111e757604051631dd4bb1b60e11b815260040160405180910390fd5b506008021b69ffffffffffffffffffff191690565b365f8260208110156112215760405163eb0bcc5d60e01b815260040160405180910390fd5b5f61122f60208287896118bb565b611238916118e2565b9050601f19820181111561125f5760405163eb0bcc5d60e01b815260040160405180910390fd5b5f61126f6020830183888a6118bb565b611278916118e2565b90506001600160401b03811180611296575080602002602083850303105b156112b45760405163eb0bcc5d60e01b815260040160405180910390fd5b9501602001959350505050565b60605f806001600160a01b038716156112da57866112dc565b305b6001600160a01b03168686866040516112f69291906118ff565b5f6040518083038185875af1925050503d805f8114611330576040519150601f19603f3d011682016040523d82523d5f602084013e611335565b606091505b50915091506113468989848461140f565b9998505050505050505050565b5f51602061196b5f395f51905f5254604051639cd07acb60e01b81525f915f51602061194b5f395f51905f52916001600160a01b0390911690639cd07acb90610ffd9087908790600401611881565b5f6113ab610909565b54600160401b900460ff16919050565b6107e6610f78565b5f826113d5576113d25f611045565b92505b61063e836001600160801b03841660016114b6565b5f826113fc576113f95f611045565b92505b61063e836001600160801b038416611519565b60606001600160f81b031984166114305761142a83836115ae565b506114ae565b6001600160f81b03198416600160f81b036114895782611484577f2eea2f51f83910481f4b5ba28b7003a6e045d4b59f67dfff8d4c901194050089858360405161147b92919061190e565b60405180910390a15b6114ae565b6040516323a2408560e01b81526001600160f81b03198516600482015260240161077e565b509392505050565b5f5f82156114c95750600160f81b6114cc565b505f5b5f51602061196b5f395f51905f5254604051630afe14ad60e31b81525f51602061194b5f395f51905f52916001600160a01b0316906357f0a56890610ee890899089908790600401611841565b5f51602061196b5f395f51905f5254604051635a53accb60e01b81525f91600160f81b915f51602061194b5f395f51905f52916001600160a01b031690635a53accb9061156e90889088908790600401611841565b6020604051808303815f875af115801561158a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074e9190611768565b6060826115c3576115be826115ca565b610641565b5080610641565b8051156115d957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114611608575f5ffd5b919050565b5f6020828403121561161d575f5ffd5b61063e826115f2565b803565ffffffffffff81168114611608575f5ffd5b5f5f5f5f5f60a0868803121561164f575f5ffd5b611658866115f2565b945061166660208701611626565b935061167460408701611626565b925061168260608701611626565b9150611690608087016115f2565b90509295509295909350565b5f5f604083850312156116ad575f5ffd5b6116b6836115f2565b915060208301356001600160401b03811681146116d1575f5ffd5b809150509250929050565b5f602082840312156116ec575f5ffd5b5035919050565b5f5f5f60408486031215611705575f5ffd5b8335925060208401356001600160401b03811115611721575f5ffd5b8401601f81018613611731575f5ffd5b80356001600160401b03811115611746575f5ffd5b866020828401011115611757575f5ffd5b939660209190910195509293505050565b5f60208284031215611778575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908111156106415761064161177f565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e198336030181126117ee575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261180d575f5ffd5b8301803591506001600160401b03821115611826575f5ffd5b60200191503681900382131561183a575f5ffd5b9250929050565b92835260208301919091526001600160f81b031916604082015260600190565b6054811061187d57634e487b7160e01b5f52602160045260245ffd5b9052565b828152604081016118956020830184611861565b9392505050565b6001600160401b0382811682821603908111156106415761064161177f565b5f5f858511156118c9575f5ffd5b838611156118d5575f5ffd5b5050820193919092039150565b80356020831015610641575f19602084900360031b1b1692915050565b818382375f9101908152919050565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f830116840101915050939250505056feed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600ed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea601a26469706673582212201f2e93da8f1a5ab45352a4349f38b1910f72f6a840e0b4ef01f718b329d40f0364736f6c634300081d0033",
287
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c806314a5fd8314610043578063b4550a3814610072578063c61666db14610087575b5f5ffd5b6100566100513660046107d2565b61009a565b6040516001600160a01b03909116815260200160405180910390f35b610085610080366004610878565b6100db565b005b6100566100953660046107d2565b610334565b5f6100d17f00000000000000000000000000000000000000000000000000000000000000006100cc8888888888610454565b6104ce565b9695505050505050565b835f5b8181101561032a575f8787838181106100f9576100f961093a565b905060a0020180360381019061010f919061094e565b6060810151608082015191925065ffffffffffff808216908316111561015f576040516315956cd160e21b815265ffffffffffff9283166004820152911660248201526044015b60405180910390fd5b505080515f906001600160a01b031661019757604051631e4fbdf760e01b81526001600160a01b039091166004820152602401610156565b505f6101b5825f01518360400151846060015185608001518b61009a565b90505f5f6101fc846020015189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061053992505050565b9050610208818d610546565b5060405163eb3155b560e01b81523360048201526001600160a01b038481166024830152604482018390528d169063eb3155b5906064016020604051808303815f875af115801561025b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027f91906109e1565b9150508a6001600160a01b0316835f01516001600160a01b0316836001600160a01b03167f71711e1b968738dfe628b1cd84ad6a61f851fb28ce36f9c5c3731e797004fad5848760400151886060015189608001518f60405161031795949392919094855265ffffffffffff9384166020860152918316604085015290911660608301526001600160a01b0316608082015260a00190565b60405180910390a45050506001016100de565b5050505050505050565b5f5f61036c7f00000000000000000000000000000000000000000000000000000000000000006103678989898989610454565b610558565b604051630d5756af60e11b81526001600160a01b03898116600483015265ffffffffffff808a166024840152808916604484015287166064830152858116608483015291925090821690631aaead5e9060a4015f604051808303815f87803b1580156103d6575f5ffd5b505af11580156103e8573d5f5f3e3d5ffd5b50506040805165ffffffffffff8a81168252898116602083015288168183015290516001600160a01b03878116945085811693508b16917f9195f344285379ebeb1910bb6c9214f680b24c0a2fa4642e4e903eac944d351a919081900360600190a49695505050505050565b604080516bffffffffffffffffffffffff19606088811b821660208401526001600160d01b031960d089811b8216603486015288811b8216603a86015287901b16938301939093529183901b90911660468201525f90605a0160405160208183030381529060405280519060200120905095945050505050565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff602482015260148101839052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018290526037600c820120607882015260556043909101205f906001600160a01b03165b9392505050565b5f61053283836005610564565b5f6105518383610684565b5090919050565b5f61053283835f61070d565b7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6015460405163196d0b9b60e01b81525f917fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea600916001600160a01b039091169063196d0b9b906105dd9088903390899089906004016109f8565b6020604051808303815f875af11580156105f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061d91906109e1565b8154604051630f8e573b60e21b8152600481018390523360248201529193506001600160a01b031690633e395cec906044015f604051808303815f87803b158015610666575f5ffd5b505af1158015610678573d5f5f3e3d5ffd5b50505050509392505050565b5f7fed8d60e34876f751cc8b014c560745351147d9de11b9347c854e881b128ea6008054604051630f8e573b60e21b8152600481018690526001600160a01b038581166024830152929350911690633e395cec906044015f604051808303815f87803b1580156106f2575f5ffd5b505af1158015610704573d5f5f3e3d5ffd5b50505050505050565b5f814710156107385760405163cf47918160e01b815247600482015260248101839052604401610156565b763d602d80600a3d3981f3363d3d373d3d3d363d730000008460601b60e81c175f526e5af43d82803e903d91602b57fd5bf38460781b17602052826037600984f590506001600160a01b0381166105325760405163b06ebf3d60e01b815260040160405180910390fd5b80356001600160a01b03811681146107b8575f5ffd5b919050565b803565ffffffffffff811681146107b8575f5ffd5b5f5f5f5f5f60a086880312156107e6575f5ffd5b6107ef866107a2565b94506107fd602087016107bd565b935061080b604087016107bd565b9250610819606087016107bd565b9150610827608087016107a2565b90509295509295909350565b5f5f83601f840112610843575f5ffd5b50813567ffffffffffffffff81111561085a575f5ffd5b602083019150836020828501011115610871575f5ffd5b9250929050565b5f5f5f5f5f5f6080878903121561088d575f5ffd5b610896876107a2565b9550602087013567ffffffffffffffff8111156108b1575f5ffd5b8701601f810189136108c1575f5ffd5b803567ffffffffffffffff8111156108d7575f5ffd5b89602060a0830284010111156108eb575f5ffd5b60209190910195509350610901604088016107a2565b9250606087013567ffffffffffffffff81111561091c575f5ffd5b61092889828a01610833565b979a9699509497509295939492505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a082840312801561095f575f5ffd5b5060405160a0810167ffffffffffffffff8111828210171561098f57634e487b7160e01b5f52604160045260245ffd5b60405261099b836107a2565b8152602083810135908201526109b3604084016107bd565b60408201526109c4606084016107bd565b60608201526109d5608084016107bd565b60808201529392505050565b5f602082840312156109f1575f5ffd5b5051919050565b84815260018060a01b0384166020820152608060408201525f8351806080840152806020860160a085015e5f60a0828501015260a0601f19601f83011684010191505060548310610a5757634e487b7160e01b5f52602160045260245ffd5b8260608301529594505050505056fea26469706673582212206e6b5747d52e1d3270b8c12f482e950ae886e7d8f9e61e7c0a0331b9cb4f52cd64736f6c634300081d0033",
288
+ "linkReferences": {},
289
+ "deployedLinkReferences": {}
290
+ }
@@ -0,0 +1,246 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "VestingWalletConfidential",
4
+ "sourceName": "contracts/finance/VestingWalletConfidential.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "InvalidInitialization",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "NotInitializing",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [
18
+ {
19
+ "internalType": "address",
20
+ "name": "owner",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "name": "OwnableInvalidOwner",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "account",
32
+ "type": "address"
33
+ }
34
+ ],
35
+ "name": "OwnableUnauthorizedAccount",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "ReentrancyGuardReentrantCall",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "anonymous": false,
45
+ "inputs": [
46
+ {
47
+ "indexed": false,
48
+ "internalType": "uint64",
49
+ "name": "version",
50
+ "type": "uint64"
51
+ }
52
+ ],
53
+ "name": "Initialized",
54
+ "type": "event"
55
+ },
56
+ {
57
+ "anonymous": false,
58
+ "inputs": [
59
+ {
60
+ "indexed": true,
61
+ "internalType": "address",
62
+ "name": "previousOwner",
63
+ "type": "address"
64
+ },
65
+ {
66
+ "indexed": true,
67
+ "internalType": "address",
68
+ "name": "newOwner",
69
+ "type": "address"
70
+ }
71
+ ],
72
+ "name": "OwnershipTransferred",
73
+ "type": "event"
74
+ },
75
+ {
76
+ "anonymous": false,
77
+ "inputs": [
78
+ {
79
+ "indexed": true,
80
+ "internalType": "address",
81
+ "name": "token",
82
+ "type": "address"
83
+ },
84
+ {
85
+ "indexed": false,
86
+ "internalType": "euint64",
87
+ "name": "amount",
88
+ "type": "bytes32"
89
+ }
90
+ ],
91
+ "name": "VestingWalletConfidentialTokenReleased",
92
+ "type": "event"
93
+ },
94
+ {
95
+ "inputs": [],
96
+ "name": "duration",
97
+ "outputs": [
98
+ {
99
+ "internalType": "uint64",
100
+ "name": "",
101
+ "type": "uint64"
102
+ }
103
+ ],
104
+ "stateMutability": "view",
105
+ "type": "function"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "end",
110
+ "outputs": [
111
+ {
112
+ "internalType": "uint64",
113
+ "name": "",
114
+ "type": "uint64"
115
+ }
116
+ ],
117
+ "stateMutability": "view",
118
+ "type": "function"
119
+ },
120
+ {
121
+ "inputs": [],
122
+ "name": "owner",
123
+ "outputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "",
127
+ "type": "address"
128
+ }
129
+ ],
130
+ "stateMutability": "view",
131
+ "type": "function"
132
+ },
133
+ {
134
+ "inputs": [
135
+ {
136
+ "internalType": "address",
137
+ "name": "token",
138
+ "type": "address"
139
+ }
140
+ ],
141
+ "name": "releasable",
142
+ "outputs": [
143
+ {
144
+ "internalType": "euint64",
145
+ "name": "",
146
+ "type": "bytes32"
147
+ }
148
+ ],
149
+ "stateMutability": "nonpayable",
150
+ "type": "function"
151
+ },
152
+ {
153
+ "inputs": [
154
+ {
155
+ "internalType": "address",
156
+ "name": "token",
157
+ "type": "address"
158
+ }
159
+ ],
160
+ "name": "release",
161
+ "outputs": [],
162
+ "stateMutability": "nonpayable",
163
+ "type": "function"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "address",
169
+ "name": "token",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "released",
174
+ "outputs": [
175
+ {
176
+ "internalType": "euint64",
177
+ "name": "",
178
+ "type": "bytes32"
179
+ }
180
+ ],
181
+ "stateMutability": "view",
182
+ "type": "function"
183
+ },
184
+ {
185
+ "inputs": [],
186
+ "name": "renounceOwnership",
187
+ "outputs": [],
188
+ "stateMutability": "nonpayable",
189
+ "type": "function"
190
+ },
191
+ {
192
+ "inputs": [],
193
+ "name": "start",
194
+ "outputs": [
195
+ {
196
+ "internalType": "uint64",
197
+ "name": "",
198
+ "type": "uint64"
199
+ }
200
+ ],
201
+ "stateMutability": "view",
202
+ "type": "function"
203
+ },
204
+ {
205
+ "inputs": [
206
+ {
207
+ "internalType": "address",
208
+ "name": "newOwner",
209
+ "type": "address"
210
+ }
211
+ ],
212
+ "name": "transferOwnership",
213
+ "outputs": [],
214
+ "stateMutability": "nonpayable",
215
+ "type": "function"
216
+ },
217
+ {
218
+ "inputs": [
219
+ {
220
+ "internalType": "address",
221
+ "name": "token",
222
+ "type": "address"
223
+ },
224
+ {
225
+ "internalType": "uint64",
226
+ "name": "timestamp",
227
+ "type": "uint64"
228
+ }
229
+ ],
230
+ "name": "vestedAmount",
231
+ "outputs": [
232
+ {
233
+ "internalType": "euint128",
234
+ "name": "",
235
+ "type": "bytes32"
236
+ }
237
+ ],
238
+ "stateMutability": "nonpayable",
239
+ "type": "function"
240
+ }
241
+ ],
242
+ "bytecode": "0x",
243
+ "deployedBytecode": "0x",
244
+ "linkReferences": {},
245
+ "deployedLinkReferences": {}
246
+ }