@obolnetwork/obol-sdk 2.11.8 → 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.8",
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");
@@ -709,7 +690,7 @@ var isContractAvailable = (contractAddress, provider, bytecode) => __async(null,
709
690
  if (bytecode) {
710
691
  return !!code2 && code2 === bytecode;
711
692
  }
712
- return !!code2 && code2 !== "0x" && code2 !== "0x0";
693
+ return !!code2 && code2 !== "0x" && code2 !== "0x0" && !code2.startsWith("0xef0100");
713
694
  });
714
695
  var getProvider = (chainId, rpcUrl) => {
715
696
  const resolvedRpcUrl = rpcUrl != null ? rpcUrl : PROVIDER_MAP[chainId];
@@ -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 {
@@ -11734,7 +11715,9 @@ var validateEOASignature = ({
11734
11715
  try {
11735
11716
  const sig = import_ethers2.ethers.Signature.from(token);
11736
11717
  const digest2 = import_eth_sig_util.TypedDataUtils.eip712Hash(data, import_eth_sig_util.SignTypedDataVersion.V4);
11737
- return import_ethers2.ethers.recoverAddress(digest2, sig).toLowerCase() === address.toLocaleLowerCase();
11718
+ const recovered = import_ethers2.ethers.getAddress(import_ethers2.ethers.recoverAddress(digest2, sig));
11719
+ const normalizedAddress = import_ethers2.ethers.getAddress(address);
11720
+ return recovered === normalizedAddress;
11738
11721
  } catch (err) {
11739
11722
  console.error(`validate EOA Signature error: ${err}`);
11740
11723
  throw err;
@@ -15749,28 +15732,31 @@ var Incentives = class {
15749
15732
  this.provider = provider;
15750
15733
  }
15751
15734
  /**
15752
- * Claims Obol incentives from a Merkle Distributor contract using an address.
15753
- *
15754
- * This method automatically fetches incentive data and verifies whether the incentives have already been claimed.
15755
- * 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.
15756
15736
  *
15757
- * 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).
15758
15740
  *
15759
- * @remarks
15760
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
15761
- * 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.
15762
15745
  *
15763
- * @param {string} address - The address to claim incentives for
15764
- * @returns {Promise<ClaimIncentivesResponse>} The transaction hash or already claimed status
15765
- * @throws Will throw an error if the incentives data is not found or the claim fails
15766
- *
15767
- * An example of how to use claimIncentives:
15768
- * [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
+ * ```
15769
15755
  */
15770
15756
  claimIncentives(address) {
15771
15757
  return __async(this, null, function* () {
15772
15758
  if (!this.signer) {
15773
- throw new Error("Signer is required in claimIncentives");
15759
+ throw new SignerRequiredError("claimIncentives");
15774
15760
  }
15775
15761
  try {
15776
15762
  const incentivesData = yield this.getIncentivesByAddress(address);
@@ -15809,15 +15795,21 @@ var Incentives = class {
15809
15795
  });
15810
15796
  }
15811
15797
  /**
15812
- * Read isClaimed.
15798
+ * Checks whether incentives have already been claimed for a given operator index.
15813
15799
  *
15814
- * @param {ETH_ADDRESS} contractAddress - Address of the Merkle Distributor Contract
15815
- * @param {ETH_ADDRESS} index - operator index in merkle tree
15816
- * @returns {Promise<boolean>} true if incentives are already claime
15800
+ * Read-only on-chain call no transaction sent.
15817
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.
15818
15805
  *
15819
- * An example of how to use isClaimed:
15820
- * [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
+ * ```
15821
15813
  */
15822
15814
  isClaimed(contractAddress, index) {
15823
15815
  return __async(this, null, function* () {
@@ -15829,12 +15821,20 @@ var Incentives = class {
15829
15821
  });
15830
15822
  }
15831
15823
  /**
15832
- * @param address - Operator address
15833
- * @returns {Promise<IncentivesType>} The matched incentives from DB
15834
- * @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).
15835
15832
  *
15836
- * An example of how to use getIncentivesByAddress:
15837
- * [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
+ * ```
15838
15838
  */
15839
15839
  getIncentivesByAddress(address) {
15840
15840
  return __async(this, null, function* () {
@@ -15978,11 +15978,8 @@ var Exit = class _Exit {
15978
15978
  *
15979
15979
  * @example
15980
15980
  * ```typescript
15981
- * // For mainnet with a provider
15982
- * const exit = new Exit(1, provider);
15983
- *
15984
- * // For goerli testnet without provider
15985
- * 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
15986
15983
  * ```
15987
15984
  */
15988
15985
  constructor(chainId, provider) {
@@ -16430,43 +16427,53 @@ var ObolSplits = class {
16430
16427
  this.provider = provider;
16431
16428
  }
16432
16429
  /**
16433
- * 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.
16434
16431
  *
16435
- * This method deploys OVM and SplitV2 contracts for managing validator rewards only.
16436
- * 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.
16437
16434
  *
16438
- * @remarks
16439
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16440
- * 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).
16441
16437
  *
16442
- * @param {OVMRewardsSplitPayload} payload - Data needed to deploy OVM and SplitV2
16443
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
16444
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
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
- * An example of how to use createValidatorManagerAndRewardsSplit:
16447
- * [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
+ * ```
16448
16455
  */
16449
16456
  createValidatorManagerAndRewardsSplit(payload) {
16450
16457
  return __async(this, null, function* () {
16451
16458
  const salt = SPLITS_V2_SALT;
16452
16459
  if (!this.signer) {
16453
- throw new Error(
16454
- "Signer is required in createValidatorManagerAndRewardsSplit"
16455
- );
16460
+ throw new SignerRequiredError("createValidatorManagerAndRewardsSplit");
16456
16461
  }
16457
16462
  const validatedPayload = validatePayload(
16458
16463
  payload,
16459
16464
  ovmRewardsSplitPayloadSchema
16460
16465
  );
16461
16466
  if (!isChainSupportedForSplitters(this.chainId)) {
16462
- throw new Error(
16463
- `Splitter configuration is not supported on ${this.chainId} chain`
16467
+ throw new UnsupportedChainError(
16468
+ this.chainId,
16469
+ "createValidatorManagerAndRewardsSplit"
16464
16470
  );
16465
16471
  }
16466
16472
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
16467
16473
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
16468
- throw new Error(
16469
- `OVM contract factory is not configured for chain ${this.chainId}`
16474
+ throw new UnsupportedChainError(
16475
+ this.chainId,
16476
+ "createValidatorManagerAndRewardsSplit"
16470
16477
  );
16471
16478
  }
16472
16479
  if (!this.provider) {
@@ -16478,8 +16485,9 @@ var ObolSplits = class {
16478
16485
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
16479
16486
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
16480
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)) {
16481
- throw new Error(
16482
- `Contracts configuration is incomplete for chain ${this.chainId}`
16488
+ throw new UnsupportedChainError(
16489
+ this.chainId,
16490
+ "createValidatorManagerAndRewardsSplit"
16483
16491
  );
16484
16492
  }
16485
16493
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -16499,7 +16507,7 @@ var ObolSplits = class {
16499
16507
  );
16500
16508
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
16501
16509
  throw new Error(
16502
- `Splitter contract is not deployed or available on chain ${this.chainId}`
16510
+ `Required factory contracts are not available on chain ${this.chainId}`
16503
16511
  );
16504
16512
  }
16505
16513
  const retroActiveFundingRecipient = {
@@ -16566,43 +16574,56 @@ var ObolSplits = class {
16566
16574
  });
16567
16575
  }
16568
16576
  /**
16569
- * Creates an Obol OVM and Total split configuration for total split scenario.
16577
+ * Deploys an OVM and SplitV2 contract for a **total split** scenario.
16570
16578
  *
16571
- * This method deploys OVM and SplitV2 contracts for managing both validator rewards and principal.
16572
- * Both rewards and principal are split among recipients, with rewards including RAF recipient.
16579
+ * Both principal and rewards are split among recipients via separate SplitV2
16580
+ * contracts. Automatically appends the Obol RAF recipient to rewards.
16573
16581
  *
16574
- * @remarks
16575
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16576
- * and not pushed to version control.
16582
+ * - Sends one or more on-chain transactions (irreversible).
16583
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
16577
16584
  *
16578
- * @param {OVMTotalSplitPayload} payload - Data needed to deploy OVM and SplitV2
16579
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
16580
- * @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.
16581
16589
  *
16582
- * An example of how to use createValidatorManagerAndTotalSplit:
16583
- * [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
+ * ```
16584
16605
  */
16585
16606
  createValidatorManagerAndTotalSplit(payload) {
16586
16607
  return __async(this, null, function* () {
16587
16608
  const salt = SPLITS_V2_SALT;
16588
16609
  if (!this.signer) {
16589
- throw new Error(
16590
- "Signer is required in createValidatorManagerAndTotalSplit"
16591
- );
16610
+ throw new SignerRequiredError("createValidatorManagerAndTotalSplit");
16592
16611
  }
16593
16612
  const validatedPayload = validatePayload(
16594
16613
  payload,
16595
16614
  ovmTotalSplitPayloadSchema
16596
16615
  );
16597
16616
  if (!isChainSupportedForSplitters(this.chainId)) {
16598
- throw new Error(
16599
- `Splitter configuration is not supported on ${this.chainId} chain`
16617
+ throw new UnsupportedChainError(
16618
+ this.chainId,
16619
+ "createValidatorManagerAndTotalSplit"
16600
16620
  );
16601
16621
  }
16602
16622
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
16603
16623
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
16604
- throw new Error(
16605
- `OVM contract factory is not configured for chain ${this.chainId}`
16624
+ throw new UnsupportedChainError(
16625
+ this.chainId,
16626
+ "createValidatorManagerAndTotalSplit"
16606
16627
  );
16607
16628
  }
16608
16629
  if (!this.provider) {
@@ -16614,8 +16635,9 @@ var ObolSplits = class {
16614
16635
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
16615
16636
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
16616
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)) {
16617
- throw new Error(
16618
- `Contracts configuration is incomplete for chain ${this.chainId}`
16638
+ throw new UnsupportedChainError(
16639
+ this.chainId,
16640
+ "createValidatorManagerAndTotalSplit"
16619
16641
  );
16620
16642
  }
16621
16643
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -16635,7 +16657,7 @@ var ObolSplits = class {
16635
16657
  );
16636
16658
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
16637
16659
  throw new Error(
16638
- `Splitter contract is not deployed or available on chain ${this.chainId}`
16660
+ `Required factory contracts are not available on chain ${this.chainId}`
16639
16661
  );
16640
16662
  }
16641
16663
  const retroActiveFundingRecipient = {
@@ -16722,34 +16744,30 @@ var ObolSplits = class {
16722
16744
  });
16723
16745
  }
16724
16746
  /**
16725
- * Requests withdrawal from an OVM contract.
16747
+ * Requests withdrawal of validator funds from an OVM contract.
16726
16748
  *
16727
- * This method allows requesting withdrawal of validator funds from an OVM contract.
16728
- * 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.
16729
16751
  *
16730
- * @remarks
16731
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16732
- * 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.
16733
16756
  *
16734
- * @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
16735
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
16736
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
16737
- *
16738
- * An example of how to use requestWithdrawal:
16757
+ * @example
16739
16758
  * ```typescript
16740
- * const result = await client.splits.requestWithdrawal({
16741
- * ovmAddress: '0x1234567890123456789012345678901234567890',
16742
- * pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
16743
- * amounts: ['32000000000'], // 32 ETH in gwei
16744
- * 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",
16745
16764
  * });
16746
- * console.log('Withdrawal requested:', result.txHash);
16747
16765
  * ```
16748
16766
  */
16749
16767
  requestWithdrawal(payload) {
16750
16768
  return __async(this, null, function* () {
16751
16769
  if (!this.signer) {
16752
- throw new Error("Signer is required in requestWithdrawal");
16770
+ throw new SignerRequiredError("requestWithdrawal");
16753
16771
  }
16754
16772
  const validatedPayload = validatePayload(
16755
16773
  payload,
@@ -16765,38 +16783,33 @@ var ObolSplits = class {
16765
16783
  });
16766
16784
  }
16767
16785
  /**
16768
- * Deposits to OVM contract by sending individual transactions for each deposit.
16769
- *
16770
- * This method allows depositing to an OVM contract. Each deposit is sent as a separate transaction
16771
- * Each deposit includes validator public key, withdrawal credentials, signature, deposit data root, and amount.
16772
- *
16773
- * @remarks
16774
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16775
- * and not pushed to version control.
16786
+ * Deposits validators to an OVM contract. Each deposit is sent as a separate
16787
+ * on-chain transaction.
16776
16788
  *
16777
- * @param {OVMDepositPayload} payload - Data needed to deposit to OVM
16778
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes, one for each deposit
16779
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the deposit fails
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.
16780
16794
  *
16781
- * An example of how to use deposit:
16795
+ * @example
16782
16796
  * ```typescript
16783
- * const result = await client.splits.deposit({
16784
- * ovmAddress: '0x1234567890123456789012345678901234567890',
16797
+ * const { txHashes } = await client.splits.deposit({
16798
+ * ovmAddress: "0xOVM...",
16785
16799
  * deposits: [{
16786
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
16787
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
16788
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
16789
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
16790
- * amount: '32000000000000000000' // 32 ETH in wei
16791
- * }]
16800
+ * pubkey: "0x...",
16801
+ * withdrawal_credentials: "0x...",
16802
+ * signature: "0x...",
16803
+ * deposit_data_root: "0x...",
16804
+ * amount: "32000000000000000000",
16805
+ * }],
16792
16806
  * });
16793
- * console.log('Deposits completed:', result.txHashes);
16794
16807
  * ```
16795
16808
  */
16796
16809
  deposit(payload) {
16797
16810
  return __async(this, null, function* () {
16798
16811
  if (!this.signer) {
16799
- throw new Error("Signer is required in deposit");
16812
+ throw new SignerRequiredError("deposit");
16800
16813
  }
16801
16814
  const validatedPayload = validatePayload(
16802
16815
  payload,
@@ -17016,43 +17029,37 @@ var EOA = class {
17016
17029
  this.provider = provider;
17017
17030
  }
17018
17031
  /**
17019
- * Requests withdrawal from an EOA contract.
17020
- *
17021
- * This method allows requesting withdrawal of validator funds.
17022
- * The withdrawal request includes validator public key and corresponding withdrawal amount.
17032
+ * Requests withdrawal of validator funds via the EOA withdrawal contract.
17023
17033
  *
17024
- * @remarks
17025
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17026
- * and not pushed to version control.
17034
+ * Sends an on-chain transaction. Requires both a signer and a provider.
17027
17035
  *
17028
- * @param {EOAWithdrawalPayload} payload - Data needed to request withdrawal
17029
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
17030
- * @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.
17031
17041
  *
17032
- * An example of how to use requestWithdrawal:
17042
+ * @example
17033
17043
  * ```typescript
17034
- * const result = await client.eoa.requestWithdrawal({
17035
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17036
- * allocation: 32, // 32 ETH
17037
- * requiredFee: '1' // in wei
17044
+ * const { txHash } = await client.eoa.requestWithdrawal({
17045
+ * pubkey: "0xValidatorPubkey...",
17046
+ * allocation: 32,
17047
+ * requiredFee: "1",
17038
17048
  * });
17039
- * console.log('Withdrawal requested:', result.txHash);
17040
17049
  * ```
17041
17050
  */
17042
17051
  requestWithdrawal(payload) {
17043
17052
  return __async(this, null, function* () {
17044
17053
  var _a6;
17045
17054
  if (!this.signer) {
17046
- throw new Error("Signer is required in requestWithdrawal");
17055
+ throw new SignerRequiredError("requestWithdrawal");
17047
17056
  }
17048
17057
  if (!this.provider) {
17049
17058
  throw new Error("Provider is required in requestWithdrawal");
17050
17059
  }
17051
17060
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17052
17061
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.EOA_WITHDRAWAL_CONTRACT) == null ? void 0 : _a6.address)) {
17053
- throw new Error(
17054
- `EOA withdrawal contract is not configured for chain ${this.chainId}`
17055
- );
17062
+ throw new UnsupportedChainError(this.chainId, "EOA requestWithdrawal");
17056
17063
  }
17057
17064
  const validatedPayload = validatePayload(
17058
17065
  payload,
@@ -17071,47 +17078,39 @@ var EOA = class {
17071
17078
  });
17072
17079
  }
17073
17080
  /**
17074
- * Deposits to batch deposit contract.
17075
- *
17076
- * This method allows depositing multiple validators to the Ethereum beacon chain
17077
- * using the Pier Two batch deposit contract for gas efficiency.
17078
- * Each deposit includes validator public key, withdrawal credentials, signature, and amount.
17079
- *
17080
- * @remarks
17081
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17082
- * and not pushed to version control.
17081
+ * Batch-deposits validators to the beacon chain via the Pier Two batch
17082
+ * deposit contract for gas efficiency.
17083
17083
  *
17084
- * **⚠️ Gas Limit:** Due to EVM constraints, it is recommended to deposit in batches of up to 500 at a time.
17084
+ * Due to EVM gas limits, it is recommended to deposit at most 500
17085
+ * validators per call.
17085
17086
  *
17086
- * @param {EOADepositPayload} payload - Data needed to deposit to batch contract
17087
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes for all batches
17088
- * @throws Will throw an error if the signer is not provided, contract is not configured, or the deposit fails
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.
17089
17091
  *
17090
- * An example of how to use deposit:
17092
+ * @example
17091
17093
  * ```typescript
17092
- * const result = await client.eoa.deposit({
17094
+ * const { txHashes } = await client.eoa.deposit({
17093
17095
  * deposits: [{
17094
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17095
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
17096
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
17097
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17098
- * amount: '32000000000000000000' // 32 ETH in wei
17099
- * }]
17096
+ * pubkey: "0x...",
17097
+ * withdrawal_credentials: "0x...",
17098
+ * deposit_data_root: "0x...",
17099
+ * signature: "0x...",
17100
+ * amount: "32000000000000000000",
17101
+ * }],
17100
17102
  * });
17101
- * console.log('Deposits completed:', result.txHashes);
17102
17103
  * ```
17103
17104
  */
17104
17105
  deposit(payload) {
17105
17106
  return __async(this, null, function* () {
17106
17107
  var _a6;
17107
17108
  if (!this.signer) {
17108
- throw new Error("Signer is required in deposit");
17109
+ throw new SignerRequiredError("deposit");
17109
17110
  }
17110
17111
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17111
17112
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.BATCH_DEPOSIT_CONTRACT) == null ? void 0 : _a6.address)) {
17112
- throw new Error(
17113
- `Batch deposit contract is not configured for chain ${this.chainId}`
17114
- );
17113
+ throw new UnsupportedChainError(this.chainId, "EOA deposit");
17115
17114
  }
17116
17115
  const validatedPayload = validatePayload(
17117
17116
  payload,
@@ -17139,14 +17138,26 @@ var validateClusterLock = (lock, safeRpcUrl) => __async(null, null, function* ()
17139
17138
  // src/index.ts
17140
17139
  var Client = class extends Base {
17141
17140
  /**
17142
- * @param config - Client configurations
17143
- * @param config.baseUrl - obol-api url
17144
- * @param config.chainId - Blockchain network ID
17145
- * @param signer - ethersJS Signer
17146
- * @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`.
17147
17151
  *
17148
- * An example of how to instantiate obol-sdk Client:
17149
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L29)
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);
17157
+ *
17158
+ * // Full client with signer for write operations
17159
+ * const client = new Client({ chainId: 560048 }, signer);
17160
+ * ```
17150
17161
  */
17151
17162
  constructor(config2, signer, provider) {
17152
17163
  super(config2);
@@ -17163,17 +17174,30 @@ var Client = class extends Base {
17163
17174
  this.eoa = new EOA(this.signer, this.chainId, this.provider);
17164
17175
  }
17165
17176
  /**
17166
- * Accepts Obol terms and conditions to be able to create or update data.
17167
- * @returns {Promise<string>} terms and conditions acceptance success message.
17168
- * @throws On unverified signature or wrong hash.
17177
+ * Accepts the latest Obol terms and conditions.
17169
17178
  *
17170
- * An example of how to use acceptObolLatestTermsAndConditions:
17171
- * [acceptObolLatestTermsAndConditions](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L44)
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.
17190
+ *
17191
+ * @example
17192
+ * ```typescript
17193
+ * const message = await client.acceptObolLatestTermsAndConditions();
17194
+ * console.log(message); // "Terms and conditions accepted successfully"
17195
+ * ```
17172
17196
  */
17173
17197
  acceptObolLatestTermsAndConditions() {
17174
17198
  return __async(this, null, function* () {
17175
17199
  if (!this.signer) {
17176
- throw new Error("Signer is required in acceptObolTermsAndConditions");
17200
+ throw new SignerRequiredError("acceptObolLatestTermsAndConditions");
17177
17201
  }
17178
17202
  try {
17179
17203
  const termsAndConditionsHash = TERMS_AND_CONDITIONS_HASH;
@@ -17209,19 +17233,37 @@ var Client = class extends Base {
17209
17233
  });
17210
17234
  }
17211
17235
  /**
17212
- * Deploys OWR and Splitter Proxy.
17236
+ * Deploys an Optimistic Withdrawal Recipient (OWR) and a Splitter Proxy contract.
17213
17237
  *
17214
- * @remarks
17215
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17216
- * and not pushed to version control.
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}.
17217
17241
  *
17218
- * @param {RewardsSplitPayload} rewardsSplitPayload - Data needed to deploy owr and splitter.
17219
- * @returns {Promise<ClusterValidator>} owr address as withdrawal address and splitter as fee recipient
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).
17220
17247
  *
17221
- * An example of how to use createObolRewardsSplit:
17222
- * [createObolRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L141)
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.
17253
+ *
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
+ * ```
17223
17266
  */
17224
- // add the example reference
17225
17267
  createObolRewardsSplit(_0) {
17226
17268
  return __async(this, arguments, function* ({
17227
17269
  splitRecipients,
@@ -17233,7 +17275,7 @@ var Client = class extends Base {
17233
17275
  recoveryAddress
17234
17276
  }) {
17235
17277
  if (!this.signer) {
17236
- throw new Error("Signer is required in createObolRewardsSplit");
17278
+ throw new SignerRequiredError("createObolRewardsSplit");
17237
17279
  }
17238
17280
  const validatedPayload = validatePayload(
17239
17281
  {
@@ -17248,15 +17290,11 @@ var Client = class extends Base {
17248
17290
  rewardsSplitterPayloadSchema
17249
17291
  );
17250
17292
  if (!isChainSupportedForSplitters(this.chainId)) {
17251
- throw new Error(
17252
- `Splitter configuration is not supported on ${this.chainId} chain`
17253
- );
17293
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
17254
17294
  }
17255
17295
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17256
17296
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
17257
- throw new Error(
17258
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
17259
- );
17297
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
17260
17298
  }
17261
17299
  const checkSplitMainAddress = yield isContractAvailable(
17262
17300
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -17275,7 +17313,7 @@ var Client = class extends Base {
17275
17313
  );
17276
17314
  if (!checkMulticall3Address || !checkSplitMainAddress || !checkOWRFactoryAddress) {
17277
17315
  throw new Error(
17278
- `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}`
17279
17317
  );
17280
17318
  }
17281
17319
  const retroActiveFundingRecipient = {
@@ -17316,19 +17354,37 @@ var Client = class extends Base {
17316
17354
  });
17317
17355
  }
17318
17356
  /**
17319
- * Deploys Splitter Proxy.
17357
+ * Deploys a Splitter Proxy contract that splits **both principal and rewards**.
17320
17358
  *
17321
- * @remarks
17322
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17323
- * and not pushed to version control.
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`.
17324
17362
  *
17325
- * @param {TotalSplitPayload} totalSplitPayload - Data needed to deploy splitter if it doesnt exist.
17326
- * @returns {Promise<ClusterValidator>} splitter address as withdrawal address and splitter as fee recipient too
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).
17327
17369
  *
17328
- * An example of how to use createObolTotalSplit:
17329
- * [createObolTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L168)
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.
17375
+ *
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
+ * ```
17330
17387
  */
17331
- // add the example reference
17332
17388
  createObolTotalSplit(_0) {
17333
17389
  return __async(this, arguments, function* ({
17334
17390
  splitRecipients,
@@ -17337,7 +17393,7 @@ var Client = class extends Base {
17337
17393
  controllerAddress
17338
17394
  }) {
17339
17395
  if (!this.signer) {
17340
- throw new Error("Signer is required in createObolTotalSplit");
17396
+ throw new SignerRequiredError("createObolTotalSplit");
17341
17397
  }
17342
17398
  const validatedPayload = validatePayload(
17343
17399
  {
@@ -17349,15 +17405,11 @@ var Client = class extends Base {
17349
17405
  totalSplitterPayloadSchema
17350
17406
  );
17351
17407
  if (!isChainSupportedForSplitters(this.chainId)) {
17352
- throw new Error(
17353
- `Splitter configuration is not supported on ${this.chainId} chain`
17354
- );
17408
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
17355
17409
  }
17356
17410
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17357
17411
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
17358
- throw new Error(
17359
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
17360
- );
17412
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
17361
17413
  }
17362
17414
  const checkSplitMainAddress = yield isContractAvailable(
17363
17415
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -17366,7 +17418,7 @@ var Client = class extends Base {
17366
17418
  );
17367
17419
  if (!checkSplitMainAddress) {
17368
17420
  throw new Error(
17369
- `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}`
17370
17422
  );
17371
17423
  }
17372
17424
  const retroActiveFundingRecipient = {
@@ -17411,38 +17463,69 @@ var Client = class extends Base {
17411
17463
  });
17412
17464
  }
17413
17465
  /**
17414
- * Read OWR Tranches.
17466
+ * Reads the tranches of a deployed Optimistic Withdrawal Recipient (OWR) contract.
17415
17467
  *
17416
- * @remarks
17417
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17418
- * and not pushed to version control.
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).
17419
17470
  *
17420
- * @param {ETH_ADDRESS} owrAddress - Address of the Deployed OWR Contract
17421
- * @returns {Promise<OWRTranches>} owr tranch information about principal and reward reciepient, as well as the principal amount
17471
+ * - Requires a `signer` (for provider access).
17422
17472
  *
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.
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
+ * ```
17423
17484
  */
17424
17485
  getOWRTranches(owrAddress) {
17425
17486
  return __async(this, null, function* () {
17426
17487
  if (!this.signer) {
17427
- throw new Error("Signer is required in getOWRTranches");
17488
+ throw new SignerRequiredError("getOWRTranches");
17428
17489
  }
17429
17490
  const signer = this.signer;
17430
17491
  return yield getOWRTranches({ owrAddress, signer });
17431
17492
  });
17432
17493
  }
17433
17494
  /**
17434
- * Creates a cluster definition which contains cluster configuration.
17435
- * @param {ClusterPayload} newCluster - The new unique cluster.
17436
- * @returns {Promise<string>} config_hash.
17437
- * @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.
17500
+ *
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}.
17438
17506
  *
17439
- * An example of how to use createClusterDefinition:
17440
- * [createObolCluster](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L59)
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
+ * ```
17441
17524
  */
17442
17525
  createClusterDefinition(newCluster) {
17443
17526
  return __async(this, null, function* () {
17444
17527
  if (!this.signer) {
17445
- throw new Error("Signer is required in createClusterDefinition");
17528
+ throw new SignerRequiredError("createClusterDefinition");
17446
17529
  }
17447
17530
  const validatedCluster = validatePayload(
17448
17531
  newCluster,
@@ -17490,19 +17573,33 @@ var Client = class extends Base {
17490
17573
  });
17491
17574
  }
17492
17575
  /**
17493
- * Approves joining a cluster with specific configuration.
17494
- * @param {OperatorPayload} operatorPayload - The operator data including signatures.
17495
- * @param {string} configHash - The config hash of the cluster which the operator confirms joining to.
17496
- * @returns {Promise<ClusterDefinition>} The cluster definition.
17497
- * @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.
17584
+ *
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.
17498
17590
  *
17499
- * An example of how to use acceptClusterDefinition:
17500
- * [acceptClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L106)
17591
+ * @example
17592
+ * ```typescript
17593
+ * const updatedDef = await client.acceptClusterDefinition(
17594
+ * { enr: "enr:-LK4Q...", version: "v1.10.0" },
17595
+ * configHash,
17596
+ * );
17597
+ * ```
17501
17598
  */
17502
17599
  acceptClusterDefinition(operatorPayload, configHash) {
17503
17600
  return __async(this, null, function* () {
17504
17601
  if (!this.signer) {
17505
- throw new Error("Signer is required in acceptClusterDefinition");
17602
+ throw new SignerRequiredError("acceptClusterDefinition");
17506
17603
  }
17507
17604
  const validatedPayload = validatePayload(
17508
17605
  operatorPayload,
@@ -17542,12 +17639,19 @@ var Client = class extends Base {
17542
17639
  });
17543
17640
  }
17544
17641
  /**
17545
- * @param configHash - The configuration hash returned in createClusterDefinition
17546
- * @returns {Promise<ClusterDefinition>} The cluster definition for config hash
17547
- * @throws On not found config hash.
17642
+ * Retrieves a cluster definition by its configuration hash.
17548
17643
  *
17549
- * An example of how to use getClusterDefinition:
17550
- * [getObolClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L74)
17644
+ * This is a read-only API call – no signer is required.
17645
+ *
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
+ * ```
17551
17655
  */
17552
17656
  getClusterDefinition(configHash) {
17553
17657
  return __async(this, null, function* () {
@@ -17561,12 +17665,22 @@ var Client = class extends Base {
17561
17665
  });
17562
17666
  }
17563
17667
  /**
17564
- * @param configHash - The configuration hash in cluster-definition
17565
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
17566
- * @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.
17567
17673
  *
17568
- * An example of how to use getClusterLock:
17569
- * [getObolClusterLock](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L89)
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).
17677
+ *
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
+ * ```
17570
17684
  */
17571
17685
  getClusterLock(configHash) {
17572
17686
  return __async(this, null, function* () {
@@ -17580,10 +17694,20 @@ var Client = class extends Base {
17580
17694
  });
17581
17695
  }
17582
17696
  /**
17583
- * @param lockHash - The configuration hash in cluster-definition
17584
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
17585
- * @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.
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).
17586
17705
  *
17706
+ * @example
17707
+ * ```typescript
17708
+ * const lock = await client.getClusterLockByHash(lockHash);
17709
+ * console.log(lock.cluster_definition.name);
17710
+ * ```
17587
17711
  */
17588
17712
  getClusterLockByHash(lockHash) {
17589
17713
  return __async(this, null, function* () {
@@ -17605,6 +17729,7 @@ var Client = class extends Base {
17605
17729
  CONFIG_VERSION,
17606
17730
  CONFLICT_ERROR_MSG,
17607
17731
  Client,
17732
+ ConflictError,
17608
17733
  CreatorConfigHashSigningTypes,
17609
17734
  CreatorTypedMessage,
17610
17735
  DEFAULT_BASE_URL,
@@ -17636,10 +17761,12 @@ var Client = class extends Base {
17636
17761
  PROVIDER_MAP,
17637
17762
  SDK_VERSION,
17638
17763
  SPLITS_V2_SALT,
17764
+ SignerRequiredError,
17639
17765
  TERMS_AND_CONDITIONS_HASH,
17640
17766
  TERMS_AND_CONDITIONS_URL,
17641
17767
  TERMS_AND_CONDITIONS_VERSION,
17642
17768
  TermsAndConditionsSigningTypes,
17769
+ UnsupportedChainError,
17643
17770
  clusterConfigOrDefinitionHash,
17644
17771
  clusterLockHash,
17645
17772
  isChainSupportedForSplitters,