@obolnetwork/obol-sdk 2.11.9 → 2.11.10

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.
@@ -9,7 +9,7 @@ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
9
  var __getProtoOf = Object.getPrototypeOf;
10
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
11
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __knownSymbol = (name2, symbol3) => (symbol3 = Symbol[name2]) ? symbol3 : Symbol.for("Symbol." + name2);
12
+ var __knownSymbol = (name2, symbol3) => (symbol3 = Symbol[name2]) ? symbol3 : /* @__PURE__ */ Symbol.for("Symbol." + name2);
13
13
  var __typeError = (msg) => {
14
14
  throw TypeError(msg);
15
15
  };
@@ -114,6 +114,7 @@ __export(index_exports, {
114
114
  CONFIG_VERSION: () => CONFIG_VERSION,
115
115
  CONFLICT_ERROR_MSG: () => CONFLICT_ERROR_MSG,
116
116
  Client: () => Client,
117
+ ConflictError: () => ConflictError,
117
118
  CreatorConfigHashSigningTypes: () => CreatorConfigHashSigningTypes,
118
119
  CreatorTypedMessage: () => CreatorTypedMessage,
119
120
  DEFAULT_BASE_URL: () => DEFAULT_BASE_URL,
@@ -145,10 +146,12 @@ __export(index_exports, {
145
146
  PROVIDER_MAP: () => PROVIDER_MAP,
146
147
  SDK_VERSION: () => SDK_VERSION,
147
148
  SPLITS_V2_SALT: () => SPLITS_V2_SALT,
149
+ SignerRequiredError: () => SignerRequiredError,
148
150
  TERMS_AND_CONDITIONS_HASH: () => TERMS_AND_CONDITIONS_HASH,
149
151
  TERMS_AND_CONDITIONS_URL: () => TERMS_AND_CONDITIONS_URL,
150
152
  TERMS_AND_CONDITIONS_VERSION: () => TERMS_AND_CONDITIONS_VERSION,
151
153
  TermsAndConditionsSigningTypes: () => TermsAndConditionsSigningTypes,
154
+ UnsupportedChainError: () => UnsupportedChainError,
152
155
  clusterConfigOrDefinitionHash: () => clusterConfigOrDefinitionHash,
153
156
  clusterLockHash: () => clusterLockHash,
154
157
  isChainSupportedForSplitters: () => isChainSupportedForSplitters,
@@ -171,7 +174,7 @@ var import_uuid = require("uuid");
171
174
  // package.json
172
175
  var package_default = {
173
176
  name: "@obolnetwork/obol-sdk",
174
- version: "2.11.9",
177
+ version: "2.11.10",
175
178
  description: "A package for creating Distributed Validators using the Obol API.",
176
179
  bugs: {
177
180
  url: "https://github.com/obolnetwork/obol-sdk/issues"
@@ -231,7 +234,6 @@ var package_default = {
231
234
  },
232
235
  dependencies: {
233
236
  "@chainsafe/bls": "6.0.3",
234
- "@chainsafe/blst": "^0.2.0",
235
237
  "@chainsafe/enr": "^5.0.1",
236
238
  "@chainsafe/ssz": "^0.14.0",
237
239
  "@metamask/eth-sig-util": "^8.2.0",
@@ -264,7 +266,7 @@ var package_default = {
264
266
  husky: "^9.1.7",
265
267
  jest: "^29.7.0",
266
268
  "lint-staged": "^16.2.3",
267
- msw: "^2.11.3",
269
+ msw: "^2.12.4",
268
270
  nock: "^14.0.10",
269
271
  "npm-run-all": "^4.1.5",
270
272
  prettier: "^3.6.2",
@@ -347,24 +349,21 @@ var package_default = {
347
349
  "<rootDir>/test"
348
350
  ],
349
351
  maxWorkers: "50%"
350
- }
352
+ },
353
+ packageManager: "yarn@1.22.22"
351
354
  };
352
355
 
353
356
  // src/types.ts
354
357
  var FORK_MAPPING = /* @__PURE__ */ ((FORK_MAPPING2) => {
355
358
  FORK_MAPPING2[FORK_MAPPING2["0x00000000"] = 1] = "0x00000000";
356
- FORK_MAPPING2[FORK_MAPPING2["0x00001020"] = 5] = "0x00001020";
357
359
  FORK_MAPPING2[FORK_MAPPING2["0x00000064"] = 100] = "0x00000064";
358
- FORK_MAPPING2[FORK_MAPPING2["0x01017000"] = 17e3] = "0x01017000";
359
360
  FORK_MAPPING2[FORK_MAPPING2["0x90000069"] = 11155111] = "0x90000069";
360
361
  FORK_MAPPING2[FORK_MAPPING2["0x10000910"] = 560048] = "0x10000910";
361
362
  return FORK_MAPPING2;
362
363
  })(FORK_MAPPING || {});
363
364
  var FORK_NAMES = {
364
365
  [1 /* 0x00000000 */]: "mainnet",
365
- [5 /* 0x00001020 */]: "goerli",
366
366
  [100 /* 0x00000064 */]: "gnosis",
367
- [17e3 /* 0x01017000 */]: "holesky",
368
367
  [11155111 /* 0x90000069 */]: "sepolia",
369
368
  [560048 /* 0x10000910 */]: "hoodi"
370
369
  };
@@ -373,9 +372,6 @@ var FORK_NAMES = {
373
372
  var MAINNET_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ab2565b61040b565b005b34801561015257600080fd5b50610144610161366004612c4c565b6104a6565b34801561017257600080fd5b50610144610181366004612ab2565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ab2565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ab2565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d5d565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d03565b610c4d565b34801561026a57600080fd5b50610226610279366004612ddb565b610d82565b34801561028a57600080fd5b50610144610299366004612c4c565b611144565b3480156102aa57600080fd5b506102267f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b3381565b3480156102de57600080fd5b506102266102ed366004612ab2565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612b95565b611487565b34801561033a57600080fd5b506101bc610349366004612c3a565b6117aa565b34801561035a57600080fd5b50610144610369366004612ab2565b61187e565b34801561037a57600080fd5b50610144610389366004612ace565b61194d565b34801561039a57600080fd5b506102266103a9366004612ab2565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612b95565b611a1f565b3480156103f757600080fd5b50610144610406366004612b06565b611d6f565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061057183612020565b63ffffffff16146105a75761058582612020565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120c59050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b0383166000908152602081905260409020546109389190612f98565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b83612020565b63ffffffff1614610a1f5761058582612020565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061239f915050565b9050610c3f7f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b33826123d5565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb38661247a565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ab2565b6124cd565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d729493929190612f08565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f83612020565b63ffffffff1614610e635761058582612020565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c925061239f915050565b90506001600160a01b038616611098576110917f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b3382612539565b94506110f5565b6110c17f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b336125e9565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b038516600081815260026020526040808220849055517f8d5f9943c664a3edaf4d3eb18cc5e2c45a7d2dc5869be33d33bbc0fff9bc25909190a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111855760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611214578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611243578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061125083612020565b63ffffffff16146112645761058582612020565b82516000190160005b8181101561135b5784816001018151811061129857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112c957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106112fb5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061132357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561135357604051630db7e4c760e01b815260048101829052602401610448565b60010161126d565b50600063ffffffff1683828151811061138457634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113b457604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156113e75760405163308440e360e21b815263ffffffff82166004820152602401610448565b6113f58c8b8b8b8b8b612698565b6114798c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120c59050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114c85760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611557578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611586578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061159383612020565b63ffffffff16146115a75761058582612020565b82516000190160005b8181101561169e578481600101815181106115db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061160c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061163e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061166657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561169657604051630db7e4c760e01b815260048101829052602401610448565b6001016115b0565b50600063ffffffff168382815181106116c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561172a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117388b8b8b8b8b8b612698565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127589050565b6001600160a01b0382166000908152600260205260408120546117ce576000611847565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561180f57600080fd5b505afa158015611823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118479190612e6c565b6001600160a01b038084166000908152600160209081526040808320938816835292905220546118779190612f98565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118c05760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b03828116600090815260026020526040902060010154839116331461198e5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119c15760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aae578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611add578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611aea83612020565b63ffffffff1614611afe5761058582612020565b82516000190160005b81811015611bf557848160010181518110611b3257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b6357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611b955760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bbd57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611bed57604051630db7e4c760e01b815260048101829052602401610448565b600101611b07565b50600063ffffffff16838281518110611c1e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c4e57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c815760405163308440e360e21b815263ffffffff82166004820152602401610448565b611cf18a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b611d638a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127589050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611db05760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e3f578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e6e578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e7b83612020565b63ffffffff1614611e8f5761058582612020565b82516000190160005b81811015611f8657848160010181518110611ec357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611ef457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f265760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f4e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f7e57604051630db7e4c760e01b815260048101829052602401610448565b600101611e98565b50600063ffffffff16838281518110611faf57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611fdf57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156120125760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d638a8a8a8a8a8a612698565b8051600090815b8181101561206c5783818151811061204f57634e487b7160e01b600052603260045260246000fd5b6020026020010151836120629190612fb0565b9250600101612027565b5050919050565b600061208084848461239f565b6001600160a01b03861660009081526002602052604090205490915081146120be5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561212a57600080fd5b505afa15801561213e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121629190612e6c565b9050801561216f57600019015b811561217c576001820391505b818101925081156121b0576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d46866040516121ff91815260200190565b60405180910390a463ffffffff851615612271576001600160a01b038881166000908152600160205260408120620f424063ffffffff891687020492839290881661224a573361224c565b875b6001600160a01b03168152602081019190915260400160002080549091019055909203915b865160005b81811015612329576122ba858983815181106122a257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c90859081106122f757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612276565b5050801561239457604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123b693929190612e84565b6040516020818303038152906040528051906020012090509392505050565b6000611877838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b03811660009081526020819052604081205461249f90600190612fd8565b6001600160a01b0383166000818152602081905260409020600190559091506124c8908261293a565b919050565b6001600160a01b038082166000908152600160208181526040808420948716845293905291812054909161250091612fd8565b6001600160a01b038084166000818152600160208181526040808420958a16845294905292902091909155909150610938908483612990565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124c857604051630985da9b60e41b815260040160405180910390fd5b600061270986868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525087925061239f915050565b6001600160a01b0388166000818152600260205260408082208490555192935090917f45e1e99513dd915ac128b94953ca64c6375717ea1894b3114db08cdca51debd29190a250505050505050565b6001600160a01b0385166000818152602081905260408120549131908215612781576001830392505b5081810182156127a8576001600160a01b0388166000908152602081905260409020600190555b836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b836040516127ed91815260200190565b60405180910390a363ffffffff85161561284c57620f424063ffffffff8616820204806000806001600160a01b0388166128275733612829565b875b6001600160a01b0316815260208101919091526040016000208054909101905590035b865160005b818110156128d25761287d838983815181106122a257634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128a057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612851565b5050811561293057604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561291c57600080fd5b505af1158015611479573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af190508061298b5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129cb81612a0f565b612a095760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a2157806000803e806000fd5b8060208114612a39578015612a4a576000925061206c565b816000803e6000511515925061206c565b5060019392505050565b60008083601f840112612a65578182fd5b50813567ffffffffffffffff811115612a7c578182fd5b6020830191508360208260051b8501011115612a9757600080fd5b9250929050565b803563ffffffff811681146124c857600080fd5b600060208284031215612ac3578081fd5b813561187781613005565b60008060408385031215612ae0578081fd5b8235612aeb81613005565b91506020830135612afb81613005565b809150509250929050565b60008060008060008060808789031215612b1e578182fd5b8635612b2981613005565b9550602087013567ffffffffffffffff80821115612b45578384fd5b612b518a838b01612a54565b90975095506040890135915080821115612b69578384fd5b50612b7689828a01612a54565b9094509250612b89905060608801612a9e565b90509295509295509295565b600080600080600080600060a0888a031215612baf578081fd5b8735612bba81613005565b9650602088013567ffffffffffffffff80821115612bd6578283fd5b612be28b838c01612a54565b909850965060408a0135915080821115612bfa578283fd5b50612c078a828b01612a54565b9095509350612c1a905060608901612a9e565b91506080880135612c2a81613005565b8091505092959891949750929550565b60008060408385031215612ae0578182fd5b60008060008060008060008060c0898b031215612c67578081fd5b8835612c7281613005565b97506020890135612c8281613005565b9650604089013567ffffffffffffffff80821115612c9e578283fd5b612caa8c838d01612a54565b909850965060608b0135915080821115612cc2578283fd5b50612ccf8b828c01612a54565b9095509350612ce2905060808a01612a9e565b915060a0890135612cf281613005565b809150509295985092959890939650565b60008060008060608587031215612d18578384fd5b8435612d2381613005565b935060208501359250604085013567ffffffffffffffff811115612d45578283fd5b612d5187828801612a54565b95989497509550505050565b600080600080600060608688031215612d74578081fd5b853567ffffffffffffffff80821115612d8b578283fd5b612d9789838a01612a54565b90975095506020880135915080821115612daf578283fd5b50612dbc88828901612a54565b9094509250612dcf905060408701612a9e565b90509295509295909350565b60008060008060008060808789031215612df3578182fd5b863567ffffffffffffffff80821115612e0a578384fd5b612e168a838b01612a54565b90985096506020890135915080821115612e2e578384fd5b50612e3b89828a01612a54565b9095509350612e4e905060408801612a9e565b91506060870135612e5e81613005565b809150509295509295509295565b600060208284031215612e7d578081fd5b5051919050565b835160009082906020808801845b83811015612eb75781516001600160a01b031685529382019390820190600101612e92565b50508651818801939250845b81811015612ee557845163ffffffff1684529382019392820192600101612ec3565b50505060e09490941b6001600160e01b0319168452505060049091019392505050565b84815260606020808301829052908201849052600090859060808401835b87811015612f54578335612f3981613005565b6001600160a01b031682529282019290820190600101612f26565b5084810360408601528551808252908201925081860190845b81811015612f8957825185529383019391830191600101612f6d565b50929998505050505050505050565b60008219821115612fab57612fab612fef565b500190565b600063ffffffff808316818516808303821115612fcf57612fcf612fef565b01949350505050565b600082821015612fea57612fea612fef565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461301a57600080fd5b5056fea264697066735822122078638564d8f0338df6cf15b5c2680d5c2ef45167f59938471977e9756316b94964736f6c63430008040033";
374
373
  var MAINNET_MULTICALL3_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
375
374
  var MAINNET_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006a575b600080fd5b61004e61004936600461031b565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000e11eabf19a49c389d3e8735c35f8f34f28bdcb2281565b60006001600160a01b03841615806100b057506001600160a01b038316155b156100ce57604051637e511f1560e11b815260040160405180910390fd5b816000036100ef57604051638966ee9560e01b815260040160405180910390fd5b6bffffffffffffffffffffffff82111561012357604051637a95f47560e01b81526004810183905260240160405180910390fd5b604051606086901b6bffffffffffffffffffffffff191660208201526001600160a01b0385811660a085901b176034830181905290851660548301819052909160009060740160408051601f1981840301815291905290506101ae6001600160a01b037f000000000000000000000000e11eabf19a49c389d3e8735c35f8f34f28bdcb221682610213565b604080516001600160a01b038b811682528a8116602083015289811682840152606082018990529151929650908616917ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb9181900360800190a2505050949350505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f0975050866102e05763301164256000526004601cfd5b90528552601f19850152603f19840152605f1990920191909152919050565b80356001600160a01b038116811461031657600080fd5b919050565b6000806000806080858703121561033157600080fd5b61033a856102ff565b9350610348602086016102ff565b9250610356604086016102ff565b939692955092936060013592505056fea26469706673582212207e26706744441b67ebb26904afecebf545348e41ee746030e32bb85594999a1264736f6c63430008130033";
376
- var HOLESKY_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ae0565b61040b565b005b34801561015257600080fd5b50610144610161366004612c7a565b6104a6565b34801561017257600080fd5b50610144610181366004612ae0565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ae0565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ae0565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d8b565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d31565b610c4d565b34801561026a57600080fd5b50610226610279366004612e09565b610d82565b34801561028a57600080fd5b50610144610299366004612c7a565b611160565b3480156102aa57600080fd5b506102267f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d1781565b3480156102de57600080fd5b506102266102ed366004612ae0565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612bc3565b6114a3565b34801561033a57600080fd5b506101bc610349366004612c68565b6117c6565b34801561035a57600080fd5b50610144610369366004612ae0565b61189a565b34801561037a57600080fd5b50610144610389366004612afc565b611969565b34801561039a57600080fd5b506102266103a9366004612ae0565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612bc3565b611a3b565b3480156103f757600080fd5b50610144610406366004612b34565b611d8b565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f42406105718361203c565b63ffffffff16146105a7576105858261203c565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061208f915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120e19050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b03831660009081526020819052604090205461093891906130da565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b8361203c565b63ffffffff1614610a1f576105858261203c565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506123b6915050565b9050610c3f7f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d17826123ec565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb386612491565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ae0565b6124e4565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d72949392919061304a565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f8361203c565b63ffffffff1614610e63576105858261203c565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92506123b6915050565b90506001600160a01b038616611098576110917f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d1782612550565b94506110f5565b6110c17f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d17612600565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b03851660008181526002602052604090819020839055517fd2bcf51a5767c814cfe0266a99141f75a32103bbf8c400fbc1ac0c3b73ce25e89061114a908e908e908e908e908e908e90612ff9565b60405180910390a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111a15760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611230578251604051630e8c626560e41b815260040161044891815260200190565b815183511461125f578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061126c8361203c565b63ffffffff1614611280576105858261203c565b82516000190160005b81811015611377578481600101815181106112b457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112e557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106113175760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061133f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561136f57604051630db7e4c760e01b815260048101829052602401610448565b600101611289565b50600063ffffffff168382815181106113a057634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113d057604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156114035760405163308440e360e21b815263ffffffff82166004820152602401610448565b6114118c8b8b8b8b8b6126af565b6114958c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120e19050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114e45760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611573578251604051630e8c626560e41b815260040161044891815260200190565b81518351146115a2578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f42406115af8361203c565b63ffffffff16146115c3576105858261203c565b82516000190160005b818110156116ba578481600101815181106115f757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061162857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061165a5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061168257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116b257604051630db7e4c760e01b815260048101829052602401610448565b6001016115cc565b50600063ffffffff168382815181106116e357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561171357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156117465760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117548b8b8b8b8b8b6126af565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127889050565b6001600160a01b0382166000908152600260205260408120546117ea576000611863565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561182b57600080fd5b505afa15801561183f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118639190612e9a565b6001600160a01b0380841660009081526001602090815260408083209388168352929052205461189391906130da565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118dc5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b0382811660009081526002602052604090206001015483911633146119aa5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119dd5760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aca578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611af9578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611b068361203c565b63ffffffff1614611b1a576105858261203c565b82516000190160005b81811015611c1157848160010181518110611b4e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b7f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611bb15760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bd957634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c0957604051630db7e4c760e01b815260048101829052602401610448565b600101611b23565b50600063ffffffff16838281518110611c3a57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c6a57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c9d5760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d0d8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061208f915050565b611d7f8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127889050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611dcc5760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e5b578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e8a578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e978361203c565b63ffffffff1614611eab576105858261203c565b82516000190160005b81811015611fa257848160010181518110611edf57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611f1057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f425760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f6a57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f9a57604051630db7e4c760e01b815260048101829052602401610448565b600101611eb4565b50600063ffffffff16838281518110611fcb57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611ffb57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561202e5760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d7f8a8a8a8a8a8a6126af565b8051600090815b818110156120885783818151811061206b57634e487b7160e01b600052603260045260246000fd5b60200260200101518361207e91906130f2565b9250600101612043565b5050919050565b600061209c8484846123b6565b6001600160a01b03861660009081526002602052604090205490915081146120da5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217e9190612e9a565b9050801561218b57600019015b8115612198576001820391505b818101925081156121cc576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b6001600160a01b0384166121e057336121e2565b835b9350836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d468660405161223391815260200190565b60405180910390a463ffffffff851615612288576000620f424063ffffffff87168502046001600160a01b03808b166000908152600160209081526040808320938a1683529290522080548201905590930392505b865160005b81811015612340576122d1858983815181106122b957634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c908590811061230e57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000208054909101905560010161228d565b505080156123ab57604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123cd93929190612f32565b6040516020818303038152906040528051906020012090509392505050565b6000611893838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b0381166000908152602081905260408120546124b69060019061311a565b6001600160a01b0383166000818152602081905260409020600190559091506124df9082612968565b919050565b6001600160a01b03808216600090815260016020818152604080842094871684529390529181205490916125179161311a565b6001600160a01b038084166000818152600160208181526040808420958a168452949052929020919091559091506109389084836129be565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124df57604051630985da9b60e41b815260040160405180910390fd5b600061272086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a028281018201909352898252909350899250889182918501908490808284376000920191909152508792506123b6915050565b6001600160a01b0388166000818152600260205260409081902083905551919250907fce55a01ad467ce2f3080a2cef6eb951b65f489b97956f76c2c04bcddab92aaa9906127779089908990899089908990612fb9565b60405180910390a250505050505050565b6001600160a01b03851660008181526020819052604081205491319082156127b1576001830392505b5081810182156127d8576001600160a01b0388166000908152602081905260409020600190555b6001600160a01b0384166127ec57336127ee565b835b9350836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b8360405161283591815260200190565b60405180910390a363ffffffff85161561287a576001600160a01b03841660009081526020819052604090208054620f424063ffffffff881684020490810190915590035b865160005b81811015612900576128ab838983815181106122b957634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128ce57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000208054909101905560010161287f565b5050811561295e57604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561294a57600080fd5b505af1158015611495573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af19050806129b95760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129f981612a3d565b612a375760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a4f57806000803e806000fd5b8060208114612a67578015612a785760009250612088565b816000803e60005115159250612088565b5060019392505050565b60008083601f840112612a93578182fd5b50813567ffffffffffffffff811115612aaa578182fd5b6020830191508360208260051b8501011115612ac557600080fd5b9250929050565b803563ffffffff811681146124df57600080fd5b600060208284031215612af1578081fd5b813561189381613147565b60008060408385031215612b0e578081fd5b8235612b1981613147565b91506020830135612b2981613147565b809150509250929050565b60008060008060008060808789031215612b4c578182fd5b8635612b5781613147565b9550602087013567ffffffffffffffff80821115612b73578384fd5b612b7f8a838b01612a82565b90975095506040890135915080821115612b97578384fd5b50612ba489828a01612a82565b9094509250612bb7905060608801612acc565b90509295509295509295565b600080600080600080600060a0888a031215612bdd578081fd5b8735612be881613147565b9650602088013567ffffffffffffffff80821115612c04578283fd5b612c108b838c01612a82565b909850965060408a0135915080821115612c28578283fd5b50612c358a828b01612a82565b9095509350612c48905060608901612acc565b91506080880135612c5881613147565b8091505092959891949750929550565b60008060408385031215612b0e578182fd5b60008060008060008060008060c0898b031215612c95578081fd5b8835612ca081613147565b97506020890135612cb081613147565b9650604089013567ffffffffffffffff80821115612ccc578283fd5b612cd88c838d01612a82565b909850965060608b0135915080821115612cf0578283fd5b50612cfd8b828c01612a82565b9095509350612d10905060808a01612acc565b915060a0890135612d2081613147565b809150509295985092959890939650565b60008060008060608587031215612d46578384fd5b8435612d5181613147565b935060208501359250604085013567ffffffffffffffff811115612d73578283fd5b612d7f87828801612a82565b95989497509550505050565b600080600080600060608688031215612da2578081fd5b853567ffffffffffffffff80821115612db9578283fd5b612dc589838a01612a82565b90975095506020880135915080821115612ddd578283fd5b50612dea88828901612a82565b9094509250612dfd905060408701612acc565b90509295509295909350565b60008060008060008060808789031215612e21578182fd5b863567ffffffffffffffff80821115612e38578384fd5b612e448a838b01612a82565b90985096506020890135915080821115612e5c578384fd5b50612e6989828a01612a82565b9095509350612e7c905060408801612acc565b91506060870135612e8c81613147565b809150509295509295509295565b600060208284031215612eab578081fd5b5051919050565b81835260006020808501945082825b85811015612eef578135612ed481613147565b6001600160a01b031687529582019590820190600101612ec1565b509495945050505050565b81835260006020808501945082825b85811015612eef5763ffffffff612f1f83612acc565b1687529582019590820190600101612f09565b835160009082906020808801845b83811015612f655781516001600160a01b031685529382019390820190600101612f40565b50508651818801939250845b81811015612f9357845163ffffffff1684529382019392820192600101612f71565b505050612fac818660e01b6001600160e01b0319169052565b6004019695505050505050565b606081526000612fcd606083018789612eb2565b8281036020840152612fe0818688612efa565b91505063ffffffff831660408301529695505050505050565b60808152600061300d60808301888a612eb2565b8281036020840152613020818789612efa565b63ffffffff95909516604084015250506001600160a01b0391909116606090910152949350505050565b84815260606020808301829052908201849052600090859060808401835b8781101561309657833561307b81613147565b6001600160a01b031682529282019290820190600101613068565b5084810360408601528551808252908201925081860190845b818110156130cb578251855293830193918301916001016130af565b50929998505050505050505050565b600082198211156130ed576130ed613131565b500190565b600063ffffffff80831681851680830382111561311157613111613131565b01949350505050565b60008282101561312c5761312c613131565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461315c57600080fd5b5056fea26469706673582212203623903cdef9a8c0647bc7a19460e0774b453343d6cfb95b942d17a3fd381b4764736f6c63430008040033";
377
- var HOLESKY_MULTICALL3_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
378
- var HOLESKY_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006a575b600080fd5b61004e61004936600461031b565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000a70eb35c1ee7f96688ea5e530ddf1ebedd0c825981565b60006001600160a01b03841615806100b057506001600160a01b038316155b156100ce57604051637e511f1560e11b815260040160405180910390fd5b816000036100ef57604051638966ee9560e01b815260040160405180910390fd5b6bffffffffffffffffffffffff82111561012357604051637a95f47560e01b81526004810183905260240160405180910390fd5b604051606086901b6bffffffffffffffffffffffff191660208201526001600160a01b0385811660a085901b176034830181905290851660548301819052909160009060740160408051601f1981840301815291905290506101ae6001600160a01b037f000000000000000000000000a70eb35c1ee7f96688ea5e530ddf1ebedd0c82591682610213565b604080516001600160a01b038b811682528a8116602083015289811682840152606082018990529151929650908616917ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb9181900360800190a2505050949350505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f0975050866102e05763301164256000526004601cfd5b90528552601f19850152603f19840152605f1990920191909152919050565b80356001600160a01b038116811461031657600080fd5b919050565b6000806000806080858703121561033157600080fd5b61033a856102ff565b9350610348602086016102ff565b9250610356604086016102ff565b939692955092936060013592505056fea26469706673582212207e26706744441b67ebb26904afecebf545348e41ee746030e32bb85594999a1264736f6c63430008130033";
379
375
  var HOODI_OVM_FACTORY_BYTECODE = "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806306dbd0cb14620000575780633e5b34b21462000079578063cdba577d146200009b578063f7f8ff7a14620000d1575b600080fd5b62000061620000f3565b60405162000070919062000464565b60405180910390f35b6200008362000117565b60405162000092919062000464565b60405180910390f35b620000b96004803603810190620000b39190620004fc565b6200013b565b604051620000c89190620005d9565b60405180910390f35b620000db620003ed565b604051620000ea919062000464565b60405180910390f35b7f00000000000000000000000000000961ef480eb55e80d19ad83579a64c00700281565b7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f22adafa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200020b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000243576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008267ffffffffffffffff160362000288576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6501dcd65000008267ffffffffffffffff161115620002d3576040517f12f9b82600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a5900072517f00000000000000000000000000000961ef480eb55e80d19ad83579a64c0070027f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa87878787604051620003489062000411565b6200035a979695949392919062000607565b604051809103906000f08015801562000377573d6000803e3d6000fd5b5090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5f69e7dce622f5df4a1899cf39ca6eb1216397f2c07206d2ef33aebf960827a3868686604051620003dd9392919062000684565b60405180910390a3949350505050565b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a59000725181565b613d2e80620006c283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200044c826200041f565b9050919050565b6200045e816200043f565b82525050565b60006020820190506200047b600083018462000453565b92915050565b600080fd5b62000491816200043f565b81146200049d57600080fd5b50565b600081359050620004b18162000486565b92915050565b600067ffffffffffffffff82169050919050565b620004d681620004b7565b8114620004e257600080fd5b50565b600081359050620004f681620004cb565b92915050565b6000806000806080858703121562000519576200051862000481565b5b60006200052987828801620004a0565b94505060206200053c87828801620004a0565b93505060406200054f87828801620004a0565b92505060606200056287828801620004e5565b91505092959194509250565b6000819050919050565b600062000599620005936200058d846200041f565b6200056e565b6200041f565b9050919050565b6000620005ad8262000578565b9050919050565b6000620005c182620005a0565b9050919050565b620005d381620005b4565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b6200060181620004b7565b82525050565b600060e0820190506200061e600083018a62000453565b6200062d602083018962000453565b6200063c604083018862000453565b6200064b606083018762000453565b6200065a608083018662000453565b6200066960a083018562000453565b6200067860c0830184620005f6565b98975050505050505050565b60006060820190506200069b600083018662000453565b620006aa602083018562000453565b620006b96040830184620005f6565b94935050505056fe61010060405260016000553480156200001757600080fd5b5060405162003d2e38038062003d2e83398181016040528101906200003d9190620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620000a4576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200010b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000172576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620001d9576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000240576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a7576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508067ffffffffffffffff1660e08167ffffffffffffffff1681525050620003f284620003ff60201b60201c565b505050505050506200059d565b8060601b60601c905080638b78c6d819558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a350565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200046d8262000440565b9050919050565b6200047f8162000460565b81146200048b57600080fd5b50565b6000815190506200049f8162000474565b92915050565b600067ffffffffffffffff82169050919050565b620004c481620004a5565b8114620004d057600080fd5b50565b600081519050620004e481620004b9565b92915050565b600080600080600080600060e0888a0312156200050c576200050b6200043b565b5b60006200051c8a828b016200048e565b97505060206200052f8a828b016200048e565b9650506040620005428a828b016200048e565b9550506060620005558a828b016200048e565b9450506080620005688a828b016200048e565b93505060a06200057b8a828b016200048e565b92505060c06200058e8a828b01620004d3565b91505092959891949750929550565b60805160a05160c05160e05161372d620006016000396000818161135301526121a5015260008181610c620152610f6d0152600081816109590152818161143a015261155601526000818161190701528181611c820152611fea015261372d6000f3fe6080604052600436106102605760003560e01c806354d1f13d116101445780639124aafb116100b6578063e521136f1161007a578063e521136f146107fa578063f04e283e14610823578063f2fde38b1461083f578063f5e45d4d1461085b578063f7f8ff7a14610884578063fee81cf4146108af57610267565b80639124aafb146107455780639fdb5e8a14610761578063ba45b0b81461078c578063bca2da78146107b5578063dc04d8f4146107de57610267565b80636c196886116101085780636c196886146106665780636ea056a914610691578063715018a6146106ba57806379de7638146106c45780637bfafd59146106ef5780638da5cb5b1461071a57610267565b806354d1f13d146105b057806354fd4d50146105ba578063565a2e2c146105e55780635f097d751461061057806367db90c21461063b57610267565b806324ae6a27116101dd578063353efdcf116101a1578063353efdcf146104bf578063377b2c34146104ea5780633a6a4d2e146105155780633e5b34b21461052c5780634a4ee7b114610557578063514e62fc1461057357610267565b806324ae6a271461040d57806325692962146104365780632d7fd507146104405780632de94807146104575780633332c3241461049457610267565b8063183a4f6e11610224578063183a4f6e146103535780631c10893f1461036f5780631c31f7101461038b5780631cd64df4146103b457806322895118146103f157610267565b806303615ba31461026c578063043edae8146102a957806306dbd0cb146102d45780630da58dbb146102ff57806317f333401461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061298c565b6108ec565b6040516102a091906129d2565b60405180910390f35b3480156102b557600080fd5b506102be610935565b6040516102cb9190612a18565b60405180910390f35b3480156102e057600080fd5b506102e9610957565b6040516102f69190612a42565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061298c565b61097b565b005b34801561033457600080fd5b5061033d610ae8565b60405161034a9190612a42565b60405180910390f35b61036d60048036038101906103689190612a89565b610b0e565b005b61038960048036038101906103849190612ab6565b610b1a565b005b34801561039757600080fd5b506103b260048036038101906103ad919061298c565b610b28565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612ab6565b610c21565b6040516103e89190612b11565b60405180910390f35b61040b60048036038101906104069190612bc7565b610c35565b005b34801561041957600080fd5b50610434600480360381019061042f9190612c90565b610d3e565b005b61043e610e5d565b005b34801561044c57600080fd5b50610455610e67565b005b34801561046357600080fd5b5061047e6004803603810190610479919061298c565b610ec8565b60405161048b91906129d2565b60405180910390f35b3480156104a057600080fd5b506104a9610eda565b6040516104b691906129d2565b60405180910390f35b3480156104cb57600080fd5b506104d4610edf565b6040516104e191906129d2565b60405180910390f35b3480156104f657600080fd5b506104ff610ee4565b60405161050c9190612a42565b60405180910390f35b34801561052157600080fd5b5061052a610f0a565b005b34801561053857600080fd5b50610541610f6b565b60405161054e9190612a42565b60405180910390f35b610571600480360381019061056c9190612ab6565b610f8f565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612ab6565b610f9d565b6040516105a79190612b11565b60405180910390f35b6105b8610fb1565b005b3480156105c657600080fd5b506105cf610fbb565b6040516105dc9190612d60565b60405180910390f35b3480156105f157600080fd5b506105fa610ff8565b6040516106079190612a42565b60405180910390f35b34801561061c57600080fd5b50610625611022565b60405161063291906129d2565b60405180910390f35b34801561064757600080fd5b50610650611028565b60405161065d91906129d2565b60405180910390f35b34801561067257600080fd5b5061067b61102d565b60405161068891906129d2565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612ab6565b611032565b005b6106c2611342565b005b3480156106d057600080fd5b506106d961134c565b6040516106e691906129d2565b60405180910390f35b3480156106fb57600080fd5b50610704611351565b6040516107119190612da5565b60405180910390f35b34801561072657600080fd5b5061072f611375565b60405161073c9190612a42565b60405180910390f35b61075f600480360381019061075a9190612e6c565b611384565b005b34801561076d57600080fd5b506107766116e8565b60405161078391906129d2565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190612c90565b6116ed565b005b3480156107c157600080fd5b506107dc60048036038101906107d79190612a89565b611846565b005b6107f860048036038101906107f39190612f69565b6118a8565b005b34801561080657600080fd5b50610821600480360381019061081c919061298c565b611e4f565b005b61083d6004803603810190610838919061298c565b611f48565b005b6108596004803603810190610854919061298c565b611f54565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ab6565b611f60565b005b34801561089057600080fd5b50610899611fe8565b6040516108a69190612a42565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d1919061298c565b61200c565b6040516108e391906129d2565b60405180910390f35b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a90046fffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081036109cd5750610ae5565b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a95818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fcbfdaa15c344a7a5b846b2199db1ca289c82041c65048ce19264f9fdd8cee27482604051610adb91906129d2565b60405180910390a2505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b178161203e565b50565b610b24828261204b565b5050565b6004610b3381612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b99576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a25050565b6000610c2d8383612098565b905092915050565b6020610c4081612061565b600060035490503460036000828254610c59919061300c565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166322895118348b8b8b8b8b8b8b6040518963ffffffff1660e01b8152600401610cc6979695949392919061309c565b6000604051808303818588803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50505050507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf860035482604051610d2b9291906130fc565b60405180910390a1505050505050505050565b6008610d4981612061565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d849190612a42565b602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061313a565b9050610df283828673ffffffffffffffffffffffffffffffffffffffff166120af9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f02dc46f45168b3833fa84aa22ee90f4ffec812cf1067be0413353eb95c031b0583604051610e4f91906129d2565b60405180910390a350505050565b610e656120fe565b565b600160005414610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906131b3565b60405180910390fd5b6002600081905550610ebe6001612152565b6001600081905550565b6000610ed3826123f0565b9050919050565b600481565b602081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160005414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906131b3565b60405180910390fd5b6002600081905550610f616000612152565b6001600081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f99828261240b565b5050565b6000610fa98383612421565b905092915050565b610fb9612439565b565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600181565b600281565b600160005414611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e906131b3565b60405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e6576110e2612475565b8290505b60008083146110f55782611158565b60056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156111f5576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112c091906131d3565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff167fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969660405160405180910390a3611334818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b505060016000819055505050565b61134a612492565b565b601081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061137f6124a6565b905090565b600161138f81612061565b6001600054146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb906131b3565b60405180910390fd5b600260008190555084849050878790501461141b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61143334888890508561142e9190613207565b6124b4565b600061145f7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b898990508110156116c9576114e08a8a8381811061148657611485613249565b5b90506020028101906114989190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a838181106114f5576114f4613249565b5b90506020028101906115079190613287565b8a8a8581811061151a57611519613249565b5b905060200201602081019061152f9190613316565b604051602001611541939291906133a9565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16858360405161159a919061340f565b60006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b5050905080611617576040517fd3d2fd8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8484611623919061300c565b9350848a8a8581811061163957611638613249565b5b905060200201602081019061164e9190613316565b67ffffffffffffffff167f19cd6ffa1afc5a20b44dd0fea708b8fb38af1d7891d4929811a3c65ff1624fb98e8e8781811061168c5761168b613249565b5b905060200281019061169e9190613287565b6040516116ac929190613426565b60405180910390a3505080806116c19061344a565b915050611465565b506116d5348286612625565b5050600160008190555050505050505050565b600881565b6116f5612475565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a26117e881611f54565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa1c3c7ba08cdab9542dfbb1f9606093e828bca6c2678c82942703ec4e223790260405160405180910390a35050565b600461185181612061565b6003548203156118a45760006003549050826003819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8838260405161189a9291906130fc565b60405180910390a1505b5050565b60026118b381612061565b6001600054146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906131b3565b60405180910390fd5b6002600081905550600061192c7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b87879050811015611a4357600088888381811061195257611951613249565b5b90506020028101906119649190613492565b806000019061197391906134ba565b905014806119b65750603f88888381811061199157611990613249565b5b90506020028101906119a39190613492565b80600001906119b291906134ba565b9050115b156119ed576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b878782818110611a00576119ff613249565b5b9050602002810190611a129190613492565b8060000190611a2191906134ba565b905082611a2e919061300c565b91508080611a3b9061344a565b915050611932565b5060008183611a529190613207565b9050611a5e34826124b4565b60005b88889050811015611e3157611aeb898983818110611a8257611a81613249565b5b9050602002810190611a949190613492565b8060200190611aa39190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60005b898983818110611b0157611b00613249565b5b9050602002810190611b139190613492565b8060000190611b2291906134ba565b9050811015611e1d57611bcd8a8a84818110611b4157611b40613249565b5b9050602002810190611b539190613492565b8060000190611b6291906134ba565b83818110611b7357611b72613249565b5b9050602002810190611b859190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a84818110611be257611be1613249565b5b9050602002810190611bf49190613492565b8060000190611c0391906134ba565b83818110611c1457611c13613249565b5b9050602002810190611c269190613287565b8c8c86818110611c3957611c38613249565b5b9050602002810190611c4b9190613492565b8060200190611c5a9190613287565b604051602001611c6d949392919061351d565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168783604051611cc6919061340f565b60006040518083038185875af1925050503d8060008114611d03576040519150601f19603f3d011682016040523d82523d6000602084013e611d08565b606091505b5050905080611d43576040517f1684b73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f70327b6e1280f8015a284fca27cbbef10ac24c017f6452ff98212167813459d88d8d87818110611d7857611d77613249565b5b9050602002810190611d8a9190613492565b8060000190611d9991906134ba565b86818110611daa57611da9613249565b5b9050602002810190611dbc9190613287565b8f8f89818110611dcf57611dce613249565b5b9050602002810190611de19190613492565b8060200190611df09190613287565b604051611e009493929190613545565b60405180910390a250508080611e159061344a565b915050611aee565b508080611e299061344a565b915050611a61565b50611e3d348287612625565b50505060016000819055505050505050565b6010611e5a81612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ec0576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fab0699d690a6fcb85f70e4d28ee4c6114c3d90c12c579ca5abe089b8ff6ff1bf60405160405180910390a25050565b611f5181612700565b50565b611f5d81612741565b50565b600160005414611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c906131b3565b60405180910390fd5b60026000819055506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906135cc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60006120178261276b565b9050919050565b60005a60005a84865af161203a5763b12d13eb6000526004601cfd5b5050565b6120483382612786565b50565b612053612475565b61205d8282612796565b5050565b638b78c6d81954331461209557638b78c6d8600c5233600052806020600c205416612094576382b429006000526004601cfd5b5b50565b600081826120a585610ec8565b1614905092915050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166120f4576390b8ec186000526004601cfd5b6000603452505050565b60006121086127a6565b67ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60004790506000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690506000818361219a91906131d3565b90506000633b9aca007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166121d89190613207565b90506000808284101580156121ef57506000600354115b156122185760035484111561220f57600354915060035484039050612213565b8391505b61221c565b8390505b6fffffffffffffffffffffffffffffffff8016841115612268576040517f502cbcb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211156122e557816fffffffffffffffffffffffffffffffff166003600082825461229591906131d3565b925050819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8600354836003546122ce919061300c565b6040516122dc9291906130fc565b60405180910390a15b600187036123525760008211806122fc5750600081115b156123515780828661230e919061300c565b612318919061300c565b600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b61237f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683896127b1565b6123ac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682896127b1565b7f8b367b31582d5c638694615c1cfc77ffcf9febcf6e6c793358089f7769cfeee68282896040516123df939291906135ec565b60405180910390a150505050505050565b6000638b78c6d8600c52816000526020600c20549050919050565b612413612475565b61241d8282612786565b5050565b6000808261242e85610ec8565b161415905092915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b638b78c6d819543314612490576382b429006000526004601cfd5b565b61249a612475565b6124a4600061288c565b565b6000638b78c6d81954905090565b808210156124ee576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1660405161251a90613649565b600060405180830381855afa9150503d8060008114612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b509150915081612596576040517f448e5c4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806125a090613690565b60001c9250838311156125df576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6030815114612622576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b818311156126fb5760008173ffffffffffffffffffffffffffffffffffffffff16838561265291906131d3565b60405161265e90613649565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50509050806126f95782846126b591906131d3565b8273ffffffffffffffffffffffffffffffffffffffff167fff295b6ae91fb82f39d5bb544f1e62ce33f6978255b7c7434f8137bdf107f6d960405160405180910390a35b505b505050565b612708612475565b63389a75e1600c52806000526020600c20805442111561273057636f5e88186000526004601cfd5b600081555061273e8161288c565b50565b612749612475565b8060601b61275f57637448fbae6000526004601cfd5b6127688161288c565b50565b600063389a75e1600c52816000526020600c20549050919050565b612792828260006128ca565b5050565b6127a2828260016128ca565b5050565b60006202a300905090565b6000821115612887576001810361281d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612811919061300c565b92505081905550612886565b600081036128535761284e828473ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b612885565b6040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b505050565b638b78c6d8198160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a38181555050565b638b78c6d8600c52826000526020600c208054838117836128ed57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129598261292e565b9050919050565b6129698161294e565b811461297457600080fd5b50565b60008135905061298681612960565b92915050565b6000602082840312156129a2576129a1612924565b5b60006129b084828501612977565b91505092915050565b6000819050919050565b6129cc816129b9565b82525050565b60006020820190506129e760008301846129c3565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a12816129ed565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c8161294e565b82525050565b6000602082019050612a576000830184612a33565b92915050565b612a66816129b9565b8114612a7157600080fd5b50565b600081359050612a8381612a5d565b92915050565b600060208284031215612a9f57612a9e612924565b5b6000612aad84828501612a74565b91505092915050565b60008060408385031215612acd57612acc612924565b5b6000612adb85828601612977565b9250506020612aec85828601612a74565b9150509250929050565b60008115159050919050565b612b0b81612af6565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612b5157612b50612b2c565b5b8235905067ffffffffffffffff811115612b6e57612b6d612b31565b5b602083019150836001820283011115612b8a57612b89612b36565b5b9250929050565b6000819050919050565b612ba481612b91565b8114612baf57600080fd5b50565b600081359050612bc181612b9b565b92915050565b60008060008060008060006080888a031215612be657612be5612924565b5b600088013567ffffffffffffffff811115612c0457612c03612929565b5b612c108a828b01612b3b565b9750975050602088013567ffffffffffffffff811115612c3357612c32612929565b5b612c3f8a828b01612b3b565b9550955050604088013567ffffffffffffffff811115612c6257612c61612929565b5b612c6e8a828b01612b3b565b93509350506060612c818a828b01612bb2565b91505092959891949750929550565b60008060408385031215612ca757612ca6612924565b5b6000612cb585828601612977565b9250506020612cc685828601612977565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0a578082015181840152602081019050612cef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3282612cd0565b612d3c8185612cdb565b9350612d4c818560208601612cec565b612d5581612d16565b840191505092915050565b60006020820190508181036000830152612d7a8184612d27565b905092915050565b600067ffffffffffffffff82169050919050565b612d9f81612d82565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008083601f840112612dd657612dd5612b2c565b5b8235905067ffffffffffffffff811115612df357612df2612b31565b5b602083019150836020820283011115612e0f57612e0e612b36565b5b9250929050565b60008083601f840112612e2c57612e2b612b2c565b5b8235905067ffffffffffffffff811115612e4957612e48612b31565b5b602083019150836020820283011115612e6557612e64612b36565b5b9250929050565b60008060008060008060808789031215612e8957612e88612924565b5b600087013567ffffffffffffffff811115612ea757612ea6612929565b5b612eb389828a01612dc0565b9650965050602087013567ffffffffffffffff811115612ed657612ed5612929565b5b612ee289828a01612e16565b94509450506040612ef589828a01612a74565b9250506060612f0689828a01612977565b9150509295509295509295565b60008083601f840112612f2957612f28612b2c565b5b8235905067ffffffffffffffff811115612f4657612f45612b31565b5b602083019150836020820283011115612f6257612f61612b36565b5b9250929050565b60008060008060608587031215612f8357612f82612924565b5b600085013567ffffffffffffffff811115612fa157612fa0612929565b5b612fad87828801612f13565b94509450506020612fc087828801612a74565b9250506040612fd187828801612977565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613017826129b9565b9150613022836129b9565b925082820190508082111561303a57613039612fdd565b5b92915050565b600082825260208201905092915050565b82818337600083830152505050565b600061306c8385613040565b9350613079838584613051565b61308283612d16565b840190509392505050565b61309681612b91565b82525050565b600060808201905081810360008301526130b781898b613060565b905081810360208301526130cc818789613060565b905081810360408301526130e1818587613060565b90506130f0606083018461308d565b98975050505050505050565b600060408201905061311160008301856129c3565b61311e60208301846129c3565b9392505050565b60008151905061313481612a5d565b92915050565b6000602082840312156131505761314f612924565b5b600061315e84828501613125565b91505092915050565b7f5245454e5452414e435900000000000000000000000000000000000000000000600082015250565b600061319d600a83612cdb565b91506131a882613167565b602082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b60006131de826129b9565b91506131e9836129b9565b925082820390508181111561320157613200612fdd565b5b92915050565b6000613212826129b9565b915061321d836129b9565b925082820261322b816129b9565b9150828204841483151761324257613241612fdd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126132a4576132a3613278565b5b80840192508235915067ffffffffffffffff8211156132c6576132c561327d565b5b6020830192506001820236038313156132e2576132e1613282565b5b509250929050565b6132f381612d82565b81146132fe57600080fd5b50565b600081359050613310816132ea565b92915050565b60006020828403121561332c5761332b612924565b5b600061333a84828501613301565b91505092915050565b600081905092915050565b600061335a8385613343565b9350613367838584613051565b82840190509392505050565b60008160c01b9050919050565b600061338b82613373565b9050919050565b6133a361339e82612d82565b613380565b82525050565b60006133b682858761334e565b91506133c28284613392565b600882019150819050949350505050565b600081519050919050565b60006133e9826133d3565b6133f38185613343565b9350613403818560208601612cec565b80840191505092915050565b600061341b82846133de565b915081905092915050565b60006020820190508181036000830152613441818486613060565b90509392505050565b6000613455826129b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361348757613486612fdd565b5b600182019050919050565b6000823560016040038336030381126134ae576134ad613278565b5b80830191505092915050565b600080833560016020038436030381126134d7576134d6613278565b5b80840192508235915067ffffffffffffffff8211156134f9576134f861327d565b5b60208301925060208202360383131561351557613514613282565b5b509250929050565b600061352a82868861334e565b915061353782848661334e565b915081905095945050505050565b60006040820190508181036000830152613560818688613060565b90508181036020830152613575818486613060565b905095945050505050565b7f4e6f7420696d706c656d656e7465640000000000000000000000000000000000600082015250565b60006135b6600f83612cdb565b91506135c182613580565b602082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b600060608201905061360160008301866129c3565b61360e60208301856129c3565b61361b60408301846129c3565b949350505050565b50565b6000613633600083613343565b915061363e82613623565b600082019050919050565b600061365482613626565b9150819050919050565b6000819050602082019050919050565b600061367a8251612b91565b80915050919050565b600082821b905092915050565b600061369b826133d3565b826136a58461365e565b90506136b08161366e565b925060208210156136f0576136eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613683565b831692505b505091905056fea26469706673582212205b83464c8159b4a300316c2a0b8a5da2e7cc180d9e2495b4c3be8d1a402389a864736f6c63430008130033a2646970667358221220aea92119bec81712bf6fc14aab2158d1db00f01c70decc4c8ae0f54e5391b91364736f6c63430008130033";
380
376
  var HOODI_WAREHOUSE_BYTECODE = "0x60806040526004361015610011575f80fd5b5f3560e01c8062ad800c14611aa7578062fdd58e14611a3857806301ffc9a7146119485780630647ee20146118ce578063095bcdb61461182457806310c07f2f146117b157806314925cad1461148e5780632e72102f1461139657806331f7d964146111ff5780633644e515146113565780633f26479e1461131b5780633f47e662146112d45780633fcbd4d114611265578063426a84931461124b57806348eebe45146111ff5780634e41a1fb146111aa578063558a729714611155578063598af9e714611103578063676ae78f14611067578063829ab5c114610fc95780638340f54914610f3c57806384b0196e14610e0c578063b6363cf214610d8f578063b70e36f014610d11578063d23c072414610c49578063dc393b6b14610926578063e088902914610550578063f46d86e2146104f8578063f940e385146103085763fe99049a14610161575f80fd5b346103045760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610198611b48565b6101a0611b6b565b90604435917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596102556064359373ffffffffffffffffffffffffffffffffffffffff8091169384331415806102e4575b610263575b845f52600160205260405f20875f5260205260405f20610216878254611fe8565b90551693845f52600160205260405f20865f5260205260405f2061023b828254611ff5565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b845f5260206002815260405f20335f52815260405f20885f52815260405f2054877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036102b4575b5050506101f5565b6102bd91611fe8565b90865f526002815260405f20335f52815260405f2090895f525260405f20555f80876102ac565b50845f525f60205260405f20335f5260205260ff60405f205416156101f0565b5f80fd5b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045761033f611b48565b610347611b6b565b73ffffffffffffffffffffffffffffffffffffffff8083169081331415806104ee575b6104a5575b815f52600160205260405f20921691825f5260205260405f2054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840193841161047857815f52600160205260405f20835f5260205260405f206103d5858254611fe8565b9055604080513381526020810186905284915f9185917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885991a48373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee840361046957610435915082612c9c565b6040519283525f60208401527ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60403394a4005b6104739184612c06565b610435565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b815f52600660205260ff60405f205460101c161561036f57602482604051907fc7f7362e0000000000000000000000000000000000000000000000000000000082526004820152fd5b508132141561036a565b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045760206040517f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f8152f35b346103045760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610587611b48565b67ffffffffffffffff602435818111610304576105a8903690600401611d17565b9092604435838111610304576105c2903690600401611d17565b93909273ffffffffffffffffffffffffffffffffffffffff6064351660643503610304578481036108fc5773ffffffffffffffffffffffffffffffffffffffff83165f52600660205260405f2091604051926040840191848310908311176108cf5760ff916040525461ffff8116845260101c161515806020840152610888575f5b81811061064d57005b610658818787612002565b359061ffff845116828181020481148315171561047857600192620f424061068961068485888e612002565b61203f565b92610743610698868d8d612002565b3573ffffffffffffffffffffffffffffffffffffffff8b165f528760205260405f2073ffffffffffffffffffffffffffffffffffffffff87165f5260205260405f206106e5828254611fe8565b9055604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff888116925f92918f16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599190a4838386020490611fe8565b9273ffffffffffffffffffffffffffffffffffffffff851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee03610836576107958473ffffffffffffffffffffffffffffffffffffffff8c16612c9c565b828282020461080b575b6040519384520204602082015273ffffffffffffffffffffffffffffffffffffffff80606435169216907ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db604073ffffffffffffffffffffffffffffffffffffffff8a1692a401610644565b610831838383020473ffffffffffffffffffffffffffffffffffffffff60643516612c9c565b61079f565b610857848b73ffffffffffffffffffffffffffffffffffffffff8816612c06565b82828202041561079f57610831838383020460643573ffffffffffffffffffffffffffffffffffffffff8816612c06565b60248373ffffffffffffffffffffffffffffffffffffffff604051917fc7f7362e000000000000000000000000000000000000000000000000000000008352166004820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b3461030457610100807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045761095f611b48565b610967611b6b565b61096f611be3565b606435906084359260a4359560c4359065ffffffffffff82168092036103045760e43567ffffffffffffffff8111610304576109af903690600401611cd1565b6109b98989612245565b604051986109c68a611c1e565b5f8a52834211610c185789516020809b012093604051908b8201927f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f8452604083015f905273ffffffffffffffffffffffffffffffffffffffff96878d1696876060860152888a1660808601528a151560a08601528b60c08601528c60e086015284015f905261012084015261014083015261016090818301528152610a6b81611c01565b519020610a76612466565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201526042902091610ab78284612db3565b6005819692961015610beb57159485610bdf575b5050508215610b1a575b505015610af057610ae59461296f565b505060405160018152f35b60046040517f815e1d64000000000000000000000000000000000000000000000000000000008152fd5b5f9192508190604051610b9581610b698d8201947f1626ba7e00000000000000000000000000000000000000000000000000000000988987526024840152604060448401526064830190611b05565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611c56565b5190895afa90610ba3612c6d565b82610bd2575b82610bb8575b50508780610ad5565b909150878180518101031261030457870151148780610baf565b9150878251101591610ba9565b16149250898080610acb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602484604051907f3aae54290000000000000000000000000000000000000000000000000000000082526004820152fd5b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457335f52600660205260405f206004359061ffff8216809203610304578054602435801515809103610304577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000062ff0000859260101b16921617179055604051908152610ce2611bf2565b151560208201527fbc150027ce95c264ad6d257eb2f738f76ce357f3b4a68aaf2d1681ce903cb21c60403392a2005b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457600435335f52600560205260405f208160081c5f5260205260405f20600160ff83161b8154179055337f239b0d63832ec06e8082928dc583392b57a30d16e4bb425b49d82c7808e308b05f80a3005b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610dc6611b48565b610dce611b6b565b9073ffffffffffffffffffffffffffffffffffffffff8091165f525f60205260405f2091165f52602052602060ff60405f2054166040519015158152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610edf610e667f53706c69747357617265686f757365000000000000000000000000000000000f61277e565b610e8f7f76310000000000000000000000000000000000000000000000000000000000026128ad565b60405190610e9c82611c1e565b5f8252610eed6020916040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190611b05565b908582036040870152611b05565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b828110610f2557505050500390f35b835185528695509381019392810192600101610f16565b73ffffffffffffffffffffffffffffffffffffffff610f5a36611dd2565b91921673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8103610fb457348203610f8a57610f889261269c565b005b60046040517f2c5211c6000000000000000000000000000000000000000000000000000000008152fd5b610f8892610fc483303385612702565b61269c565b346103045760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457611000611b48565b611008611bf2565b9060843573ffffffffffffffffffffffffffffffffffffffff811681036103045760a4359267ffffffffffffffff84116103045761104d61105c943690600401611cd1565b926064359160443591336122da565b602060405160018152f35b61107036611d48565b929091938382036108fc5773ffffffffffffffffffffffffffffffffffffffff5f9516935f5b8381106110d157868673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81036110c357503403610f8a57005b90610f889130903390612702565b806110fd6110ed6110e5600194868a612002565b35809a611ff5565b9888610fc4610684858a8a612002565b01611096565b346103045761111136611dd2565b9173ffffffffffffffffffffffffffffffffffffffff8091165f52600260205260405f2091165f5260205260405f20905f52602052602060405f2054604051908152f35b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045760206111a0611191611b48565b611199611bf2565b903361260c565b6040519015158152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576111fb6111e760043561211a565b604051918291602083526020830190611b05565b0390f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457602060405173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8152f35b346103045760206111a061125e36611b8e565b913361259e565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff6112b1611b48565b165f52600560205260405f206024355f52602052602060405f2054604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020611310600435612060565b60ff60405191168152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020604051620f42408152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457602061138e612466565b604051908152f35b34610304576113a436611d48565b93918484036108fc57939291905f9473ffffffffffffffffffffffffffffffffffffffff809116945f945b8086106113fd578787335f52600160205260405f20905f526020526113f960405f20918254611fe8565b9055005b9091929394966114826001916114176106848b868b612002565b9089876114258d898c612002565b359316805f52602086815260405f2090835f525260405f20611448858254611ff5565b9055604080513380825260208201879052917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885991a4611ff5565b970194939291906113cf565b34610304576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576114c6611b48565b6114ce611b6b565b6114d6611be3565b73ffffffffffffffffffffffffffffffffffffffff60a4351660a435036103045767ffffffffffffffff9160c43583811161030457611519903690600401611cd1565b92610104359065ffffffffffff82168203610304576101243590811161030457611547903690600401611cd1565b61155360e43587612245565b65ffffffffffff82164211611778576042855160208701209260405160208101917f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f83526001604083015273ffffffffffffffffffffffffffffffffffffffff8a169586606084015273ffffffffffffffffffffffffffffffffffffffff8816608084015288151560a084015260643560c084015260843560e084015273ffffffffffffffffffffffffffffffffffffffff60a4351661010084015261012083015260e43561014083015265ffffffffffff610160911681830152815261163981611c01565b519020611644612466565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015220906116828183612db3565b6005819592951015610beb57159384611758575b505082156116bb575b505015610af05761105c9360a4359260843592606435926122da565b5f919250819060405161170b81610b6960208201947f1626ba7e00000000000000000000000000000000000000000000000000000000988987526024840152604060448401526064830190611b05565b5190885afa90611719612c6d565b8261174a575b8261172e575b5050858061169f565b9091506020818051810103126103045760200151148580611725565b91506020825110159161171f565b73ffffffffffffffffffffffffffffffffffffffff161492508780611696565b60248265ffffffffffff604051917f3aae5429000000000000000000000000000000000000000000000000000000008352166004820152fd5b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff6117fd611b48565b165f5260066020526040805f205460ff82519161ffff8116835260101c1615156020820152f35b346103045773ffffffffffffffffffffffffffffffffffffffff61184736611b8e565b91929092335f52600160205260405f20845f5260205260405f2061186c848254611fe8565b90551690815f52600160205260405f20835f5260205260405f20611891828254611ff5565b9055604080513380825260208201939093527f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599181908101610255565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020600160ff61190b611b48565b73ffffffffffffffffffffffffffffffffffffffff60243591165f526005845260405f208160081c5f528452161b60405f20541615604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361030457807f0f632fb30000000000000000000000000000000000000000000000000000000060209214908115611a0e575b81156119e4575b506040519015158152f35b7f4a31d20700000000000000000000000000000000000000000000000000000000915014826119d9565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506119d2565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff611a84611b48565b165f52600160205260405f206024355f52602052602060405f2054604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576111fb6111e7600435611ed7565b5f5b838110611af55750505f910152565b8181015183820152602001611ae6565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611b4181518092818752878088019101611ae4565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361030457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361030457565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103045760043573ffffffffffffffffffffffffffffffffffffffff8116810361030457906024359060443590565b60443590811515820361030457565b60243590811515820361030457565b610180810190811067ffffffffffffffff8211176108cf57604052565b6020810190811067ffffffffffffffff8211176108cf57604052565b6040810190811067ffffffffffffffff8211176108cf57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108cf57604052565b67ffffffffffffffff81116108cf57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561030457803590611ce882611c97565b92611cf66040519485611c56565b8284526020838301011161030457815f926020809301838601378301015290565b9181601f840112156103045782359167ffffffffffffffff8311610304576020808501948460051b01011161030457565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103045767ffffffffffffffff906004358281116103045781611d9391600401611d17565b9390939260243573ffffffffffffffffffffffffffffffffffffffff81168103610304579260443591821161030457611dce91600401611d17565b9091565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103045773ffffffffffffffffffffffffffffffffffffffff90600435828116810361030457916024359081168103610304579060443590565b6020818303126103045780519067ffffffffffffffff8211610304570181601f82011215610304578051611e6581611c97565b92611e736040519485611c56565b8184526020828401011161030457611e919160208085019101611ae4565b90565b6020611ed5919392936040519481611eb58793518092868087019101611ae4565b8201611ec982518093868085019101611ae4565b01038085520183611c56565b565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8114611fbe576004905f73ffffffffffffffffffffffffffffffffffffffff611f4a60405193611f1b85611c3a565b600f85527f53706c69747320577261707065642000000000000000000000000000000000006020860152612aaa565b16604051938480927f06fdde030000000000000000000000000000000000000000000000000000000082525afa908115611fb357611e91925f92611f8f575b50611e94565b611fac9192503d805f833e611fa48183611c56565b810190611e32565b905f611f89565b6040513d5f823e3d90fd5b50611e917f53706c69747320577261707065642045746865720000000000000000000000146121f7565b9190820391821161047857565b9190820180921161047857565b91908110156120125760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff811681036103045790565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811461211457602073ffffffffffffffffffffffffffffffffffffffff61209d600493612aaa565b16604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115611fb3575f916120db575090565b90506020813d60201161210c575b816120f660209383611c56565b81010312610304575160ff811681036103045790565b3d91506120e9565b50601290565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81146121d1576004905f73ffffffffffffffffffffffffffffffffffffffff61218d6040519361215e85611c3a565b600685527f73706c69747300000000000000000000000000000000000000000000000000006020860152612aaa565b16604051938480927f95d89b410000000000000000000000000000000000000000000000000000000082525afa908115611fb357611e91925f92611f8f5750611e94565b50611e917f73706c69747345544800000000000000000000000000000000000000000000095b60ff811690601f821161221b576040519161221183611c3a565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff600160ff84161b911690815f52600560205260405f208360081c5f5260205260405f208181541880915516156122b0577f239b0d63832ec06e8082928dc583392b57a30d16e4bb425b49d82c7808e308b05f80a3565b60046040517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b612366602082989795949396976122f48987878b8861296f565b9790995f73ffffffffffffffffffffffffffffffffffffffff604051809781968295847fb74de3da000000000000000000000000000000000000000000000000000000009c8d86521660048501528c151560248501528d6044850152606484015260a0608484015260a4830190611b05565b0393165af18015611fb3575f906123eb575b7fffffffff00000000000000000000000000000000000000000000000000000000915016036123c157156123b45750506123b19261260c565b50565b919092506123b19361259e565b60046040517f578b0306000000000000000000000000000000000000000000000000000000008152fd5b506020813d60201161245e575b8161240560209383611c56565b8101031261030457517fffffffff0000000000000000000000000000000000000000000000000000000081168103610304577fffffffff0000000000000000000000000000000000000000000000000000000090612378565b3d91506123f8565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008fb66f38cf86a3d5e8768f8f1754a24a6c661fb816301480612575575b156124ce577fb0c5ec167a46b474387d254af1fd88b6613ba712decfdb698acc78fc2211fda090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527fcbb4ec162d38f6df0314120199cbe3d402052c2b8c5677f9b26ba737e4ad0b8d60408201527f0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d21760608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176108cf5760405251902090565b507f0000000000000000000000000000000000000000000000000000000000088bb046146124a5565b90919260207fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a79173ffffffffffffffffffffffffffffffffffffffff80941693845f526002835260405f20951694855f52825260405f20865f5282528060405f2055604051908152a4600190565b909160207fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa2679173ffffffffffffffffffffffffffffffffffffffff80941693845f525f835260405f20951694855f52825260405f20901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3600190565b7f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596126fd73ffffffffffffffffffffffffffffffffffffffff5f9395949516938484526001602052604084208685526020526040842061023b828254611ff5565b0390a4565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176108cf57611ed592604052612adf565b60ff811461278f57611e91906121f7565b506040515f600354906001908260011c600184169283156128a3575b602094858310851461287657828752869490811561283757506001146127da575b5050611e9192500382611c56565b9093915060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f915b81831061281f575050611e9193508201015f806127cc565b85548784018501529485019486945091830191612807565b9050611e919593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f806127cc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b90607f16906127ab565b60ff81146128be57611e91906121f7565b506040515f600454906001908260011c60018416928315612965575b60209485831085146128765782875286949081156128375750600114612908575050611e9192500382611c56565b9093915060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b935f915b81831061294d575050611e9193508201015f806127cc565b85548784018501529485019486945091830191612935565b90607f16906128da565b9492939091935f80955f14612a6357501590811591612a59575b50612a2f5773ffffffffffffffffffffffffffffffffffffffff80941693845f525f60205260405f20911690815f5260205260ff60405f20541693805f525f60205260405f20825f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602060405160018152a3565b60046040517fc6fc3b8a000000000000000000000000000000000000000000000000000000008152fd5b905015155f612989565b9594506123b19273ffffffffffffffffffffffffffffffffffffffff8087165f52600260205260405f209082165f5260205260405f20825f5260205260405f20549561259e565b8060a01c612ab55790565b60046040517f35278d12000000000000000000000000000000000000000000000000000000008152fd5b604051612b499173ffffffffffffffffffffffffffffffffffffffff16612b0582611c3a565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1612b43612c6d565b91612e6c565b8051828115918215612be6575b5050905015612b625750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b83809293500103126103045781015180151581036103045780825f612b56565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff929092166024830152604480830193909352918152611ed591612c68606483611c56565b612adf565b3d15612c97573d90612c7e82611c97565b91612c8c6040519384611c56565b82523d5f602084013e565b606090565b814710612d55575f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1612cc9612c6d565b5015612cd157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152fd5b9060418151145f14612ddb57611dce91602082015190606060408401519301515f1a90612de4565b50505f90600290565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e61576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15611fb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612e5957905f90565b505f90600190565b505050505f90600390565b91929015612ee75750815115612e80575090565b3b15612e895790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015612efa5750805190602001fd5b612f38906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b05565b0390fdfea264697066735822122044605f36cd509b52f51e0b7e4bf7df4fd8f23b37a10d536036d532c76204192964736f6c63430008170033";
381
377
  var MAINNET_OVM_FACTORY_BYTECODE = "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806306dbd0cb14620000575780633e5b34b21462000079578063cdba577d146200009b578063f7f8ff7a14620000d1575b600080fd5b62000061620000f3565b60405162000070919062000464565b60405180910390f35b6200008362000117565b60405162000092919062000464565b60405180910390f35b620000b96004803603810190620000b39190620004fc565b6200013b565b604051620000c89190620005d9565b60405180910390f35b620000db620003ed565b604051620000ea919062000464565b60405180910390f35b7f00000000000000000000000000000961ef480eb55e80d19ad83579a64c00700281565b7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f22adafa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200020b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000243576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008267ffffffffffffffff160362000288576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6501dcd65000008267ffffffffffffffff161115620002d3576040517f12f9b82600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a5900072517f00000000000000000000000000000961ef480eb55e80d19ad83579a64c0070027f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa87878787604051620003489062000411565b6200035a979695949392919062000607565b604051809103906000f08015801562000377573d6000803e3d6000fd5b5090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5f69e7dce622f5df4a1899cf39ca6eb1216397f2c07206d2ef33aebf960827a3868686604051620003dd9392919062000684565b60405180910390a3949350505050565b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a59000725181565b613d2e80620006c283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200044c826200041f565b9050919050565b6200045e816200043f565b82525050565b60006020820190506200047b600083018462000453565b92915050565b600080fd5b62000491816200043f565b81146200049d57600080fd5b50565b600081359050620004b18162000486565b92915050565b600067ffffffffffffffff82169050919050565b620004d681620004b7565b8114620004e257600080fd5b50565b600081359050620004f681620004cb565b92915050565b6000806000806080858703121562000519576200051862000481565b5b60006200052987828801620004a0565b94505060206200053c87828801620004a0565b93505060406200054f87828801620004a0565b92505060606200056287828801620004e5565b91505092959194509250565b6000819050919050565b600062000599620005936200058d846200041f565b6200056e565b6200041f565b9050919050565b6000620005ad8262000578565b9050919050565b6000620005c182620005a0565b9050919050565b620005d381620005b4565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b6200060181620004b7565b82525050565b600060e0820190506200061e600083018a62000453565b6200062d602083018962000453565b6200063c604083018862000453565b6200064b606083018762000453565b6200065a608083018662000453565b6200066960a083018562000453565b6200067860c0830184620005f6565b98975050505050505050565b60006060820190506200069b600083018662000453565b620006aa602083018562000453565b620006b96040830184620005f6565b94935050505056fe61010060405260016000553480156200001757600080fd5b5060405162003d2e38038062003d2e83398181016040528101906200003d9190620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620000a4576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200010b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000172576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620001d9576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000240576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a7576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508067ffffffffffffffff1660e08167ffffffffffffffff1681525050620003f284620003ff60201b60201c565b505050505050506200059d565b8060601b60601c905080638b78c6d819558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a350565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200046d8262000440565b9050919050565b6200047f8162000460565b81146200048b57600080fd5b50565b6000815190506200049f8162000474565b92915050565b600067ffffffffffffffff82169050919050565b620004c481620004a5565b8114620004d057600080fd5b50565b600081519050620004e481620004b9565b92915050565b600080600080600080600060e0888a0312156200050c576200050b6200043b565b5b60006200051c8a828b016200048e565b97505060206200052f8a828b016200048e565b9650506040620005428a828b016200048e565b9550506060620005558a828b016200048e565b9450506080620005688a828b016200048e565b93505060a06200057b8a828b016200048e565b92505060c06200058e8a828b01620004d3565b91505092959891949750929550565b60805160a05160c05160e05161372d620006016000396000818161135301526121a5015260008181610c620152610f6d0152600081816109590152818161143a015261155601526000818161190701528181611c820152611fea015261372d6000f3fe6080604052600436106102605760003560e01c806354d1f13d116101445780639124aafb116100b6578063e521136f1161007a578063e521136f146107fa578063f04e283e14610823578063f2fde38b1461083f578063f5e45d4d1461085b578063f7f8ff7a14610884578063fee81cf4146108af57610267565b80639124aafb146107455780639fdb5e8a14610761578063ba45b0b81461078c578063bca2da78146107b5578063dc04d8f4146107de57610267565b80636c196886116101085780636c196886146106665780636ea056a914610691578063715018a6146106ba57806379de7638146106c45780637bfafd59146106ef5780638da5cb5b1461071a57610267565b806354d1f13d146105b057806354fd4d50146105ba578063565a2e2c146105e55780635f097d751461061057806367db90c21461063b57610267565b806324ae6a27116101dd578063353efdcf116101a1578063353efdcf146104bf578063377b2c34146104ea5780633a6a4d2e146105155780633e5b34b21461052c5780634a4ee7b114610557578063514e62fc1461057357610267565b806324ae6a271461040d57806325692962146104365780632d7fd507146104405780632de94807146104575780633332c3241461049457610267565b8063183a4f6e11610224578063183a4f6e146103535780631c10893f1461036f5780631c31f7101461038b5780631cd64df4146103b457806322895118146103f157610267565b806303615ba31461026c578063043edae8146102a957806306dbd0cb146102d45780630da58dbb146102ff57806317f333401461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061298c565b6108ec565b6040516102a091906129d2565b60405180910390f35b3480156102b557600080fd5b506102be610935565b6040516102cb9190612a18565b60405180910390f35b3480156102e057600080fd5b506102e9610957565b6040516102f69190612a42565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061298c565b61097b565b005b34801561033457600080fd5b5061033d610ae8565b60405161034a9190612a42565b60405180910390f35b61036d60048036038101906103689190612a89565b610b0e565b005b61038960048036038101906103849190612ab6565b610b1a565b005b34801561039757600080fd5b506103b260048036038101906103ad919061298c565b610b28565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612ab6565b610c21565b6040516103e89190612b11565b60405180910390f35b61040b60048036038101906104069190612bc7565b610c35565b005b34801561041957600080fd5b50610434600480360381019061042f9190612c90565b610d3e565b005b61043e610e5d565b005b34801561044c57600080fd5b50610455610e67565b005b34801561046357600080fd5b5061047e6004803603810190610479919061298c565b610ec8565b60405161048b91906129d2565b60405180910390f35b3480156104a057600080fd5b506104a9610eda565b6040516104b691906129d2565b60405180910390f35b3480156104cb57600080fd5b506104d4610edf565b6040516104e191906129d2565b60405180910390f35b3480156104f657600080fd5b506104ff610ee4565b60405161050c9190612a42565b60405180910390f35b34801561052157600080fd5b5061052a610f0a565b005b34801561053857600080fd5b50610541610f6b565b60405161054e9190612a42565b60405180910390f35b610571600480360381019061056c9190612ab6565b610f8f565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612ab6565b610f9d565b6040516105a79190612b11565b60405180910390f35b6105b8610fb1565b005b3480156105c657600080fd5b506105cf610fbb565b6040516105dc9190612d60565b60405180910390f35b3480156105f157600080fd5b506105fa610ff8565b6040516106079190612a42565b60405180910390f35b34801561061c57600080fd5b50610625611022565b60405161063291906129d2565b60405180910390f35b34801561064757600080fd5b50610650611028565b60405161065d91906129d2565b60405180910390f35b34801561067257600080fd5b5061067b61102d565b60405161068891906129d2565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612ab6565b611032565b005b6106c2611342565b005b3480156106d057600080fd5b506106d961134c565b6040516106e691906129d2565b60405180910390f35b3480156106fb57600080fd5b50610704611351565b6040516107119190612da5565b60405180910390f35b34801561072657600080fd5b5061072f611375565b60405161073c9190612a42565b60405180910390f35b61075f600480360381019061075a9190612e6c565b611384565b005b34801561076d57600080fd5b506107766116e8565b60405161078391906129d2565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190612c90565b6116ed565b005b3480156107c157600080fd5b506107dc60048036038101906107d79190612a89565b611846565b005b6107f860048036038101906107f39190612f69565b6118a8565b005b34801561080657600080fd5b50610821600480360381019061081c919061298c565b611e4f565b005b61083d6004803603810190610838919061298c565b611f48565b005b6108596004803603810190610854919061298c565b611f54565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ab6565b611f60565b005b34801561089057600080fd5b50610899611fe8565b6040516108a69190612a42565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d1919061298c565b61200c565b6040516108e391906129d2565b60405180910390f35b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a90046fffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081036109cd5750610ae5565b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a95818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fcbfdaa15c344a7a5b846b2199db1ca289c82041c65048ce19264f9fdd8cee27482604051610adb91906129d2565b60405180910390a2505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b178161203e565b50565b610b24828261204b565b5050565b6004610b3381612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b99576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a25050565b6000610c2d8383612098565b905092915050565b6020610c4081612061565b600060035490503460036000828254610c59919061300c565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166322895118348b8b8b8b8b8b8b6040518963ffffffff1660e01b8152600401610cc6979695949392919061309c565b6000604051808303818588803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50505050507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf860035482604051610d2b9291906130fc565b60405180910390a1505050505050505050565b6008610d4981612061565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d849190612a42565b602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061313a565b9050610df283828673ffffffffffffffffffffffffffffffffffffffff166120af9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f02dc46f45168b3833fa84aa22ee90f4ffec812cf1067be0413353eb95c031b0583604051610e4f91906129d2565b60405180910390a350505050565b610e656120fe565b565b600160005414610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906131b3565b60405180910390fd5b6002600081905550610ebe6001612152565b6001600081905550565b6000610ed3826123f0565b9050919050565b600481565b602081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160005414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906131b3565b60405180910390fd5b6002600081905550610f616000612152565b6001600081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f99828261240b565b5050565b6000610fa98383612421565b905092915050565b610fb9612439565b565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600181565b600281565b600160005414611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e906131b3565b60405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e6576110e2612475565b8290505b60008083146110f55782611158565b60056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156111f5576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112c091906131d3565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff167fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969660405160405180910390a3611334818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b505060016000819055505050565b61134a612492565b565b601081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061137f6124a6565b905090565b600161138f81612061565b6001600054146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb906131b3565b60405180910390fd5b600260008190555084849050878790501461141b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61143334888890508561142e9190613207565b6124b4565b600061145f7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b898990508110156116c9576114e08a8a8381811061148657611485613249565b5b90506020028101906114989190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a838181106114f5576114f4613249565b5b90506020028101906115079190613287565b8a8a8581811061151a57611519613249565b5b905060200201602081019061152f9190613316565b604051602001611541939291906133a9565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16858360405161159a919061340f565b60006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b5050905080611617576040517fd3d2fd8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8484611623919061300c565b9350848a8a8581811061163957611638613249565b5b905060200201602081019061164e9190613316565b67ffffffffffffffff167f19cd6ffa1afc5a20b44dd0fea708b8fb38af1d7891d4929811a3c65ff1624fb98e8e8781811061168c5761168b613249565b5b905060200281019061169e9190613287565b6040516116ac929190613426565b60405180910390a3505080806116c19061344a565b915050611465565b506116d5348286612625565b5050600160008190555050505050505050565b600881565b6116f5612475565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a26117e881611f54565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa1c3c7ba08cdab9542dfbb1f9606093e828bca6c2678c82942703ec4e223790260405160405180910390a35050565b600461185181612061565b6003548203156118a45760006003549050826003819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8838260405161189a9291906130fc565b60405180910390a1505b5050565b60026118b381612061565b6001600054146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906131b3565b60405180910390fd5b6002600081905550600061192c7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b87879050811015611a4357600088888381811061195257611951613249565b5b90506020028101906119649190613492565b806000019061197391906134ba565b905014806119b65750603f88888381811061199157611990613249565b5b90506020028101906119a39190613492565b80600001906119b291906134ba565b9050115b156119ed576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b878782818110611a00576119ff613249565b5b9050602002810190611a129190613492565b8060000190611a2191906134ba565b905082611a2e919061300c565b91508080611a3b9061344a565b915050611932565b5060008183611a529190613207565b9050611a5e34826124b4565b60005b88889050811015611e3157611aeb898983818110611a8257611a81613249565b5b9050602002810190611a949190613492565b8060200190611aa39190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60005b898983818110611b0157611b00613249565b5b9050602002810190611b139190613492565b8060000190611b2291906134ba565b9050811015611e1d57611bcd8a8a84818110611b4157611b40613249565b5b9050602002810190611b539190613492565b8060000190611b6291906134ba565b83818110611b7357611b72613249565b5b9050602002810190611b859190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a84818110611be257611be1613249565b5b9050602002810190611bf49190613492565b8060000190611c0391906134ba565b83818110611c1457611c13613249565b5b9050602002810190611c269190613287565b8c8c86818110611c3957611c38613249565b5b9050602002810190611c4b9190613492565b8060200190611c5a9190613287565b604051602001611c6d949392919061351d565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168783604051611cc6919061340f565b60006040518083038185875af1925050503d8060008114611d03576040519150601f19603f3d011682016040523d82523d6000602084013e611d08565b606091505b5050905080611d43576040517f1684b73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f70327b6e1280f8015a284fca27cbbef10ac24c017f6452ff98212167813459d88d8d87818110611d7857611d77613249565b5b9050602002810190611d8a9190613492565b8060000190611d9991906134ba565b86818110611daa57611da9613249565b5b9050602002810190611dbc9190613287565b8f8f89818110611dcf57611dce613249565b5b9050602002810190611de19190613492565b8060200190611df09190613287565b604051611e009493929190613545565b60405180910390a250508080611e159061344a565b915050611aee565b508080611e299061344a565b915050611a61565b50611e3d348287612625565b50505060016000819055505050505050565b6010611e5a81612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ec0576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fab0699d690a6fcb85f70e4d28ee4c6114c3d90c12c579ca5abe089b8ff6ff1bf60405160405180910390a25050565b611f5181612700565b50565b611f5d81612741565b50565b600160005414611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c906131b3565b60405180910390fd5b60026000819055506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906135cc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60006120178261276b565b9050919050565b60005a60005a84865af161203a5763b12d13eb6000526004601cfd5b5050565b6120483382612786565b50565b612053612475565b61205d8282612796565b5050565b638b78c6d81954331461209557638b78c6d8600c5233600052806020600c205416612094576382b429006000526004601cfd5b5b50565b600081826120a585610ec8565b1614905092915050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166120f4576390b8ec186000526004601cfd5b6000603452505050565b60006121086127a6565b67ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60004790506000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690506000818361219a91906131d3565b90506000633b9aca007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166121d89190613207565b90506000808284101580156121ef57506000600354115b156122185760035484111561220f57600354915060035484039050612213565b8391505b61221c565b8390505b6fffffffffffffffffffffffffffffffff8016841115612268576040517f502cbcb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211156122e557816fffffffffffffffffffffffffffffffff166003600082825461229591906131d3565b925050819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8600354836003546122ce919061300c565b6040516122dc9291906130fc565b60405180910390a15b600187036123525760008211806122fc5750600081115b156123515780828661230e919061300c565b612318919061300c565b600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b61237f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683896127b1565b6123ac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682896127b1565b7f8b367b31582d5c638694615c1cfc77ffcf9febcf6e6c793358089f7769cfeee68282896040516123df939291906135ec565b60405180910390a150505050505050565b6000638b78c6d8600c52816000526020600c20549050919050565b612413612475565b61241d8282612786565b5050565b6000808261242e85610ec8565b161415905092915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b638b78c6d819543314612490576382b429006000526004601cfd5b565b61249a612475565b6124a4600061288c565b565b6000638b78c6d81954905090565b808210156124ee576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1660405161251a90613649565b600060405180830381855afa9150503d8060008114612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b509150915081612596576040517f448e5c4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806125a090613690565b60001c9250838311156125df576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6030815114612622576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b818311156126fb5760008173ffffffffffffffffffffffffffffffffffffffff16838561265291906131d3565b60405161265e90613649565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50509050806126f95782846126b591906131d3565b8273ffffffffffffffffffffffffffffffffffffffff167fff295b6ae91fb82f39d5bb544f1e62ce33f6978255b7c7434f8137bdf107f6d960405160405180910390a35b505b505050565b612708612475565b63389a75e1600c52806000526020600c20805442111561273057636f5e88186000526004601cfd5b600081555061273e8161288c565b50565b612749612475565b8060601b61275f57637448fbae6000526004601cfd5b6127688161288c565b50565b600063389a75e1600c52816000526020600c20549050919050565b612792828260006128ca565b5050565b6127a2828260016128ca565b5050565b60006202a300905090565b6000821115612887576001810361281d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612811919061300c565b92505081905550612886565b600081036128535761284e828473ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b612885565b6040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b505050565b638b78c6d8198160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a38181555050565b638b78c6d8600c52826000526020600c208054838117836128ed57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129598261292e565b9050919050565b6129698161294e565b811461297457600080fd5b50565b60008135905061298681612960565b92915050565b6000602082840312156129a2576129a1612924565b5b60006129b084828501612977565b91505092915050565b6000819050919050565b6129cc816129b9565b82525050565b60006020820190506129e760008301846129c3565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a12816129ed565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c8161294e565b82525050565b6000602082019050612a576000830184612a33565b92915050565b612a66816129b9565b8114612a7157600080fd5b50565b600081359050612a8381612a5d565b92915050565b600060208284031215612a9f57612a9e612924565b5b6000612aad84828501612a74565b91505092915050565b60008060408385031215612acd57612acc612924565b5b6000612adb85828601612977565b9250506020612aec85828601612a74565b9150509250929050565b60008115159050919050565b612b0b81612af6565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612b5157612b50612b2c565b5b8235905067ffffffffffffffff811115612b6e57612b6d612b31565b5b602083019150836001820283011115612b8a57612b89612b36565b5b9250929050565b6000819050919050565b612ba481612b91565b8114612baf57600080fd5b50565b600081359050612bc181612b9b565b92915050565b60008060008060008060006080888a031215612be657612be5612924565b5b600088013567ffffffffffffffff811115612c0457612c03612929565b5b612c108a828b01612b3b565b9750975050602088013567ffffffffffffffff811115612c3357612c32612929565b5b612c3f8a828b01612b3b565b9550955050604088013567ffffffffffffffff811115612c6257612c61612929565b5b612c6e8a828b01612b3b565b93509350506060612c818a828b01612bb2565b91505092959891949750929550565b60008060408385031215612ca757612ca6612924565b5b6000612cb585828601612977565b9250506020612cc685828601612977565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0a578082015181840152602081019050612cef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3282612cd0565b612d3c8185612cdb565b9350612d4c818560208601612cec565b612d5581612d16565b840191505092915050565b60006020820190508181036000830152612d7a8184612d27565b905092915050565b600067ffffffffffffffff82169050919050565b612d9f81612d82565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008083601f840112612dd657612dd5612b2c565b5b8235905067ffffffffffffffff811115612df357612df2612b31565b5b602083019150836020820283011115612e0f57612e0e612b36565b5b9250929050565b60008083601f840112612e2c57612e2b612b2c565b5b8235905067ffffffffffffffff811115612e4957612e48612b31565b5b602083019150836020820283011115612e6557612e64612b36565b5b9250929050565b60008060008060008060808789031215612e8957612e88612924565b5b600087013567ffffffffffffffff811115612ea757612ea6612929565b5b612eb389828a01612dc0565b9650965050602087013567ffffffffffffffff811115612ed657612ed5612929565b5b612ee289828a01612e16565b94509450506040612ef589828a01612a74565b9250506060612f0689828a01612977565b9150509295509295509295565b60008083601f840112612f2957612f28612b2c565b5b8235905067ffffffffffffffff811115612f4657612f45612b31565b5b602083019150836020820283011115612f6257612f61612b36565b5b9250929050565b60008060008060608587031215612f8357612f82612924565b5b600085013567ffffffffffffffff811115612fa157612fa0612929565b5b612fad87828801612f13565b94509450506020612fc087828801612a74565b9250506040612fd187828801612977565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613017826129b9565b9150613022836129b9565b925082820190508082111561303a57613039612fdd565b5b92915050565b600082825260208201905092915050565b82818337600083830152505050565b600061306c8385613040565b9350613079838584613051565b61308283612d16565b840190509392505050565b61309681612b91565b82525050565b600060808201905081810360008301526130b781898b613060565b905081810360208301526130cc818789613060565b905081810360408301526130e1818587613060565b90506130f0606083018461308d565b98975050505050505050565b600060408201905061311160008301856129c3565b61311e60208301846129c3565b9392505050565b60008151905061313481612a5d565b92915050565b6000602082840312156131505761314f612924565b5b600061315e84828501613125565b91505092915050565b7f5245454e5452414e435900000000000000000000000000000000000000000000600082015250565b600061319d600a83612cdb565b91506131a882613167565b602082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b60006131de826129b9565b91506131e9836129b9565b925082820390508181111561320157613200612fdd565b5b92915050565b6000613212826129b9565b915061321d836129b9565b925082820261322b816129b9565b9150828204841483151761324257613241612fdd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126132a4576132a3613278565b5b80840192508235915067ffffffffffffffff8211156132c6576132c561327d565b5b6020830192506001820236038313156132e2576132e1613282565b5b509250929050565b6132f381612d82565b81146132fe57600080fd5b50565b600081359050613310816132ea565b92915050565b60006020828403121561332c5761332b612924565b5b600061333a84828501613301565b91505092915050565b600081905092915050565b600061335a8385613343565b9350613367838584613051565b82840190509392505050565b60008160c01b9050919050565b600061338b82613373565b9050919050565b6133a361339e82612d82565b613380565b82525050565b60006133b682858761334e565b91506133c28284613392565b600882019150819050949350505050565b600081519050919050565b60006133e9826133d3565b6133f38185613343565b9350613403818560208601612cec565b80840191505092915050565b600061341b82846133de565b915081905092915050565b60006020820190508181036000830152613441818486613060565b90509392505050565b6000613455826129b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361348757613486612fdd565b5b600182019050919050565b6000823560016040038336030381126134ae576134ad613278565b5b80830191505092915050565b600080833560016020038436030381126134d7576134d6613278565b5b80840192508235915067ffffffffffffffff8211156134f9576134f861327d565b5b60208301925060208202360383131561351557613514613282565b5b509250929050565b600061352a82868861334e565b915061353782848661334e565b915081905095945050505050565b60006040820190508181036000830152613560818688613060565b90508181036020830152613575818486613060565b905095945050505050565b7f4e6f7420696d706c656d656e7465640000000000000000000000000000000000600082015250565b60006135b6600f83612cdb565b91506135c182613580565b602082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b600060608201905061360160008301866129c3565b61360e60208301856129c3565b61361b60408301846129c3565b949350505050565b50565b6000613633600083613343565b915061363e82613623565b600082019050919050565b600061365482613626565b9150819050919050565b6000819050602082019050919050565b600061367a8251612b91565b80915050919050565b600082821b905092915050565b600061369b826133d3565b826136a58461365e565b90506136b08161366e565b925060208210156136f0576136eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613683565b831692505b505091905056fea26469706673582212205b83464c8159b4a300316c2a0b8a5da2e7cc180d9e2495b4c3be8d1a402389a864736f6c63430008130033a2646970667358221220d0677431495e7a3ae579ad87b584d9963ccdcd75c74dc989f0bccd47105e3cb364736f6c63430008130033";
@@ -481,7 +477,7 @@ var DefinitionFlow = /* @__PURE__ */ ((DefinitionFlow2) => {
481
477
  })(DefinitionFlow || {});
482
478
  var DEFAULT_BASE_URL = "https://api.obol.tech";
483
479
  var DEFAULT_BASE_VERSION = "v1";
484
- var DEFAULT_CHAIN_ID = 17e3;
480
+ var DEFAULT_CHAIN_ID = 560048;
485
481
  var ETHER_TO_GWEI = 10 ** 9;
486
482
  var TERMS_AND_CONDITIONS_VERSION = 1;
487
483
  var TERMS_AND_CONDITIONS_URL = TERMS_AND_CONDITIONS_VERSION === 1 ? "https://obol.org/terms.pdf" : `https://obol.org/${TERMS_AND_CONDITIONS_VERSION}/terms.pdf`;
@@ -489,8 +485,6 @@ var TERMS_AND_CONDITIONS_HASH = "0xd33721644e8f3afab1495a74abe3523cec12d48b8da6c
489
485
  var AVAILABLE_SPLITTER_CHAINS = {
490
486
  [1 /* 0x00000000 */]: true,
491
487
  // Mainnet
492
- [17e3 /* 0x01017000 */]: true,
493
- // Holesky
494
488
  [560048 /* 0x10000910 */]: true
495
489
  // Hoodi
496
490
  };
@@ -535,27 +529,6 @@ var CHAIN_CONFIGURATION = {
535
529
  address: "0xcD7a6C118Ac8F6544BC5076F2D8Fb86D2C546756"
536
530
  }
537
531
  },
538
- [17e3 /* 0x01017000 */]: {
539
- SPLITMAIN_CONTRACT: {
540
- address: "0xfC8a305728051367797DADE6Aa0344E0987f5286",
541
- bytecode: HOLESKY_SPLITMAIN_BYTECODE
542
- },
543
- MULTICALL3_CONTRACT: {
544
- address: "0xcA11bde05977b3631167028862bE2a173976CA11",
545
- bytecode: HOLESKY_MULTICALL3_BYTECODE
546
- },
547
- OWR_FACTORY_CONTRACT: {
548
- address: "0xc0961353fcc43a99e3041db07ac646720e116256",
549
- bytecode: HOLESKY_OWR_FACTORY_BYTECODE
550
- },
551
- RETROACTIVE_FUNDING_CONTRACT: {
552
- address: "0x43F641fA70e09f0326ac66b4Ef0C416EaEcBC6f5",
553
- bytecode: ""
554
- },
555
- EOA_WITHDRAWAL_CONTRACT: {
556
- address: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
557
- }
558
- },
559
532
  [560048 /* 0x10000910 */]: {
560
533
  SPLITMAIN_CONTRACT: {
561
534
  address: "0xc05ae267291705ac16F75283572294ed2a91CBc7",
@@ -602,8 +575,6 @@ var OBOL_SDK_EMAIL = "sdk@dvlabs.tech";
602
575
  var PROVIDER_MAP = {
603
576
  1: `${process.env.RPC_MAINNET}`,
604
577
  // Mainnet
605
- 17e3: `${process.env.RPC_HOLESKY}`,
606
- // Holesky
607
578
  11155111: `${process.env.RPC_SEPOLIA}`,
608
579
  // Sepolia
609
580
  100: `${process.env.RPC_GNOSIS}`,
@@ -614,14 +585,10 @@ var PROVIDER_MAP = {
614
585
  var CAPELLA_FORK_MAPPING = {
615
586
  "0x00000000": "0x03000000",
616
587
  // Mainnet
617
- "0x00001020": "0x03001020",
618
- // Goerli
619
588
  "0x00000064": "0x03000064",
620
589
  // Gnosis
621
590
  "0x90000069": "0x90000072",
622
591
  // Sepolia
623
- "0x01017000": "0x04017000",
624
- // Holesky
625
592
  "0x10000910": "0x40000910"
626
593
  // Hoodi
627
594
  };
@@ -668,6 +635,20 @@ var ConflictError = class _ConflictError extends Error {
668
635
  Object.setPrototypeOf(this, _ConflictError.prototype);
669
636
  }
670
637
  };
638
+ var SignerRequiredError = class _SignerRequiredError extends Error {
639
+ constructor(method) {
640
+ super(`Signer is required in ${method}`);
641
+ this.name = "SignerRequiredError";
642
+ Object.setPrototypeOf(this, _SignerRequiredError.prototype);
643
+ }
644
+ };
645
+ var UnsupportedChainError = class _UnsupportedChainError extends Error {
646
+ constructor(chainId, operation) {
647
+ super(`${operation} is not supported on chain ${chainId}`);
648
+ this.name = "UnsupportedChainError";
649
+ Object.setPrototypeOf(this, _UnsupportedChainError.prototype);
650
+ }
651
+ };
671
652
 
672
653
  // src/verification/common.ts
673
654
  var import_ssz6 = require("@chainsafe/ssz");
@@ -4501,7 +4482,7 @@ var CID = class _CID {
4501
4482
  return this;
4502
4483
  }
4503
4484
  // Legacy
4504
- [(_a = Symbol.toStringTag, Symbol.for("nodejs.util.inspect.custom"))]() {
4485
+ [(_a = Symbol.toStringTag, /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom"))]() {
4505
4486
  return `CID(${this.toString()})`;
4506
4487
  }
4507
4488
  /**
@@ -4727,7 +4708,7 @@ function encodeCID(version, code2, multihash) {
4727
4708
  bytes3.set(multihash, hashOffset);
4728
4709
  return bytes3;
4729
4710
  }
4730
- var cidSymbol = Symbol.for("@ipld/js-cid/CID");
4711
+ var cidSymbol = /* @__PURE__ */ Symbol.for("@ipld/js-cid/CID");
4731
4712
 
4732
4713
  // node_modules/multiformats/dist/src/basics.js
4733
4714
  var bases = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, identity_exports), base2_exports), base8_exports), base10_exports), base16_exports), base32_exports), base36_exports), base58_exports), base64_exports), base256emoji_exports);
@@ -5730,8 +5711,8 @@ function sizeForAddr(codec, bytes3, offset) {
5730
5711
  }
5731
5712
 
5732
5713
  // node_modules/@multiformats/multiaddr/dist/src/multiaddr.js
5733
- var inspect = Symbol.for("nodejs.util.inspect.custom");
5734
- var symbol = Symbol.for("@multiformats/multiaddr");
5714
+ var inspect = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
5715
+ var symbol = /* @__PURE__ */ Symbol.for("@multiformats/multiaddr");
5735
5716
  var DNS_CODES = [
5736
5717
  CODE_DNS,
5737
5718
  CODE_DNS4,
@@ -6476,7 +6457,7 @@ var InvalidPublicKeyError = class extends Error {
6476
6457
  __publicField(InvalidPublicKeyError, "name", "InvalidPublicKeyError");
6477
6458
 
6478
6459
  // node_modules/uint8arraylist/dist/src/index.js
6479
- var symbol2 = Symbol.for("@achingbrain/uint8arraylist");
6460
+ var symbol2 = /* @__PURE__ */ Symbol.for("@achingbrain/uint8arraylist");
6480
6461
  function findBufAndOffset(bufs, index) {
6481
6462
  if (index == null || index < 0) {
6482
6463
  throw new RangeError("index is out of bounds");
@@ -11038,7 +11019,7 @@ function publicKeyToProtobuf(key) {
11038
11019
  }
11039
11020
 
11040
11021
  // node_modules/@libp2p/interface/dist/src/peer-id.js
11041
- var peerIdSymbol = Symbol.for("@libp2p/peer-id");
11022
+ var peerIdSymbol = /* @__PURE__ */ Symbol.for("@libp2p/peer-id");
11042
11023
 
11043
11024
  // node_modules/@libp2p/interface/dist/src/errors.js
11044
11025
  var UnsupportedKeyTypeError2 = class extends Error {
@@ -11050,7 +11031,7 @@ var UnsupportedKeyTypeError2 = class extends Error {
11050
11031
  __publicField(UnsupportedKeyTypeError2, "name", "UnsupportedKeyTypeError");
11051
11032
 
11052
11033
  // node_modules/@libp2p/peer-id/dist/src/peer-id.js
11053
- var inspect2 = Symbol.for("nodejs.util.inspect.custom");
11034
+ var inspect2 = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
11054
11035
  var LIBP2P_KEY_CODE = 114;
11055
11036
  var _a4;
11056
11037
  var PeerIdImpl = class {
@@ -15751,28 +15732,31 @@ var Incentives = class {
15751
15732
  this.provider = provider;
15752
15733
  }
15753
15734
  /**
15754
- * Claims Obol incentives from a Merkle Distributor contract using an address.
15755
- *
15756
- * This method automatically fetches incentive data and verifies whether the incentives have already been claimed.
15757
- * If `txHash` is `null`, it indicates that the incentives were already claimed.
15735
+ * Claims Obol incentives from a Merkle Distributor contract for the given address.
15758
15736
  *
15759
- * Note: This method is not yet enabled and will throw an error if called.
15737
+ * Automatically fetches incentive data, checks if already claimed, and submits
15738
+ * the on-chain claim transaction. Returns `{ txHash: null }` if incentives were
15739
+ * already claimed (idempotent).
15760
15740
  *
15761
- * @remarks
15762
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
15763
- * and not pushed to version control.
15741
+ * @param address - The operator's Ethereum address to claim incentives for.
15742
+ * @returns The transaction hash, or `{ txHash: null }` if already claimed.
15743
+ * @throws {SignerRequiredError} If no signer was provided.
15744
+ * @throws {Error} If no incentives are found for the address.
15764
15745
  *
15765
- * @param {string} address - The address to claim incentives for
15766
- * @returns {Promise<ClaimIncentivesResponse>} The transaction hash or already claimed status
15767
- * @throws Will throw an error if the incentives data is not found or the claim fails
15768
- *
15769
- * An example of how to use claimIncentives:
15770
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L281)
15746
+ * @example
15747
+ * ```typescript
15748
+ * const { txHash } = await client.incentives.claimIncentives("0xOperator...");
15749
+ * if (txHash) {
15750
+ * console.log("Claimed:", txHash);
15751
+ * } else {
15752
+ * console.log("Already claimed");
15753
+ * }
15754
+ * ```
15771
15755
  */
15772
15756
  claimIncentives(address) {
15773
15757
  return __async(this, null, function* () {
15774
15758
  if (!this.signer) {
15775
- throw new Error("Signer is required in claimIncentives");
15759
+ throw new SignerRequiredError("claimIncentives");
15776
15760
  }
15777
15761
  try {
15778
15762
  const incentivesData = yield this.getIncentivesByAddress(address);
@@ -15811,15 +15795,21 @@ var Incentives = class {
15811
15795
  });
15812
15796
  }
15813
15797
  /**
15814
- * Read isClaimed.
15798
+ * Checks whether incentives have already been claimed for a given operator index.
15815
15799
  *
15816
- * @param {ETH_ADDRESS} contractAddress - Address of the Merkle Distributor Contract
15817
- * @param {ETH_ADDRESS} index - operator index in merkle tree
15818
- * @returns {Promise<boolean>} true if incentives are already claime
15800
+ * Read-only on-chain call no transaction sent.
15819
15801
  *
15802
+ * @param contractAddress - Address of the Merkle Distributor contract.
15803
+ * @param index - The operator's index in the Merkle tree (from {@link Incentives.getIncentivesByAddress}).
15804
+ * @returns `true` if the incentives at that index have already been claimed.
15820
15805
  *
15821
- * An example of how to use isClaimed:
15822
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L266)
15806
+ * @example
15807
+ * ```typescript
15808
+ * const claimed = await client.incentives.isClaimed(
15809
+ * "0xMerkleDistributor...",
15810
+ * 42,
15811
+ * );
15812
+ * ```
15823
15813
  */
15824
15814
  isClaimed(contractAddress, index) {
15825
15815
  return __async(this, null, function* () {
@@ -15831,12 +15821,20 @@ var Incentives = class {
15831
15821
  });
15832
15822
  }
15833
15823
  /**
15834
- * @param address - Operator address
15835
- * @returns {Promise<IncentivesType>} The matched incentives from DB
15836
- * @throws On not found if address not found.
15824
+ * Fetches claimable incentive data for an operator address from the Obol API.
15825
+ *
15826
+ * The returned data includes the Merkle proof, amount, and contract address
15827
+ * needed to claim on-chain. This is a read-only API call.
15828
+ *
15829
+ * @param address - The operator's Ethereum address.
15830
+ * @returns Claimable incentive data including amount, Merkle proof, and contract address.
15831
+ * @throws {Error} If no incentives are found for the given address (404).
15837
15832
  *
15838
- * An example of how to use getIncentivesByAddress:
15839
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L250)
15833
+ * @example
15834
+ * ```typescript
15835
+ * const incentives = await client.incentives.getIncentivesByAddress("0xOperator...");
15836
+ * console.log(incentives.amount, incentives.contract_address);
15837
+ * ```
15840
15838
  */
15841
15839
  getIncentivesByAddress(address) {
15842
15840
  return __async(this, null, function* () {
@@ -15980,11 +15978,8 @@ var Exit = class _Exit {
15980
15978
  *
15981
15979
  * @example
15982
15980
  * ```typescript
15983
- * // For mainnet with a provider
15984
- * const exit = new Exit(1, provider);
15985
- *
15986
- * // For goerli testnet without provider
15987
- * const exit = new Exit(5, null);
15981
+ * const client = new Client({ chainId: 1 }, signer, provider);
15982
+ * const exit = client.exit; // Access via client, do not instantiate directly
15988
15983
  * ```
15989
15984
  */
15990
15985
  constructor(chainId, provider) {
@@ -16432,45 +16427,53 @@ var ObolSplits = class {
16432
16427
  this.provider = provider;
16433
16428
  }
16434
16429
  /**
16435
- * Creates an Obol OVM and Pull split configuration for rewards-only scenario.
16430
+ * Deploys an OVM and SplitV2 contract for a **rewards-only** split scenario.
16436
16431
  *
16437
- * This method deploys OVM and SplitV2 contracts for managing validator rewards only.
16438
- * Principal is handled by a single address, while rewards are split among recipients.
16432
+ * Principal goes to a single address; only validator rewards are split among
16433
+ * the configured recipients. Automatically appends the Obol RAF recipient.
16439
16434
  *
16440
- * @remarks
16441
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16442
- * and not pushed to version control.
16435
+ * - Sends one or more on-chain transactions (irreversible).
16436
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
16443
16437
  *
16444
- * **📌 Note:** The Obol Validator Manager (OVM) feature is only enabled on Hoodi on launchpad.
16438
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
16439
+ * @returns The OVM address as `withdrawal_address` and splitter as `fee_recipient_address`.
16440
+ * @throws {SignerRequiredError} If no signer was provided.
16441
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
16445
16442
  *
16446
- * @param {OVMRewardsSplitPayload} payload - Data needed to deploy OVM and SplitV2
16447
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
16448
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
16449
- *
16450
- * An example of how to use createValidatorManagerAndRewardsSplit:
16451
- * [createValidatorManagerAndRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L333)
16443
+ * @example
16444
+ * ```typescript
16445
+ * const { withdrawal_address, fee_recipient_address } =
16446
+ * await client.splits.createValidatorManagerAndRewardsSplit({
16447
+ * rewardSplitRecipients: [
16448
+ * { address: "0xOp1...", percentAllocation: 50 },
16449
+ * { address: "0xOp2...", percentAllocation: 49 },
16450
+ * ],
16451
+ * principalRecipient: "0xPrincipal...",
16452
+ * OVMOwnerAddress: "0xOwner...",
16453
+ * });
16454
+ * ```
16452
16455
  */
16453
16456
  createValidatorManagerAndRewardsSplit(payload) {
16454
16457
  return __async(this, null, function* () {
16455
16458
  const salt = SPLITS_V2_SALT;
16456
16459
  if (!this.signer) {
16457
- throw new Error(
16458
- "Signer is required in createValidatorManagerAndRewardsSplit"
16459
- );
16460
+ throw new SignerRequiredError("createValidatorManagerAndRewardsSplit");
16460
16461
  }
16461
16462
  const validatedPayload = validatePayload(
16462
16463
  payload,
16463
16464
  ovmRewardsSplitPayloadSchema
16464
16465
  );
16465
16466
  if (!isChainSupportedForSplitters(this.chainId)) {
16466
- throw new Error(
16467
- `Splitter configuration is not supported on ${this.chainId} chain`
16467
+ throw new UnsupportedChainError(
16468
+ this.chainId,
16469
+ "createValidatorManagerAndRewardsSplit"
16468
16470
  );
16469
16471
  }
16470
16472
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
16471
16473
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
16472
- throw new Error(
16473
- `OVM contract factory is not configured for chain ${this.chainId}`
16474
+ throw new UnsupportedChainError(
16475
+ this.chainId,
16476
+ "createValidatorManagerAndRewardsSplit"
16474
16477
  );
16475
16478
  }
16476
16479
  if (!this.provider) {
@@ -16482,8 +16485,9 @@ var ObolSplits = class {
16482
16485
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
16483
16486
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
16484
16487
  if (!(ovmFactoryConfig == null ? void 0 : ovmFactoryConfig.address) || !(ovmFactoryConfig == null ? void 0 : ovmFactoryConfig.bytecode) || !(splitV2FactoryConfig == null ? void 0 : splitV2FactoryConfig.address) || !(splitV2FactoryConfig == null ? void 0 : splitV2FactoryConfig.bytecode) || !(multiCall3Config == null ? void 0 : multiCall3Config.address) || !(multiCall3Config == null ? void 0 : multiCall3Config.bytecode)) {
16485
- throw new Error(
16486
- `Contracts configuration is incomplete for chain ${this.chainId}`
16488
+ throw new UnsupportedChainError(
16489
+ this.chainId,
16490
+ "createValidatorManagerAndRewardsSplit"
16487
16491
  );
16488
16492
  }
16489
16493
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -16503,7 +16507,7 @@ var ObolSplits = class {
16503
16507
  );
16504
16508
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
16505
16509
  throw new Error(
16506
- `Splitter contract is not deployed or available on chain ${this.chainId}`
16510
+ `Required factory contracts are not available on chain ${this.chainId}`
16507
16511
  );
16508
16512
  }
16509
16513
  const retroActiveFundingRecipient = {
@@ -16570,45 +16574,56 @@ var ObolSplits = class {
16570
16574
  });
16571
16575
  }
16572
16576
  /**
16573
- * Creates an Obol OVM and Total split configuration for total split scenario.
16574
- *
16575
- * This method deploys OVM and SplitV2 contracts for managing both validator rewards and principal.
16576
- * Both rewards and principal are split among recipients, with rewards including RAF recipient.
16577
+ * Deploys an OVM and SplitV2 contract for a **total split** scenario.
16577
16578
  *
16578
- * @remarks
16579
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16580
- * and not pushed to version control.
16579
+ * Both principal and rewards are split among recipients via separate SplitV2
16580
+ * contracts. Automatically appends the Obol RAF recipient to rewards.
16581
16581
  *
16582
- * **📌 Note:** The Obol Validator Manager (OVM) feature is only enabled on Hoodi on launchpad.
16582
+ * - Sends one or more on-chain transactions (irreversible).
16583
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
16583
16584
  *
16584
- * @param {OVMTotalSplitPayload} payload - Data needed to deploy OVM and SplitV2
16585
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
16586
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
16585
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
16586
+ * @returns The OVM address as `withdrawal_address` and rewards splitter as `fee_recipient_address`.
16587
+ * @throws {SignerRequiredError} If no signer was provided.
16588
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
16587
16589
  *
16588
- * An example of how to use createValidatorManagerAndTotalSplit:
16589
- * [createValidatorManagerAndTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#340)
16590
+ * @example
16591
+ * ```typescript
16592
+ * const { withdrawal_address, fee_recipient_address } =
16593
+ * await client.splits.createValidatorManagerAndTotalSplit({
16594
+ * rewardSplitRecipients: [
16595
+ * { address: "0xOp1...", percentAllocation: 50 },
16596
+ * { address: "0xOp2...", percentAllocation: 49 },
16597
+ * ],
16598
+ * principalSplitRecipients: [
16599
+ * { address: "0xOp1...", percentAllocation: 50 },
16600
+ * { address: "0xOp2...", percentAllocation: 50 },
16601
+ * ],
16602
+ * OVMOwnerAddress: "0xOwner...",
16603
+ * });
16604
+ * ```
16590
16605
  */
16591
16606
  createValidatorManagerAndTotalSplit(payload) {
16592
16607
  return __async(this, null, function* () {
16593
16608
  const salt = SPLITS_V2_SALT;
16594
16609
  if (!this.signer) {
16595
- throw new Error(
16596
- "Signer is required in createValidatorManagerAndTotalSplit"
16597
- );
16610
+ throw new SignerRequiredError("createValidatorManagerAndTotalSplit");
16598
16611
  }
16599
16612
  const validatedPayload = validatePayload(
16600
16613
  payload,
16601
16614
  ovmTotalSplitPayloadSchema
16602
16615
  );
16603
16616
  if (!isChainSupportedForSplitters(this.chainId)) {
16604
- throw new Error(
16605
- `Splitter configuration is not supported on ${this.chainId} chain`
16617
+ throw new UnsupportedChainError(
16618
+ this.chainId,
16619
+ "createValidatorManagerAndTotalSplit"
16606
16620
  );
16607
16621
  }
16608
16622
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
16609
16623
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
16610
- throw new Error(
16611
- `OVM contract factory is not configured for chain ${this.chainId}`
16624
+ throw new UnsupportedChainError(
16625
+ this.chainId,
16626
+ "createValidatorManagerAndTotalSplit"
16612
16627
  );
16613
16628
  }
16614
16629
  if (!this.provider) {
@@ -16620,8 +16635,9 @@ var ObolSplits = class {
16620
16635
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
16621
16636
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
16622
16637
  if (!(ovmFactoryConfig == null ? void 0 : ovmFactoryConfig.address) || !(ovmFactoryConfig == null ? void 0 : ovmFactoryConfig.bytecode) || !(splitV2FactoryConfig == null ? void 0 : splitV2FactoryConfig.address) || !(splitV2FactoryConfig == null ? void 0 : splitV2FactoryConfig.bytecode) || !(multiCall3Config == null ? void 0 : multiCall3Config.address) || !(multiCall3Config == null ? void 0 : multiCall3Config.bytecode)) {
16623
- throw new Error(
16624
- `Contracts configuration is incomplete for chain ${this.chainId}`
16638
+ throw new UnsupportedChainError(
16639
+ this.chainId,
16640
+ "createValidatorManagerAndTotalSplit"
16625
16641
  );
16626
16642
  }
16627
16643
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -16641,7 +16657,7 @@ var ObolSplits = class {
16641
16657
  );
16642
16658
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
16643
16659
  throw new Error(
16644
- `Splitter contract is not deployed or available on chain ${this.chainId}`
16660
+ `Required factory contracts are not available on chain ${this.chainId}`
16645
16661
  );
16646
16662
  }
16647
16663
  const retroActiveFundingRecipient = {
@@ -16728,34 +16744,30 @@ var ObolSplits = class {
16728
16744
  });
16729
16745
  }
16730
16746
  /**
16731
- * Requests withdrawal from an OVM contract.
16747
+ * Requests withdrawal of validator funds from an OVM contract.
16732
16748
  *
16733
- * This method allows requesting withdrawal of validator funds from an OVM contract.
16734
- * The withdrawal request includes OVM address, validator public keys and corresponding withdrawal amounts.
16749
+ * Sends an on-chain transaction to the OVM contract requesting withdrawal
16750
+ * for the specified validator public keys and amounts.
16735
16751
  *
16736
- * @remarks
16737
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16738
- * and not pushed to version control.
16752
+ * @param payload - Withdrawal request data including OVM address, validator
16753
+ * public keys, amounts, and fees.
16754
+ * @returns The transaction hash of the withdrawal request.
16755
+ * @throws {SignerRequiredError} If no signer was provided.
16739
16756
  *
16740
- * @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
16741
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
16742
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
16743
- *
16744
- * An example of how to use requestWithdrawal:
16757
+ * @example
16745
16758
  * ```typescript
16746
- * const result = await client.splits.requestWithdrawal({
16747
- * ovmAddress: '0x1234567890123456789012345678901234567890',
16748
- * pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
16749
- * amounts: ['32000000000'], // 32 ETH in gwei
16750
- * withdrawalFees: '1000000000000000' // Total fees in wei
16759
+ * const { txHash } = await client.splits.requestWithdrawal({
16760
+ * ovmAddress: "0xOVM...",
16761
+ * pubKeys: ["0xValidatorPubkey..."],
16762
+ * amounts: ["32000000000"],
16763
+ * withdrawalFees: "1000000000000000",
16751
16764
  * });
16752
- * console.log('Withdrawal requested:', result.txHash);
16753
16765
  * ```
16754
16766
  */
16755
16767
  requestWithdrawal(payload) {
16756
16768
  return __async(this, null, function* () {
16757
16769
  if (!this.signer) {
16758
- throw new Error("Signer is required in requestWithdrawal");
16770
+ throw new SignerRequiredError("requestWithdrawal");
16759
16771
  }
16760
16772
  const validatedPayload = validatePayload(
16761
16773
  payload,
@@ -16771,38 +16783,33 @@ var ObolSplits = class {
16771
16783
  });
16772
16784
  }
16773
16785
  /**
16774
- * Deposits to OVM contract by sending individual transactions for each deposit.
16786
+ * Deposits validators to an OVM contract. Each deposit is sent as a separate
16787
+ * on-chain transaction.
16775
16788
  *
16776
- * This method allows depositing to an OVM contract. Each deposit is sent as a separate transaction
16777
- * Each deposit includes validator public key, withdrawal credentials, signature, deposit data root, and amount.
16789
+ * @param payload - Deposit data including the OVM address and an array of
16790
+ * validator deposit objects (pubkey, withdrawal_credentials, signature,
16791
+ * deposit_data_root, amount).
16792
+ * @returns An array of transaction hashes, one per deposit.
16793
+ * @throws {SignerRequiredError} If no signer was provided.
16778
16794
  *
16779
- * @remarks
16780
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16781
- * and not pushed to version control.
16782
- *
16783
- * @param {OVMDepositPayload} payload - Data needed to deposit to OVM
16784
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes, one for each deposit
16785
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the deposit fails
16786
- *
16787
- * An example of how to use deposit:
16795
+ * @example
16788
16796
  * ```typescript
16789
- * const result = await client.splits.deposit({
16790
- * ovmAddress: '0x1234567890123456789012345678901234567890',
16797
+ * const { txHashes } = await client.splits.deposit({
16798
+ * ovmAddress: "0xOVM...",
16791
16799
  * deposits: [{
16792
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
16793
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
16794
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
16795
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
16796
- * amount: '32000000000000000000' // 32 ETH in wei
16797
- * }]
16800
+ * pubkey: "0x...",
16801
+ * withdrawal_credentials: "0x...",
16802
+ * signature: "0x...",
16803
+ * deposit_data_root: "0x...",
16804
+ * amount: "32000000000000000000",
16805
+ * }],
16798
16806
  * });
16799
- * console.log('Deposits completed:', result.txHashes);
16800
16807
  * ```
16801
16808
  */
16802
16809
  deposit(payload) {
16803
16810
  return __async(this, null, function* () {
16804
16811
  if (!this.signer) {
16805
- throw new Error("Signer is required in deposit");
16812
+ throw new SignerRequiredError("deposit");
16806
16813
  }
16807
16814
  const validatedPayload = validatePayload(
16808
16815
  payload,
@@ -17022,43 +17029,37 @@ var EOA = class {
17022
17029
  this.provider = provider;
17023
17030
  }
17024
17031
  /**
17025
- * Requests withdrawal from an EOA contract.
17026
- *
17027
- * This method allows requesting withdrawal of validator funds.
17028
- * The withdrawal request includes validator public key and corresponding withdrawal amount.
17032
+ * Requests withdrawal of validator funds via the EOA withdrawal contract.
17029
17033
  *
17030
- * @remarks
17031
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17032
- * and not pushed to version control.
17034
+ * Sends an on-chain transaction. Requires both a signer and a provider.
17033
17035
  *
17034
- * @param {EOAWithdrawalPayload} payload - Data needed to request withdrawal
17035
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
17036
- * @throws Will throw an error if the signer is not provided or the request fails
17036
+ * @param payload - Withdrawal data including validator `pubkey`, `allocation`
17037
+ * (in ETH), and `requiredFee` (in wei).
17038
+ * @returns The transaction hash, or `null` if no transaction was needed.
17039
+ * @throws {SignerRequiredError} If no signer was provided.
17040
+ * @throws {UnsupportedChainError} If the chain has no EOA withdrawal contract.
17037
17041
  *
17038
- * An example of how to use requestWithdrawal:
17042
+ * @example
17039
17043
  * ```typescript
17040
- * const result = await client.eoa.requestWithdrawal({
17041
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17042
- * allocation: 32, // 32 ETH
17043
- * requiredFee: '1' // in wei
17044
+ * const { txHash } = await client.eoa.requestWithdrawal({
17045
+ * pubkey: "0xValidatorPubkey...",
17046
+ * allocation: 32,
17047
+ * requiredFee: "1",
17044
17048
  * });
17045
- * console.log('Withdrawal requested:', result.txHash);
17046
17049
  * ```
17047
17050
  */
17048
17051
  requestWithdrawal(payload) {
17049
17052
  return __async(this, null, function* () {
17050
17053
  var _a6;
17051
17054
  if (!this.signer) {
17052
- throw new Error("Signer is required in requestWithdrawal");
17055
+ throw new SignerRequiredError("requestWithdrawal");
17053
17056
  }
17054
17057
  if (!this.provider) {
17055
17058
  throw new Error("Provider is required in requestWithdrawal");
17056
17059
  }
17057
17060
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17058
17061
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.EOA_WITHDRAWAL_CONTRACT) == null ? void 0 : _a6.address)) {
17059
- throw new Error(
17060
- `EOA withdrawal contract is not configured for chain ${this.chainId}`
17061
- );
17062
+ throw new UnsupportedChainError(this.chainId, "EOA requestWithdrawal");
17062
17063
  }
17063
17064
  const validatedPayload = validatePayload(
17064
17065
  payload,
@@ -17077,47 +17078,39 @@ var EOA = class {
17077
17078
  });
17078
17079
  }
17079
17080
  /**
17080
- * Deposits to batch deposit contract.
17081
- *
17082
- * This method allows depositing multiple validators to the Ethereum beacon chain
17083
- * using the Pier Two batch deposit contract for gas efficiency.
17084
- * Each deposit includes validator public key, withdrawal credentials, signature, and amount.
17081
+ * Batch-deposits validators to the beacon chain via the Pier Two batch
17082
+ * deposit contract for gas efficiency.
17085
17083
  *
17086
- * @remarks
17087
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17088
- * and not pushed to version control.
17084
+ * Due to EVM gas limits, it is recommended to deposit at most 500
17085
+ * validators per call.
17089
17086
  *
17090
- * **⚠️ Gas Limit:** Due to EVM constraints, it is recommended to deposit in batches of up to 500 at a time.
17087
+ * @param payload - Deposit data including an array of validator deposit objects.
17088
+ * @returns An array of transaction hashes, one per batch.
17089
+ * @throws {SignerRequiredError} If no signer was provided.
17090
+ * @throws {UnsupportedChainError} If the chain has no batch deposit contract.
17091
17091
  *
17092
- * @param {EOADepositPayload} payload - Data needed to deposit to batch contract
17093
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes for all batches
17094
- * @throws Will throw an error if the signer is not provided, contract is not configured, or the deposit fails
17095
- *
17096
- * An example of how to use deposit:
17092
+ * @example
17097
17093
  * ```typescript
17098
- * const result = await client.eoa.deposit({
17094
+ * const { txHashes } = await client.eoa.deposit({
17099
17095
  * deposits: [{
17100
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17101
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
17102
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
17103
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17104
- * amount: '32000000000000000000' // 32 ETH in wei
17105
- * }]
17096
+ * pubkey: "0x...",
17097
+ * withdrawal_credentials: "0x...",
17098
+ * deposit_data_root: "0x...",
17099
+ * signature: "0x...",
17100
+ * amount: "32000000000000000000",
17101
+ * }],
17106
17102
  * });
17107
- * console.log('Deposits completed:', result.txHashes);
17108
17103
  * ```
17109
17104
  */
17110
17105
  deposit(payload) {
17111
17106
  return __async(this, null, function* () {
17112
17107
  var _a6;
17113
17108
  if (!this.signer) {
17114
- throw new Error("Signer is required in deposit");
17109
+ throw new SignerRequiredError("deposit");
17115
17110
  }
17116
17111
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17117
17112
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.BATCH_DEPOSIT_CONTRACT) == null ? void 0 : _a6.address)) {
17118
- throw new Error(
17119
- `Batch deposit contract is not configured for chain ${this.chainId}`
17120
- );
17113
+ throw new UnsupportedChainError(this.chainId, "EOA deposit");
17121
17114
  }
17122
17115
  const validatedPayload = validatePayload(
17123
17116
  payload,
@@ -17145,14 +17138,26 @@ var validateClusterLock = (lock, safeRpcUrl) => __async(null, null, function* ()
17145
17138
  // src/index.ts
17146
17139
  var Client = class extends Base {
17147
17140
  /**
17148
- * @param config - Client configurations
17149
- * @param config.baseUrl - obol-api url
17150
- * @param config.chainId - Blockchain network ID
17151
- * @param signer - ethersJS Signer
17152
- * @returns Obol-SDK Client instance
17141
+ * Creates a new Obol SDK client.
17142
+ *
17143
+ * @param config - Client configuration object.
17144
+ * @param config.baseUrl - Obol API base URL. Defaults to `https://api.obol.tech`.
17145
+ * @param config.chainId - Target chain ID. Defaults to `560048` (Hoodi).
17146
+ * Supported: 1 (Mainnet), 560048 (Hoodi), 100 (Gnosis), 11155111 (Sepolia).
17147
+ * @param signer - An ethers `Wallet` or `JsonRpcSigner`. Required for any
17148
+ * write operation (creating clusters, deploying splits, claiming incentives).
17149
+ * Read-only operations (`getClusterDefinition`, `getClusterLock`) work without a signer.
17150
+ * @param provider - An ethers `Provider`. If omitted, falls back to `signer.provider`.
17151
+ *
17152
+ * @example
17153
+ * ```typescript
17154
+ * // Minimal read-only client (no signer)
17155
+ * const readClient = new Client({ chainId: 1 });
17156
+ * const def = await readClient.getClusterDefinition(configHash);
17153
17157
  *
17154
- * An example of how to instantiate obol-sdk Client:
17155
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L29)
17158
+ * // Full client with signer for write operations
17159
+ * const client = new Client({ chainId: 560048 }, signer);
17160
+ * ```
17156
17161
  */
17157
17162
  constructor(config2, signer, provider) {
17158
17163
  super(config2);
@@ -17169,17 +17174,30 @@ var Client = class extends Base {
17169
17174
  this.eoa = new EOA(this.signer, this.chainId, this.provider);
17170
17175
  }
17171
17176
  /**
17172
- * Accepts Obol terms and conditions to be able to create or update data.
17173
- * @returns {Promise<string>} terms and conditions acceptance success message.
17174
- * @throws On unverified signature or wrong hash.
17177
+ * Accepts the latest Obol terms and conditions.
17178
+ *
17179
+ * **Must be called once** before any write operation
17180
+ * (`createClusterDefinition`, `acceptClusterDefinition`, etc.).
17181
+ * Calling it again after acceptance throws a {@link ConflictError}.
17182
+ *
17183
+ * - Requires a `signer` to be provided at client construction.
17184
+ * - Signs an EIP-712 typed-data message; no on-chain transaction is sent.
17185
+ * - Idempotent per signer address: once accepted, subsequent calls throw `ConflictError`.
17186
+ *
17187
+ * @returns A success message string from the Obol API.
17188
+ * @throws {SignerRequiredError} If no signer was provided to the client.
17189
+ * @throws {ConflictError} If the terms were already accepted by this address.
17175
17190
  *
17176
- * An example of how to use acceptObolLatestTermsAndConditions:
17177
- * [acceptObolLatestTermsAndConditions](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L44)
17191
+ * @example
17192
+ * ```typescript
17193
+ * const message = await client.acceptObolLatestTermsAndConditions();
17194
+ * console.log(message); // "Terms and conditions accepted successfully"
17195
+ * ```
17178
17196
  */
17179
17197
  acceptObolLatestTermsAndConditions() {
17180
17198
  return __async(this, null, function* () {
17181
17199
  if (!this.signer) {
17182
- throw new Error("Signer is required in acceptObolTermsAndConditions");
17200
+ throw new SignerRequiredError("acceptObolLatestTermsAndConditions");
17183
17201
  }
17184
17202
  try {
17185
17203
  const termsAndConditionsHash = TERMS_AND_CONDITIONS_HASH;
@@ -17215,19 +17233,37 @@ var Client = class extends Base {
17215
17233
  });
17216
17234
  }
17217
17235
  /**
17218
- * Deploys OWR and Splitter Proxy.
17236
+ * Deploys an Optimistic Withdrawal Recipient (OWR) and a Splitter Proxy contract.
17237
+ *
17238
+ * Use this when the **principal** goes to a single address and only **rewards**
17239
+ * are split among recipients. For splitting both principal and rewards, see
17240
+ * {@link Client.createObolTotalSplit}.
17219
17241
  *
17220
- * @remarks
17221
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17222
- * and not pushed to version control.
17242
+ * - Requires a `signer` with ETH to pay deployment gas.
17243
+ * - Sends one or more on-chain transactions (irreversible).
17244
+ * - Automatically appends the Obol Retroactive Funding (RAF) recipient at the
17245
+ * configured percentage (default 1%).
17246
+ * - Only supported on Mainnet (1) and Hoodi (560048).
17223
17247
  *
17224
- * @param {RewardsSplitPayload} rewardsSplitPayload - Data needed to deploy owr and splitter.
17225
- * @returns {Promise<ClusterValidator>} owr address as withdrawal address and splitter as fee recipient
17248
+ * @param rewardsSplitPayload - Configuration for the OWR and splitter deployment.
17249
+ * @returns The deployed OWR address as `withdrawal_address` and the
17250
+ * splitter proxy address as `fee_recipient_address`.
17251
+ * @throws {SignerRequiredError} If no signer was provided.
17252
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
17226
17253
  *
17227
- * An example of how to use createObolRewardsSplit:
17228
- * [createObolRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L141)
17254
+ * @example
17255
+ * ```typescript
17256
+ * const { withdrawal_address, fee_recipient_address } =
17257
+ * await client.createObolRewardsSplit({
17258
+ * splitRecipients: [
17259
+ * { account: "0xOperator1...", percentAllocation: 50 },
17260
+ * { account: "0xOperator2...", percentAllocation: 49 },
17261
+ * ],
17262
+ * principalRecipient: "0xPrincipalAddress...",
17263
+ * etherAmount: 32,
17264
+ * });
17265
+ * ```
17229
17266
  */
17230
- // add the example reference
17231
17267
  createObolRewardsSplit(_0) {
17232
17268
  return __async(this, arguments, function* ({
17233
17269
  splitRecipients,
@@ -17239,7 +17275,7 @@ var Client = class extends Base {
17239
17275
  recoveryAddress
17240
17276
  }) {
17241
17277
  if (!this.signer) {
17242
- throw new Error("Signer is required in createObolRewardsSplit");
17278
+ throw new SignerRequiredError("createObolRewardsSplit");
17243
17279
  }
17244
17280
  const validatedPayload = validatePayload(
17245
17281
  {
@@ -17254,15 +17290,11 @@ var Client = class extends Base {
17254
17290
  rewardsSplitterPayloadSchema
17255
17291
  );
17256
17292
  if (!isChainSupportedForSplitters(this.chainId)) {
17257
- throw new Error(
17258
- `Splitter configuration is not supported on ${this.chainId} chain`
17259
- );
17293
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
17260
17294
  }
17261
17295
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17262
17296
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
17263
- throw new Error(
17264
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
17265
- );
17297
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
17266
17298
  }
17267
17299
  const checkSplitMainAddress = yield isContractAvailable(
17268
17300
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -17281,7 +17313,7 @@ var Client = class extends Base {
17281
17313
  );
17282
17314
  if (!checkMulticall3Address || !checkSplitMainAddress || !checkOWRFactoryAddress) {
17283
17315
  throw new Error(
17284
- `Something isn not working as expected, check this issue with obol-sdk team on ${OBOL_SDK_EMAIL}`
17316
+ `Required factory contracts are not available on chain ${this.chainId}. Contact Obol at ${OBOL_SDK_EMAIL}`
17285
17317
  );
17286
17318
  }
17287
17319
  const retroActiveFundingRecipient = {
@@ -17322,19 +17354,37 @@ var Client = class extends Base {
17322
17354
  });
17323
17355
  }
17324
17356
  /**
17325
- * Deploys Splitter Proxy.
17357
+ * Deploys a Splitter Proxy contract that splits **both principal and rewards**.
17358
+ *
17359
+ * Unlike {@link Client.createObolRewardsSplit}, this method does not deploy an
17360
+ * OWR – the splitter address is used as both `withdrawal_address` and
17361
+ * `fee_recipient_address`.
17326
17362
  *
17327
- * @remarks
17328
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17329
- * and not pushed to version control.
17363
+ * - Requires a `signer` with ETH to pay deployment gas.
17364
+ * - Sends an on-chain transaction if the splitter is not already deployed (irreversible).
17365
+ * - If the predicted splitter is already deployed, returns the existing address without
17366
+ * sending a transaction (idempotent).
17367
+ * - Automatically appends the Obol RAF recipient.
17368
+ * - Only supported on Mainnet (1) and Hoodi (560048).
17330
17369
  *
17331
- * @param {TotalSplitPayload} totalSplitPayload - Data needed to deploy splitter if it doesnt exist.
17332
- * @returns {Promise<ClusterValidator>} splitter address as withdrawal address and splitter as fee recipient too
17370
+ * @param totalSplitPayload - Configuration for the splitter deployment.
17371
+ * @returns The splitter address as both `withdrawal_address` and `fee_recipient_address`.
17372
+ * @throws {SignerRequiredError} If no signer was provided.
17373
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
17374
+ * @throws {Error} If required on-chain factory contracts are unavailable.
17333
17375
  *
17334
- * An example of how to use createObolTotalSplit:
17335
- * [createObolTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L168)
17376
+ * @example
17377
+ * ```typescript
17378
+ * const { withdrawal_address, fee_recipient_address } =
17379
+ * await client.createObolTotalSplit({
17380
+ * splitRecipients: [
17381
+ * { account: "0xOperator1...", percentAllocation: 50 },
17382
+ * { account: "0xOperator2...", percentAllocation: 49.9 },
17383
+ * ],
17384
+ * });
17385
+ * // withdrawal_address === fee_recipient_address (same splitter)
17386
+ * ```
17336
17387
  */
17337
- // add the example reference
17338
17388
  createObolTotalSplit(_0) {
17339
17389
  return __async(this, arguments, function* ({
17340
17390
  splitRecipients,
@@ -17343,7 +17393,7 @@ var Client = class extends Base {
17343
17393
  controllerAddress
17344
17394
  }) {
17345
17395
  if (!this.signer) {
17346
- throw new Error("Signer is required in createObolTotalSplit");
17396
+ throw new SignerRequiredError("createObolTotalSplit");
17347
17397
  }
17348
17398
  const validatedPayload = validatePayload(
17349
17399
  {
@@ -17355,15 +17405,11 @@ var Client = class extends Base {
17355
17405
  totalSplitterPayloadSchema
17356
17406
  );
17357
17407
  if (!isChainSupportedForSplitters(this.chainId)) {
17358
- throw new Error(
17359
- `Splitter configuration is not supported on ${this.chainId} chain`
17360
- );
17408
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
17361
17409
  }
17362
17410
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17363
17411
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
17364
- throw new Error(
17365
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
17366
- );
17412
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
17367
17413
  }
17368
17414
  const checkSplitMainAddress = yield isContractAvailable(
17369
17415
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -17372,7 +17418,7 @@ var Client = class extends Base {
17372
17418
  );
17373
17419
  if (!checkSplitMainAddress) {
17374
17420
  throw new Error(
17375
- `Something isn not working as expected, check this issue with obol-sdk team on ${OBOL_SDK_EMAIL}`
17421
+ `Required factory contracts are not available on chain ${this.chainId}. Contact Obol at ${OBOL_SDK_EMAIL}`
17376
17422
  );
17377
17423
  }
17378
17424
  const retroActiveFundingRecipient = {
@@ -17417,38 +17463,69 @@ var Client = class extends Base {
17417
17463
  });
17418
17464
  }
17419
17465
  /**
17420
- * Read OWR Tranches.
17466
+ * Reads the tranches of a deployed Optimistic Withdrawal Recipient (OWR) contract.
17467
+ *
17468
+ * Returns the principal recipient, reward recipient, and staked principal amount
17469
+ * configured in the OWR. This is a read-only on-chain call (no transaction sent).
17421
17470
  *
17422
- * @remarks
17423
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17424
- * and not pushed to version control.
17471
+ * - Requires a `signer` (for provider access).
17425
17472
  *
17426
- * @param {ETH_ADDRESS} owrAddress - Address of the Deployed OWR Contract
17427
- * @returns {Promise<OWRTranches>} owr tranch information about principal and reward reciepient, as well as the principal amount
17473
+ * @param owrAddress - The Ethereum address of the deployed OWR contract.
17474
+ * @returns The OWR tranche data: `principalRecipient`, `rewardRecipient`, and `amountOfPrincipalStake`.
17475
+ * @throws {SignerRequiredError} If no signer was provided.
17428
17476
  *
17477
+ * @example
17478
+ * ```typescript
17479
+ * const tranches = await client.getOWRTranches("0xOWRAddress...");
17480
+ * console.log(tranches.principalRecipient);
17481
+ * console.log(tranches.rewardRecipient);
17482
+ * console.log(tranches.amountOfPrincipalStake);
17483
+ * ```
17429
17484
  */
17430
17485
  getOWRTranches(owrAddress) {
17431
17486
  return __async(this, null, function* () {
17432
17487
  if (!this.signer) {
17433
- throw new Error("Signer is required in getOWRTranches");
17488
+ throw new SignerRequiredError("getOWRTranches");
17434
17489
  }
17435
17490
  const signer = this.signer;
17436
17491
  return yield getOWRTranches({ owrAddress, signer });
17437
17492
  });
17438
17493
  }
17439
17494
  /**
17440
- * Creates a cluster definition which contains cluster configuration.
17441
- * @param {ClusterPayload} newCluster - The new unique cluster.
17442
- * @returns {Promise<string>} config_hash.
17443
- * @throws On duplicate entries, missing or wrong cluster keys.
17495
+ * Creates a new cluster definition and registers it with the Obol API.
17496
+ *
17497
+ * A cluster definition describes the operators, validators, and configuration
17498
+ * for a Distributed Key Generation (DKG) ceremony. After creation, each operator
17499
+ * must call {@link Client.acceptClusterDefinition} to join.
17444
17500
  *
17445
- * An example of how to use createClusterDefinition:
17446
- * [createObolCluster](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L59)
17501
+ * - Requires {@link Client.acceptObolLatestTermsAndConditions} to have been called first.
17502
+ * - Requires a `signer`.
17503
+ * - The `config_hash` returned is the unique identifier for this cluster.
17504
+ * - Threshold is automatically set to `ceil(2/3 * operators.length)`.
17505
+ * - Creating a duplicate cluster throws a {@link ConflictError}.
17506
+ *
17507
+ * @param newCluster - The cluster configuration payload.
17508
+ * @returns The `config_hash` string that uniquely identifies this cluster definition.
17509
+ * @throws {SignerRequiredError} If no signer was provided.
17510
+ * @throws {ConflictError} If an identical cluster definition already exists.
17511
+ *
17512
+ * @example
17513
+ * ```typescript
17514
+ * const configHash = await client.createClusterDefinition({
17515
+ * name: "my-dvt-cluster",
17516
+ * operators: [{ address: "0xOp1..." }, { address: "0xOp2..." }],
17517
+ * validators: [{
17518
+ * fee_recipient_address: "0xFeeRecipient...",
17519
+ * withdrawal_address: "0xWithdrawal...",
17520
+ * }],
17521
+ * });
17522
+ * console.log("Cluster created:", configHash);
17523
+ * ```
17447
17524
  */
17448
17525
  createClusterDefinition(newCluster) {
17449
17526
  return __async(this, null, function* () {
17450
17527
  if (!this.signer) {
17451
- throw new Error("Signer is required in createClusterDefinition");
17528
+ throw new SignerRequiredError("createClusterDefinition");
17452
17529
  }
17453
17530
  const validatedCluster = validatePayload(
17454
17531
  newCluster,
@@ -17496,19 +17573,33 @@ var Client = class extends Base {
17496
17573
  });
17497
17574
  }
17498
17575
  /**
17499
- * Approves joining a cluster with specific configuration.
17500
- * @param {OperatorPayload} operatorPayload - The operator data including signatures.
17501
- * @param {string} configHash - The config hash of the cluster which the operator confirms joining to.
17502
- * @returns {Promise<ClusterDefinition>} The cluster definition.
17503
- * @throws On unauthorized, duplicate entries, missing keys, not found cluster or invalid data.
17576
+ * Accepts (joins) an existing cluster definition as an operator.
17577
+ *
17578
+ * Each operator in the cluster must call this method with their ENR and the
17579
+ * cluster's `config_hash` to signal readiness for the DKG ceremony.
17580
+ *
17581
+ * - Requires a `signer` (the operator's address is derived from it).
17582
+ * - Signs two EIP-712 messages: one for the config hash, one for the ENR.
17583
+ * - The operator must be listed in the cluster definition's `operators` array.
17504
17584
  *
17505
- * An example of how to use acceptClusterDefinition:
17506
- * [acceptClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L106)
17585
+ * @param operatorPayload - Operator data. Must include `enr` (Ethereum Node Record)
17586
+ * and `version` at minimum.
17587
+ * @param configHash - The `config_hash` returned by {@link Client.createClusterDefinition}.
17588
+ * @returns The updated cluster definition with the operator's acceptance recorded.
17589
+ * @throws {SignerRequiredError} If no signer was provided.
17590
+ *
17591
+ * @example
17592
+ * ```typescript
17593
+ * const updatedDef = await client.acceptClusterDefinition(
17594
+ * { enr: "enr:-LK4Q...", version: "v1.10.0" },
17595
+ * configHash,
17596
+ * );
17597
+ * ```
17507
17598
  */
17508
17599
  acceptClusterDefinition(operatorPayload, configHash) {
17509
17600
  return __async(this, null, function* () {
17510
17601
  if (!this.signer) {
17511
- throw new Error("Signer is required in acceptClusterDefinition");
17602
+ throw new SignerRequiredError("acceptClusterDefinition");
17512
17603
  }
17513
17604
  const validatedPayload = validatePayload(
17514
17605
  operatorPayload,
@@ -17548,12 +17639,19 @@ var Client = class extends Base {
17548
17639
  });
17549
17640
  }
17550
17641
  /**
17551
- * @param configHash - The configuration hash returned in createClusterDefinition
17552
- * @returns {Promise<ClusterDefinition>} The cluster definition for config hash
17553
- * @throws On not found config hash.
17642
+ * Retrieves a cluster definition by its configuration hash.
17643
+ *
17644
+ * This is a read-only API call – no signer is required.
17554
17645
  *
17555
- * An example of how to use getClusterDefinition:
17556
- * [getObolClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L74)
17646
+ * @param configHash - The `config_hash` returned by {@link Client.createClusterDefinition}.
17647
+ * @returns The full cluster definition including operators, validators, and metadata.
17648
+ * @throws {Error} If no cluster definition exists for the given hash (404).
17649
+ *
17650
+ * @example
17651
+ * ```typescript
17652
+ * const definition = await client.getClusterDefinition(configHash);
17653
+ * console.log(definition.name, definition.operators.length);
17654
+ * ```
17557
17655
  */
17558
17656
  getClusterDefinition(configHash) {
17559
17657
  return __async(this, null, function* () {
@@ -17567,12 +17665,22 @@ var Client = class extends Base {
17567
17665
  });
17568
17666
  }
17569
17667
  /**
17570
- * @param configHash - The configuration hash in cluster-definition
17571
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
17572
- * @throws On not found cluster definition or lock.
17668
+ * Retrieves a cluster lock by the cluster's configuration hash.
17669
+ *
17670
+ * A cluster lock is generated after a successful DKG ceremony and contains
17671
+ * the distributed validators, their public key shares, and deposit data.
17672
+ * This is a read-only API call – no signer is required.
17673
+ *
17674
+ * @param configHash - The `config_hash` from the cluster definition.
17675
+ * @returns The cluster lock including distributed validators and deposit data.
17676
+ * @throws {Error} If no lock exists for the given config hash (DKG not yet complete, or not found).
17573
17677
  *
17574
- * An example of how to use getClusterLock:
17575
- * [getObolClusterLock](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L89)
17678
+ * @example
17679
+ * ```typescript
17680
+ * const lock = await client.getClusterLock(configHash);
17681
+ * console.log(lock.distributed_validators.length);
17682
+ * console.log(lock.lock_hash);
17683
+ * ```
17576
17684
  */
17577
17685
  getClusterLock(configHash) {
17578
17686
  return __async(this, null, function* () {
@@ -17586,10 +17694,20 @@ var Client = class extends Base {
17586
17694
  });
17587
17695
  }
17588
17696
  /**
17589
- * @param lockHash - The configuration hash in cluster-definition
17590
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
17591
- * @throws On not found cluster definition or lock.
17697
+ * Retrieves a cluster lock by its lock hash (as opposed to config hash).
17698
+ *
17699
+ * Use this when you have the `lock_hash` directly rather than the `config_hash`.
17700
+ * This is a read-only API call – no signer is required.
17592
17701
  *
17702
+ * @param lockHash - The `lock_hash` from a cluster lock.
17703
+ * @returns The cluster lock including distributed validators and deposit data.
17704
+ * @throws {Error} If no lock exists for the given lock hash (not found).
17705
+ *
17706
+ * @example
17707
+ * ```typescript
17708
+ * const lock = await client.getClusterLockByHash(lockHash);
17709
+ * console.log(lock.cluster_definition.name);
17710
+ * ```
17593
17711
  */
17594
17712
  getClusterLockByHash(lockHash) {
17595
17713
  return __async(this, null, function* () {
@@ -17611,6 +17729,7 @@ var Client = class extends Base {
17611
17729
  CONFIG_VERSION,
17612
17730
  CONFLICT_ERROR_MSG,
17613
17731
  Client,
17732
+ ConflictError,
17614
17733
  CreatorConfigHashSigningTypes,
17615
17734
  CreatorTypedMessage,
17616
17735
  DEFAULT_BASE_URL,
@@ -17642,10 +17761,12 @@ var Client = class extends Base {
17642
17761
  PROVIDER_MAP,
17643
17762
  SDK_VERSION,
17644
17763
  SPLITS_V2_SALT,
17764
+ SignerRequiredError,
17645
17765
  TERMS_AND_CONDITIONS_HASH,
17646
17766
  TERMS_AND_CONDITIONS_URL,
17647
17767
  TERMS_AND_CONDITIONS_VERSION,
17648
17768
  TermsAndConditionsSigningTypes,
17769
+ UnsupportedChainError,
17649
17770
  clusterConfigOrDefinitionHash,
17650
17771
  clusterLockHash,
17651
17772
  isChainSupportedForSplitters,