@inco/lightning 0.1.32 → 0.2.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 (41) hide show
  1. package/manifest.yaml +124 -234
  2. package/package.json +2 -1
  3. package/src/DeployUtils.sol +43 -11
  4. package/src/IIncoLightning.sol +13 -0
  5. package/src/IncoLightning.gen.sol +15 -0
  6. package/src/IncoLightning.sol +5 -2
  7. package/src/{libs/incoLightning_0_1_23__830342853.sol → Lib.alphanet.sol} +3 -3
  8. package/src/libs/{incoLightning_0_1_22__761766708.sol → incoLightning_alphanet_v0_297966649.sol} +1 -1
  9. package/src/libs/{incoLightning_0_1_23__547622051.sol → incoLightning_junknet3_v0_495844717.sol} +1 -1
  10. package/src/lightning-parts/AccessControl/BaseAccessControlList.gen.sol +19 -0
  11. package/src/lightning-parts/AccessControl/BaseAccessControlList.sol +2 -1
  12. package/src/lightning-parts/DecryptionHandler.gen.sol +54 -0
  13. package/src/lightning-parts/DecryptionHandler.sol +7 -35
  14. package/src/lightning-parts/DecryptionHandler.types.sol +34 -0
  15. package/src/lightning-parts/EncryptedInput.gen.sol +13 -0
  16. package/src/lightning-parts/EncryptedInput.sol +3 -2
  17. package/src/lightning-parts/EncryptedOperations.gen.sol +59 -0
  18. package/src/lightning-parts/EncryptedOperations.sol +3 -1
  19. package/src/lightning-parts/TrivialEncryption.gen.sol +13 -0
  20. package/src/lightning-parts/TrivialEncryption.sol +2 -0
  21. package/src/lightning-parts/primitives/EventCounter.gen.sol +6 -0
  22. package/src/lightning-parts/primitives/EventCounter.sol +3 -1
  23. package/src/lightning-parts/primitives/HandleGeneration.gen.sol +19 -0
  24. package/src/lightning-parts/primitives/HandleGeneration.sol +2 -1
  25. package/src/lightning-parts/primitives/HandleMetadata.gen.sol +4 -0
  26. package/src/lightning-parts/primitives/SignatureVerifier.gen.sol +15 -0
  27. package/src/lightning-parts/primitives/SignatureVerifier.sol +2 -1
  28. package/src/test/AddTwo.sol +0 -2
  29. package/src/test/IncoTest.sol +3 -2
  30. package/src/version/Version.gen.sol +14 -0
  31. package/src/version/Version.sol +1 -1
  32. package/src/libs/incoLightning_0_1_24__266705097.sol +0 -389
  33. package/src/libs/incoLightning_0_1_25__861473222.sol +0 -389
  34. package/src/libs/incoLightning_0_1_25__986372984.sol +0 -389
  35. package/src/libs/incoLightning_0_1_26__18043964.sol +0 -389
  36. package/src/libs/incoLightning_0_1_26__444235330.sol +0 -389
  37. package/src/libs/incoLightning_0_1_27__125335042.sol +0 -389
  38. package/src/libs/incoLightning_0_1_27__558243565.sol +0 -389
  39. /package/src/libs/{incoLightning_0_1_29__863421733.sol → incoLightning_demonet_v0_863421733.sol} +0 -0
  40. /package/src/libs/{incoLightning_0_1_29__340846814.sol → incoLightning_devnet_v0_340846814.sol} +0 -0
  41. /package/src/libs/{incoLightning_0_1_29__183408998.sol → incoLightning_testnet_v0_183408998.sol} +0 -0
package/manifest.yaml CHANGED
@@ -1,281 +1,171 @@
1
- incoLightning_0_1_29__183408998:
2
- release:
3
- name: incoLightning_0_1_29__183408998
4
- executorAddress: "0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd"
1
+ incoLightning_testnet_v0_183408998:
2
+ executor:
3
+ name: incoLightning_testnet_v0_183408998
4
+ majorVersion: 0
5
5
  deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
6
6
  pepper: testnet
7
- version:
8
- major: 0
9
- minor: 1
10
- patch: 29
11
- shortSalt: "183408998"
7
+ executorAddress: "0x63D8135aF4D393B1dB43B649010c8D3EE19FC9fd"
12
8
  salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc00d75ffa0caf0797c3f12d66"
13
9
  deployments:
14
- - decryptSigner: "0x000000000000000000000000000000000000baBe"
15
- eciesPublicKey: "0x000000000000000000000000000000000000000000000000000000000000\
16
- 000000000000000000000000000000000000000000000000000000000000000000babe"
17
- chainId: "7311099111"
18
- blockNumber: "1"
19
- chainName: Inco Release Chain
20
- active: true
21
- deployDate: 2025-04-22T16:02:38.372Z
22
- commit: v3-28-g93c05a49-dirty
23
- addTwoAddress: "0x04461CD161001BC484C55D253F744462A6eADc10"
24
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
10
+ - name: incoLightning_0_2_0__183408998
11
+ chainId: "84532"
12
+ chainName: Base Sepolia
13
+ version:
14
+ major: 0
15
+ minor: 2
16
+ patch: 0
17
+ shortSalt: "183408998"
18
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
25
19
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
26
20
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
21
+ blockNumber: "26296576"
22
+ deployDate: 2025-05-27T15:57:24.175Z
23
+ commit: v5-3-gec8b6aae-dirty
24
+ active: true
25
+ - name: incoLightning_0_1_29__183408998
27
26
  chainId: "10143"
28
- blockNumber: "13464615"
29
27
  chainName: Monad Testnet
30
- active: true
28
+ version:
29
+ major: 0
30
+ minor: 1
31
+ patch: 29
32
+ shortSalt: "183408998"
33
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
34
+ eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
35
+ 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
36
+ blockNumber: "13464615"
31
37
  deployDate: 2025-04-22T16:01:14.380Z
32
38
  commit: v3-28-g93c05a49-dirty
33
- addTwoAddress: "0x3E0Aa45e4BD7E86093460A302803298a0EE7155a"
34
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
39
+ active: true
40
+ - name: incoLightning_0_1_29__183408998
41
+ chainId: "84532"
42
+ chainName: Base Sepolia
43
+ version:
44
+ major: 0
45
+ minor: 1
46
+ patch: 29
47
+ shortSalt: "183408998"
48
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
35
49
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
36
50
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
37
- chainId: "84532"
38
51
  blockNumber: "24784654"
39
- chainName: Base Sepolia
40
- active: true
41
52
  deployDate: 2025-04-22T16:00:02.028Z
42
53
  commit: v3-28-g93c05a49-dirty
43
- addTwoAddress: "0xF10E6B2ddd168D105546f39E1Ba64004E4FbeF10"
44
- incoLightning_0_1_29__340846814:
45
- release:
46
- name: incoLightning_0_1_29__340846814
47
- executorAddress: "0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D"
54
+ active: true
55
+ incoLightning_demonet_v0_863421733:
56
+ executor:
57
+ name: incoLightning_demonet_v0_863421733
58
+ majorVersion: 0
48
59
  deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
49
- pepper: devnet
50
- version:
51
- major: 0
52
- minor: 1
53
- patch: 29
54
- shortSalt: "340846814"
55
- salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede"
60
+ pepper: demonet
61
+ executorAddress: "0xeBAFF6D578733E4603b99CBdbb221482F29a78E1"
62
+ salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc00834654f6d289ccc7e5ab25"
56
63
  deployments:
57
- - decryptSigner: "0x000000000000000000000000000000000000baBe"
58
- eciesPublicKey: "0x000000000000000000000000000000000000000000000000000000000000\
59
- 000000000000000000000000000000000000000000000000000000000000000000babe"
60
- chainId: "7311099111"
61
- blockNumber: "1"
62
- chainName: Inco Release Chain
63
- active: true
64
- deployDate: 2025-04-22T15:59:01.071Z
65
- commit: v3-28-g93c05a49-dirty
66
- addTwoAddress: "0x04461CD161001BC484C55D253F744462A6eADc10"
67
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
64
+ - name: incoLightning_0_2_0__863421733
65
+ chainId: "84532"
66
+ chainName: Base Sepolia
67
+ version:
68
+ major: 0
69
+ minor: 2
70
+ patch: 0
71
+ shortSalt: "863421733"
72
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
68
73
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
69
74
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
70
- chainId: "10143"
71
- blockNumber: "13464197"
72
- chainName: Monad Testnet
75
+ blockNumber: "25737175"
76
+ deployDate: 2025-05-14T17:10:44.285Z
77
+ commit: v4-11-g4a1f413a-dirty
73
78
  active: true
74
- deployDate: 2025-04-22T15:57:26.862Z
75
- commit: v3-28-g93c05a49-dirty
76
- addTwoAddress: "0x6A23b79203F1Db95947423291C8177B144DDE372"
77
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
78
- eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
79
- 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
79
+ - name: incoLightning_0_1_29__863421733
80
80
  chainId: "84532"
81
- blockNumber: "24784527"
82
81
  chainName: Base Sepolia
83
- active: true
84
- deployDate: 2025-04-22T15:55:47.828Z
85
- commit: v3-28-g93c05a49-dirty
86
- addTwoAddress: "0x1A98fB1f7E57C0648b1d2A7DEA6e126C302A7e93"
87
- incoLightning_0_1_29__863421733:
88
- release:
89
- name: incoLightning_0_1_29__863421733
90
- executorAddress: "0xeBAFF6D578733E4603b99CBdbb221482F29a78E1"
91
- deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
92
- pepper: demonet
93
- version:
94
- major: 0
95
- minor: 1
96
- patch: 29
97
- shortSalt: "863421733"
98
- salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc00834654f6d289ccc7e5ab25"
99
- deployments:
100
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
82
+ version:
83
+ major: 0
84
+ minor: 1
85
+ patch: 29
86
+ shortSalt: "863421733"
87
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
101
88
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
102
89
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
103
- chainId: "84532"
104
90
  blockNumber: "25719113"
105
- chainName: Base Sepolia
106
- active: true
107
91
  deployDate: 2025-05-14T07:08:39.059Z
108
92
  commit: v4
109
- addTwoAddress: "0x436506A7c6462e5bab1f5CbAF9fD2a1d18F44F08"
110
- incoLightning_0_1_27__558243565:
111
- release:
112
- name: incoLightning_0_1_27__558243565
113
- executorAddress: "0x595dc0fA68e7847aC1b1d52a56A1551ad0e38472"
93
+ active: true
94
+ incoLightning_alphanet_v0_297966649:
95
+ executor:
96
+ name: incoLightning_alphanet_v0_297966649
97
+ majorVersion: 0
114
98
  deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
115
- pepper: testnet
116
- version:
117
- major: 0
118
- minor: 1
119
- patch: 27
120
- shortSalt: "558243565"
121
- salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc008f0e1b154a58f3ce49d6ed"
99
+ pepper: alphanet
100
+ executorAddress: "0x4651DfD7729aE5568092E7351fAaD872266d4CBd"
101
+ salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc0023f7798f470fdf5e9da639"
122
102
  deployments:
123
- - decryptSigner: "0x000000000000000000000000000000000000baBe"
124
- eciesPublicKey: "0x000000000000000000000000000000000000000000000000000000000000\
125
- 000000000000000000000000000000000000000000000000000000000000000000babe"
126
- chainId: "7311099111"
127
- blockNumber: "1"
128
- chainName: Inco Release Chain
129
- active: true
130
- deployDate: 2025-04-22T14:57:24.620Z
131
- commit: v3-28-g652cc4a1-dirty
132
- addTwoAddress: "0x04461CD161001BC484C55D253F744462A6eADc10"
133
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
134
- eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
135
- 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
136
- chainId: "10143"
137
- blockNumber: "13457424"
138
- chainName: Monad Testnet
139
- active: true
140
- deployDate: 2025-04-22T14:57:15.486Z
141
- commit: v3-28-g652cc4a1-dirty
142
- addTwoAddress: "0xbbf1f797b5e132b72f4a45E1923cBb0BFeca80FA"
143
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
144
- eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
145
- 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
103
+ - name: incoLightningPreview_0_2_0__297966649
146
104
  chainId: "84532"
147
- blockNumber: "24782764"
148
105
  chainName: Base Sepolia
149
- active: true
150
- deployDate: 2025-04-22T14:57:02.375Z
151
- commit: v3-28-g652cc4a1
152
- addTwoAddress: "0x0c6320A91ec6BA7d42B4f079132fD71A90C12e22"
153
- incoLightning_0_1_27__125335042:
154
- release:
155
- name: incoLightning_0_1_27__125335042
156
- executorAddress: "0x902B77583C7C5df71C95114707C4974A8d5Dff9D"
106
+ version:
107
+ major: 0
108
+ minor: 2
109
+ patch: 0
110
+ shortSalt: "297966649"
111
+ decryptSigner: "0x4736F8CE685760017eEc130AC3FFc6187f5A1F95"
112
+ eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
113
+ 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
114
+ blockNumber: "26894782"
115
+ deployDate: 2025-06-10T12:17:35.790Z
116
+ commit: v5-13-gd6b19c10-dirty
117
+ active: true
118
+ incoLightning_devnet_v0_340846814:
119
+ executor:
120
+ name: incoLightning_devnet_v0_340846814
121
+ majorVersion: 0
157
122
  deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
158
123
  pepper: devnet
159
- version:
160
- major: 0
161
- minor: 1
162
- patch: 27
163
- shortSalt: "125335042"
164
- salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc003343825a7e951afb24c202"
124
+ executorAddress: "0x3B22be60Ae699933959CA3cE147C96caa88Ccd3D"
125
+ salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc00b001d6742fded0dd599ede"
165
126
  deployments:
166
- - decryptSigner: "0x000000000000000000000000000000000000baBe"
167
- eciesPublicKey: "0x000000000000000000000000000000000000000000000000000000000000\
168
- 000000000000000000000000000000000000000000000000000000000000000000babe"
169
- chainId: "7311099111"
170
- blockNumber: "1"
171
- chainName: Inco Release Chain
172
- active: true
173
- deployDate: 2025-04-22T14:35:10.281Z
174
- commit: v3-27-ge3d04b6a-dirty
175
- addTwoAddress: "0x04461CD161001BC484C55D253F744462A6eADc10"
176
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
177
- eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
178
- 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
179
- chainId: "10143"
180
- blockNumber: "13454931"
181
- chainName: Monad Testnet
182
- active: true
183
- deployDate: 2025-04-22T14:35:02.958Z
184
- commit: v3-27-ge3d04b6a-dirty
185
- addTwoAddress: "0xC1ee708D522B8b0743B5C5309AeD6b6b4C4102a6"
186
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
187
- eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
188
- 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
127
+ - name: incoLightning_0_2_0__340846814
189
128
  chainId: "84532"
190
- blockNumber: "24782097"
191
129
  chainName: Base Sepolia
192
- active: true
193
- deployDate: 2025-04-22T14:34:47.565Z
194
- commit: v3-27-ge3d04b6a-dirty
195
- addTwoAddress: "0xAac318ca07FCA665c4d27A7e9e8FB65B89AfAC83"
196
- incoLightning_0_1_26__18043964:
197
- release:
198
- name: incoLightning_0_1_26__18043964
199
- executorAddress: "0x69Ef6a59f9eE2d6f3b49eA3F79bcF1553512DF0e"
200
- deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
201
- pepper: testnet
202
- version:
203
- major: 0
204
- minor: 1
205
- patch: 26
206
- shortSalt: "18043964"
207
- salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc00858064cb0f58c7ef7a843c"
208
- deployments:
209
- - decryptSigner: "0x000000000000000000000000000000000000baBe"
210
- eciesPublicKey: "0x000000000000000000000000000000000000000000000000000000000000\
211
- 000000000000000000000000000000000000000000000000000000000000000000babe"
212
- chainId: "7311099111"
213
- blockNumber: "1"
214
- chainName: Inco Release Chain
215
- active: true
216
- deployDate: 2025-04-22T12:14:50.447Z
217
- commit: v3-26-g623cec72-dirty
218
- addTwoAddress: "0x70fC34B18B12E945cb2204FA77E5f8e1581890C3"
219
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
130
+ version:
131
+ major: 0
132
+ minor: 2
133
+ patch: 0
134
+ shortSalt: "340846814"
135
+ decryptSigner: "0x138AcbDC1FA02b955949d8Da09E546Ea7748710f"
220
136
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
221
137
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
138
+ blockNumber: "26122863"
139
+ deployDate: 2025-05-23T15:26:57.031Z
140
+ commit: v5-2-g8957c16b-dirty
141
+ active: true
142
+ - name: incoLightning_0_1_29__340846814
222
143
  chainId: "10143"
223
- blockNumber: "13439069"
224
144
  chainName: Monad Testnet
225
- active: true
226
- deployDate: 2025-04-22T12:14:42.391Z
227
- commit: v3-26-g623cec72-dirty
228
- addTwoAddress: "0x4A49112FB866F6d5D05845D264b430cD3bbAb9f6"
229
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
145
+ version:
146
+ major: 0
147
+ minor: 1
148
+ patch: 29
149
+ shortSalt: "340846814"
150
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
230
151
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
231
152
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
153
+ blockNumber: "13464197"
154
+ deployDate: 2025-04-22T15:57:26.862Z
155
+ commit: v3-28-g93c05a49-dirty
156
+ active: true
157
+ - name: incoLightning_0_1_29__340846814
232
158
  chainId: "84532"
233
- blockNumber: "24777885"
234
159
  chainName: Base Sepolia
235
- active: true
236
- deployDate: 2025-04-22T12:14:25.354Z
237
- commit: v3-26-g623cec72-dirty
238
- addTwoAddress: "0x2b5E34844997681168049783D30CD84B5962cb50"
239
- incoLightning_0_1_26__444235330:
240
- release:
241
- name: incoLightning_0_1_26__444235330
242
- executorAddress: "0xdc8eD938ff2eB900bD5f86A88555a9f1956994fC"
243
- deployer: "0x8202D2D747784Cb7D48868E44C42C4bf162a70BC"
244
- pepper: devnet
245
- version:
246
- major: 0
247
- minor: 1
248
- patch: 26
249
- shortSalt: "444235330"
250
- salt: "0x8202d2d747784cb7d48868e44c42c4bf162a70bc001bab4c5927c52fbea0d042"
251
- deployments:
252
- - decryptSigner: "0x000000000000000000000000000000000000baBe"
253
- eciesPublicKey: "0x000000000000000000000000000000000000000000000000000000000000\
254
- 000000000000000000000000000000000000000000000000000000000000000000babe"
255
- chainId: "7311099111"
256
- blockNumber: "1"
257
- chainName: Inco Release Chain
258
- active: true
259
- deployDate: 2025-04-22T09:11:15.398Z
260
- commit: v3-24-gc9716e6c-dirty
261
- addTwoAddress: "0x70fC34B18B12E945cb2204FA77E5f8e1581890C3"
262
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
263
- eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
264
- 4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
265
- chainId: "10143"
266
- blockNumber: "13418528"
267
- chainName: Monad Testnet
268
- active: true
269
- deployDate: 2025-04-22T09:11:06.223Z
270
- commit: v3-24-gc9716e6c-dirty
271
- addTwoAddress: "0xfeE9C1E41b2268a4ad8EaDA35f510b8d89Cd041c"
272
- - decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
160
+ version:
161
+ major: 0
162
+ minor: 1
163
+ patch: 29
164
+ shortSalt: "340846814"
165
+ decryptSigner: "0xA8822DE8910f66D3d03F1eAfe2C0141dBc327Ee0"
273
166
  eciesPublicKey: "0x048a582d29083c2f3fefe024bf4dd9ab913ab8973716977da5f01106e0b8\
274
167
  4095b1e647a9e377175fcb66bda05087c93b05e1fd53a704d0914bb23a0b2a69e9f235"
275
- chainId: "84532"
276
- blockNumber: "24772369"
277
- chainName: Base Sepolia
168
+ blockNumber: "24784527"
169
+ deployDate: 2025-04-22T15:55:47.828Z
170
+ commit: v3-28-g93c05a49-dirty
278
171
  active: true
279
- deployDate: 2025-04-22T09:10:33.275Z
280
- commit: v3-24-gc9716e6c-dirty
281
- addTwoAddress: "0xeEa387f7c866A81c2AF532D9ed48c60F179C9827"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inco/lightning",
3
- "version": "0.1.32",
3
+ "version": "0.2.0",
4
4
  "repository": "https://github.com/Inco-fhevm/inco-monorepo",
5
5
  "files": [
6
6
  "src/",
@@ -9,6 +9,7 @@
9
9
  "manifest.yaml"
10
10
  ],
11
11
  "scripts": {
12
+ "generate": "bun run generate:libraries",
12
13
  "generate:libraries": "bun run ../pega/lib/deployment/cmd/generate-libraries.ts",
13
14
  "publish:github": "bun publish --registry=https://npm.pkg.github.com",
14
15
  "publish:npm": "bun publish --access public"
@@ -9,6 +9,7 @@ import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.s
9
9
  import {CONTRACT_NAME, MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION} from "../src/version/IncoLightningConfig.sol";
10
10
  import {console} from "forge-std/console.sol";
11
11
  import {CreateXHelper} from "./CreateXHelper.sol";
12
+ import {IncoLightningPreview} from "@inco/lightning-preview/src/IncoLightningPreview.sol";
12
13
 
13
14
  // can be set to 0x01 so the inco address can exist on only one chain, we want the same contract at the same address
14
15
  // on all chains
@@ -65,27 +66,40 @@ contract DeployUtils is Script {
65
66
  /// @param pepper a value used to avoid address collision on deploying the same contract twice with the same deployer
66
67
  function deployIncoLightningUsingConfig(
67
68
  address deployer,
68
- string memory pepper
69
+ string memory pepper,
70
+ bool includePreviewFeatures
69
71
  ) internal returns (IncoLightning proxy) {
70
72
  return deployIncoLightningUsingConfig(
71
73
  deployer,
72
74
  pepper,
73
75
  MINOR_VERSION,
74
- PATCH_VERSION
76
+ PATCH_VERSION,
77
+ includePreviewFeatures
75
78
  );
76
79
  }
77
80
 
78
81
  /// @dev Computes the address of the IncoLightning contract using CreateX based on the deployer and pepper
82
+ /// @param deployer MUST be the signer of the transaction
83
+ /// @param pepper a value used to avoid address collision on deploying the same contract twice with the same deployer
84
+ /// @param majorVersion major version of the contract
85
+ /// @param minorVersion minor version of the contract
86
+ /// @param patchVersion patch version of the contract
87
+ /// @return the address of the IncoLightning contract
88
+ /// @dev this function is used to compute the address of the contract before deploying it, so that we can check
89
+ /// @notice this must be called after vm.startBroadcast() to get the correct address
79
90
  function computeIncoLightningAddress(
80
91
  address deployer,
81
- string memory pepper
92
+ string memory pepper,
93
+ uint8 majorVersion,
94
+ uint8 minorVersion,
95
+ uint8 patchVersion
82
96
  ) public returns (address) {
83
97
  CreateXHelper createX = new CreateXHelper();
84
98
  bytes32 salt = getSalt(
85
99
  CONTRACT_NAME,
86
- MAJOR_VERSION,
87
- MINOR_VERSION,
88
- PATCH_VERSION,
100
+ majorVersion,
101
+ minorVersion,
102
+ patchVersion,
89
103
  deployer,
90
104
  pepper
91
105
  );
@@ -95,12 +109,16 @@ contract DeployUtils is Script {
95
109
  /// @dev wrap in prank or broadcast depending on prod or testing environment
96
110
  /// @param deployer MUST be the signer of the transaction
97
111
  /// @param pepper a value used to avoid address collision on deploying the same contract twice with the same deployer
112
+ /// @param minorVersionForSalt minor version of the contract to use in the salt
113
+ /// @param patchVersionForSalt patch version of the contract to use in the salt
114
+ /// @param includePreviewFeatures whether to include preview features in the contract
98
115
  function deployIncoLightningUsingConfig(
99
116
  address deployer,
100
117
  string memory pepper,
101
- // FIXME: on the next major version (new contract address and state) we should remove these from the salt altogether
118
+ // FIXME: on the next major version (new contract address and state) we should remove these from the salt altogether
102
119
  uint8 minorVersionForSalt,
103
- uint8 patchVersionForSalt
120
+ uint8 patchVersionForSalt,
121
+ bool includePreviewFeatures
104
122
  ) internal returns (IncoLightning proxy) {
105
123
  bytes32 salt = getSalt(
106
124
  CONTRACT_NAME,
@@ -115,11 +133,17 @@ contract DeployUtils is Script {
115
133
  vm.toString(deployer),
116
134
  vm.toString(salt)
117
135
  );
136
+ IncoLightning implementation = new IncoLightning(salt);
137
+ if (includePreviewFeatures) {
138
+ IncoLightningPreview preview = new IncoLightningPreview(address(implementation));
139
+ // FIXME: This is hack, we ought to define an interface IIncoLightning here and use that instead
140
+ implementation = IncoLightning(address(preview));
141
+ }
118
142
  proxy = IncoLightning(
119
143
  deployProxy({
120
144
  deployer: deployer,
121
145
  salt: salt,
122
- implem: address(new IncoLightning(salt)),
146
+ implem: address(implementation),
123
147
  initFunctionSelector: IncoLightning.initialize.selector
124
148
  })
125
149
  );
@@ -129,14 +153,18 @@ contract DeployUtils is Script {
129
153
  /// minor and patch versions can be provided to this function in order to perform an upgrade
130
154
  /// @param deployer MUST be the signer of the transaction
131
155
  /// @param pepper a value used to avoid address collision on deploying the same contract twice with the same deployer
156
+ /// @param minorVersionForSalt minor version of the contract to use in the salt
157
+ /// @param patchVersionForSalt patch version of the contract to use in the salt
158
+ /// @param includePreviewFeatures whether to include preview features in the contract
132
159
  function upgradeIncoLightningUsingConfig(
133
160
  address deployer,
134
161
  string memory pepper,
135
162
  // FIXME: on the next major version (new contract address and state) we should remove these from the salt altogether
136
163
  uint8 minorVersionForSalt,
137
- uint8 patchVersionForSalt
164
+ uint8 patchVersionForSalt,
165
+ bool includePreviewFeatures
138
166
  ) internal returns (IncoLightning proxy) {
139
- // Here we hack around the fact that we must use the same salt for an ugprade and currently the salt includes
167
+ // Here we hack around the fact that we must use the same salt for an upgrade and currently the salt includes
140
168
  // the minor and patch versions
141
169
  bytes32 salt = getSalt(
142
170
  CONTRACT_NAME,
@@ -157,6 +185,10 @@ contract DeployUtils is Script {
157
185
  proxy = IncoLightning(proxyAddress);
158
186
 
159
187
  IncoLightning newImplementation = new IncoLightning(salt);
188
+ if (includePreviewFeatures) {
189
+ newImplementation = IncoLightning(address(new IncoLightningPreview(address(newImplementation))));
190
+ }
191
+ new IncoLightning(salt);
160
192
  proxy.upgradeToAndCall(address(newImplementation), "");
161
193
  return proxy;
162
194
  }
@@ -0,0 +1,13 @@
1
+ // SPDX-License-Identifier: No License
2
+ pragma solidity ^0.8;
3
+
4
+ import {IIncoLightningGen} from "./IncoLightning.gen.sol";
5
+ import {IEncryptedInputGen} from "./lightning-parts/EncryptedInput.gen.sol";
6
+ import {IDecryptionHandlerGen} from "./lightning-parts/DecryptionHandler.gen.sol";
7
+ import {IEncryptedOperationsGen} from "./lightning-parts/EncryptedOperations.gen.sol";
8
+ import {ITrivialEncryptionGen} from "./lightning-parts/TrivialEncryption.gen.sol";
9
+ import {IBaseAccessControlListGen} from "./lightning-parts/AccessControl/BaseAccessControlList.gen.sol";
10
+ import {IHandleGenerationGen} from "./lightning-parts/primitives/HandleGeneration.gen.sol";
11
+
12
+
13
+ interface IIncoLightning is IIncoLightningGen, IEncryptedInputGen, IDecryptionHandlerGen, IEncryptedOperationsGen, ITrivialEncryptionGen, IBaseAccessControlListGen, IHandleGenerationGen {}
@@ -0,0 +1,15 @@
1
+ /// SPDX-License-Identifier: No License
2
+ pragma solidity ^0.8;
3
+
4
+ import { IIncoLightning } from "./IIncoLightning.sol";
5
+ import { CONTRACT_NAME, MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION } from "./version/IncoLightningConfig.sol";
6
+ import { DecryptionHandler } from "./lightning-parts/DecryptionHandler.sol";
7
+ import { EncryptedInput } from "./lightning-parts/EncryptedInput.sol";
8
+ import { EncryptedOperations } from "./lightning-parts/EncryptedOperations.sol";
9
+ import { TrivialEncryption } from "./lightning-parts/TrivialEncryption.sol";
10
+ import { UUPSUpgradeable } from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
11
+ import { Version } from "./version/Version.sol";
12
+
13
+ interface IIncoLightningGen {
14
+ function initialize(address owner) external;
15
+ }
@@ -1,18 +1,21 @@
1
1
  // SPDX-License-Identifier: No License
2
2
  pragma solidity ^0.8;
3
3
 
4
+ import {IIncoLightning} from "./IIncoLightning.sol";
5
+ import {CONTRACT_NAME, MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION} from "./version/IncoLightningConfig.sol";
6
+ import {DecryptionHandler} from "./lightning-parts/DecryptionHandler.sol";
4
7
  import {EncryptedInput} from "./lightning-parts/EncryptedInput.sol";
5
8
  import {EncryptedOperations} from "./lightning-parts/EncryptedOperations.sol";
6
- import {DecryptionHandler} from "./lightning-parts/DecryptionHandler.sol";
9
+ import {IIncoLightningGen} from "./IncoLightning.gen.sol";
7
10
  import {TrivialEncryption} from "./lightning-parts/TrivialEncryption.sol";
8
11
  import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
9
- import {CONTRACT_NAME, MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION} from "./version/IncoLightningConfig.sol";
10
12
  import {Version} from "./version/Version.sol";
11
13
 
12
14
  /// @title Inco Lightning
13
15
  /// @notice Onchain singleton for Inco Lightning, TEE-based encrypted data and operations over shared state service
14
16
  /// @dev implicitly extends BaseAccessControlList, SignatureVerifier, OwnableUpgradeable
15
17
  contract IncoLightning is
18
+ IIncoLightning,
16
19
  EncryptedOperations,
17
20
  DecryptionHandler,
18
21
  TrivialEncryption,
@@ -5,10 +5,10 @@
5
5
  /// SPDX-License-Identifier: No License
6
6
  pragma solidity ^0.8;
7
7
 
8
- import "../IncoLightning.sol";
9
- import { ebool, euint256, ETypes } from "../Types.sol";
8
+ import "./IncoLightning.sol";
9
+ import { ebool, euint256, ETypes } from "./Types.sol";
10
10
 
11
- IncoLightning constant inco = IncoLightning(0xF167b01eeE3eB16809D115a3476073121ACbA67C);
11
+ IncoLightning constant inco = IncoLightning(0x4651DfD7729aE5568092E7351fAaD872266d4CBd);
12
12
  address constant deployedBy = 0x8202D2D747784Cb7D48868E44C42C4bf162a70BC;
13
13
  uint256 constant defaultDecryptionDelayLimit = 2 hours;
14
14
 
@@ -8,7 +8,7 @@ pragma solidity ^0.8;
8
8
  import "../IncoLightning.sol";
9
9
  import { ebool, euint256, ETypes } from "../Types.sol";
10
10
 
11
- IncoLightning constant inco = IncoLightning(0x88ab1DF735e8de6Cf195F6142c9A7192BBF0e750);
11
+ IncoLightning constant inco = IncoLightning(0x4651DfD7729aE5568092E7351fAaD872266d4CBd);
12
12
  address constant deployedBy = 0x8202D2D747784Cb7D48868E44C42C4bf162a70BC;
13
13
  uint256 constant defaultDecryptionDelayLimit = 2 hours;
14
14
 
@@ -8,7 +8,7 @@ pragma solidity ^0.8;
8
8
  import "../IncoLightning.sol";
9
9
  import { ebool, euint256, ETypes } from "../Types.sol";
10
10
 
11
- IncoLightning constant inco = IncoLightning(0x022c0878EE7D09D385b0B97e6A6539FF2CaF31e6);
11
+ IncoLightning constant inco = IncoLightning(0x5Db4068769783837bFFc070A703B29f44Ba16f98);
12
12
  address constant deployedBy = 0x8202D2D747784Cb7D48868E44C42C4bf162a70BC;
13
13
  uint256 constant defaultDecryptionDelayLimit = 2 hours;
14
14
 
@@ -0,0 +1,19 @@
1
+ /// SPDX-License-Identifier: No License
2
+ pragma solidity ^0.8;
3
+
4
+ import { SenderNotAllowedForHandle } from "../../Types.sol";
5
+
6
+ interface IBaseAccessControlListGen {
7
+ /// @dev persistent
8
+ function allow(bytes32 handle, address account) external;
9
+
10
+ function allowTransient(bytes32 handle, address account) external;
11
+
12
+ function allowedTransient(bytes32 handle, address account) external view returns (bool);
13
+
14
+ function cleanTransientStorage() external;
15
+
16
+ function persistAllowed(bytes32 handle, address account) external view returns (bool);
17
+
18
+ function isAllowed(bytes32 handle, address account) external view returns (bool);
19
+ }