@reclaimprotocol/attestor-core 4.0.3 → 5.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/lib/avs/abis/avsDirectoryABI.js +341 -342
  4. package/lib/avs/abis/delegationABI.js +4 -5
  5. package/lib/avs/abis/registryABI.js +722 -723
  6. package/lib/avs/client/create-claim-on-avs.d.ts +5 -5
  7. package/lib/avs/client/create-claim-on-avs.js +160 -139
  8. package/lib/avs/config.d.ts +1 -1
  9. package/lib/avs/config.js +25 -23
  10. package/lib/avs/contracts/ReclaimServiceManager.d.ts +436 -532
  11. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  12. package/lib/avs/contracts/common.d.ts +40 -11
  13. package/lib/avs/contracts/common.js +0 -3
  14. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +13 -11
  15. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1157 -1148
  16. package/lib/avs/contracts/factories/index.d.ts +1 -1
  17. package/lib/avs/contracts/factories/index.js +4 -9
  18. package/lib/avs/contracts/index.d.ts +3 -3
  19. package/lib/avs/contracts/index.js +6 -40
  20. package/lib/avs/types/index.d.ts +6 -6
  21. package/lib/avs/types/index.js +0 -3
  22. package/lib/avs/utils/contracts.d.ts +14 -14
  23. package/lib/avs/utils/contracts.js +50 -35
  24. package/lib/avs/utils/register.d.ts +3 -3
  25. package/lib/avs/utils/register.js +71 -79
  26. package/lib/avs/utils/tasks.d.ts +4 -4
  27. package/lib/avs/utils/tasks.js +44 -41
  28. package/lib/client/create-claim.d.ts +2 -2
  29. package/lib/client/create-claim.js +437 -400
  30. package/lib/client/index.d.ts +3 -3
  31. package/lib/client/index.js +3 -20
  32. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +2 -2
  33. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +49 -56
  34. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +4 -3
  35. package/lib/client/tunnels/make-rpc-tls-tunnel.js +123 -131
  36. package/lib/client/utils/attestor-pool.d.ts +3 -1
  37. package/lib/client/utils/attestor-pool.js +21 -25
  38. package/lib/client/utils/client-socket.d.ts +4 -4
  39. package/lib/client/utils/client-socket.js +114 -94
  40. package/lib/client/utils/message-handler.d.ts +2 -2
  41. package/lib/client/utils/message-handler.js +89 -86
  42. package/lib/config/index.d.ts +6 -3
  43. package/lib/config/index.js +60 -37
  44. package/lib/external-rpc/benchmark.d.ts +1 -0
  45. package/lib/external-rpc/benchmark.js +82 -0
  46. package/lib/external-rpc/event-bus.d.ts +7 -0
  47. package/lib/external-rpc/event-bus.js +17 -0
  48. package/lib/external-rpc/global.d.js +0 -0
  49. package/lib/external-rpc/handle-incoming-msg.d.ts +2 -0
  50. package/lib/external-rpc/handle-incoming-msg.js +241 -0
  51. package/lib/external-rpc/index.d.ts +3 -0
  52. package/lib/external-rpc/index.js +3 -0
  53. package/lib/external-rpc/jsc-polyfills/1.d.ts +14 -0
  54. package/lib/external-rpc/jsc-polyfills/1.js +80 -0
  55. package/lib/external-rpc/jsc-polyfills/2.js +15 -0
  56. package/lib/external-rpc/jsc-polyfills/event.d.ts +10 -0
  57. package/lib/external-rpc/jsc-polyfills/event.js +19 -0
  58. package/lib/external-rpc/jsc-polyfills/index.d.ts +2 -0
  59. package/lib/external-rpc/jsc-polyfills/index.js +2 -0
  60. package/lib/external-rpc/jsc-polyfills/ws.d.ts +21 -0
  61. package/lib/external-rpc/jsc-polyfills/ws.js +83 -0
  62. package/lib/external-rpc/setup-browser.d.ts +6 -0
  63. package/lib/external-rpc/setup-browser.js +33 -0
  64. package/lib/external-rpc/setup-jsc.d.ts +24 -0
  65. package/lib/external-rpc/setup-jsc.js +22 -0
  66. package/lib/{window-rpc → external-rpc}/types.d.ts +56 -35
  67. package/lib/external-rpc/types.js +0 -0
  68. package/lib/external-rpc/utils.d.ts +20 -0
  69. package/lib/external-rpc/utils.js +100 -0
  70. package/lib/external-rpc/zk.d.ts +14 -0
  71. package/lib/external-rpc/zk.js +58 -0
  72. package/lib/index.d.ts +8 -9
  73. package/lib/index.js +12 -49
  74. package/lib/mechain/abis/governanceABI.js +460 -461
  75. package/lib/mechain/abis/taskABI.js +505 -506
  76. package/lib/mechain/client/create-claim-on-mechain.d.ts +3 -3
  77. package/lib/mechain/client/create-claim-on-mechain.js +31 -30
  78. package/lib/mechain/client/index.d.ts +1 -1
  79. package/lib/mechain/client/index.js +1 -18
  80. package/lib/mechain/constants/index.js +8 -7
  81. package/lib/mechain/index.d.ts +2 -2
  82. package/lib/mechain/index.js +2 -19
  83. package/lib/mechain/types/index.d.ts +2 -2
  84. package/lib/mechain/types/index.js +0 -3
  85. package/lib/proto/api.d.ts +182 -39
  86. package/lib/proto/api.js +4105 -3555
  87. package/lib/proto/tee-bundle.d.ts +156 -0
  88. package/lib/proto/tee-bundle.js +1296 -0
  89. package/lib/providers/http/index.d.ts +16 -1
  90. package/lib/providers/http/index.js +603 -576
  91. package/lib/providers/http/patch-parse5-tree.d.ts +6 -0
  92. package/lib/providers/http/patch-parse5-tree.js +34 -0
  93. package/lib/providers/http/utils.d.ts +7 -4
  94. package/lib/providers/http/utils.js +240 -317
  95. package/lib/providers/index.d.ts +1 -1
  96. package/lib/providers/index.js +5 -9
  97. package/lib/scripts/check-avs-registration.d.ts +1 -1
  98. package/lib/scripts/check-avs-registration.js +24 -25
  99. package/lib/scripts/fallbacks/crypto.d.ts +1 -0
  100. package/lib/scripts/fallbacks/crypto.js +4 -0
  101. package/lib/scripts/fallbacks/empty.d.ts +3 -0
  102. package/lib/scripts/fallbacks/empty.js +4 -0
  103. package/lib/scripts/fallbacks/re2.d.ts +1 -0
  104. package/lib/scripts/fallbacks/re2.js +7 -0
  105. package/lib/scripts/fallbacks/snarkjs.d.ts +1 -0
  106. package/lib/scripts/fallbacks/snarkjs.js +10 -0
  107. package/lib/scripts/fallbacks/stwo.d.ts +6 -0
  108. package/lib/scripts/fallbacks/stwo.js +159 -0
  109. package/lib/scripts/generate-provider-types.js +92 -73
  110. package/lib/scripts/generate-receipt.d.ts +2 -2
  111. package/lib/scripts/generate-receipt.js +94 -83
  112. package/lib/scripts/generate-toprf-keys.js +17 -16
  113. package/lib/scripts/jsc-cli-rpc.d.ts +1 -0
  114. package/lib/scripts/jsc-cli-rpc.js +35 -0
  115. package/lib/scripts/register-avs-operator.d.ts +1 -1
  116. package/lib/scripts/register-avs-operator.js +3 -7
  117. package/lib/scripts/start-server.d.ts +1 -1
  118. package/lib/scripts/start-server.js +9 -11
  119. package/lib/scripts/update-avs-metadata.d.ts +1 -1
  120. package/lib/scripts/update-avs-metadata.js +17 -19
  121. package/lib/scripts/utils.js +8 -9
  122. package/lib/scripts/whitelist-operator.d.ts +1 -1
  123. package/lib/scripts/whitelist-operator.js +13 -15
  124. package/lib/server/create-server.d.ts +3 -2
  125. package/lib/server/create-server.js +98 -85
  126. package/lib/server/handlers/claimTeeBundle.d.ts +6 -0
  127. package/lib/server/handlers/claimTeeBundle.js +232 -0
  128. package/lib/server/handlers/claimTunnel.d.ts +1 -1
  129. package/lib/server/handlers/claimTunnel.js +75 -73
  130. package/lib/server/handlers/completeClaimOnChain.d.ts +1 -1
  131. package/lib/server/handlers/completeClaimOnChain.js +27 -26
  132. package/lib/server/handlers/createClaimOnChain.d.ts +1 -1
  133. package/lib/server/handlers/createClaimOnChain.js +30 -29
  134. package/lib/server/handlers/createTaskOnMechain.d.ts +1 -1
  135. package/lib/server/handlers/createTaskOnMechain.js +54 -49
  136. package/lib/server/handlers/createTunnel.d.ts +1 -1
  137. package/lib/server/handlers/createTunnel.js +91 -94
  138. package/lib/server/handlers/disconnectTunnel.d.ts +1 -1
  139. package/lib/server/handlers/disconnectTunnel.js +6 -8
  140. package/lib/server/handlers/fetchCertificateBytes.d.ts +2 -0
  141. package/lib/server/handlers/fetchCertificateBytes.js +57 -0
  142. package/lib/server/handlers/index.d.ts +1 -1
  143. package/lib/server/handlers/index.js +24 -21
  144. package/lib/server/handlers/init.d.ts +1 -1
  145. package/lib/server/handlers/init.js +31 -34
  146. package/lib/server/handlers/toprf.d.ts +1 -1
  147. package/lib/server/handlers/toprf.js +17 -19
  148. package/lib/server/index.d.ts +4 -4
  149. package/lib/server/index.js +4 -21
  150. package/lib/server/socket.d.ts +7 -7
  151. package/lib/server/socket.js +104 -106
  152. package/lib/server/tunnels/make-tcp-tunnel.d.ts +5 -3
  153. package/lib/server/tunnels/make-tcp-tunnel.js +189 -162
  154. package/lib/server/utils/apm.d.ts +1 -1
  155. package/lib/server/utils/apm.js +26 -40
  156. package/lib/server/utils/assert-valid-claim-request.d.ts +6 -5
  157. package/lib/server/utils/assert-valid-claim-request.js +339 -185
  158. package/lib/server/utils/config-env.js +4 -7
  159. package/lib/server/utils/dns.js +18 -16
  160. package/lib/server/utils/gcp-attestation.d.ts +17 -0
  161. package/lib/server/utils/gcp-attestation.js +237 -0
  162. package/lib/server/utils/generics.d.ts +3 -3
  163. package/lib/server/utils/generics.js +37 -51
  164. package/lib/server/utils/iso.js +255 -256
  165. package/lib/server/utils/keep-alive.d.ts +2 -2
  166. package/lib/server/utils/keep-alive.js +36 -40
  167. package/lib/server/utils/nitro-attestation.d.ts +33 -0
  168. package/lib/server/utils/nitro-attestation.js +249 -0
  169. package/lib/server/utils/oprf-raw.d.ts +21 -0
  170. package/lib/server/utils/oprf-raw.js +61 -0
  171. package/lib/server/utils/process-handshake.d.ts +3 -3
  172. package/lib/server/utils/process-handshake.js +217 -175
  173. package/lib/server/utils/proxy-session.d.ts +1 -0
  174. package/lib/server/utils/proxy-session.js +6 -0
  175. package/lib/server/utils/tee-oprf-mpc-verification.d.ts +16 -0
  176. package/lib/server/utils/tee-oprf-mpc-verification.js +86 -0
  177. package/lib/server/utils/tee-oprf-verification.d.ts +24 -0
  178. package/lib/server/utils/tee-oprf-verification.js +151 -0
  179. package/lib/server/utils/tee-transcript-reconstruction.d.ts +24 -0
  180. package/lib/server/utils/tee-transcript-reconstruction.js +140 -0
  181. package/lib/server/utils/tee-verification.d.ts +28 -0
  182. package/lib/server/utils/tee-verification.js +358 -0
  183. package/lib/{utils → server/utils}/validation.d.ts +1 -1
  184. package/lib/server/utils/validation.js +45 -0
  185. package/lib/types/bgp.js +0 -3
  186. package/lib/types/claims.d.ts +7 -10
  187. package/lib/types/claims.js +0 -3
  188. package/lib/types/client.d.ts +5 -5
  189. package/lib/types/client.js +0 -3
  190. package/lib/types/general.d.ts +29 -4
  191. package/lib/types/general.js +0 -3
  192. package/lib/types/handlers.d.ts +3 -3
  193. package/lib/types/handlers.js +0 -3
  194. package/lib/types/index.d.ts +10 -10
  195. package/lib/types/index.js +10 -27
  196. package/lib/types/providers.d.ts +15 -4
  197. package/lib/types/providers.gen.d.ts +15 -1
  198. package/lib/types/providers.gen.js +15 -13
  199. package/lib/types/providers.js +0 -3
  200. package/lib/types/rpc.d.ts +2 -2
  201. package/lib/types/rpc.js +0 -3
  202. package/lib/types/signatures.js +0 -3
  203. package/lib/types/tunnel.d.ts +2 -2
  204. package/lib/types/tunnel.js +0 -3
  205. package/lib/types/zk.d.ts +17 -2
  206. package/lib/types/zk.js +0 -3
  207. package/lib/utils/auth.d.ts +2 -1
  208. package/lib/utils/auth.js +66 -59
  209. package/lib/utils/b64-json.js +13 -19
  210. package/lib/utils/bgp-listener.d.ts +1 -1
  211. package/lib/utils/bgp-listener.js +111 -114
  212. package/lib/utils/claims.d.ts +3 -3
  213. package/lib/utils/claims.js +78 -101
  214. package/lib/utils/env.js +15 -16
  215. package/lib/utils/error.d.ts +6 -7
  216. package/lib/utils/error.js +50 -39
  217. package/lib/utils/generics.d.ts +15 -13
  218. package/lib/utils/generics.js +217 -297
  219. package/lib/utils/http-parser.d.ts +1 -1
  220. package/lib/utils/http-parser.js +186 -237
  221. package/lib/utils/index.d.ts +13 -12
  222. package/lib/utils/index.js +13 -29
  223. package/lib/utils/logger.d.ts +1 -1
  224. package/lib/utils/logger.js +69 -87
  225. package/lib/utils/prepare-packets.d.ts +3 -3
  226. package/lib/utils/prepare-packets.js +66 -58
  227. package/lib/utils/redactions.d.ts +20 -1
  228. package/lib/utils/redactions.js +116 -129
  229. package/lib/utils/retries.d.ts +1 -1
  230. package/lib/utils/retries.js +24 -26
  231. package/lib/utils/signatures/eth.d.ts +1 -1
  232. package/lib/utils/signatures/eth.js +28 -30
  233. package/lib/utils/signatures/index.d.ts +3 -3
  234. package/lib/utils/signatures/index.js +11 -10
  235. package/lib/utils/socket-base.d.ts +6 -5
  236. package/lib/utils/socket-base.js +89 -88
  237. package/lib/utils/tls.d.ts +1 -1
  238. package/lib/utils/tls.js +54 -28
  239. package/lib/utils/ws.d.ts +1 -6
  240. package/lib/utils/ws.js +17 -33
  241. package/lib/utils/zk.d.ts +28 -12
  242. package/lib/utils/zk.js +587 -406
  243. package/package.json +72 -60
  244. package/lib/avs/tests/test.operator.d.ts +0 -11
  245. package/lib/avs/tests/test.operator.js +0 -313
  246. package/lib/avs/tests/utils.d.ts +0 -2
  247. package/lib/avs/tests/utils.js +0 -50
  248. package/lib/scripts/verify-root-ca.d.ts +0 -1
  249. package/lib/scripts/verify-root-ca.js +0 -51
  250. package/lib/tests/describe-with-server.d.ts +0 -20
  251. package/lib/tests/describe-with-server.js +0 -64
  252. package/lib/tests/mock-provider-server.d.ts +0 -13
  253. package/lib/tests/mock-provider-server.js +0 -65
  254. package/lib/tests/mocks.d.ts +0 -4
  255. package/lib/tests/mocks.js +0 -23
  256. package/lib/tests/test.auth.js +0 -75
  257. package/lib/tests/test.bgp-listener.js +0 -169
  258. package/lib/tests/test.claim-creation.js +0 -280
  259. package/lib/tests/test.http-parser.d.ts +0 -1
  260. package/lib/tests/test.http-parser.js +0 -120
  261. package/lib/tests/test.http-provider-utils.js +0 -2416
  262. package/lib/tests/test.http-provider.d.ts +0 -1
  263. package/lib/tests/test.http-provider.js +0 -114
  264. package/lib/tests/test.rpc-communication.d.ts +0 -1
  265. package/lib/tests/test.rpc-communication.js +0 -64
  266. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  267. package/lib/tests/test.rpc-tunnel.js +0 -172
  268. package/lib/tests/test.signatures.d.ts +0 -1
  269. package/lib/tests/test.signatures.js +0 -24
  270. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  271. package/lib/tests/test.tcp-tunnel.js +0 -64
  272. package/lib/tests/test.zk.d.ts +0 -1
  273. package/lib/tests/test.zk.js +0 -337
  274. package/lib/tests/utils.d.ts +0 -18
  275. package/lib/tests/utils.js +0 -64
  276. package/lib/utils/atomic-operations.d.ts +0 -24
  277. package/lib/utils/atomic-operations.js +0 -65
  278. package/lib/utils/benchmark.d.ts +0 -1
  279. package/lib/utils/benchmark.js +0 -70
  280. package/lib/utils/connection-state-machine.d.ts +0 -43
  281. package/lib/utils/connection-state-machine.js +0 -129
  282. package/lib/utils/resource-monitor.d.ts +0 -61
  283. package/lib/utils/resource-monitor.js +0 -107
  284. package/lib/utils/validation.js +0 -46
  285. package/lib/window-rpc/index.d.ts +0 -3
  286. package/lib/window-rpc/index.js +0 -20
  287. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  288. package/lib/window-rpc/setup-window-rpc.js +0 -291
  289. package/lib/window-rpc/types.js +0 -3
  290. package/lib/window-rpc/utils.d.ts +0 -14
  291. package/lib/window-rpc/utils.js +0 -102
  292. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  293. package/lib/window-rpc/window-rpc-zk.js +0 -85
  294. /package/lib/{tests/test.auth.d.ts → external-rpc/jsc-polyfills/2.d.ts} +0 -0
  295. /package/lib/{tests/test.bgp-listener.d.ts → scripts/build-browser.d.ts} +0 -0
  296. /package/lib/{tests/test.claim-creation.d.ts → scripts/build-jsc.d.ts} +0 -0
  297. /package/lib/{tests/test.http-provider-utils.d.ts → scripts/build-lib.d.ts} +0 -0
@@ -1,5 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.delegationABI = void 0;
4
- exports.delegationABI = [{ "type": "function", "name": "DELEGATION_APPROVAL_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "DOMAIN_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "STAKER_DELEGATION_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "beaconChainETHStrategy", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IStrategy" }], "stateMutability": "view" }, { "type": "function", "name": "calculateCurrentStakerDelegationDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateDelegationApprovalDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "_delegationApprover", "type": "address", "internalType": "address" }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateStakerDelegationDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "_stakerNonce", "type": "uint256", "internalType": "uint256" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateWithdrawalRoot", "inputs": [{ "name": "withdrawal", "type": "tuple", "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "completeQueuedWithdrawal", "inputs": [{ "name": "withdrawal", "type": "tuple", "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }, { "name": "tokens", "type": "address[]", "internalType": "contract IERC20[]" }, { "name": "middlewareTimesIndex", "type": "uint256", "internalType": "uint256" }, { "name": "receiveAsTokens", "type": "bool", "internalType": "bool" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "completeQueuedWithdrawals", "inputs": [{ "name": "withdrawals", "type": "tuple[]", "internalType": "struct IDelegationManager.Withdrawal[]", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }, { "name": "tokens", "type": "address[][]", "internalType": "contract IERC20[][]" }, { "name": "middlewareTimesIndexes", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "receiveAsTokens", "type": "bool[]", "internalType": "bool[]" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "cumulativeWithdrawalsQueued", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "decreaseDelegatedShares", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateTo", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "approverSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateToBySignature", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "stakerSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegatedTo", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "delegationApprover", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "delegationApproverSaltIsSpent", "inputs": [{ "name": "_delegationApprover", "type": "address", "internalType": "address" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "domainSeparator", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "earningsReceiver", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "getOperatorShares", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }], "outputs": [{ "name": "", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "view" }, { "type": "function", "name": "getWithdrawalDelay", "inputs": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "increaseDelegatedShares", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "isDelegated", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "isOperator", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "migrateQueuedWithdrawals", "inputs": [{ "name": "withdrawalsToQueue", "type": "tuple[]", "internalType": "struct IStrategyManager.DeprecatedStruct_QueuedWithdrawal[]", "components": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "staker", "type": "address", "internalType": "address" }, { "name": "withdrawerAndNonce", "type": "tuple", "internalType": "struct IStrategyManager.DeprecatedStruct_WithdrawerAndNonce", "components": [{ "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint96", "internalType": "uint96" }] }, { "name": "withdrawalStartBlock", "type": "uint32", "internalType": "uint32" }, { "name": "delegatedAddress", "type": "address", "internalType": "address" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "minWithdrawalDelayBlocks", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "modifyOperatorDetails", "inputs": [{ "name": "newOperatorDetails", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "operatorDetails", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "stateMutability": "view" }, { "type": "function", "name": "operatorShares", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "queueWithdrawals", "inputs": [{ "name": "queuedWithdrawalParams", "type": "tuple[]", "internalType": "struct IDelegationManager.QueuedWithdrawalParams[]", "components": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "withdrawer", "type": "address", "internalType": "address" }] }], "outputs": [{ "name": "", "type": "bytes32[]", "internalType": "bytes32[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "registerAsOperator", "inputs": [{ "name": "registeringOperatorDetails", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }, { "name": "metadataURI", "type": "string", "internalType": "string" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "stakerNonce", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "stakerOptOutWindowBlocks", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "strategyWithdrawalDelayBlocks", "inputs": [{ "name": "strategy", "type": "address", "internalType": "contract IStrategy" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "undelegate", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "withdrawalRoot", "type": "bytes32[]", "internalType": "bytes32[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "updateOperatorMetadataURI", "inputs": [{ "name": "metadataURI", "type": "string", "internalType": "string" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "MinWithdrawalDelayBlocksSet", "inputs": [{ "name": "previousValue", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newValue", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "OperatorDetailsModified", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newOperatorDetails", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "anonymous": false }, { "type": "event", "name": "OperatorMetadataURIUpdated", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "metadataURI", "type": "string", "indexed": false, "internalType": "string" }], "anonymous": false }, { "type": "event", "name": "OperatorRegistered", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operatorDetails", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "anonymous": false }, { "type": "event", "name": "OperatorSharesDecreased", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "staker", "type": "address", "indexed": false, "internalType": "address" }, { "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "OperatorSharesIncreased", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "staker", "type": "address", "indexed": false, "internalType": "address" }, { "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakerDelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakerForceUndelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakerUndelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StrategyWithdrawalDelayBlocksSet", "inputs": [{ "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "previousValue", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newValue", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "WithdrawalCompleted", "inputs": [{ "name": "withdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }], "anonymous": false }, { "type": "event", "name": "WithdrawalMigrated", "inputs": [{ "name": "oldWithdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }, { "name": "newWithdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }], "anonymous": false }, { "type": "event", "name": "WithdrawalQueued", "inputs": [{ "name": "withdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }, { "name": "withdrawal", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }], "anonymous": false }];
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbkFCSS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdnMvYWJpcy9kZWxlZ2F0aW9uQUJJLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsYUFBYSxHQUFHLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyw4QkFBOEIsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLDRCQUE0QixFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxvQkFBb0IsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyw0Q0FBNEMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsdUNBQXVDLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxxQ0FBcUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLHlCQUF5QixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxzQ0FBc0MsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxzQkFBc0IsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxXQUFXLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLDBCQUEwQixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxzQ0FBc0MsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLGNB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U0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQyw0Q0FBNEMsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsdUJBQXVCLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywwQkFBMEIsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQyw0Q0FBNEMsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQyw0Q0FBNEMsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsT0FBTyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQywrQkFBK0IsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLG1CQUFtQixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsc0JBQXNCLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxXQUFXLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsY0FBYyxFQUFDLHNCQUFzQixFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLHlCQUF5QixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsb0JBQW9CLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsMEJBQTBCLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsNkRBQTZELEVBQUMsWUFBWSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsY0FBYyxFQUFDLHNCQUFzQixFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsY0FBYyxFQUFDLFdBQVcsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQyw2REFBNkQsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxRQUFRLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsRUFBRSxFQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsMEJBQTBCLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLHVCQUF1QixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLG9CQUFvQixFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsY0FBYyxFQUFDLDJDQUEyQyxFQUFDLFlBQVksRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG9CQUFvQixFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLDBCQUEwQixFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUMsWUFBWSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsMkNBQTJDLEVBQUMsWUFBWSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxjQUFjLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLG9CQUFvQixFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLG9EQUFvRCxFQUFDLFlBQVksRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxzQkFBc0IsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxXQUFXLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsY0FBYyxFQUFDLFdBQVcsRUFBQyxDQUFDLEVBQUMsaUJBQWlCLEVBQUMsWUFBWSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLGNBQWMsRUFBQywyQ0FBMkMsRUFBQyxZQUFZLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywwQkFBMEIsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEVBQUUsRUFBQyxpQkFBaUIsRUFBQyxZQUFZLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLGFBQWEsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLDBCQUEwQixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsK0JBQStCLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLG9CQUFvQixFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFB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LEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxjQUFjLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsV0FBVyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMseUJBQXlCLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsb0JBQW9CLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLHlCQUF5QixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLG9CQUFvQixFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxXQUFXLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsV0FBVyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxXQUFXLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxrQ0FBa0MsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxvQkFBb0IsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsV0FBVyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLG9CQUFvQixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLG1CQUFtQixFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsc0NBQXNDLEVBQUMsWUFBWSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsY0FBYyxFQUFDLFNBQVMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxRQUFRLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsc0JBQXNCLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsV0FBVyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsV0FBVyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUEifQ==
1
+ const delegationABI = [{ "type": "function", "name": "DELEGATION_APPROVAL_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "DOMAIN_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "STAKER_DELEGATION_TYPEHASH", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "beaconChainETHStrategy", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IStrategy" }], "stateMutability": "view" }, { "type": "function", "name": "calculateCurrentStakerDelegationDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateDelegationApprovalDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "_delegationApprover", "type": "address", "internalType": "address" }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateStakerDelegationDigestHash", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "_stakerNonce", "type": "uint256", "internalType": "uint256" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "calculateWithdrawalRoot", "inputs": [{ "name": "withdrawal", "type": "tuple", "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "pure" }, { "type": "function", "name": "completeQueuedWithdrawal", "inputs": [{ "name": "withdrawal", "type": "tuple", "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }, { "name": "tokens", "type": "address[]", "internalType": "contract IERC20[]" }, { "name": "middlewareTimesIndex", "type": "uint256", "internalType": "uint256" }, { "name": "receiveAsTokens", "type": "bool", "internalType": "bool" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "completeQueuedWithdrawals", "inputs": [{ "name": "withdrawals", "type": "tuple[]", "internalType": "struct IDelegationManager.Withdrawal[]", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }, { "name": "tokens", "type": "address[][]", "internalType": "contract IERC20[][]" }, { "name": "middlewareTimesIndexes", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "receiveAsTokens", "type": "bool[]", "internalType": "bool[]" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "cumulativeWithdrawalsQueued", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "decreaseDelegatedShares", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateTo", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "approverSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegateToBySignature", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "operator", "type": "address", "internalType": "address" }, { "name": "stakerSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSignatureAndExpiry", "type": "tuple", "internalType": "struct ISignatureUtils.SignatureWithExpiry", "components": [{ "name": "signature", "type": "bytes", "internalType": "bytes" }, { "name": "expiry", "type": "uint256", "internalType": "uint256" }] }, { "name": "approverSalt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "delegatedTo", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "delegationApprover", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "delegationApproverSaltIsSpent", "inputs": [{ "name": "_delegationApprover", "type": "address", "internalType": "address" }, { "name": "salt", "type": "bytes32", "internalType": "bytes32" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "domainSeparator", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "earningsReceiver", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "getOperatorShares", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }], "outputs": [{ "name": "", "type": "uint256[]", "internalType": "uint256[]" }], "stateMutability": "view" }, { "type": "function", "name": "getWithdrawalDelay", "inputs": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "increaseDelegatedShares", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "isDelegated", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "isOperator", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "migrateQueuedWithdrawals", "inputs": [{ "name": "withdrawalsToQueue", "type": "tuple[]", "internalType": "struct IStrategyManager.DeprecatedStruct_QueuedWithdrawal[]", "components": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "staker", "type": "address", "internalType": "address" }, { "name": "withdrawerAndNonce", "type": "tuple", "internalType": "struct IStrategyManager.DeprecatedStruct_WithdrawerAndNonce", "components": [{ "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint96", "internalType": "uint96" }] }, { "name": "withdrawalStartBlock", "type": "uint32", "internalType": "uint32" }, { "name": "delegatedAddress", "type": "address", "internalType": "address" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "minWithdrawalDelayBlocks", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "modifyOperatorDetails", "inputs": [{ "name": "newOperatorDetails", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "operatorDetails", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "stateMutability": "view" }, { "type": "function", "name": "operatorShares", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }, { "name": "strategy", "type": "address", "internalType": "contract IStrategy" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "queueWithdrawals", "inputs": [{ "name": "queuedWithdrawalParams", "type": "tuple[]", "internalType": "struct IDelegationManager.QueuedWithdrawalParams[]", "components": [{ "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "withdrawer", "type": "address", "internalType": "address" }] }], "outputs": [{ "name": "", "type": "bytes32[]", "internalType": "bytes32[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "registerAsOperator", "inputs": [{ "name": "registeringOperatorDetails", "type": "tuple", "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }, { "name": "metadataURI", "type": "string", "internalType": "string" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "stakerNonce", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "stakerOptOutWindowBlocks", "inputs": [{ "name": "operator", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "strategyWithdrawalDelayBlocks", "inputs": [{ "name": "strategy", "type": "address", "internalType": "contract IStrategy" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "undelegate", "inputs": [{ "name": "staker", "type": "address", "internalType": "address" }], "outputs": [{ "name": "withdrawalRoot", "type": "bytes32[]", "internalType": "bytes32[]" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "updateOperatorMetadataURI", "inputs": [{ "name": "metadataURI", "type": "string", "internalType": "string" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "event", "name": "MinWithdrawalDelayBlocksSet", "inputs": [{ "name": "previousValue", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newValue", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "OperatorDetailsModified", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newOperatorDetails", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "anonymous": false }, { "type": "event", "name": "OperatorMetadataURIUpdated", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "metadataURI", "type": "string", "indexed": false, "internalType": "string" }], "anonymous": false }, { "type": "event", "name": "OperatorRegistered", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operatorDetails", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.OperatorDetails", "components": [{ "name": "earningsReceiver", "type": "address", "internalType": "address" }, { "name": "delegationApprover", "type": "address", "internalType": "address" }, { "name": "stakerOptOutWindowBlocks", "type": "uint32", "internalType": "uint32" }] }], "anonymous": false }, { "type": "event", "name": "OperatorSharesDecreased", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "staker", "type": "address", "indexed": false, "internalType": "address" }, { "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "OperatorSharesIncreased", "inputs": [{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" }, { "name": "staker", "type": "address", "indexed": false, "internalType": "address" }, { "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "shares", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "StakerDelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakerForceUndelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StakerUndelegated", "inputs": [{ "name": "staker", "type": "address", "indexed": true, "internalType": "address" }, { "name": "operator", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "StrategyWithdrawalDelayBlocksSet", "inputs": [{ "name": "strategy", "type": "address", "indexed": false, "internalType": "contract IStrategy" }, { "name": "previousValue", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "newValue", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "WithdrawalCompleted", "inputs": [{ "name": "withdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }], "anonymous": false }, { "type": "event", "name": "WithdrawalMigrated", "inputs": [{ "name": "oldWithdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }, { "name": "newWithdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }], "anonymous": false }, { "type": "event", "name": "WithdrawalQueued", "inputs": [{ "name": "withdrawalRoot", "type": "bytes32", "indexed": false, "internalType": "bytes32" }, { "name": "withdrawal", "type": "tuple", "indexed": false, "internalType": "struct IDelegationManager.Withdrawal", "components": [{ "name": "staker", "type": "address", "internalType": "address" }, { "name": "delegatedTo", "type": "address", "internalType": "address" }, { "name": "withdrawer", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "startBlock", "type": "uint32", "internalType": "uint32" }, { "name": "strategies", "type": "address[]", "internalType": "contract IStrategy[]" }, { "name": "shares", "type": "uint256[]", "internalType": "uint256[]" }] }], "anonymous": false }];
2
+ export {
3
+ delegationABI
4
+ };