sablier 2.0.3 → 2.0.4-beta.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 (115) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/abi/airdrops/v3.0/SablierFactoryMerkleInstant.json +239 -0
  3. package/abi/airdrops/v3.0/SablierFactoryMerkleLL.json +265 -0
  4. package/abi/airdrops/v3.0/SablierFactoryMerkleLT.json +300 -0
  5. package/abi/airdrops/v3.0/SablierFactoryMerkleVCA.json +272 -0
  6. package/abi/airdrops/v3.0/SablierMerkleInstant.json +401 -0
  7. package/abi/airdrops/v3.0/SablierMerkleLL.json +514 -0
  8. package/abi/airdrops/v3.0/SablierMerkleLT.json +500 -0
  9. package/abi/airdrops/v3.0/SablierMerkleVCA.json +505 -0
  10. package/dist/cjs/evm/chains/specs.js +10 -1
  11. package/dist/cjs/evm/chains/specs.js.map +1 -1
  12. package/dist/cjs/evm/compatibility.js +1 -0
  13. package/dist/cjs/evm/compatibility.js.map +1 -1
  14. package/dist/cjs/evm/enums.js +1 -0
  15. package/dist/cjs/evm/enums.js.map +1 -1
  16. package/dist/cjs/evm/releases/airdrops/index.js +2 -0
  17. package/dist/cjs/evm/releases/airdrops/index.js.map +1 -1
  18. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js +230 -0
  19. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js.map +1 -0
  20. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js +258 -0
  21. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js.map +1 -0
  22. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js +293 -0
  23. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js.map +1 -0
  24. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js +265 -0
  25. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js.map +1 -0
  26. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js +395 -0
  27. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js.map +1 -0
  28. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js +508 -0
  29. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js.map +1 -0
  30. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js +494 -0
  31. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js.map +1 -0
  32. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js +499 -0
  33. package/dist/cjs/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js.map +1 -0
  34. package/dist/cjs/evm/releases/airdrops/v3.0/abi.js +26 -0
  35. package/dist/cjs/evm/releases/airdrops/v3.0/abi.js.map +1 -0
  36. package/dist/cjs/evm/releases/airdrops/v3.0/aliases.js +14 -0
  37. package/dist/cjs/evm/releases/airdrops/v3.0/aliases.js.map +1 -0
  38. package/dist/cjs/evm/releases/airdrops/v3.0/deployments.js +41 -0
  39. package/dist/cjs/evm/releases/airdrops/v3.0/deployments.js.map +1 -0
  40. package/dist/cjs/evm/releases/airdrops/v3.0/index.js +25 -0
  41. package/dist/cjs/evm/releases/airdrops/v3.0/index.js.map +1 -0
  42. package/dist/cjs/evm/releases/airdrops/v3.0/manifest.js +14 -0
  43. package/dist/cjs/evm/releases/airdrops/v3.0/manifest.js.map +1 -0
  44. package/dist/cjs/helpers.js.map +1 -1
  45. package/dist/esm/evm/chains/specs.js +10 -1
  46. package/dist/esm/evm/chains/specs.js.map +1 -1
  47. package/dist/esm/evm/compatibility.js +1 -0
  48. package/dist/esm/evm/compatibility.js.map +1 -1
  49. package/dist/esm/evm/enums.js +1 -0
  50. package/dist/esm/evm/enums.js.map +1 -1
  51. package/dist/esm/evm/releases/airdrops/index.js +2 -0
  52. package/dist/esm/evm/releases/airdrops/index.js.map +1 -1
  53. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js +227 -0
  54. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.js.map +1 -0
  55. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js +255 -0
  56. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.js.map +1 -0
  57. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js +290 -0
  58. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.js.map +1 -0
  59. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js +262 -0
  60. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.js.map +1 -0
  61. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js +392 -0
  62. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.js.map +1 -0
  63. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js +505 -0
  64. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.js.map +1 -0
  65. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js +491 -0
  66. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.js.map +1 -0
  67. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js +496 -0
  68. package/dist/esm/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.js.map +1 -0
  69. package/dist/esm/evm/releases/airdrops/v3.0/abi.js +20 -0
  70. package/dist/esm/evm/releases/airdrops/v3.0/abi.js.map +1 -0
  71. package/dist/esm/evm/releases/airdrops/v3.0/aliases.js +9 -0
  72. package/dist/esm/evm/releases/airdrops/v3.0/aliases.js.map +1 -0
  73. package/dist/esm/evm/releases/airdrops/v3.0/deployments.js +35 -0
  74. package/dist/esm/evm/releases/airdrops/v3.0/deployments.js.map +1 -0
  75. package/dist/esm/evm/releases/airdrops/v3.0/index.js +19 -0
  76. package/dist/esm/evm/releases/airdrops/v3.0/index.js.map +1 -0
  77. package/dist/esm/evm/releases/airdrops/v3.0/manifest.js +12 -0
  78. package/dist/esm/evm/releases/airdrops/v3.0/manifest.js.map +1 -0
  79. package/dist/esm/helpers.js.map +1 -1
  80. package/dist/types/evm/chains/specs.d.ts +9 -0
  81. package/dist/types/evm/chains/specs.d.ts.map +1 -1
  82. package/dist/types/evm/compatibility.d.ts.map +1 -1
  83. package/dist/types/evm/enums.d.ts +2 -1
  84. package/dist/types/evm/enums.d.ts.map +1 -1
  85. package/dist/types/evm/releases/airdrops/index.d.ts +5063 -0
  86. package/dist/types/evm/releases/airdrops/index.d.ts.map +1 -1
  87. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.d.ts +372 -0
  88. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleInstant.d.ts.map +1 -0
  89. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.d.ts +492 -0
  90. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLL.d.ts.map +1 -0
  91. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.d.ts +507 -0
  92. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleLT.d.ts.map +1 -0
  93. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.d.ts +467 -0
  94. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierFactoryMerkleVCA.d.ts.map +1 -0
  95. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.d.ts +668 -0
  96. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleInstant.d.ts.map +1 -0
  97. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.d.ts +877 -0
  98. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLL.d.ts.map +1 -0
  99. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.d.ts +839 -0
  100. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleLT.d.ts.map +1 -0
  101. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.d.ts +847 -0
  102. package/dist/types/evm/releases/airdrops/v3.0/abi/SablierMerkleVCA.d.ts.map +1 -0
  103. package/dist/types/evm/releases/airdrops/v3.0/abi.d.ts +5064 -0
  104. package/dist/types/evm/releases/airdrops/v3.0/abi.d.ts.map +1 -0
  105. package/dist/types/evm/releases/airdrops/v3.0/aliases.d.ts +8 -0
  106. package/dist/types/evm/releases/airdrops/v3.0/aliases.d.ts.map +1 -0
  107. package/dist/types/evm/releases/airdrops/v3.0/deployments.d.ts +3 -0
  108. package/dist/types/evm/releases/airdrops/v3.0/deployments.d.ts.map +1 -0
  109. package/dist/types/evm/releases/airdrops/v3.0/index.d.ts +5065 -0
  110. package/dist/types/evm/releases/airdrops/v3.0/index.d.ts.map +1 -0
  111. package/dist/types/evm/releases/airdrops/v3.0/manifest.d.ts +12 -0
  112. package/dist/types/evm/releases/airdrops/v3.0/manifest.d.ts.map +1 -0
  113. package/dist/types/evm/releases/data.d.ts +5063 -0
  114. package/dist/types/evm/releases/data.d.ts.map +1 -1
  115. package/package.json +1 -21
package/CHANGELOG.md CHANGED
@@ -9,6 +9,7 @@ The format is based on [Common Changelog](https://common-changelog.org/).
9
9
  > Starting with v2.0.0, this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). In v1.x, it
10
10
  > did not always follow Semantic Versioning.
11
11
 
12
+ [2.0.4]: https://github.com/sablier-labs/sdk/releases/tag/v2.0.4
12
13
  [2.0.3]: https://github.com/sablier-labs/sdk/releases/tag/v2.0.3
13
14
  [2.0.2]: https://github.com/sablier-labs/sdk/releases/tag/v2.0.2
14
15
  [2.0.1]: https://github.com/sablier-labs/sdk/releases/tag/v2.0.1
@@ -29,6 +30,12 @@ The format is based on [Common Changelog](https://common-changelog.org/).
29
30
  [1.1.0]: https://github.com/sablier-labs/sdk/releases/tag/v1.1.0
30
31
  [1.0.0]: https://github.com/sablier-labs/sdk/releases/tag/v1.0.0
31
32
 
33
+ ## [2.0.4] - 2026-02-04
34
+
35
+ ### Removed
36
+
37
+ - Remove `sablier/evm/releases/<protocol>/*/abi/*` subpath exports
38
+
32
39
  ## [2.0.3] - 2026-02-04
33
40
 
34
41
  ### Changed
@@ -0,0 +1,239 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ { "name": "initialAttestor", "type": "address", "internalType": "address" },
6
+ { "name": "initialComptroller", "type": "address", "internalType": "address" }
7
+ ],
8
+ "stateMutability": "nonpayable"
9
+ },
10
+ {
11
+ "type": "function",
12
+ "name": "attestor",
13
+ "inputs": [],
14
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
15
+ "stateMutability": "view"
16
+ },
17
+ {
18
+ "type": "function",
19
+ "name": "comptroller",
20
+ "inputs": [],
21
+ "outputs": [{ "name": "", "type": "address", "internalType": "contract ISablierComptroller" }],
22
+ "stateMutability": "view"
23
+ },
24
+ {
25
+ "type": "function",
26
+ "name": "computeMerkleInstant",
27
+ "inputs": [
28
+ { "name": "campaignCreator", "type": "address", "internalType": "address" },
29
+ {
30
+ "name": "campaignParams",
31
+ "type": "tuple",
32
+ "internalType": "struct MerkleInstant.ConstructorParams",
33
+ "components": [
34
+ { "name": "campaignName", "type": "string", "internalType": "string" },
35
+ { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
36
+ { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
37
+ { "name": "expiration", "type": "uint40", "internalType": "uint40" },
38
+ { "name": "initialAdmin", "type": "address", "internalType": "address" },
39
+ { "name": "ipfsCID", "type": "string", "internalType": "string" },
40
+ { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
41
+ { "name": "token", "type": "address", "internalType": "contract IERC20" }
42
+ ]
43
+ }
44
+ ],
45
+ "outputs": [{ "name": "merkleInstant", "type": "address", "internalType": "address" }],
46
+ "stateMutability": "view"
47
+ },
48
+ {
49
+ "type": "function",
50
+ "name": "createMerkleInstant",
51
+ "inputs": [
52
+ {
53
+ "name": "campaignParams",
54
+ "type": "tuple",
55
+ "internalType": "struct MerkleInstant.ConstructorParams",
56
+ "components": [
57
+ { "name": "campaignName", "type": "string", "internalType": "string" },
58
+ { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
59
+ { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
60
+ { "name": "expiration", "type": "uint40", "internalType": "uint40" },
61
+ { "name": "initialAdmin", "type": "address", "internalType": "address" },
62
+ { "name": "ipfsCID", "type": "string", "internalType": "string" },
63
+ { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
64
+ { "name": "token", "type": "address", "internalType": "contract IERC20" }
65
+ ]
66
+ },
67
+ { "name": "aggregateAmount", "type": "uint256", "internalType": "uint256" },
68
+ { "name": "recipientCount", "type": "uint256", "internalType": "uint256" }
69
+ ],
70
+ "outputs": [
71
+ {
72
+ "name": "merkleInstant",
73
+ "type": "address",
74
+ "internalType": "contract ISablierMerkleInstant"
75
+ }
76
+ ],
77
+ "stateMutability": "nonpayable"
78
+ },
79
+ {
80
+ "type": "function",
81
+ "name": "nativeToken",
82
+ "inputs": [],
83
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
84
+ "stateMutability": "view"
85
+ },
86
+ {
87
+ "type": "function",
88
+ "name": "setAttestor",
89
+ "inputs": [{ "name": "newAttestor", "type": "address", "internalType": "address" }],
90
+ "outputs": [],
91
+ "stateMutability": "nonpayable"
92
+ },
93
+ {
94
+ "type": "function",
95
+ "name": "setComptroller",
96
+ "inputs": [
97
+ {
98
+ "name": "newComptroller",
99
+ "type": "address",
100
+ "internalType": "contract ISablierComptroller"
101
+ }
102
+ ],
103
+ "outputs": [],
104
+ "stateMutability": "nonpayable"
105
+ },
106
+ {
107
+ "type": "function",
108
+ "name": "setNativeToken",
109
+ "inputs": [{ "name": "newNativeToken", "type": "address", "internalType": "address" }],
110
+ "outputs": [],
111
+ "stateMutability": "nonpayable"
112
+ },
113
+ {
114
+ "type": "function",
115
+ "name": "transferFeesToComptroller",
116
+ "inputs": [],
117
+ "outputs": [],
118
+ "stateMutability": "nonpayable"
119
+ },
120
+ {
121
+ "type": "event",
122
+ "name": "CreateMerkleInstant",
123
+ "inputs": [
124
+ {
125
+ "name": "merkleInstant",
126
+ "type": "address",
127
+ "indexed": true,
128
+ "internalType": "contract ISablierMerkleInstant"
129
+ },
130
+ {
131
+ "name": "campaignParams",
132
+ "type": "tuple",
133
+ "indexed": false,
134
+ "internalType": "struct MerkleInstant.ConstructorParams",
135
+ "components": [
136
+ { "name": "campaignName", "type": "string", "internalType": "string" },
137
+ { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
138
+ { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
139
+ { "name": "expiration", "type": "uint40", "internalType": "uint40" },
140
+ { "name": "initialAdmin", "type": "address", "internalType": "address" },
141
+ { "name": "ipfsCID", "type": "string", "internalType": "string" },
142
+ { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
143
+ { "name": "token", "type": "address", "internalType": "contract IERC20" }
144
+ ]
145
+ },
146
+ { "name": "aggregateAmount", "type": "uint256", "indexed": false, "internalType": "uint256" },
147
+ { "name": "recipientCount", "type": "uint256", "indexed": false, "internalType": "uint256" },
148
+ { "name": "attestor", "type": "address", "indexed": false, "internalType": "address" },
149
+ { "name": "comptroller", "type": "address", "indexed": false, "internalType": "address" },
150
+ { "name": "minFeeUSD", "type": "uint256", "indexed": false, "internalType": "uint256" }
151
+ ],
152
+ "anonymous": false
153
+ },
154
+ {
155
+ "type": "event",
156
+ "name": "SetAttestor",
157
+ "inputs": [
158
+ { "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" },
159
+ {
160
+ "name": "previousAttestor",
161
+ "type": "address",
162
+ "indexed": false,
163
+ "internalType": "address"
164
+ },
165
+ { "name": "newAttestor", "type": "address", "indexed": false, "internalType": "address" }
166
+ ],
167
+ "anonymous": false
168
+ },
169
+ {
170
+ "type": "event",
171
+ "name": "SetComptroller",
172
+ "inputs": [
173
+ {
174
+ "name": "oldComptroller",
175
+ "type": "address",
176
+ "indexed": false,
177
+ "internalType": "contract ISablierComptroller"
178
+ },
179
+ {
180
+ "name": "newComptroller",
181
+ "type": "address",
182
+ "indexed": false,
183
+ "internalType": "contract ISablierComptroller"
184
+ }
185
+ ],
186
+ "anonymous": false
187
+ },
188
+ {
189
+ "type": "event",
190
+ "name": "SetNativeToken",
191
+ "inputs": [
192
+ { "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" },
193
+ { "name": "nativeToken", "type": "address", "indexed": false, "internalType": "address" }
194
+ ],
195
+ "anonymous": false
196
+ },
197
+ {
198
+ "type": "event",
199
+ "name": "TransferFeesToComptroller",
200
+ "inputs": [
201
+ {
202
+ "name": "comptroller",
203
+ "type": "address",
204
+ "indexed": true,
205
+ "internalType": "contract ISablierComptroller"
206
+ },
207
+ { "name": "feeAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }
208
+ ],
209
+ "anonymous": false
210
+ },
211
+ {
212
+ "type": "error",
213
+ "name": "Comptrollerable_CallerNotComptroller",
214
+ "inputs": [
215
+ { "name": "comptroller", "type": "address", "internalType": "address" },
216
+ { "name": "caller", "type": "address", "internalType": "address" }
217
+ ]
218
+ },
219
+ {
220
+ "type": "error",
221
+ "name": "Comptrollerable_UnsupportedInterfaceId",
222
+ "inputs": [
223
+ { "name": "previousComptroller", "type": "address", "internalType": "address" },
224
+ { "name": "newComptroller", "type": "address", "internalType": "address" },
225
+ { "name": "minimalInterfaceId", "type": "bytes4", "internalType": "bytes4" }
226
+ ]
227
+ },
228
+ {
229
+ "type": "error",
230
+ "name": "SablierFactoryMerkleBase_ForbidNativeToken",
231
+ "inputs": [{ "name": "nativeToken", "type": "address", "internalType": "address" }]
232
+ },
233
+ {
234
+ "type": "error",
235
+ "name": "SablierFactoryMerkleBase_NativeTokenAlreadySet",
236
+ "inputs": [{ "name": "nativeToken", "type": "address", "internalType": "address" }]
237
+ },
238
+ { "type": "error", "name": "SablierFactoryMerkleBase_NativeTokenZeroAddress", "inputs": [] }
239
+ ]
@@ -0,0 +1,265 @@
1
+ [
2
+ {
3
+ "type": "constructor",
4
+ "inputs": [
5
+ { "name": "initialAttestor", "type": "address", "internalType": "address" },
6
+ { "name": "initialComptroller", "type": "address", "internalType": "address" }
7
+ ],
8
+ "stateMutability": "nonpayable"
9
+ },
10
+ {
11
+ "type": "function",
12
+ "name": "attestor",
13
+ "inputs": [],
14
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
15
+ "stateMutability": "view"
16
+ },
17
+ {
18
+ "type": "function",
19
+ "name": "comptroller",
20
+ "inputs": [],
21
+ "outputs": [{ "name": "", "type": "address", "internalType": "contract ISablierComptroller" }],
22
+ "stateMutability": "view"
23
+ },
24
+ {
25
+ "type": "function",
26
+ "name": "computeMerkleLL",
27
+ "inputs": [
28
+ { "name": "campaignCreator", "type": "address", "internalType": "address" },
29
+ {
30
+ "name": "campaignParams",
31
+ "type": "tuple",
32
+ "internalType": "struct MerkleLL.ConstructorParams",
33
+ "components": [
34
+ { "name": "campaignName", "type": "string", "internalType": "string" },
35
+ { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
36
+ { "name": "cancelable", "type": "bool", "internalType": "bool" },
37
+ { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
38
+ { "name": "cliffDuration", "type": "uint40", "internalType": "uint40" },
39
+ { "name": "cliffUnlockPercentage", "type": "uint256", "internalType": "UD60x18" },
40
+ { "name": "expiration", "type": "uint40", "internalType": "uint40" },
41
+ { "name": "granularity", "type": "uint40", "internalType": "uint40" },
42
+ { "name": "initialAdmin", "type": "address", "internalType": "address" },
43
+ { "name": "ipfsCID", "type": "string", "internalType": "string" },
44
+ { "name": "lockup", "type": "address", "internalType": "contract ISablierLockup" },
45
+ { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
46
+ { "name": "shape", "type": "string", "internalType": "string" },
47
+ { "name": "startUnlockPercentage", "type": "uint256", "internalType": "UD60x18" },
48
+ { "name": "token", "type": "address", "internalType": "contract IERC20" },
49
+ { "name": "totalDuration", "type": "uint40", "internalType": "uint40" },
50
+ { "name": "transferable", "type": "bool", "internalType": "bool" },
51
+ { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" }
52
+ ]
53
+ }
54
+ ],
55
+ "outputs": [{ "name": "merkleLL", "type": "address", "internalType": "address" }],
56
+ "stateMutability": "view"
57
+ },
58
+ {
59
+ "type": "function",
60
+ "name": "createMerkleLL",
61
+ "inputs": [
62
+ {
63
+ "name": "campaignParams",
64
+ "type": "tuple",
65
+ "internalType": "struct MerkleLL.ConstructorParams",
66
+ "components": [
67
+ { "name": "campaignName", "type": "string", "internalType": "string" },
68
+ { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
69
+ { "name": "cancelable", "type": "bool", "internalType": "bool" },
70
+ { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
71
+ { "name": "cliffDuration", "type": "uint40", "internalType": "uint40" },
72
+ { "name": "cliffUnlockPercentage", "type": "uint256", "internalType": "UD60x18" },
73
+ { "name": "expiration", "type": "uint40", "internalType": "uint40" },
74
+ { "name": "granularity", "type": "uint40", "internalType": "uint40" },
75
+ { "name": "initialAdmin", "type": "address", "internalType": "address" },
76
+ { "name": "ipfsCID", "type": "string", "internalType": "string" },
77
+ { "name": "lockup", "type": "address", "internalType": "contract ISablierLockup" },
78
+ { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
79
+ { "name": "shape", "type": "string", "internalType": "string" },
80
+ { "name": "startUnlockPercentage", "type": "uint256", "internalType": "UD60x18" },
81
+ { "name": "token", "type": "address", "internalType": "contract IERC20" },
82
+ { "name": "totalDuration", "type": "uint40", "internalType": "uint40" },
83
+ { "name": "transferable", "type": "bool", "internalType": "bool" },
84
+ { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" }
85
+ ]
86
+ },
87
+ { "name": "aggregateAmount", "type": "uint256", "internalType": "uint256" },
88
+ { "name": "recipientCount", "type": "uint256", "internalType": "uint256" }
89
+ ],
90
+ "outputs": [
91
+ { "name": "merkleLL", "type": "address", "internalType": "contract ISablierMerkleLL" }
92
+ ],
93
+ "stateMutability": "nonpayable"
94
+ },
95
+ {
96
+ "type": "function",
97
+ "name": "nativeToken",
98
+ "inputs": [],
99
+ "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
100
+ "stateMutability": "view"
101
+ },
102
+ {
103
+ "type": "function",
104
+ "name": "setAttestor",
105
+ "inputs": [{ "name": "newAttestor", "type": "address", "internalType": "address" }],
106
+ "outputs": [],
107
+ "stateMutability": "nonpayable"
108
+ },
109
+ {
110
+ "type": "function",
111
+ "name": "setComptroller",
112
+ "inputs": [
113
+ {
114
+ "name": "newComptroller",
115
+ "type": "address",
116
+ "internalType": "contract ISablierComptroller"
117
+ }
118
+ ],
119
+ "outputs": [],
120
+ "stateMutability": "nonpayable"
121
+ },
122
+ {
123
+ "type": "function",
124
+ "name": "setNativeToken",
125
+ "inputs": [{ "name": "newNativeToken", "type": "address", "internalType": "address" }],
126
+ "outputs": [],
127
+ "stateMutability": "nonpayable"
128
+ },
129
+ {
130
+ "type": "function",
131
+ "name": "transferFeesToComptroller",
132
+ "inputs": [],
133
+ "outputs": [],
134
+ "stateMutability": "nonpayable"
135
+ },
136
+ {
137
+ "type": "event",
138
+ "name": "CreateMerkleLL",
139
+ "inputs": [
140
+ {
141
+ "name": "merkleLL",
142
+ "type": "address",
143
+ "indexed": true,
144
+ "internalType": "contract ISablierMerkleLL"
145
+ },
146
+ {
147
+ "name": "campaignParams",
148
+ "type": "tuple",
149
+ "indexed": false,
150
+ "internalType": "struct MerkleLL.ConstructorParams",
151
+ "components": [
152
+ { "name": "campaignName", "type": "string", "internalType": "string" },
153
+ { "name": "campaignStartTime", "type": "uint40", "internalType": "uint40" },
154
+ { "name": "cancelable", "type": "bool", "internalType": "bool" },
155
+ { "name": "claimType", "type": "uint8", "internalType": "enum ClaimType" },
156
+ { "name": "cliffDuration", "type": "uint40", "internalType": "uint40" },
157
+ { "name": "cliffUnlockPercentage", "type": "uint256", "internalType": "UD60x18" },
158
+ { "name": "expiration", "type": "uint40", "internalType": "uint40" },
159
+ { "name": "granularity", "type": "uint40", "internalType": "uint40" },
160
+ { "name": "initialAdmin", "type": "address", "internalType": "address" },
161
+ { "name": "ipfsCID", "type": "string", "internalType": "string" },
162
+ { "name": "lockup", "type": "address", "internalType": "contract ISablierLockup" },
163
+ { "name": "merkleRoot", "type": "bytes32", "internalType": "bytes32" },
164
+ { "name": "shape", "type": "string", "internalType": "string" },
165
+ { "name": "startUnlockPercentage", "type": "uint256", "internalType": "UD60x18" },
166
+ { "name": "token", "type": "address", "internalType": "contract IERC20" },
167
+ { "name": "totalDuration", "type": "uint40", "internalType": "uint40" },
168
+ { "name": "transferable", "type": "bool", "internalType": "bool" },
169
+ { "name": "vestingStartTime", "type": "uint40", "internalType": "uint40" }
170
+ ]
171
+ },
172
+ { "name": "aggregateAmount", "type": "uint256", "indexed": false, "internalType": "uint256" },
173
+ { "name": "recipientCount", "type": "uint256", "indexed": false, "internalType": "uint256" },
174
+ { "name": "attestor", "type": "address", "indexed": false, "internalType": "address" },
175
+ { "name": "comptroller", "type": "address", "indexed": false, "internalType": "address" },
176
+ { "name": "minFeeUSD", "type": "uint256", "indexed": false, "internalType": "uint256" }
177
+ ],
178
+ "anonymous": false
179
+ },
180
+ {
181
+ "type": "event",
182
+ "name": "SetAttestor",
183
+ "inputs": [
184
+ { "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" },
185
+ {
186
+ "name": "previousAttestor",
187
+ "type": "address",
188
+ "indexed": false,
189
+ "internalType": "address"
190
+ },
191
+ { "name": "newAttestor", "type": "address", "indexed": false, "internalType": "address" }
192
+ ],
193
+ "anonymous": false
194
+ },
195
+ {
196
+ "type": "event",
197
+ "name": "SetComptroller",
198
+ "inputs": [
199
+ {
200
+ "name": "oldComptroller",
201
+ "type": "address",
202
+ "indexed": false,
203
+ "internalType": "contract ISablierComptroller"
204
+ },
205
+ {
206
+ "name": "newComptroller",
207
+ "type": "address",
208
+ "indexed": false,
209
+ "internalType": "contract ISablierComptroller"
210
+ }
211
+ ],
212
+ "anonymous": false
213
+ },
214
+ {
215
+ "type": "event",
216
+ "name": "SetNativeToken",
217
+ "inputs": [
218
+ { "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" },
219
+ { "name": "nativeToken", "type": "address", "indexed": false, "internalType": "address" }
220
+ ],
221
+ "anonymous": false
222
+ },
223
+ {
224
+ "type": "event",
225
+ "name": "TransferFeesToComptroller",
226
+ "inputs": [
227
+ {
228
+ "name": "comptroller",
229
+ "type": "address",
230
+ "indexed": true,
231
+ "internalType": "contract ISablierComptroller"
232
+ },
233
+ { "name": "feeAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }
234
+ ],
235
+ "anonymous": false
236
+ },
237
+ {
238
+ "type": "error",
239
+ "name": "Comptrollerable_CallerNotComptroller",
240
+ "inputs": [
241
+ { "name": "comptroller", "type": "address", "internalType": "address" },
242
+ { "name": "caller", "type": "address", "internalType": "address" }
243
+ ]
244
+ },
245
+ {
246
+ "type": "error",
247
+ "name": "Comptrollerable_UnsupportedInterfaceId",
248
+ "inputs": [
249
+ { "name": "previousComptroller", "type": "address", "internalType": "address" },
250
+ { "name": "newComptroller", "type": "address", "internalType": "address" },
251
+ { "name": "minimalInterfaceId", "type": "bytes4", "internalType": "bytes4" }
252
+ ]
253
+ },
254
+ {
255
+ "type": "error",
256
+ "name": "SablierFactoryMerkleBase_ForbidNativeToken",
257
+ "inputs": [{ "name": "nativeToken", "type": "address", "internalType": "address" }]
258
+ },
259
+ {
260
+ "type": "error",
261
+ "name": "SablierFactoryMerkleBase_NativeTokenAlreadySet",
262
+ "inputs": [{ "name": "nativeToken", "type": "address", "internalType": "address" }]
263
+ },
264
+ { "type": "error", "name": "SablierFactoryMerkleBase_NativeTokenZeroAddress", "inputs": [] }
265
+ ]