@openzeppelin/confidential-contracts 0.4.0 → 0.5.0-rc.0

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 (39) hide show
  1. package/build/contracts/BatcherConfidential.json +5 -0
  2. package/build/contracts/CheckpointsConfidential.json +2 -2
  3. package/build/contracts/ERC7984.json +6 -28
  4. package/build/contracts/ERC7984BalanceCapHookModule.json +277 -0
  5. package/build/contracts/ERC7984ERC20Wrapper.json +6 -28
  6. package/build/contracts/ERC7984Freezable.json +6 -28
  7. package/build/contracts/ERC7984HolderCapHookModule.json +291 -0
  8. package/build/contracts/ERC7984HookModule.json +200 -0
  9. package/build/contracts/ERC7984Hooked.json +832 -0
  10. package/build/contracts/ERC7984IdentityCheck.json +691 -0
  11. package/build/contracts/ERC7984ObserverAccess.json +6 -28
  12. package/build/contracts/ERC7984Omnibus.json +6 -28
  13. package/build/contracts/ERC7984Restricted.json +6 -28
  14. package/build/contracts/ERC7984Rwa.json +61 -29
  15. package/build/contracts/ERC7984Utils.json +2 -2
  16. package/build/contracts/ERC7984Votes.json +6 -28
  17. package/build/contracts/FHESafeMath.json +2 -2
  18. package/build/contracts/IERC7984HookModule.json +151 -0
  19. package/build/contracts/IERC7984Rwa.json +87 -0
  20. package/build/contracts/IIdentityRegistry.json +30 -0
  21. package/finance/BatcherConfidential.sol +7 -3
  22. package/governance/utils/VotesConfidential.sol +2 -2
  23. package/interfaces/IERC7984HookModule.sol +39 -0
  24. package/interfaces/IERC7984Receiver.sol +3 -1
  25. package/interfaces/IERC7984Rwa.sol +28 -1
  26. package/package.json +1 -1
  27. package/token/ERC7984/ERC7984.sol +39 -28
  28. package/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol +3 -3
  29. package/token/ERC7984/extensions/ERC7984Freezable.sol +3 -7
  30. package/token/ERC7984/extensions/ERC7984Hooked.sol +158 -0
  31. package/token/ERC7984/extensions/ERC7984IdentityCheck.sol +58 -0
  32. package/token/ERC7984/extensions/ERC7984Restricted.sol +3 -3
  33. package/token/ERC7984/extensions/ERC7984Rwa.sol +65 -28
  34. package/token/ERC7984/utils/ERC7984BalanceCapHookModule.sol +92 -0
  35. package/token/ERC7984/utils/ERC7984HolderCapHookModule.sol +145 -0
  36. package/token/ERC7984/utils/ERC7984HookModule.sol +170 -0
  37. package/utils/FHESafeMath.sol +26 -1
  38. package/utils/HandleAccessManager.sol +5 -3
  39. package/utils/structs/CheckpointsConfidential.sol +1 -2
@@ -35,6 +35,11 @@
35
35
  "name": "BatchUnexpectedState",
36
36
  "type": "error"
37
37
  },
38
+ {
39
+ "inputs": [],
40
+ "name": "DuplicateUnderlyingTokens",
41
+ "type": "error"
42
+ },
38
43
  {
39
44
  "inputs": [
40
45
  {
@@ -3,8 +3,8 @@
3
3
  "contractName": "CheckpointsConfidential",
4
4
  "sourceName": "contracts/utils/structs/CheckpointsConfidential.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212209911b4159ba93814534f221ae80d194900dcacdba46522596739ed85161f0be164736f6c634300081b0033",
7
- "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea26469706673582212209911b4159ba93814534f221ae80d194900dcacdba46522596739ed85161f0be164736f6c634300081b0033",
6
+ "bytecode": "0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220e35bd28d7ebee73cf0fa3ab8ac1a630366b63f8012cb1e2d128b0b527f144a4f64736f6c634300081b0033",
7
+ "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040525f5ffdfea2646970667358221220e35bd28d7ebee73cf0fa3ab8ac1a630366b63f8012cb1e2d128b0b527f144a4f64736f6c634300081b0033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -3,17 +3,6 @@
3
3
  "contractName": "ERC7984",
4
4
  "sourceName": "contracts/token/ERC7984/ERC7984.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "uint256",
10
- "name": "requestId",
11
- "type": "uint256"
12
- }
13
- ],
14
- "name": "ERC7984InvalidGatewayRequest",
15
- "type": "error"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -79,17 +68,6 @@
79
68
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
69
  "type": "error"
81
70
  },
82
- {
83
- "inputs": [
84
- {
85
- "internalType": "address",
86
- "name": "holder",
87
- "type": "address"
88
- }
89
- ],
90
- "name": "ERC7984ZeroBalance",
91
- "type": "error"
92
- },
93
71
  {
94
72
  "inputs": [],
95
73
  "name": "InvalidKMSSignatures",
@@ -325,7 +303,7 @@
325
303
  "outputs": [
326
304
  {
327
305
  "internalType": "euint64",
328
- "name": "transferred",
306
+ "name": "",
329
307
  "type": "bytes32"
330
308
  }
331
309
  ],
@@ -359,7 +337,7 @@
359
337
  "outputs": [
360
338
  {
361
339
  "internalType": "euint64",
362
- "name": "transferred",
340
+ "name": "",
363
341
  "type": "bytes32"
364
342
  }
365
343
  ],
@@ -393,7 +371,7 @@
393
371
  "outputs": [
394
372
  {
395
373
  "internalType": "euint64",
396
- "name": "transferred",
374
+ "name": "",
397
375
  "type": "bytes32"
398
376
  }
399
377
  ],
@@ -422,7 +400,7 @@
422
400
  "outputs": [
423
401
  {
424
402
  "internalType": "euint64",
425
- "name": "transferred",
403
+ "name": "",
426
404
  "type": "bytes32"
427
405
  }
428
406
  ],
@@ -461,7 +439,7 @@
461
439
  "outputs": [
462
440
  {
463
441
  "internalType": "euint64",
464
- "name": "transferred",
442
+ "name": "",
465
443
  "type": "bytes32"
466
444
  }
467
445
  ],
@@ -495,7 +473,7 @@
495
473
  "outputs": [
496
474
  {
497
475
  "internalType": "euint64",
498
- "name": "transferred",
476
+ "name": "",
499
477
  "type": "bytes32"
500
478
  }
501
479
  ],
@@ -0,0 +1,277 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC7984BalanceCapHookModule",
4
+ "sourceName": "contracts/token/ERC7984/utils/ERC7984BalanceCapHookModule.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "token",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "ERC7984HookModuleAlreadyInstalled",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "token",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "name": "ERC7984HookModuleNotInstalled",
26
+ "type": "error"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "account",
33
+ "type": "address"
34
+ }
35
+ ],
36
+ "name": "ERC7984HookModuleUnauthorizedAccount",
37
+ "type": "error"
38
+ },
39
+ {
40
+ "inputs": [
41
+ {
42
+ "internalType": "euint64",
43
+ "name": "amount",
44
+ "type": "bytes32"
45
+ },
46
+ {
47
+ "internalType": "address",
48
+ "name": "user",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ERC7984HookModuleUnauthorizedUseOfEncryptedAmount",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "bytes32",
59
+ "name": "handle",
60
+ "type": "bytes32"
61
+ },
62
+ {
63
+ "internalType": "address",
64
+ "name": "sender",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "name": "SenderNotAllowedToUseHandle",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "anonymous": false,
73
+ "inputs": [
74
+ {
75
+ "indexed": true,
76
+ "internalType": "address",
77
+ "name": "token",
78
+ "type": "address"
79
+ },
80
+ {
81
+ "indexed": false,
82
+ "internalType": "euint64",
83
+ "name": "newMaxBalance",
84
+ "type": "bytes32"
85
+ }
86
+ ],
87
+ "name": "ERC7984BalanceCapHookModuleMaxBalanceSet",
88
+ "type": "event"
89
+ },
90
+ {
91
+ "anonymous": false,
92
+ "inputs": [
93
+ {
94
+ "indexed": true,
95
+ "internalType": "address",
96
+ "name": "token",
97
+ "type": "address"
98
+ },
99
+ {
100
+ "indexed": true,
101
+ "internalType": "address",
102
+ "name": "from",
103
+ "type": "address"
104
+ },
105
+ {
106
+ "indexed": true,
107
+ "internalType": "address",
108
+ "name": "to",
109
+ "type": "address"
110
+ },
111
+ {
112
+ "indexed": false,
113
+ "internalType": "euint64",
114
+ "name": "encryptedAmount",
115
+ "type": "bytes32"
116
+ },
117
+ {
118
+ "indexed": false,
119
+ "internalType": "ebool",
120
+ "name": "result",
121
+ "type": "bytes32"
122
+ },
123
+ {
124
+ "indexed": false,
125
+ "internalType": "bytes32",
126
+ "name": "context",
127
+ "type": "bytes32"
128
+ }
129
+ ],
130
+ "name": "ERC7984HookModuleResult",
131
+ "type": "event"
132
+ },
133
+ {
134
+ "inputs": [
135
+ {
136
+ "internalType": "address",
137
+ "name": "token",
138
+ "type": "address"
139
+ }
140
+ ],
141
+ "name": "maxBalance",
142
+ "outputs": [
143
+ {
144
+ "internalType": "euint64",
145
+ "name": "",
146
+ "type": "bytes32"
147
+ }
148
+ ],
149
+ "stateMutability": "view",
150
+ "type": "function"
151
+ },
152
+ {
153
+ "inputs": [
154
+ {
155
+ "internalType": "bytes",
156
+ "name": "initData",
157
+ "type": "bytes"
158
+ }
159
+ ],
160
+ "name": "onInstall",
161
+ "outputs": [],
162
+ "stateMutability": "nonpayable",
163
+ "type": "function"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "bytes",
169
+ "name": "deinitData",
170
+ "type": "bytes"
171
+ }
172
+ ],
173
+ "name": "onUninstall",
174
+ "outputs": [],
175
+ "stateMutability": "nonpayable",
176
+ "type": "function"
177
+ },
178
+ {
179
+ "inputs": [
180
+ {
181
+ "internalType": "address",
182
+ "name": "from",
183
+ "type": "address"
184
+ },
185
+ {
186
+ "internalType": "address",
187
+ "name": "to",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "internalType": "euint64",
192
+ "name": "encryptedAmount",
193
+ "type": "bytes32"
194
+ }
195
+ ],
196
+ "name": "postTransfer",
197
+ "outputs": [],
198
+ "stateMutability": "nonpayable",
199
+ "type": "function"
200
+ },
201
+ {
202
+ "inputs": [
203
+ {
204
+ "internalType": "address",
205
+ "name": "from",
206
+ "type": "address"
207
+ },
208
+ {
209
+ "internalType": "address",
210
+ "name": "to",
211
+ "type": "address"
212
+ },
213
+ {
214
+ "internalType": "euint64",
215
+ "name": "encryptedAmount",
216
+ "type": "bytes32"
217
+ }
218
+ ],
219
+ "name": "preTransfer",
220
+ "outputs": [
221
+ {
222
+ "internalType": "ebool",
223
+ "name": "",
224
+ "type": "bytes32"
225
+ }
226
+ ],
227
+ "stateMutability": "nonpayable",
228
+ "type": "function"
229
+ },
230
+ {
231
+ "inputs": [
232
+ {
233
+ "internalType": "address",
234
+ "name": "token",
235
+ "type": "address"
236
+ },
237
+ {
238
+ "internalType": "externalEuint64",
239
+ "name": "newMaxBalance",
240
+ "type": "bytes32"
241
+ },
242
+ {
243
+ "internalType": "bytes",
244
+ "name": "inputProof",
245
+ "type": "bytes"
246
+ }
247
+ ],
248
+ "name": "setMaxBalance",
249
+ "outputs": [],
250
+ "stateMutability": "nonpayable",
251
+ "type": "function"
252
+ },
253
+ {
254
+ "inputs": [
255
+ {
256
+ "internalType": "bytes4",
257
+ "name": "interfaceId",
258
+ "type": "bytes4"
259
+ }
260
+ ],
261
+ "name": "supportsInterface",
262
+ "outputs": [
263
+ {
264
+ "internalType": "bool",
265
+ "name": "",
266
+ "type": "bool"
267
+ }
268
+ ],
269
+ "stateMutability": "view",
270
+ "type": "function"
271
+ }
272
+ ],
273
+ "bytecode": "0x6080604052348015600e575f5ffd5b5061121b8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063386971cb11610058578063386971cb146100dc5780636d61fe70146101045780638a91b0e314610117578063bdea13b81461012a575f5ffd5b806301ffc9a71461007e578063088fedf1146100a657806332d26c06146100c7575b5f5ffd5b61009161008c366004610e92565b61013d565b60405190151581526020015b60405180910390f35b6100b96100b4366004610ed4565b610173565b60405190815260200161009d565b6100da6100d5366004610ed4565b6101dc565b005b6100b96100ea366004610f0e565b6001600160a01b03165f9081526001602052604090205490565b6100da610112366004610f65565b610221565b6100da610125366004610f65565b61026d565b6100da610138366004610fa4565b6102b4565b5f6001600160e01b0319821663376b73d960e21b148061016d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f61017e8233610394565b823390916101b65760405163c664688160e01b815260048101929092526001600160a01b031660248201526044015b60405180910390fd5b50505f6101c53386868661039f565b90506101d181336104ea565b5090505b9392505050565b6101e68133610394565b813390916102195760405163c664688160e01b815260048101929092526001600160a01b031660248201526044016101ad565b50505b505050565b335f8181526020819052604090205460ff161561025d5760405163d1f301d960e01b81526001600160a01b0390911660048201526024016101ad565b5061026933838361050d565b5050565b335f8181526020819052604090205460ff166102a857604051631c73188f60e11b81526001600160a01b0390911660048201526024016101ad565b50610269338383610554565b6040516307feec1960e21b81523360048201526001600160a01b03851690631ffbb06490602401602060405180830381865afa1580156102f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031a9190610ffa565b3390610345576040516357a8db8960e01b81526001600160a01b0390911660048201526024016101ad565b5061038e846103898585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061059392505050565b6105f9565b50505050565b5f6101d5838361066f565b5f806001600160a01b03841615806103c85750836001600160a01b0316856001600160a01b0316145b806103f657506103f46103ef876001600160a01b03165f9081526001602052604090205490565b151590565b155b1561040c5761040560016106fb565b90506104bd565b60405163344ff10160e01b81526001600160a01b0385811660048301525f919088169063344ff10190602401602060405180830381865afa158015610453573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104779190611019565b90506104838782610716565b5f61048e8286610769565b9150506104b8816104b38a6001600160a01b03165f9081526001602052604090205490565b6107b3565b925050505b6104cb86868686855f6107e1565b6104e0816104db88888888610868565b61087c565b9695505050505050565b5f826104fc576104f95f6106fb565b92505b61050683836108aa565b5090919050565b610534836001600160a01b03165f908152602081905260409020805460ff19166001179055565b5f8061054283850185611044565b91509150610219856103898484610593565b610578836001600160a01b03165f908152602081905260409020805460ff19169055565b50506001600160a01b03165f90815260016020526040812055565b5f81515f146105af576105a88383600561091e565b905061016d565b825f8190036105c9576105c15f610a18565b91505061016d565b6105d3813361066f565b6105a857604051630276b5d960e01b8152600481018290523360248201526044016101ad565b6001600160a01b0382165f90815260016020526040902081905561061c81610a2e565b506106278133610a4e565b50816001600160a01b03167f39d51928e0313fc7c7204bbf141a3d3bf0498b8f174db4d2532209a6c851aed98260405161066391815260200190565b60405180910390a25050565b5f805f5160206111c65f395f51905f5280546040516382027b6d60e01b8152600481018790526001600160a01b0386811660248301529293509116906382027b6d90604401602060405180830381865afa1580156106cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190610ffa565b949350505050565b5f61016d8261070a575f61070d565b60015b60ff165f610a6a565b8061071f575050565b6107298183610394565b8183909161075c5760405163c664688160e01b815260048101929092526001600160a01b031660248201526044016101ad565b505061026982825f610af9565b5f80836107845761077a60016106fb565b83915091506107ac565b5f61078f8585610b3a565b905061079b8186610b68565b92506107a8838287610b96565b9150505b9250929050565b5f826107c5576107c25f610a18565b92505b816107d6576107d35f610a18565b91505b6101d583835f610bd5565b811561080c576001600160a01b0385161561080c576107ff82610c78565b5061080a8286610c87565b505b60408051848152602081018490529081018290526001600160a01b0380861691878216918916907f628d58d11026d89293f28d1e6f43548b065fdd234364d09783fbae05526cdaee9060600160405180910390a4505050505050565b5f61087360016106fb565b95945050505050565b5f8261088e5761088b5f6106fb565b92505b8161089f5761089c5f6106fb565b91505b6101d583835f610c96565b5f5160206111c65f395f51905f528054604051630f8e573b60e21b8152600481018590526001600160a01b03848116602483015290911690633e395cec906044015b5f604051808303815f87803b158015610903575f5ffd5b505af1158015610915573d5f5f3e3d5ffd5b50505050505050565b5f5160206111a65f395f51905f525460405163045fc19560e11b81525f915f5160206111c65f395f51905f52916001600160a01b03909116906308bf832a90610971908890339089908990600401611121565b6020604051808303815f875af115801561098d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190611019565b8154604051630f8e573b60e21b8152600481018390523360248201529193506001600160a01b031690633e395cec906044015f604051808303815f87803b1580156109fa575f5ffd5b505af1158015610a0c573d5f5f3e3d5ffd5b50505050509392505050565b5f61016d8267ffffffffffffffff166005610a6a565b5f81610a4057610a3d5f610a18565b91505b610a4a8230610cf9565b5090565b5f82610a6057610a5d5f610a18565b92505b6105068383610cf9565b5f5160206111a65f395f51905f5254604051639cd07acb60e01b81525f915f5160206111c65f395f51905f52916001600160a01b0390911690639cd07acb90610ab99087908790600401611171565b6020604051808303815f875af1158015610ad5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190611019565b811561021c576040516306d4a79960e01b81526004810183905230602482015281151560448201526001600160a01b038416906306d4a799906064016108ec565b5f82610b4c57610b495f610a18565b92505b81610b5d57610b5a5f610a18565b91505b6101d583835f610d3f565b5f82610b7a57610b775f610a18565b92505b81610b8b57610b885f610a18565b91505b6101d583835f610da2565b5f83610ba857610ba55f6106fb565b93505b82610bb957610bb65f610a18565b92505b81610bca57610bc75f610a18565b91505b6106f3848484610e05565b5f5f8215610be85750600160f81b610beb565b505f5b5f5160206111a65f395f51905f5254604051631d44e90160e21b81525f5160206111c65f395f51905f52916001600160a01b031690637513a40490610c3890899089908790600401611185565b6020604051808303815f875af1158015610c54573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e09190611019565b5f81610a4057610a3d5f6106fb565b5f82610a6057610a5d5f6106fb565b5f5f8215610ca95750600160f81b610cac565b505f5b5f5160206111a65f395f51905f525460405163d99882d560e01b81525f5160206111c65f395f51905f52916001600160a01b03169063d99882d590610c3890899089908790600401611185565b5f5160206111c65f395f51905f528054604051635ca4b5b160e11b8152600481018590526001600160a01b0384811660248301529091169063b9496b62906044016108ec565b5f5f8215610d525750600160f81b610d55565b505f5b5f5160206111a65f395f51905f525460405163022f65e760e31b81525f5160206111c65f395f51905f52916001600160a01b03169063117b2f3890610c3890899089908790600401611185565b5f5f8215610db55750600160f81b610db8565b505f5b5f5160206111a65f395f51905f5254604051631391547f60e01b81525f5160206111c65f395f51905f52916001600160a01b031690631391547f90610c3890899089908790600401611185565b5f805f5160206111c65f395f51905f526001810154604051637702dcff60e01b81526004810188905260248101879052604481018690529192506001600160a01b031690637702dcff906064016020604051808303815f875af1158015610e6e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108739190611019565b5f60208284031215610ea2575f5ffd5b81356001600160e01b0319811681146101d5575f5ffd5b80356001600160a01b0381168114610ecf575f5ffd5b919050565b5f5f5f60608486031215610ee6575f5ffd5b610eef84610eb9565b9250610efd60208501610eb9565b929592945050506040919091013590565b5f60208284031215610f1e575f5ffd5b6101d582610eb9565b5f5f83601f840112610f37575f5ffd5b50813567ffffffffffffffff811115610f4e575f5ffd5b6020830191508360208285010111156107ac575f5ffd5b5f5f60208385031215610f76575f5ffd5b823567ffffffffffffffff811115610f8c575f5ffd5b610f9885828601610f27565b90969095509350505050565b5f5f5f5f60608587031215610fb7575f5ffd5b610fc085610eb9565b935060208501359250604085013567ffffffffffffffff811115610fe2575f5ffd5b610fee87828801610f27565b95989497509550505050565b5f6020828403121561100a575f5ffd5b815180151581146101d5575f5ffd5b5f60208284031215611029575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215611055575f5ffd5b82359150602083013567ffffffffffffffff811115611072575f5ffd5b8301601f81018513611082575f5ffd5b803567ffffffffffffffff81111561109c5761109c611030565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156110cb576110cb611030565b6040528181528282016020018710156110e2575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b6054811061111d57634e487b7160e01b5f52602160045260245ffd5b9052565b84815260018060a01b0384166020820152608060408201525f8351806080840152806020860160a085015e5f60a0828501015260a0601f19601f8301168401019150506108736060830184611101565b828152604081016101d56020830184611101565b92835260208301919091526001600160f81b03191660408201526060019056fe9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497019e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e4649700a264697066735822122052965f4ad4f838486347d15c623d323991a1023933df880bcbf2884a63f9179864736f6c634300081b0033",
274
+ "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063386971cb11610058578063386971cb146100dc5780636d61fe70146101045780638a91b0e314610117578063bdea13b81461012a575f5ffd5b806301ffc9a71461007e578063088fedf1146100a657806332d26c06146100c7575b5f5ffd5b61009161008c366004610e92565b61013d565b60405190151581526020015b60405180910390f35b6100b96100b4366004610ed4565b610173565b60405190815260200161009d565b6100da6100d5366004610ed4565b6101dc565b005b6100b96100ea366004610f0e565b6001600160a01b03165f9081526001602052604090205490565b6100da610112366004610f65565b610221565b6100da610125366004610f65565b61026d565b6100da610138366004610fa4565b6102b4565b5f6001600160e01b0319821663376b73d960e21b148061016d57506301ffc9a760e01b6001600160e01b03198316145b92915050565b5f61017e8233610394565b823390916101b65760405163c664688160e01b815260048101929092526001600160a01b031660248201526044015b60405180910390fd5b50505f6101c53386868661039f565b90506101d181336104ea565b5090505b9392505050565b6101e68133610394565b813390916102195760405163c664688160e01b815260048101929092526001600160a01b031660248201526044016101ad565b50505b505050565b335f8181526020819052604090205460ff161561025d5760405163d1f301d960e01b81526001600160a01b0390911660048201526024016101ad565b5061026933838361050d565b5050565b335f8181526020819052604090205460ff166102a857604051631c73188f60e11b81526001600160a01b0390911660048201526024016101ad565b50610269338383610554565b6040516307feec1960e21b81523360048201526001600160a01b03851690631ffbb06490602401602060405180830381865afa1580156102f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031a9190610ffa565b3390610345576040516357a8db8960e01b81526001600160a01b0390911660048201526024016101ad565b5061038e846103898585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061059392505050565b6105f9565b50505050565b5f6101d5838361066f565b5f806001600160a01b03841615806103c85750836001600160a01b0316856001600160a01b0316145b806103f657506103f46103ef876001600160a01b03165f9081526001602052604090205490565b151590565b155b1561040c5761040560016106fb565b90506104bd565b60405163344ff10160e01b81526001600160a01b0385811660048301525f919088169063344ff10190602401602060405180830381865afa158015610453573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104779190611019565b90506104838782610716565b5f61048e8286610769565b9150506104b8816104b38a6001600160a01b03165f9081526001602052604090205490565b6107b3565b925050505b6104cb86868686855f6107e1565b6104e0816104db88888888610868565b61087c565b9695505050505050565b5f826104fc576104f95f6106fb565b92505b61050683836108aa565b5090919050565b610534836001600160a01b03165f908152602081905260409020805460ff19166001179055565b5f8061054283850185611044565b91509150610219856103898484610593565b610578836001600160a01b03165f908152602081905260409020805460ff19169055565b50506001600160a01b03165f90815260016020526040812055565b5f81515f146105af576105a88383600561091e565b905061016d565b825f8190036105c9576105c15f610a18565b91505061016d565b6105d3813361066f565b6105a857604051630276b5d960e01b8152600481018290523360248201526044016101ad565b6001600160a01b0382165f90815260016020526040902081905561061c81610a2e565b506106278133610a4e565b50816001600160a01b03167f39d51928e0313fc7c7204bbf141a3d3bf0498b8f174db4d2532209a6c851aed98260405161066391815260200190565b60405180910390a25050565b5f805f5160206111c65f395f51905f5280546040516382027b6d60e01b8152600481018790526001600160a01b0386811660248301529293509116906382027b6d90604401602060405180830381865afa1580156106cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190610ffa565b949350505050565b5f61016d8261070a575f61070d565b60015b60ff165f610a6a565b8061071f575050565b6107298183610394565b8183909161075c5760405163c664688160e01b815260048101929092526001600160a01b031660248201526044016101ad565b505061026982825f610af9565b5f80836107845761077a60016106fb565b83915091506107ac565b5f61078f8585610b3a565b905061079b8186610b68565b92506107a8838287610b96565b9150505b9250929050565b5f826107c5576107c25f610a18565b92505b816107d6576107d35f610a18565b91505b6101d583835f610bd5565b811561080c576001600160a01b0385161561080c576107ff82610c78565b5061080a8286610c87565b505b60408051848152602081018490529081018290526001600160a01b0380861691878216918916907f628d58d11026d89293f28d1e6f43548b065fdd234364d09783fbae05526cdaee9060600160405180910390a4505050505050565b5f61087360016106fb565b95945050505050565b5f8261088e5761088b5f6106fb565b92505b8161089f5761089c5f6106fb565b91505b6101d583835f610c96565b5f5160206111c65f395f51905f528054604051630f8e573b60e21b8152600481018590526001600160a01b03848116602483015290911690633e395cec906044015b5f604051808303815f87803b158015610903575f5ffd5b505af1158015610915573d5f5f3e3d5ffd5b50505050505050565b5f5160206111a65f395f51905f525460405163045fc19560e11b81525f915f5160206111c65f395f51905f52916001600160a01b03909116906308bf832a90610971908890339089908990600401611121565b6020604051808303815f875af115801561098d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b19190611019565b8154604051630f8e573b60e21b8152600481018390523360248201529193506001600160a01b031690633e395cec906044015f604051808303815f87803b1580156109fa575f5ffd5b505af1158015610a0c573d5f5f3e3d5ffd5b50505050509392505050565b5f61016d8267ffffffffffffffff166005610a6a565b5f81610a4057610a3d5f610a18565b91505b610a4a8230610cf9565b5090565b5f82610a6057610a5d5f610a18565b92505b6105068383610cf9565b5f5160206111a65f395f51905f5254604051639cd07acb60e01b81525f915f5160206111c65f395f51905f52916001600160a01b0390911690639cd07acb90610ab99087908790600401611171565b6020604051808303815f875af1158015610ad5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f39190611019565b811561021c576040516306d4a79960e01b81526004810183905230602482015281151560448201526001600160a01b038416906306d4a799906064016108ec565b5f82610b4c57610b495f610a18565b92505b81610b5d57610b5a5f610a18565b91505b6101d583835f610d3f565b5f82610b7a57610b775f610a18565b92505b81610b8b57610b885f610a18565b91505b6101d583835f610da2565b5f83610ba857610ba55f6106fb565b93505b82610bb957610bb65f610a18565b92505b81610bca57610bc75f610a18565b91505b6106f3848484610e05565b5f5f8215610be85750600160f81b610beb565b505f5b5f5160206111a65f395f51905f5254604051631d44e90160e21b81525f5160206111c65f395f51905f52916001600160a01b031690637513a40490610c3890899089908790600401611185565b6020604051808303815f875af1158015610c54573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e09190611019565b5f81610a4057610a3d5f6106fb565b5f82610a6057610a5d5f6106fb565b5f5f8215610ca95750600160f81b610cac565b505f5b5f5160206111a65f395f51905f525460405163d99882d560e01b81525f5160206111c65f395f51905f52916001600160a01b03169063d99882d590610c3890899089908790600401611185565b5f5160206111c65f395f51905f528054604051635ca4b5b160e11b8152600481018590526001600160a01b0384811660248301529091169063b9496b62906044016108ec565b5f5f8215610d525750600160f81b610d55565b505f5b5f5160206111a65f395f51905f525460405163022f65e760e31b81525f5160206111c65f395f51905f52916001600160a01b03169063117b2f3890610c3890899089908790600401611185565b5f5f8215610db55750600160f81b610db8565b505f5b5f5160206111a65f395f51905f5254604051631391547f60e01b81525f5160206111c65f395f51905f52916001600160a01b031690631391547f90610c3890899089908790600401611185565b5f805f5160206111c65f395f51905f526001810154604051637702dcff60e01b81526004810188905260248101879052604481018690529192506001600160a01b031690637702dcff906064016020604051808303815f875af1158015610e6e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108739190611019565b5f60208284031215610ea2575f5ffd5b81356001600160e01b0319811681146101d5575f5ffd5b80356001600160a01b0381168114610ecf575f5ffd5b919050565b5f5f5f60608486031215610ee6575f5ffd5b610eef84610eb9565b9250610efd60208501610eb9565b929592945050506040919091013590565b5f60208284031215610f1e575f5ffd5b6101d582610eb9565b5f5f83601f840112610f37575f5ffd5b50813567ffffffffffffffff811115610f4e575f5ffd5b6020830191508360208285010111156107ac575f5ffd5b5f5f60208385031215610f76575f5ffd5b823567ffffffffffffffff811115610f8c575f5ffd5b610f9885828601610f27565b90969095509350505050565b5f5f5f5f60608587031215610fb7575f5ffd5b610fc085610eb9565b935060208501359250604085013567ffffffffffffffff811115610fe2575f5ffd5b610fee87828801610f27565b95989497509550505050565b5f6020828403121561100a575f5ffd5b815180151581146101d5575f5ffd5b5f60208284031215611029575f5ffd5b5051919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215611055575f5ffd5b82359150602083013567ffffffffffffffff811115611072575f5ffd5b8301601f81018513611082575f5ffd5b803567ffffffffffffffff81111561109c5761109c611030565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156110cb576110cb611030565b6040528181528282016020018710156110e2575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b6054811061111d57634e487b7160e01b5f52602160045260245ffd5b9052565b84815260018060a01b0384166020820152608060408201525f8351806080840152806020860160a085015e5f60a0828501015260a0601f19601f8301168401019150506108736060830184611101565b828152604081016101d56020830184611101565b92835260208301919091526001600160f81b03191660408201526060019056fe9e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e46497019e7b61f58c47dc699ac88507c4f5bb9f121c03808c5676a8078fe583e4649700a264697066735822122052965f4ad4f838486347d15c623d323991a1023933df880bcbf2884a63f9179864736f6c634300081b0033",
275
+ "linkReferences": {},
276
+ "deployedLinkReferences": {}
277
+ }
@@ -3,17 +3,6 @@
3
3
  "contractName": "ERC7984ERC20Wrapper",
4
4
  "sourceName": "contracts/token/ERC7984/extensions/ERC7984ERC20Wrapper.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "uint256",
10
- "name": "requestId",
11
- "type": "uint256"
12
- }
13
- ],
14
- "name": "ERC7984InvalidGatewayRequest",
15
- "type": "error"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -84,17 +73,6 @@
84
73
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
85
74
  "type": "error"
86
75
  },
87
- {
88
- "inputs": [
89
- {
90
- "internalType": "address",
91
- "name": "holder",
92
- "type": "address"
93
- }
94
- ],
95
- "name": "ERC7984ZeroBalance",
96
- "type": "error"
97
- },
98
76
  {
99
77
  "inputs": [],
100
78
  "name": "InvalidKMSSignatures",
@@ -424,7 +402,7 @@
424
402
  "outputs": [
425
403
  {
426
404
  "internalType": "euint64",
427
- "name": "transferred",
405
+ "name": "",
428
406
  "type": "bytes32"
429
407
  }
430
408
  ],
@@ -458,7 +436,7 @@
458
436
  "outputs": [
459
437
  {
460
438
  "internalType": "euint64",
461
- "name": "transferred",
439
+ "name": "",
462
440
  "type": "bytes32"
463
441
  }
464
442
  ],
@@ -492,7 +470,7 @@
492
470
  "outputs": [
493
471
  {
494
472
  "internalType": "euint64",
495
- "name": "transferred",
473
+ "name": "",
496
474
  "type": "bytes32"
497
475
  }
498
476
  ],
@@ -521,7 +499,7 @@
521
499
  "outputs": [
522
500
  {
523
501
  "internalType": "euint64",
524
- "name": "transferred",
502
+ "name": "",
525
503
  "type": "bytes32"
526
504
  }
527
505
  ],
@@ -560,7 +538,7 @@
560
538
  "outputs": [
561
539
  {
562
540
  "internalType": "euint64",
563
- "name": "transferred",
541
+ "name": "",
564
542
  "type": "bytes32"
565
543
  }
566
544
  ],
@@ -594,7 +572,7 @@
594
572
  "outputs": [
595
573
  {
596
574
  "internalType": "euint64",
597
- "name": "transferred",
575
+ "name": "",
598
576
  "type": "bytes32"
599
577
  }
600
578
  ],
@@ -3,17 +3,6 @@
3
3
  "contractName": "ERC7984Freezable",
4
4
  "sourceName": "contracts/token/ERC7984/extensions/ERC7984Freezable.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "uint256",
10
- "name": "requestId",
11
- "type": "uint256"
12
- }
13
- ],
14
- "name": "ERC7984InvalidGatewayRequest",
15
- "type": "error"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -79,17 +68,6 @@
79
68
  "name": "ERC7984UnauthorizedUseOfEncryptedAmount",
80
69
  "type": "error"
81
70
  },
82
- {
83
- "inputs": [
84
- {
85
- "internalType": "address",
86
- "name": "holder",
87
- "type": "address"
88
- }
89
- ],
90
- "name": "ERC7984ZeroBalance",
91
- "type": "error"
92
- },
93
71
  {
94
72
  "inputs": [],
95
73
  "name": "InvalidKMSSignatures",
@@ -382,7 +360,7 @@
382
360
  "outputs": [
383
361
  {
384
362
  "internalType": "euint64",
385
- "name": "transferred",
363
+ "name": "",
386
364
  "type": "bytes32"
387
365
  }
388
366
  ],
@@ -416,7 +394,7 @@
416
394
  "outputs": [
417
395
  {
418
396
  "internalType": "euint64",
419
- "name": "transferred",
397
+ "name": "",
420
398
  "type": "bytes32"
421
399
  }
422
400
  ],
@@ -450,7 +428,7 @@
450
428
  "outputs": [
451
429
  {
452
430
  "internalType": "euint64",
453
- "name": "transferred",
431
+ "name": "",
454
432
  "type": "bytes32"
455
433
  }
456
434
  ],
@@ -479,7 +457,7 @@
479
457
  "outputs": [
480
458
  {
481
459
  "internalType": "euint64",
482
- "name": "transferred",
460
+ "name": "",
483
461
  "type": "bytes32"
484
462
  }
485
463
  ],
@@ -518,7 +496,7 @@
518
496
  "outputs": [
519
497
  {
520
498
  "internalType": "euint64",
521
- "name": "transferred",
499
+ "name": "",
522
500
  "type": "bytes32"
523
501
  }
524
502
  ],
@@ -552,7 +530,7 @@
552
530
  "outputs": [
553
531
  {
554
532
  "internalType": "euint64",
555
- "name": "transferred",
533
+ "name": "",
556
534
  "type": "bytes32"
557
535
  }
558
536
  ],