@obolnetwork/obol-sdk 2.11.9 → 2.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
6
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __knownSymbol = (name2, symbol3) => (symbol3 = Symbol[name2]) ? symbol3 : Symbol.for("Symbol." + name2);
7
+ var __knownSymbol = (name2, symbol3) => (symbol3 = Symbol[name2]) ? symbol3 : /* @__PURE__ */ Symbol.for("Symbol." + name2);
8
8
  var __typeError = (msg) => {
9
9
  throw TypeError(msg);
10
10
  };
@@ -92,7 +92,7 @@ import { v4 as uuidv4 } from "uuid";
92
92
  // package.json
93
93
  var package_default = {
94
94
  name: "@obolnetwork/obol-sdk",
95
- version: "2.11.9",
95
+ version: "2.11.10",
96
96
  description: "A package for creating Distributed Validators using the Obol API.",
97
97
  bugs: {
98
98
  url: "https://github.com/obolnetwork/obol-sdk/issues"
@@ -152,7 +152,6 @@ var package_default = {
152
152
  },
153
153
  dependencies: {
154
154
  "@chainsafe/bls": "6.0.3",
155
- "@chainsafe/blst": "^0.2.0",
156
155
  "@chainsafe/enr": "^5.0.1",
157
156
  "@chainsafe/ssz": "^0.14.0",
158
157
  "@metamask/eth-sig-util": "^8.2.0",
@@ -185,7 +184,7 @@ var package_default = {
185
184
  husky: "^9.1.7",
186
185
  jest: "^29.7.0",
187
186
  "lint-staged": "^16.2.3",
188
- msw: "^2.11.3",
187
+ msw: "^2.12.4",
189
188
  nock: "^14.0.10",
190
189
  "npm-run-all": "^4.1.5",
191
190
  prettier: "^3.6.2",
@@ -268,24 +267,21 @@ var package_default = {
268
267
  "<rootDir>/test"
269
268
  ],
270
269
  maxWorkers: "50%"
271
- }
270
+ },
271
+ packageManager: "yarn@1.22.22"
272
272
  };
273
273
 
274
274
  // src/types.ts
275
275
  var FORK_MAPPING = /* @__PURE__ */ ((FORK_MAPPING2) => {
276
276
  FORK_MAPPING2[FORK_MAPPING2["0x00000000"] = 1] = "0x00000000";
277
- FORK_MAPPING2[FORK_MAPPING2["0x00001020"] = 5] = "0x00001020";
278
277
  FORK_MAPPING2[FORK_MAPPING2["0x00000064"] = 100] = "0x00000064";
279
- FORK_MAPPING2[FORK_MAPPING2["0x01017000"] = 17e3] = "0x01017000";
280
278
  FORK_MAPPING2[FORK_MAPPING2["0x90000069"] = 11155111] = "0x90000069";
281
279
  FORK_MAPPING2[FORK_MAPPING2["0x10000910"] = 560048] = "0x10000910";
282
280
  return FORK_MAPPING2;
283
281
  })(FORK_MAPPING || {});
284
282
  var FORK_NAMES = {
285
283
  [1 /* 0x00000000 */]: "mainnet",
286
- [5 /* 0x00001020 */]: "goerli",
287
284
  [100 /* 0x00000064 */]: "gnosis",
288
- [17e3 /* 0x01017000 */]: "holesky",
289
285
  [11155111 /* 0x90000069 */]: "sepolia",
290
286
  [560048 /* 0x10000910 */]: "hoodi"
291
287
  };
@@ -294,9 +290,6 @@ var FORK_NAMES = {
294
290
  var MAINNET_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ab2565b61040b565b005b34801561015257600080fd5b50610144610161366004612c4c565b6104a6565b34801561017257600080fd5b50610144610181366004612ab2565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ab2565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ab2565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d5d565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d03565b610c4d565b34801561026a57600080fd5b50610226610279366004612ddb565b610d82565b34801561028a57600080fd5b50610144610299366004612c4c565b611144565b3480156102aa57600080fd5b506102267f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b3381565b3480156102de57600080fd5b506102266102ed366004612ab2565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612b95565b611487565b34801561033a57600080fd5b506101bc610349366004612c3a565b6117aa565b34801561035a57600080fd5b50610144610369366004612ab2565b61187e565b34801561037a57600080fd5b50610144610389366004612ace565b61194d565b34801561039a57600080fd5b506102266103a9366004612ab2565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612b95565b611a1f565b3480156103f757600080fd5b50610144610406366004612b06565b611d6f565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061057183612020565b63ffffffff16146105a75761058582612020565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120c59050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b0383166000908152602081905260409020546109389190612f98565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b83612020565b63ffffffff1614610a1f5761058582612020565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061239f915050565b9050610c3f7f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b33826123d5565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb38661247a565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ab2565b6124cd565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d729493929190612f08565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f83612020565b63ffffffff1614610e635761058582612020565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c925061239f915050565b90506001600160a01b038616611098576110917f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b3382612539565b94506110f5565b6110c17f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b336125e9565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b038516600081815260026020526040808220849055517f8d5f9943c664a3edaf4d3eb18cc5e2c45a7d2dc5869be33d33bbc0fff9bc25909190a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111855760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611214578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611243578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061125083612020565b63ffffffff16146112645761058582612020565b82516000190160005b8181101561135b5784816001018151811061129857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112c957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106112fb5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061132357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561135357604051630db7e4c760e01b815260048101829052602401610448565b60010161126d565b50600063ffffffff1683828151811061138457634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113b457604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156113e75760405163308440e360e21b815263ffffffff82166004820152602401610448565b6113f58c8b8b8b8b8b612698565b6114798c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120c59050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114c85760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611557578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611586578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061159383612020565b63ffffffff16146115a75761058582612020565b82516000190160005b8181101561169e578481600101815181106115db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061160c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061163e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061166657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561169657604051630db7e4c760e01b815260048101829052602401610448565b6001016115b0565b50600063ffffffff168382815181106116c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561172a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117388b8b8b8b8b8b612698565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127589050565b6001600160a01b0382166000908152600260205260408120546117ce576000611847565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561180f57600080fd5b505afa158015611823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118479190612e6c565b6001600160a01b038084166000908152600160209081526040808320938816835292905220546118779190612f98565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118c05760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b03828116600090815260026020526040902060010154839116331461198e5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119c15760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aae578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611add578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611aea83612020565b63ffffffff1614611afe5761058582612020565b82516000190160005b81811015611bf557848160010181518110611b3257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b6357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611b955760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bbd57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611bed57604051630db7e4c760e01b815260048101829052602401610448565b600101611b07565b50600063ffffffff16838281518110611c1e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c4e57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c815760405163308440e360e21b815263ffffffff82166004820152602401610448565b611cf18a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b611d638a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127589050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611db05760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e3f578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e6e578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e7b83612020565b63ffffffff1614611e8f5761058582612020565b82516000190160005b81811015611f8657848160010181518110611ec357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611ef457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f265760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f4e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f7e57604051630db7e4c760e01b815260048101829052602401610448565b600101611e98565b50600063ffffffff16838281518110611faf57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611fdf57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156120125760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d638a8a8a8a8a8a612698565b8051600090815b8181101561206c5783818151811061204f57634e487b7160e01b600052603260045260246000fd5b6020026020010151836120629190612fb0565b9250600101612027565b5050919050565b600061208084848461239f565b6001600160a01b03861660009081526002602052604090205490915081146120be5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561212a57600080fd5b505afa15801561213e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121629190612e6c565b9050801561216f57600019015b811561217c576001820391505b818101925081156121b0576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d46866040516121ff91815260200190565b60405180910390a463ffffffff851615612271576001600160a01b038881166000908152600160205260408120620f424063ffffffff891687020492839290881661224a573361224c565b875b6001600160a01b03168152602081019190915260400160002080549091019055909203915b865160005b81811015612329576122ba858983815181106122a257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c90859081106122f757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612276565b5050801561239457604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123b693929190612e84565b6040516020818303038152906040528051906020012090509392505050565b6000611877838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b03811660009081526020819052604081205461249f90600190612fd8565b6001600160a01b0383166000818152602081905260409020600190559091506124c8908261293a565b919050565b6001600160a01b038082166000908152600160208181526040808420948716845293905291812054909161250091612fd8565b6001600160a01b038084166000818152600160208181526040808420958a16845294905292902091909155909150610938908483612990565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124c857604051630985da9b60e41b815260040160405180910390fd5b600061270986868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525087925061239f915050565b6001600160a01b0388166000818152600260205260408082208490555192935090917f45e1e99513dd915ac128b94953ca64c6375717ea1894b3114db08cdca51debd29190a250505050505050565b6001600160a01b0385166000818152602081905260408120549131908215612781576001830392505b5081810182156127a8576001600160a01b0388166000908152602081905260409020600190555b836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b836040516127ed91815260200190565b60405180910390a363ffffffff85161561284c57620f424063ffffffff8616820204806000806001600160a01b0388166128275733612829565b875b6001600160a01b0316815260208101919091526040016000208054909101905590035b865160005b818110156128d25761287d838983815181106122a257634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128a057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612851565b5050811561293057604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561291c57600080fd5b505af1158015611479573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af190508061298b5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129cb81612a0f565b612a095760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a2157806000803e806000fd5b8060208114612a39578015612a4a576000925061206c565b816000803e6000511515925061206c565b5060019392505050565b60008083601f840112612a65578182fd5b50813567ffffffffffffffff811115612a7c578182fd5b6020830191508360208260051b8501011115612a9757600080fd5b9250929050565b803563ffffffff811681146124c857600080fd5b600060208284031215612ac3578081fd5b813561187781613005565b60008060408385031215612ae0578081fd5b8235612aeb81613005565b91506020830135612afb81613005565b809150509250929050565b60008060008060008060808789031215612b1e578182fd5b8635612b2981613005565b9550602087013567ffffffffffffffff80821115612b45578384fd5b612b518a838b01612a54565b90975095506040890135915080821115612b69578384fd5b50612b7689828a01612a54565b9094509250612b89905060608801612a9e565b90509295509295509295565b600080600080600080600060a0888a031215612baf578081fd5b8735612bba81613005565b9650602088013567ffffffffffffffff80821115612bd6578283fd5b612be28b838c01612a54565b909850965060408a0135915080821115612bfa578283fd5b50612c078a828b01612a54565b9095509350612c1a905060608901612a9e565b91506080880135612c2a81613005565b8091505092959891949750929550565b60008060408385031215612ae0578182fd5b60008060008060008060008060c0898b031215612c67578081fd5b8835612c7281613005565b97506020890135612c8281613005565b9650604089013567ffffffffffffffff80821115612c9e578283fd5b612caa8c838d01612a54565b909850965060608b0135915080821115612cc2578283fd5b50612ccf8b828c01612a54565b9095509350612ce2905060808a01612a9e565b915060a0890135612cf281613005565b809150509295985092959890939650565b60008060008060608587031215612d18578384fd5b8435612d2381613005565b935060208501359250604085013567ffffffffffffffff811115612d45578283fd5b612d5187828801612a54565b95989497509550505050565b600080600080600060608688031215612d74578081fd5b853567ffffffffffffffff80821115612d8b578283fd5b612d9789838a01612a54565b90975095506020880135915080821115612daf578283fd5b50612dbc88828901612a54565b9094509250612dcf905060408701612a9e565b90509295509295909350565b60008060008060008060808789031215612df3578182fd5b863567ffffffffffffffff80821115612e0a578384fd5b612e168a838b01612a54565b90985096506020890135915080821115612e2e578384fd5b50612e3b89828a01612a54565b9095509350612e4e905060408801612a9e565b91506060870135612e5e81613005565b809150509295509295509295565b600060208284031215612e7d578081fd5b5051919050565b835160009082906020808801845b83811015612eb75781516001600160a01b031685529382019390820190600101612e92565b50508651818801939250845b81811015612ee557845163ffffffff1684529382019392820192600101612ec3565b50505060e09490941b6001600160e01b0319168452505060049091019392505050565b84815260606020808301829052908201849052600090859060808401835b87811015612f54578335612f3981613005565b6001600160a01b031682529282019290820190600101612f26565b5084810360408601528551808252908201925081860190845b81811015612f8957825185529383019391830191600101612f6d565b50929998505050505050505050565b60008219821115612fab57612fab612fef565b500190565b600063ffffffff808316818516808303821115612fcf57612fcf612fef565b01949350505050565b600082821015612fea57612fea612fef565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461301a57600080fd5b5056fea264697066735822122078638564d8f0338df6cf15b5c2680d5c2ef45167f59938471977e9756316b94964736f6c63430008040033";
295
291
  var MAINNET_MULTICALL3_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
296
292
  var MAINNET_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006a575b600080fd5b61004e61004936600461031b565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000e11eabf19a49c389d3e8735c35f8f34f28bdcb2281565b60006001600160a01b03841615806100b057506001600160a01b038316155b156100ce57604051637e511f1560e11b815260040160405180910390fd5b816000036100ef57604051638966ee9560e01b815260040160405180910390fd5b6bffffffffffffffffffffffff82111561012357604051637a95f47560e01b81526004810183905260240160405180910390fd5b604051606086901b6bffffffffffffffffffffffff191660208201526001600160a01b0385811660a085901b176034830181905290851660548301819052909160009060740160408051601f1981840301815291905290506101ae6001600160a01b037f000000000000000000000000e11eabf19a49c389d3e8735c35f8f34f28bdcb221682610213565b604080516001600160a01b038b811682528a8116602083015289811682840152606082018990529151929650908616917ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb9181900360800190a2505050949350505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f0975050866102e05763301164256000526004601cfd5b90528552601f19850152603f19840152605f1990920191909152919050565b80356001600160a01b038116811461031657600080fd5b919050565b6000806000806080858703121561033157600080fd5b61033a856102ff565b9350610348602086016102ff565b9250610356604086016102ff565b939692955092936060013592505056fea26469706673582212207e26706744441b67ebb26904afecebf545348e41ee746030e32bb85594999a1264736f6c63430008130033";
297
- var HOLESKY_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ae0565b61040b565b005b34801561015257600080fd5b50610144610161366004612c7a565b6104a6565b34801561017257600080fd5b50610144610181366004612ae0565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ae0565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ae0565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d8b565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d31565b610c4d565b34801561026a57600080fd5b50610226610279366004612e09565b610d82565b34801561028a57600080fd5b50610144610299366004612c7a565b611160565b3480156102aa57600080fd5b506102267f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d1781565b3480156102de57600080fd5b506102266102ed366004612ae0565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612bc3565b6114a3565b34801561033a57600080fd5b506101bc610349366004612c68565b6117c6565b34801561035a57600080fd5b50610144610369366004612ae0565b61189a565b34801561037a57600080fd5b50610144610389366004612afc565b611969565b34801561039a57600080fd5b506102266103a9366004612ae0565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612bc3565b611a3b565b3480156103f757600080fd5b50610144610406366004612b34565b611d8b565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f42406105718361203c565b63ffffffff16146105a7576105858261203c565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061208f915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120e19050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b03831660009081526020819052604090205461093891906130da565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b8361203c565b63ffffffff1614610a1f576105858261203c565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506123b6915050565b9050610c3f7f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d17826123ec565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb386612491565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ae0565b6124e4565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d72949392919061304a565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f8361203c565b63ffffffff1614610e63576105858261203c565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92506123b6915050565b90506001600160a01b038616611098576110917f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d1782612550565b94506110f5565b6110c17f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d17612600565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b03851660008181526002602052604090819020839055517fd2bcf51a5767c814cfe0266a99141f75a32103bbf8c400fbc1ac0c3b73ce25e89061114a908e908e908e908e908e908e90612ff9565b60405180910390a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111a15760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611230578251604051630e8c626560e41b815260040161044891815260200190565b815183511461125f578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061126c8361203c565b63ffffffff1614611280576105858261203c565b82516000190160005b81811015611377578481600101815181106112b457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112e557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106113175760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061133f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561136f57604051630db7e4c760e01b815260048101829052602401610448565b600101611289565b50600063ffffffff168382815181106113a057634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113d057604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156114035760405163308440e360e21b815263ffffffff82166004820152602401610448565b6114118c8b8b8b8b8b6126af565b6114958c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120e19050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114e45760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611573578251604051630e8c626560e41b815260040161044891815260200190565b81518351146115a2578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f42406115af8361203c565b63ffffffff16146115c3576105858261203c565b82516000190160005b818110156116ba578481600101815181106115f757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061162857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061165a5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061168257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116b257604051630db7e4c760e01b815260048101829052602401610448565b6001016115cc565b50600063ffffffff168382815181106116e357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561171357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156117465760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117548b8b8b8b8b8b6126af565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127889050565b6001600160a01b0382166000908152600260205260408120546117ea576000611863565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561182b57600080fd5b505afa15801561183f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118639190612e9a565b6001600160a01b0380841660009081526001602090815260408083209388168352929052205461189391906130da565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118dc5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b0382811660009081526002602052604090206001015483911633146119aa5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119dd5760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aca578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611af9578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611b068361203c565b63ffffffff1614611b1a576105858261203c565b82516000190160005b81811015611c1157848160010181518110611b4e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b7f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611bb15760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bd957634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c0957604051630db7e4c760e01b815260048101829052602401610448565b600101611b23565b50600063ffffffff16838281518110611c3a57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c6a57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c9d5760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d0d8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061208f915050565b611d7f8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127889050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611dcc5760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e5b578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e8a578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e978361203c565b63ffffffff1614611eab576105858261203c565b82516000190160005b81811015611fa257848160010181518110611edf57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611f1057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f425760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f6a57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f9a57604051630db7e4c760e01b815260048101829052602401610448565b600101611eb4565b50600063ffffffff16838281518110611fcb57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611ffb57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561202e5760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d7f8a8a8a8a8a8a6126af565b8051600090815b818110156120885783818151811061206b57634e487b7160e01b600052603260045260246000fd5b60200260200101518361207e91906130f2565b9250600101612043565b5050919050565b600061209c8484846123b6565b6001600160a01b03861660009081526002602052604090205490915081146120da5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217e9190612e9a565b9050801561218b57600019015b8115612198576001820391505b818101925081156121cc576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b6001600160a01b0384166121e057336121e2565b835b9350836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d468660405161223391815260200190565b60405180910390a463ffffffff851615612288576000620f424063ffffffff87168502046001600160a01b03808b166000908152600160209081526040808320938a1683529290522080548201905590930392505b865160005b81811015612340576122d1858983815181106122b957634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c908590811061230e57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000208054909101905560010161228d565b505080156123ab57604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123cd93929190612f32565b6040516020818303038152906040528051906020012090509392505050565b6000611893838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b0381166000908152602081905260408120546124b69060019061311a565b6001600160a01b0383166000818152602081905260409020600190559091506124df9082612968565b919050565b6001600160a01b03808216600090815260016020818152604080842094871684529390529181205490916125179161311a565b6001600160a01b038084166000818152600160208181526040808420958a168452949052929020919091559091506109389084836129be565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124df57604051630985da9b60e41b815260040160405180910390fd5b600061272086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a028281018201909352898252909350899250889182918501908490808284376000920191909152508792506123b6915050565b6001600160a01b0388166000818152600260205260409081902083905551919250907fce55a01ad467ce2f3080a2cef6eb951b65f489b97956f76c2c04bcddab92aaa9906127779089908990899089908990612fb9565b60405180910390a250505050505050565b6001600160a01b03851660008181526020819052604081205491319082156127b1576001830392505b5081810182156127d8576001600160a01b0388166000908152602081905260409020600190555b6001600160a01b0384166127ec57336127ee565b835b9350836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b8360405161283591815260200190565b60405180910390a363ffffffff85161561287a576001600160a01b03841660009081526020819052604090208054620f424063ffffffff881684020490810190915590035b865160005b81811015612900576128ab838983815181106122b957634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128ce57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000208054909101905560010161287f565b5050811561295e57604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561294a57600080fd5b505af1158015611495573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af19050806129b95760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129f981612a3d565b612a375760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a4f57806000803e806000fd5b8060208114612a67578015612a785760009250612088565b816000803e60005115159250612088565b5060019392505050565b60008083601f840112612a93578182fd5b50813567ffffffffffffffff811115612aaa578182fd5b6020830191508360208260051b8501011115612ac557600080fd5b9250929050565b803563ffffffff811681146124df57600080fd5b600060208284031215612af1578081fd5b813561189381613147565b60008060408385031215612b0e578081fd5b8235612b1981613147565b91506020830135612b2981613147565b809150509250929050565b60008060008060008060808789031215612b4c578182fd5b8635612b5781613147565b9550602087013567ffffffffffffffff80821115612b73578384fd5b612b7f8a838b01612a82565b90975095506040890135915080821115612b97578384fd5b50612ba489828a01612a82565b9094509250612bb7905060608801612acc565b90509295509295509295565b600080600080600080600060a0888a031215612bdd578081fd5b8735612be881613147565b9650602088013567ffffffffffffffff80821115612c04578283fd5b612c108b838c01612a82565b909850965060408a0135915080821115612c28578283fd5b50612c358a828b01612a82565b9095509350612c48905060608901612acc565b91506080880135612c5881613147565b8091505092959891949750929550565b60008060408385031215612b0e578182fd5b60008060008060008060008060c0898b031215612c95578081fd5b8835612ca081613147565b97506020890135612cb081613147565b9650604089013567ffffffffffffffff80821115612ccc578283fd5b612cd88c838d01612a82565b909850965060608b0135915080821115612cf0578283fd5b50612cfd8b828c01612a82565b9095509350612d10905060808a01612acc565b915060a0890135612d2081613147565b809150509295985092959890939650565b60008060008060608587031215612d46578384fd5b8435612d5181613147565b935060208501359250604085013567ffffffffffffffff811115612d73578283fd5b612d7f87828801612a82565b95989497509550505050565b600080600080600060608688031215612da2578081fd5b853567ffffffffffffffff80821115612db9578283fd5b612dc589838a01612a82565b90975095506020880135915080821115612ddd578283fd5b50612dea88828901612a82565b9094509250612dfd905060408701612acc565b90509295509295909350565b60008060008060008060808789031215612e21578182fd5b863567ffffffffffffffff80821115612e38578384fd5b612e448a838b01612a82565b90985096506020890135915080821115612e5c578384fd5b50612e6989828a01612a82565b9095509350612e7c905060408801612acc565b91506060870135612e8c81613147565b809150509295509295509295565b600060208284031215612eab578081fd5b5051919050565b81835260006020808501945082825b85811015612eef578135612ed481613147565b6001600160a01b031687529582019590820190600101612ec1565b509495945050505050565b81835260006020808501945082825b85811015612eef5763ffffffff612f1f83612acc565b1687529582019590820190600101612f09565b835160009082906020808801845b83811015612f655781516001600160a01b031685529382019390820190600101612f40565b50508651818801939250845b81811015612f9357845163ffffffff1684529382019392820192600101612f71565b505050612fac818660e01b6001600160e01b0319169052565b6004019695505050505050565b606081526000612fcd606083018789612eb2565b8281036020840152612fe0818688612efa565b91505063ffffffff831660408301529695505050505050565b60808152600061300d60808301888a612eb2565b8281036020840152613020818789612efa565b63ffffffff95909516604084015250506001600160a01b0391909116606090910152949350505050565b84815260606020808301829052908201849052600090859060808401835b8781101561309657833561307b81613147565b6001600160a01b031682529282019290820190600101613068565b5084810360408601528551808252908201925081860190845b818110156130cb578251855293830193918301916001016130af565b50929998505050505050505050565b600082198211156130ed576130ed613131565b500190565b600063ffffffff80831681851680830382111561311157613111613131565b01949350505050565b60008282101561312c5761312c613131565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461315c57600080fd5b5056fea26469706673582212203623903cdef9a8c0647bc7a19460e0774b453343d6cfb95b942d17a3fd381b4764736f6c63430008040033";
298
- var HOLESKY_MULTICALL3_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
299
- var HOLESKY_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006a575b600080fd5b61004e61004936600461031b565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000a70eb35c1ee7f96688ea5e530ddf1ebedd0c825981565b60006001600160a01b03841615806100b057506001600160a01b038316155b156100ce57604051637e511f1560e11b815260040160405180910390fd5b816000036100ef57604051638966ee9560e01b815260040160405180910390fd5b6bffffffffffffffffffffffff82111561012357604051637a95f47560e01b81526004810183905260240160405180910390fd5b604051606086901b6bffffffffffffffffffffffff191660208201526001600160a01b0385811660a085901b176034830181905290851660548301819052909160009060740160408051601f1981840301815291905290506101ae6001600160a01b037f000000000000000000000000a70eb35c1ee7f96688ea5e530ddf1ebedd0c82591682610213565b604080516001600160a01b038b811682528a8116602083015289811682840152606082018990529151929650908616917ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb9181900360800190a2505050949350505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f0975050866102e05763301164256000526004601cfd5b90528552601f19850152603f19840152605f1990920191909152919050565b80356001600160a01b038116811461031657600080fd5b919050565b6000806000806080858703121561033157600080fd5b61033a856102ff565b9350610348602086016102ff565b9250610356604086016102ff565b939692955092936060013592505056fea26469706673582212207e26706744441b67ebb26904afecebf545348e41ee746030e32bb85594999a1264736f6c63430008130033";
300
293
  var HOODI_OVM_FACTORY_BYTECODE = "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806306dbd0cb14620000575780633e5b34b21462000079578063cdba577d146200009b578063f7f8ff7a14620000d1575b600080fd5b62000061620000f3565b60405162000070919062000464565b60405180910390f35b6200008362000117565b60405162000092919062000464565b60405180910390f35b620000b96004803603810190620000b39190620004fc565b6200013b565b604051620000c89190620005d9565b60405180910390f35b620000db620003ed565b604051620000ea919062000464565b60405180910390f35b7f00000000000000000000000000000961ef480eb55e80d19ad83579a64c00700281565b7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f22adafa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200020b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000243576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008267ffffffffffffffff160362000288576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6501dcd65000008267ffffffffffffffff161115620002d3576040517f12f9b82600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a5900072517f00000000000000000000000000000961ef480eb55e80d19ad83579a64c0070027f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa87878787604051620003489062000411565b6200035a979695949392919062000607565b604051809103906000f08015801562000377573d6000803e3d6000fd5b5090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5f69e7dce622f5df4a1899cf39ca6eb1216397f2c07206d2ef33aebf960827a3868686604051620003dd9392919062000684565b60405180910390a3949350505050565b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a59000725181565b613d2e80620006c283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200044c826200041f565b9050919050565b6200045e816200043f565b82525050565b60006020820190506200047b600083018462000453565b92915050565b600080fd5b62000491816200043f565b81146200049d57600080fd5b50565b600081359050620004b18162000486565b92915050565b600067ffffffffffffffff82169050919050565b620004d681620004b7565b8114620004e257600080fd5b50565b600081359050620004f681620004cb565b92915050565b6000806000806080858703121562000519576200051862000481565b5b60006200052987828801620004a0565b94505060206200053c87828801620004a0565b93505060406200054f87828801620004a0565b92505060606200056287828801620004e5565b91505092959194509250565b6000819050919050565b600062000599620005936200058d846200041f565b6200056e565b6200041f565b9050919050565b6000620005ad8262000578565b9050919050565b6000620005c182620005a0565b9050919050565b620005d381620005b4565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b6200060181620004b7565b82525050565b600060e0820190506200061e600083018a62000453565b6200062d602083018962000453565b6200063c604083018862000453565b6200064b606083018762000453565b6200065a608083018662000453565b6200066960a083018562000453565b6200067860c0830184620005f6565b98975050505050505050565b60006060820190506200069b600083018662000453565b620006aa602083018562000453565b620006b96040830184620005f6565b94935050505056fe61010060405260016000553480156200001757600080fd5b5060405162003d2e38038062003d2e83398181016040528101906200003d9190620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620000a4576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200010b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000172576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620001d9576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000240576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a7576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508067ffffffffffffffff1660e08167ffffffffffffffff1681525050620003f284620003ff60201b60201c565b505050505050506200059d565b8060601b60601c905080638b78c6d819558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a350565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200046d8262000440565b9050919050565b6200047f8162000460565b81146200048b57600080fd5b50565b6000815190506200049f8162000474565b92915050565b600067ffffffffffffffff82169050919050565b620004c481620004a5565b8114620004d057600080fd5b50565b600081519050620004e481620004b9565b92915050565b600080600080600080600060e0888a0312156200050c576200050b6200043b565b5b60006200051c8a828b016200048e565b97505060206200052f8a828b016200048e565b9650506040620005428a828b016200048e565b9550506060620005558a828b016200048e565b9450506080620005688a828b016200048e565b93505060a06200057b8a828b016200048e565b92505060c06200058e8a828b01620004d3565b91505092959891949750929550565b60805160a05160c05160e05161372d620006016000396000818161135301526121a5015260008181610c620152610f6d0152600081816109590152818161143a015261155601526000818161190701528181611c820152611fea015261372d6000f3fe6080604052600436106102605760003560e01c806354d1f13d116101445780639124aafb116100b6578063e521136f1161007a578063e521136f146107fa578063f04e283e14610823578063f2fde38b1461083f578063f5e45d4d1461085b578063f7f8ff7a14610884578063fee81cf4146108af57610267565b80639124aafb146107455780639fdb5e8a14610761578063ba45b0b81461078c578063bca2da78146107b5578063dc04d8f4146107de57610267565b80636c196886116101085780636c196886146106665780636ea056a914610691578063715018a6146106ba57806379de7638146106c45780637bfafd59146106ef5780638da5cb5b1461071a57610267565b806354d1f13d146105b057806354fd4d50146105ba578063565a2e2c146105e55780635f097d751461061057806367db90c21461063b57610267565b806324ae6a27116101dd578063353efdcf116101a1578063353efdcf146104bf578063377b2c34146104ea5780633a6a4d2e146105155780633e5b34b21461052c5780634a4ee7b114610557578063514e62fc1461057357610267565b806324ae6a271461040d57806325692962146104365780632d7fd507146104405780632de94807146104575780633332c3241461049457610267565b8063183a4f6e11610224578063183a4f6e146103535780631c10893f1461036f5780631c31f7101461038b5780631cd64df4146103b457806322895118146103f157610267565b806303615ba31461026c578063043edae8146102a957806306dbd0cb146102d45780630da58dbb146102ff57806317f333401461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061298c565b6108ec565b6040516102a091906129d2565b60405180910390f35b3480156102b557600080fd5b506102be610935565b6040516102cb9190612a18565b60405180910390f35b3480156102e057600080fd5b506102e9610957565b6040516102f69190612a42565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061298c565b61097b565b005b34801561033457600080fd5b5061033d610ae8565b60405161034a9190612a42565b60405180910390f35b61036d60048036038101906103689190612a89565b610b0e565b005b61038960048036038101906103849190612ab6565b610b1a565b005b34801561039757600080fd5b506103b260048036038101906103ad919061298c565b610b28565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612ab6565b610c21565b6040516103e89190612b11565b60405180910390f35b61040b60048036038101906104069190612bc7565b610c35565b005b34801561041957600080fd5b50610434600480360381019061042f9190612c90565b610d3e565b005b61043e610e5d565b005b34801561044c57600080fd5b50610455610e67565b005b34801561046357600080fd5b5061047e6004803603810190610479919061298c565b610ec8565b60405161048b91906129d2565b60405180910390f35b3480156104a057600080fd5b506104a9610eda565b6040516104b691906129d2565b60405180910390f35b3480156104cb57600080fd5b506104d4610edf565b6040516104e191906129d2565b60405180910390f35b3480156104f657600080fd5b506104ff610ee4565b60405161050c9190612a42565b60405180910390f35b34801561052157600080fd5b5061052a610f0a565b005b34801561053857600080fd5b50610541610f6b565b60405161054e9190612a42565b60405180910390f35b610571600480360381019061056c9190612ab6565b610f8f565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612ab6565b610f9d565b6040516105a79190612b11565b60405180910390f35b6105b8610fb1565b005b3480156105c657600080fd5b506105cf610fbb565b6040516105dc9190612d60565b60405180910390f35b3480156105f157600080fd5b506105fa610ff8565b6040516106079190612a42565b60405180910390f35b34801561061c57600080fd5b50610625611022565b60405161063291906129d2565b60405180910390f35b34801561064757600080fd5b50610650611028565b60405161065d91906129d2565b60405180910390f35b34801561067257600080fd5b5061067b61102d565b60405161068891906129d2565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612ab6565b611032565b005b6106c2611342565b005b3480156106d057600080fd5b506106d961134c565b6040516106e691906129d2565b60405180910390f35b3480156106fb57600080fd5b50610704611351565b6040516107119190612da5565b60405180910390f35b34801561072657600080fd5b5061072f611375565b60405161073c9190612a42565b60405180910390f35b61075f600480360381019061075a9190612e6c565b611384565b005b34801561076d57600080fd5b506107766116e8565b60405161078391906129d2565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190612c90565b6116ed565b005b3480156107c157600080fd5b506107dc60048036038101906107d79190612a89565b611846565b005b6107f860048036038101906107f39190612f69565b6118a8565b005b34801561080657600080fd5b50610821600480360381019061081c919061298c565b611e4f565b005b61083d6004803603810190610838919061298c565b611f48565b005b6108596004803603810190610854919061298c565b611f54565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ab6565b611f60565b005b34801561089057600080fd5b50610899611fe8565b6040516108a69190612a42565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d1919061298c565b61200c565b6040516108e391906129d2565b60405180910390f35b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a90046fffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081036109cd5750610ae5565b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a95818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fcbfdaa15c344a7a5b846b2199db1ca289c82041c65048ce19264f9fdd8cee27482604051610adb91906129d2565b60405180910390a2505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b178161203e565b50565b610b24828261204b565b5050565b6004610b3381612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b99576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a25050565b6000610c2d8383612098565b905092915050565b6020610c4081612061565b600060035490503460036000828254610c59919061300c565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166322895118348b8b8b8b8b8b8b6040518963ffffffff1660e01b8152600401610cc6979695949392919061309c565b6000604051808303818588803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50505050507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf860035482604051610d2b9291906130fc565b60405180910390a1505050505050505050565b6008610d4981612061565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d849190612a42565b602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061313a565b9050610df283828673ffffffffffffffffffffffffffffffffffffffff166120af9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f02dc46f45168b3833fa84aa22ee90f4ffec812cf1067be0413353eb95c031b0583604051610e4f91906129d2565b60405180910390a350505050565b610e656120fe565b565b600160005414610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906131b3565b60405180910390fd5b6002600081905550610ebe6001612152565b6001600081905550565b6000610ed3826123f0565b9050919050565b600481565b602081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160005414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906131b3565b60405180910390fd5b6002600081905550610f616000612152565b6001600081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f99828261240b565b5050565b6000610fa98383612421565b905092915050565b610fb9612439565b565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600181565b600281565b600160005414611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e906131b3565b60405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e6576110e2612475565b8290505b60008083146110f55782611158565b60056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156111f5576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112c091906131d3565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff167fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969660405160405180910390a3611334818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b505060016000819055505050565b61134a612492565b565b601081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061137f6124a6565b905090565b600161138f81612061565b6001600054146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb906131b3565b60405180910390fd5b600260008190555084849050878790501461141b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61143334888890508561142e9190613207565b6124b4565b600061145f7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b898990508110156116c9576114e08a8a8381811061148657611485613249565b5b90506020028101906114989190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a838181106114f5576114f4613249565b5b90506020028101906115079190613287565b8a8a8581811061151a57611519613249565b5b905060200201602081019061152f9190613316565b604051602001611541939291906133a9565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16858360405161159a919061340f565b60006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b5050905080611617576040517fd3d2fd8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8484611623919061300c565b9350848a8a8581811061163957611638613249565b5b905060200201602081019061164e9190613316565b67ffffffffffffffff167f19cd6ffa1afc5a20b44dd0fea708b8fb38af1d7891d4929811a3c65ff1624fb98e8e8781811061168c5761168b613249565b5b905060200281019061169e9190613287565b6040516116ac929190613426565b60405180910390a3505080806116c19061344a565b915050611465565b506116d5348286612625565b5050600160008190555050505050505050565b600881565b6116f5612475565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a26117e881611f54565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa1c3c7ba08cdab9542dfbb1f9606093e828bca6c2678c82942703ec4e223790260405160405180910390a35050565b600461185181612061565b6003548203156118a45760006003549050826003819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8838260405161189a9291906130fc565b60405180910390a1505b5050565b60026118b381612061565b6001600054146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906131b3565b60405180910390fd5b6002600081905550600061192c7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b87879050811015611a4357600088888381811061195257611951613249565b5b90506020028101906119649190613492565b806000019061197391906134ba565b905014806119b65750603f88888381811061199157611990613249565b5b90506020028101906119a39190613492565b80600001906119b291906134ba565b9050115b156119ed576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b878782818110611a00576119ff613249565b5b9050602002810190611a129190613492565b8060000190611a2191906134ba565b905082611a2e919061300c565b91508080611a3b9061344a565b915050611932565b5060008183611a529190613207565b9050611a5e34826124b4565b60005b88889050811015611e3157611aeb898983818110611a8257611a81613249565b5b9050602002810190611a949190613492565b8060200190611aa39190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60005b898983818110611b0157611b00613249565b5b9050602002810190611b139190613492565b8060000190611b2291906134ba565b9050811015611e1d57611bcd8a8a84818110611b4157611b40613249565b5b9050602002810190611b539190613492565b8060000190611b6291906134ba565b83818110611b7357611b72613249565b5b9050602002810190611b859190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a84818110611be257611be1613249565b5b9050602002810190611bf49190613492565b8060000190611c0391906134ba565b83818110611c1457611c13613249565b5b9050602002810190611c269190613287565b8c8c86818110611c3957611c38613249565b5b9050602002810190611c4b9190613492565b8060200190611c5a9190613287565b604051602001611c6d949392919061351d565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168783604051611cc6919061340f565b60006040518083038185875af1925050503d8060008114611d03576040519150601f19603f3d011682016040523d82523d6000602084013e611d08565b606091505b5050905080611d43576040517f1684b73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f70327b6e1280f8015a284fca27cbbef10ac24c017f6452ff98212167813459d88d8d87818110611d7857611d77613249565b5b9050602002810190611d8a9190613492565b8060000190611d9991906134ba565b86818110611daa57611da9613249565b5b9050602002810190611dbc9190613287565b8f8f89818110611dcf57611dce613249565b5b9050602002810190611de19190613492565b8060200190611df09190613287565b604051611e009493929190613545565b60405180910390a250508080611e159061344a565b915050611aee565b508080611e299061344a565b915050611a61565b50611e3d348287612625565b50505060016000819055505050505050565b6010611e5a81612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ec0576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fab0699d690a6fcb85f70e4d28ee4c6114c3d90c12c579ca5abe089b8ff6ff1bf60405160405180910390a25050565b611f5181612700565b50565b611f5d81612741565b50565b600160005414611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c906131b3565b60405180910390fd5b60026000819055506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906135cc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60006120178261276b565b9050919050565b60005a60005a84865af161203a5763b12d13eb6000526004601cfd5b5050565b6120483382612786565b50565b612053612475565b61205d8282612796565b5050565b638b78c6d81954331461209557638b78c6d8600c5233600052806020600c205416612094576382b429006000526004601cfd5b5b50565b600081826120a585610ec8565b1614905092915050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166120f4576390b8ec186000526004601cfd5b6000603452505050565b60006121086127a6565b67ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60004790506000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690506000818361219a91906131d3565b90506000633b9aca007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166121d89190613207565b90506000808284101580156121ef57506000600354115b156122185760035484111561220f57600354915060035484039050612213565b8391505b61221c565b8390505b6fffffffffffffffffffffffffffffffff8016841115612268576040517f502cbcb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211156122e557816fffffffffffffffffffffffffffffffff166003600082825461229591906131d3565b925050819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8600354836003546122ce919061300c565b6040516122dc9291906130fc565b60405180910390a15b600187036123525760008211806122fc5750600081115b156123515780828661230e919061300c565b612318919061300c565b600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b61237f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683896127b1565b6123ac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682896127b1565b7f8b367b31582d5c638694615c1cfc77ffcf9febcf6e6c793358089f7769cfeee68282896040516123df939291906135ec565b60405180910390a150505050505050565b6000638b78c6d8600c52816000526020600c20549050919050565b612413612475565b61241d8282612786565b5050565b6000808261242e85610ec8565b161415905092915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b638b78c6d819543314612490576382b429006000526004601cfd5b565b61249a612475565b6124a4600061288c565b565b6000638b78c6d81954905090565b808210156124ee576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1660405161251a90613649565b600060405180830381855afa9150503d8060008114612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b509150915081612596576040517f448e5c4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806125a090613690565b60001c9250838311156125df576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6030815114612622576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b818311156126fb5760008173ffffffffffffffffffffffffffffffffffffffff16838561265291906131d3565b60405161265e90613649565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50509050806126f95782846126b591906131d3565b8273ffffffffffffffffffffffffffffffffffffffff167fff295b6ae91fb82f39d5bb544f1e62ce33f6978255b7c7434f8137bdf107f6d960405160405180910390a35b505b505050565b612708612475565b63389a75e1600c52806000526020600c20805442111561273057636f5e88186000526004601cfd5b600081555061273e8161288c565b50565b612749612475565b8060601b61275f57637448fbae6000526004601cfd5b6127688161288c565b50565b600063389a75e1600c52816000526020600c20549050919050565b612792828260006128ca565b5050565b6127a2828260016128ca565b5050565b60006202a300905090565b6000821115612887576001810361281d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612811919061300c565b92505081905550612886565b600081036128535761284e828473ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b612885565b6040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b505050565b638b78c6d8198160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a38181555050565b638b78c6d8600c52826000526020600c208054838117836128ed57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129598261292e565b9050919050565b6129698161294e565b811461297457600080fd5b50565b60008135905061298681612960565b92915050565b6000602082840312156129a2576129a1612924565b5b60006129b084828501612977565b91505092915050565b6000819050919050565b6129cc816129b9565b82525050565b60006020820190506129e760008301846129c3565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a12816129ed565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c8161294e565b82525050565b6000602082019050612a576000830184612a33565b92915050565b612a66816129b9565b8114612a7157600080fd5b50565b600081359050612a8381612a5d565b92915050565b600060208284031215612a9f57612a9e612924565b5b6000612aad84828501612a74565b91505092915050565b60008060408385031215612acd57612acc612924565b5b6000612adb85828601612977565b9250506020612aec85828601612a74565b9150509250929050565b60008115159050919050565b612b0b81612af6565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612b5157612b50612b2c565b5b8235905067ffffffffffffffff811115612b6e57612b6d612b31565b5b602083019150836001820283011115612b8a57612b89612b36565b5b9250929050565b6000819050919050565b612ba481612b91565b8114612baf57600080fd5b50565b600081359050612bc181612b9b565b92915050565b60008060008060008060006080888a031215612be657612be5612924565b5b600088013567ffffffffffffffff811115612c0457612c03612929565b5b612c108a828b01612b3b565b9750975050602088013567ffffffffffffffff811115612c3357612c32612929565b5b612c3f8a828b01612b3b565b9550955050604088013567ffffffffffffffff811115612c6257612c61612929565b5b612c6e8a828b01612b3b565b93509350506060612c818a828b01612bb2565b91505092959891949750929550565b60008060408385031215612ca757612ca6612924565b5b6000612cb585828601612977565b9250506020612cc685828601612977565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0a578082015181840152602081019050612cef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3282612cd0565b612d3c8185612cdb565b9350612d4c818560208601612cec565b612d5581612d16565b840191505092915050565b60006020820190508181036000830152612d7a8184612d27565b905092915050565b600067ffffffffffffffff82169050919050565b612d9f81612d82565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008083601f840112612dd657612dd5612b2c565b5b8235905067ffffffffffffffff811115612df357612df2612b31565b5b602083019150836020820283011115612e0f57612e0e612b36565b5b9250929050565b60008083601f840112612e2c57612e2b612b2c565b5b8235905067ffffffffffffffff811115612e4957612e48612b31565b5b602083019150836020820283011115612e6557612e64612b36565b5b9250929050565b60008060008060008060808789031215612e8957612e88612924565b5b600087013567ffffffffffffffff811115612ea757612ea6612929565b5b612eb389828a01612dc0565b9650965050602087013567ffffffffffffffff811115612ed657612ed5612929565b5b612ee289828a01612e16565b94509450506040612ef589828a01612a74565b9250506060612f0689828a01612977565b9150509295509295509295565b60008083601f840112612f2957612f28612b2c565b5b8235905067ffffffffffffffff811115612f4657612f45612b31565b5b602083019150836020820283011115612f6257612f61612b36565b5b9250929050565b60008060008060608587031215612f8357612f82612924565b5b600085013567ffffffffffffffff811115612fa157612fa0612929565b5b612fad87828801612f13565b94509450506020612fc087828801612a74565b9250506040612fd187828801612977565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613017826129b9565b9150613022836129b9565b925082820190508082111561303a57613039612fdd565b5b92915050565b600082825260208201905092915050565b82818337600083830152505050565b600061306c8385613040565b9350613079838584613051565b61308283612d16565b840190509392505050565b61309681612b91565b82525050565b600060808201905081810360008301526130b781898b613060565b905081810360208301526130cc818789613060565b905081810360408301526130e1818587613060565b90506130f0606083018461308d565b98975050505050505050565b600060408201905061311160008301856129c3565b61311e60208301846129c3565b9392505050565b60008151905061313481612a5d565b92915050565b6000602082840312156131505761314f612924565b5b600061315e84828501613125565b91505092915050565b7f5245454e5452414e435900000000000000000000000000000000000000000000600082015250565b600061319d600a83612cdb565b91506131a882613167565b602082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b60006131de826129b9565b91506131e9836129b9565b925082820390508181111561320157613200612fdd565b5b92915050565b6000613212826129b9565b915061321d836129b9565b925082820261322b816129b9565b9150828204841483151761324257613241612fdd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126132a4576132a3613278565b5b80840192508235915067ffffffffffffffff8211156132c6576132c561327d565b5b6020830192506001820236038313156132e2576132e1613282565b5b509250929050565b6132f381612d82565b81146132fe57600080fd5b50565b600081359050613310816132ea565b92915050565b60006020828403121561332c5761332b612924565b5b600061333a84828501613301565b91505092915050565b600081905092915050565b600061335a8385613343565b9350613367838584613051565b82840190509392505050565b60008160c01b9050919050565b600061338b82613373565b9050919050565b6133a361339e82612d82565b613380565b82525050565b60006133b682858761334e565b91506133c28284613392565b600882019150819050949350505050565b600081519050919050565b60006133e9826133d3565b6133f38185613343565b9350613403818560208601612cec565b80840191505092915050565b600061341b82846133de565b915081905092915050565b60006020820190508181036000830152613441818486613060565b90509392505050565b6000613455826129b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361348757613486612fdd565b5b600182019050919050565b6000823560016040038336030381126134ae576134ad613278565b5b80830191505092915050565b600080833560016020038436030381126134d7576134d6613278565b5b80840192508235915067ffffffffffffffff8211156134f9576134f861327d565b5b60208301925060208202360383131561351557613514613282565b5b509250929050565b600061352a82868861334e565b915061353782848661334e565b915081905095945050505050565b60006040820190508181036000830152613560818688613060565b90508181036020830152613575818486613060565b905095945050505050565b7f4e6f7420696d706c656d656e7465640000000000000000000000000000000000600082015250565b60006135b6600f83612cdb565b91506135c182613580565b602082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b600060608201905061360160008301866129c3565b61360e60208301856129c3565b61361b60408301846129c3565b949350505050565b50565b6000613633600083613343565b915061363e82613623565b600082019050919050565b600061365482613626565b9150819050919050565b6000819050602082019050919050565b600061367a8251612b91565b80915050919050565b600082821b905092915050565b600061369b826133d3565b826136a58461365e565b90506136b08161366e565b925060208210156136f0576136eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613683565b831692505b505091905056fea26469706673582212205b83464c8159b4a300316c2a0b8a5da2e7cc180d9e2495b4c3be8d1a402389a864736f6c63430008130033a2646970667358221220aea92119bec81712bf6fc14aab2158d1db00f01c70decc4c8ae0f54e5391b91364736f6c63430008130033";
301
294
  var HOODI_WAREHOUSE_BYTECODE = "0x60806040526004361015610011575f80fd5b5f3560e01c8062ad800c14611aa7578062fdd58e14611a3857806301ffc9a7146119485780630647ee20146118ce578063095bcdb61461182457806310c07f2f146117b157806314925cad1461148e5780632e72102f1461139657806331f7d964146111ff5780633644e515146113565780633f26479e1461131b5780633f47e662146112d45780633fcbd4d114611265578063426a84931461124b57806348eebe45146111ff5780634e41a1fb146111aa578063558a729714611155578063598af9e714611103578063676ae78f14611067578063829ab5c114610fc95780638340f54914610f3c57806384b0196e14610e0c578063b6363cf214610d8f578063b70e36f014610d11578063d23c072414610c49578063dc393b6b14610926578063e088902914610550578063f46d86e2146104f8578063f940e385146103085763fe99049a14610161575f80fd5b346103045760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610198611b48565b6101a0611b6b565b90604435917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596102556064359373ffffffffffffffffffffffffffffffffffffffff8091169384331415806102e4575b610263575b845f52600160205260405f20875f5260205260405f20610216878254611fe8565b90551693845f52600160205260405f20865f5260205260405f2061023b828254611ff5565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b845f5260206002815260405f20335f52815260405f20885f52815260405f2054877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036102b4575b5050506101f5565b6102bd91611fe8565b90865f526002815260405f20335f52815260405f2090895f525260405f20555f80876102ac565b50845f525f60205260405f20335f5260205260ff60405f205416156101f0565b5f80fd5b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045761033f611b48565b610347611b6b565b73ffffffffffffffffffffffffffffffffffffffff8083169081331415806104ee575b6104a5575b815f52600160205260405f20921691825f5260205260405f2054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840193841161047857815f52600160205260405f20835f5260205260405f206103d5858254611fe8565b9055604080513381526020810186905284915f9185917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885991a48373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee840361046957610435915082612c9c565b6040519283525f60208401527ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60403394a4005b6104739184612c06565b610435565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b815f52600660205260ff60405f205460101c161561036f57602482604051907fc7f7362e0000000000000000000000000000000000000000000000000000000082526004820152fd5b508132141561036a565b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045760206040517f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f8152f35b346103045760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610587611b48565b67ffffffffffffffff602435818111610304576105a8903690600401611d17565b9092604435838111610304576105c2903690600401611d17565b93909273ffffffffffffffffffffffffffffffffffffffff6064351660643503610304578481036108fc5773ffffffffffffffffffffffffffffffffffffffff83165f52600660205260405f2091604051926040840191848310908311176108cf5760ff916040525461ffff8116845260101c161515806020840152610888575f5b81811061064d57005b610658818787612002565b359061ffff845116828181020481148315171561047857600192620f424061068961068485888e612002565b61203f565b92610743610698868d8d612002565b3573ffffffffffffffffffffffffffffffffffffffff8b165f528760205260405f2073ffffffffffffffffffffffffffffffffffffffff87165f5260205260405f206106e5828254611fe8565b9055604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff888116925f92918f16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599190a4838386020490611fe8565b9273ffffffffffffffffffffffffffffffffffffffff851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee03610836576107958473ffffffffffffffffffffffffffffffffffffffff8c16612c9c565b828282020461080b575b6040519384520204602082015273ffffffffffffffffffffffffffffffffffffffff80606435169216907ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db604073ffffffffffffffffffffffffffffffffffffffff8a1692a401610644565b610831838383020473ffffffffffffffffffffffffffffffffffffffff60643516612c9c565b61079f565b610857848b73ffffffffffffffffffffffffffffffffffffffff8816612c06565b82828202041561079f57610831838383020460643573ffffffffffffffffffffffffffffffffffffffff8816612c06565b60248373ffffffffffffffffffffffffffffffffffffffff604051917fc7f7362e000000000000000000000000000000000000000000000000000000008352166004820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b3461030457610100807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045761095f611b48565b610967611b6b565b61096f611be3565b606435906084359260a4359560c4359065ffffffffffff82168092036103045760e43567ffffffffffffffff8111610304576109af903690600401611cd1565b6109b98989612245565b604051986109c68a611c1e565b5f8a52834211610c185789516020809b012093604051908b8201927f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f8452604083015f905273ffffffffffffffffffffffffffffffffffffffff96878d1696876060860152888a1660808601528a151560a08601528b60c08601528c60e086015284015f905261012084015261014083015261016090818301528152610a6b81611c01565b519020610a76612466565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201526042902091610ab78284612db3565b6005819692961015610beb57159485610bdf575b5050508215610b1a575b505015610af057610ae59461296f565b505060405160018152f35b60046040517f815e1d64000000000000000000000000000000000000000000000000000000008152fd5b5f9192508190604051610b9581610b698d8201947f1626ba7e00000000000000000000000000000000000000000000000000000000988987526024840152604060448401526064830190611b05565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611c56565b5190895afa90610ba3612c6d565b82610bd2575b82610bb8575b50508780610ad5565b909150878180518101031261030457870151148780610baf565b9150878251101591610ba9565b16149250898080610acb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602484604051907f3aae54290000000000000000000000000000000000000000000000000000000082526004820152fd5b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457335f52600660205260405f206004359061ffff8216809203610304578054602435801515809103610304577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000062ff0000859260101b16921617179055604051908152610ce2611bf2565b151560208201527fbc150027ce95c264ad6d257eb2f738f76ce357f3b4a68aaf2d1681ce903cb21c60403392a2005b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457600435335f52600560205260405f208160081c5f5260205260405f20600160ff83161b8154179055337f239b0d63832ec06e8082928dc583392b57a30d16e4bb425b49d82c7808e308b05f80a3005b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610dc6611b48565b610dce611b6b565b9073ffffffffffffffffffffffffffffffffffffffff8091165f525f60205260405f2091165f52602052602060ff60405f2054166040519015158152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610edf610e667f53706c69747357617265686f757365000000000000000000000000000000000f61277e565b610e8f7f76310000000000000000000000000000000000000000000000000000000000026128ad565b60405190610e9c82611c1e565b5f8252610eed6020916040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190611b05565b908582036040870152611b05565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b828110610f2557505050500390f35b835185528695509381019392810192600101610f16565b73ffffffffffffffffffffffffffffffffffffffff610f5a36611dd2565b91921673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8103610fb457348203610f8a57610f889261269c565b005b60046040517f2c5211c6000000000000000000000000000000000000000000000000000000008152fd5b610f8892610fc483303385612702565b61269c565b346103045760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457611000611b48565b611008611bf2565b9060843573ffffffffffffffffffffffffffffffffffffffff811681036103045760a4359267ffffffffffffffff84116103045761104d61105c943690600401611cd1565b926064359160443591336122da565b602060405160018152f35b61107036611d48565b929091938382036108fc5773ffffffffffffffffffffffffffffffffffffffff5f9516935f5b8381106110d157868673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81036110c357503403610f8a57005b90610f889130903390612702565b806110fd6110ed6110e5600194868a612002565b35809a611ff5565b9888610fc4610684858a8a612002565b01611096565b346103045761111136611dd2565b9173ffffffffffffffffffffffffffffffffffffffff8091165f52600260205260405f2091165f5260205260405f20905f52602052602060405f2054604051908152f35b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045760206111a0611191611b48565b611199611bf2565b903361260c565b6040519015158152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576111fb6111e760043561211a565b604051918291602083526020830190611b05565b0390f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457602060405173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8152f35b346103045760206111a061125e36611b8e565b913361259e565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff6112b1611b48565b165f52600560205260405f206024355f52602052602060405f2054604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020611310600435612060565b60ff60405191168152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020604051620f42408152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457602061138e612466565b604051908152f35b34610304576113a436611d48565b93918484036108fc57939291905f9473ffffffffffffffffffffffffffffffffffffffff809116945f945b8086106113fd578787335f52600160205260405f20905f526020526113f960405f20918254611fe8565b9055005b9091929394966114826001916114176106848b868b612002565b9089876114258d898c612002565b359316805f52602086815260405f2090835f525260405f20611448858254611ff5565b9055604080513380825260208201879052917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885991a4611ff5565b970194939291906113cf565b34610304576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576114c6611b48565b6114ce611b6b565b6114d6611be3565b73ffffffffffffffffffffffffffffffffffffffff60a4351660a435036103045767ffffffffffffffff9160c43583811161030457611519903690600401611cd1565b92610104359065ffffffffffff82168203610304576101243590811161030457611547903690600401611cd1565b61155360e43587612245565b65ffffffffffff82164211611778576042855160208701209260405160208101917f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f83526001604083015273ffffffffffffffffffffffffffffffffffffffff8a169586606084015273ffffffffffffffffffffffffffffffffffffffff8816608084015288151560a084015260643560c084015260843560e084015273ffffffffffffffffffffffffffffffffffffffff60a4351661010084015261012083015260e43561014083015265ffffffffffff610160911681830152815261163981611c01565b519020611644612466565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015220906116828183612db3565b6005819592951015610beb57159384611758575b505082156116bb575b505015610af05761105c9360a4359260843592606435926122da565b5f919250819060405161170b81610b6960208201947f1626ba7e00000000000000000000000000000000000000000000000000000000988987526024840152604060448401526064830190611b05565b5190885afa90611719612c6d565b8261174a575b8261172e575b5050858061169f565b9091506020818051810103126103045760200151148580611725565b91506020825110159161171f565b73ffffffffffffffffffffffffffffffffffffffff161492508780611696565b60248265ffffffffffff604051917f3aae5429000000000000000000000000000000000000000000000000000000008352166004820152fd5b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff6117fd611b48565b165f5260066020526040805f205460ff82519161ffff8116835260101c1615156020820152f35b346103045773ffffffffffffffffffffffffffffffffffffffff61184736611b8e565b91929092335f52600160205260405f20845f5260205260405f2061186c848254611fe8565b90551690815f52600160205260405f20835f5260205260405f20611891828254611ff5565b9055604080513380825260208201939093527f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599181908101610255565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020600160ff61190b611b48565b73ffffffffffffffffffffffffffffffffffffffff60243591165f526005845260405f208160081c5f528452161b60405f20541615604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361030457807f0f632fb30000000000000000000000000000000000000000000000000000000060209214908115611a0e575b81156119e4575b506040519015158152f35b7f4a31d20700000000000000000000000000000000000000000000000000000000915014826119d9565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506119d2565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff611a84611b48565b165f52600160205260405f206024355f52602052602060405f2054604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576111fb6111e7600435611ed7565b5f5b838110611af55750505f910152565b8181015183820152602001611ae6565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611b4181518092818752878088019101611ae4565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361030457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361030457565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103045760043573ffffffffffffffffffffffffffffffffffffffff8116810361030457906024359060443590565b60443590811515820361030457565b60243590811515820361030457565b610180810190811067ffffffffffffffff8211176108cf57604052565b6020810190811067ffffffffffffffff8211176108cf57604052565b6040810190811067ffffffffffffffff8211176108cf57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108cf57604052565b67ffffffffffffffff81116108cf57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561030457803590611ce882611c97565b92611cf66040519485611c56565b8284526020838301011161030457815f926020809301838601378301015290565b9181601f840112156103045782359167ffffffffffffffff8311610304576020808501948460051b01011161030457565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103045767ffffffffffffffff906004358281116103045781611d9391600401611d17565b9390939260243573ffffffffffffffffffffffffffffffffffffffff81168103610304579260443591821161030457611dce91600401611d17565b9091565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103045773ffffffffffffffffffffffffffffffffffffffff90600435828116810361030457916024359081168103610304579060443590565b6020818303126103045780519067ffffffffffffffff8211610304570181601f82011215610304578051611e6581611c97565b92611e736040519485611c56565b8184526020828401011161030457611e919160208085019101611ae4565b90565b6020611ed5919392936040519481611eb58793518092868087019101611ae4565b8201611ec982518093868085019101611ae4565b01038085520183611c56565b565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8114611fbe576004905f73ffffffffffffffffffffffffffffffffffffffff611f4a60405193611f1b85611c3a565b600f85527f53706c69747320577261707065642000000000000000000000000000000000006020860152612aaa565b16604051938480927f06fdde030000000000000000000000000000000000000000000000000000000082525afa908115611fb357611e91925f92611f8f575b50611e94565b611fac9192503d805f833e611fa48183611c56565b810190611e32565b905f611f89565b6040513d5f823e3d90fd5b50611e917f53706c69747320577261707065642045746865720000000000000000000000146121f7565b9190820391821161047857565b9190820180921161047857565b91908110156120125760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff811681036103045790565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811461211457602073ffffffffffffffffffffffffffffffffffffffff61209d600493612aaa565b16604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115611fb3575f916120db575090565b90506020813d60201161210c575b816120f660209383611c56565b81010312610304575160ff811681036103045790565b3d91506120e9565b50601290565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81146121d1576004905f73ffffffffffffffffffffffffffffffffffffffff61218d6040519361215e85611c3a565b600685527f73706c69747300000000000000000000000000000000000000000000000000006020860152612aaa565b16604051938480927f95d89b410000000000000000000000000000000000000000000000000000000082525afa908115611fb357611e91925f92611f8f5750611e94565b50611e917f73706c69747345544800000000000000000000000000000000000000000000095b60ff811690601f821161221b576040519161221183611c3a565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff600160ff84161b911690815f52600560205260405f208360081c5f5260205260405f208181541880915516156122b0577f239b0d63832ec06e8082928dc583392b57a30d16e4bb425b49d82c7808e308b05f80a3565b60046040517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b612366602082989795949396976122f48987878b8861296f565b9790995f73ffffffffffffffffffffffffffffffffffffffff604051809781968295847fb74de3da000000000000000000000000000000000000000000000000000000009c8d86521660048501528c151560248501528d6044850152606484015260a0608484015260a4830190611b05565b0393165af18015611fb3575f906123eb575b7fffffffff00000000000000000000000000000000000000000000000000000000915016036123c157156123b45750506123b19261260c565b50565b919092506123b19361259e565b60046040517f578b0306000000000000000000000000000000000000000000000000000000008152fd5b506020813d60201161245e575b8161240560209383611c56565b8101031261030457517fffffffff0000000000000000000000000000000000000000000000000000000081168103610304577fffffffff0000000000000000000000000000000000000000000000000000000090612378565b3d91506123f8565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008fb66f38cf86a3d5e8768f8f1754a24a6c661fb816301480612575575b156124ce577fb0c5ec167a46b474387d254af1fd88b6613ba712decfdb698acc78fc2211fda090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527fcbb4ec162d38f6df0314120199cbe3d402052c2b8c5677f9b26ba737e4ad0b8d60408201527f0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d21760608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176108cf5760405251902090565b507f0000000000000000000000000000000000000000000000000000000000088bb046146124a5565b90919260207fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a79173ffffffffffffffffffffffffffffffffffffffff80941693845f526002835260405f20951694855f52825260405f20865f5282528060405f2055604051908152a4600190565b909160207fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa2679173ffffffffffffffffffffffffffffffffffffffff80941693845f525f835260405f20951694855f52825260405f20901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3600190565b7f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596126fd73ffffffffffffffffffffffffffffffffffffffff5f9395949516938484526001602052604084208685526020526040842061023b828254611ff5565b0390a4565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176108cf57611ed592604052612adf565b60ff811461278f57611e91906121f7565b506040515f600354906001908260011c600184169283156128a3575b602094858310851461287657828752869490811561283757506001146127da575b5050611e9192500382611c56565b9093915060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f915b81831061281f575050611e9193508201015f806127cc565b85548784018501529485019486945091830191612807565b9050611e919593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f806127cc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b90607f16906127ab565b60ff81146128be57611e91906121f7565b506040515f600454906001908260011c60018416928315612965575b60209485831085146128765782875286949081156128375750600114612908575050611e9192500382611c56565b9093915060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b935f915b81831061294d575050611e9193508201015f806127cc565b85548784018501529485019486945091830191612935565b90607f16906128da565b9492939091935f80955f14612a6357501590811591612a59575b50612a2f5773ffffffffffffffffffffffffffffffffffffffff80941693845f525f60205260405f20911690815f5260205260ff60405f20541693805f525f60205260405f20825f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602060405160018152a3565b60046040517fc6fc3b8a000000000000000000000000000000000000000000000000000000008152fd5b905015155f612989565b9594506123b19273ffffffffffffffffffffffffffffffffffffffff8087165f52600260205260405f209082165f5260205260405f20825f5260205260405f20549561259e565b8060a01c612ab55790565b60046040517f35278d12000000000000000000000000000000000000000000000000000000008152fd5b604051612b499173ffffffffffffffffffffffffffffffffffffffff16612b0582611c3a565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1612b43612c6d565b91612e6c565b8051828115918215612be6575b5050905015612b625750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b83809293500103126103045781015180151581036103045780825f612b56565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff929092166024830152604480830193909352918152611ed591612c68606483611c56565b612adf565b3d15612c97573d90612c7e82611c97565b91612c8c6040519384611c56565b82523d5f602084013e565b606090565b814710612d55575f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1612cc9612c6d565b5015612cd157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152fd5b9060418151145f14612ddb57611dce91602082015190606060408401519301515f1a90612de4565b50505f90600290565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e61576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15611fb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612e5957905f90565b505f90600190565b505050505f90600390565b91929015612ee75750815115612e80575090565b3b15612e895790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015612efa5750805190602001fd5b612f38906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b05565b0390fdfea264697066735822122044605f36cd509b52f51e0b7e4bf7df4fd8f23b37a10d536036d532c76204192964736f6c63430008170033";
302
295
  var MAINNET_OVM_FACTORY_BYTECODE = "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806306dbd0cb14620000575780633e5b34b21462000079578063cdba577d146200009b578063f7f8ff7a14620000d1575b600080fd5b62000061620000f3565b60405162000070919062000464565b60405180910390f35b6200008362000117565b60405162000092919062000464565b60405180910390f35b620000b96004803603810190620000b39190620004fc565b6200013b565b604051620000c89190620005d9565b60405180910390f35b620000db620003ed565b604051620000ea919062000464565b60405180910390f35b7f00000000000000000000000000000961ef480eb55e80d19ad83579a64c00700281565b7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f22adafa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200020b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000243576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008267ffffffffffffffff160362000288576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6501dcd65000008267ffffffffffffffff161115620002d3576040517f12f9b82600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a5900072517f00000000000000000000000000000961ef480eb55e80d19ad83579a64c0070027f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa87878787604051620003489062000411565b6200035a979695949392919062000607565b604051809103906000f08015801562000377573d6000803e3d6000fd5b5090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5f69e7dce622f5df4a1899cf39ca6eb1216397f2c07206d2ef33aebf960827a3868686604051620003dd9392919062000684565b60405180910390a3949350505050565b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a59000725181565b613d2e80620006c283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200044c826200041f565b9050919050565b6200045e816200043f565b82525050565b60006020820190506200047b600083018462000453565b92915050565b600080fd5b62000491816200043f565b81146200049d57600080fd5b50565b600081359050620004b18162000486565b92915050565b600067ffffffffffffffff82169050919050565b620004d681620004b7565b8114620004e257600080fd5b50565b600081359050620004f681620004cb565b92915050565b6000806000806080858703121562000519576200051862000481565b5b60006200052987828801620004a0565b94505060206200053c87828801620004a0565b93505060406200054f87828801620004a0565b92505060606200056287828801620004e5565b91505092959194509250565b6000819050919050565b600062000599620005936200058d846200041f565b6200056e565b6200041f565b9050919050565b6000620005ad8262000578565b9050919050565b6000620005c182620005a0565b9050919050565b620005d381620005b4565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b6200060181620004b7565b82525050565b600060e0820190506200061e600083018a62000453565b6200062d602083018962000453565b6200063c604083018862000453565b6200064b606083018762000453565b6200065a608083018662000453565b6200066960a083018562000453565b6200067860c0830184620005f6565b98975050505050505050565b60006060820190506200069b600083018662000453565b620006aa602083018562000453565b620006b96040830184620005f6565b94935050505056fe61010060405260016000553480156200001757600080fd5b5060405162003d2e38038062003d2e83398181016040528101906200003d9190620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620000a4576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200010b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000172576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620001d9576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000240576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a7576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508067ffffffffffffffff1660e08167ffffffffffffffff1681525050620003f284620003ff60201b60201c565b505050505050506200059d565b8060601b60601c905080638b78c6d819558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a350565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200046d8262000440565b9050919050565b6200047f8162000460565b81146200048b57600080fd5b50565b6000815190506200049f8162000474565b92915050565b600067ffffffffffffffff82169050919050565b620004c481620004a5565b8114620004d057600080fd5b50565b600081519050620004e481620004b9565b92915050565b600080600080600080600060e0888a0312156200050c576200050b6200043b565b5b60006200051c8a828b016200048e565b97505060206200052f8a828b016200048e565b9650506040620005428a828b016200048e565b9550506060620005558a828b016200048e565b9450506080620005688a828b016200048e565b93505060a06200057b8a828b016200048e565b92505060c06200058e8a828b01620004d3565b91505092959891949750929550565b60805160a05160c05160e05161372d620006016000396000818161135301526121a5015260008181610c620152610f6d0152600081816109590152818161143a015261155601526000818161190701528181611c820152611fea015261372d6000f3fe6080604052600436106102605760003560e01c806354d1f13d116101445780639124aafb116100b6578063e521136f1161007a578063e521136f146107fa578063f04e283e14610823578063f2fde38b1461083f578063f5e45d4d1461085b578063f7f8ff7a14610884578063fee81cf4146108af57610267565b80639124aafb146107455780639fdb5e8a14610761578063ba45b0b81461078c578063bca2da78146107b5578063dc04d8f4146107de57610267565b80636c196886116101085780636c196886146106665780636ea056a914610691578063715018a6146106ba57806379de7638146106c45780637bfafd59146106ef5780638da5cb5b1461071a57610267565b806354d1f13d146105b057806354fd4d50146105ba578063565a2e2c146105e55780635f097d751461061057806367db90c21461063b57610267565b806324ae6a27116101dd578063353efdcf116101a1578063353efdcf146104bf578063377b2c34146104ea5780633a6a4d2e146105155780633e5b34b21461052c5780634a4ee7b114610557578063514e62fc1461057357610267565b806324ae6a271461040d57806325692962146104365780632d7fd507146104405780632de94807146104575780633332c3241461049457610267565b8063183a4f6e11610224578063183a4f6e146103535780631c10893f1461036f5780631c31f7101461038b5780631cd64df4146103b457806322895118146103f157610267565b806303615ba31461026c578063043edae8146102a957806306dbd0cb146102d45780630da58dbb146102ff57806317f333401461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061298c565b6108ec565b6040516102a091906129d2565b60405180910390f35b3480156102b557600080fd5b506102be610935565b6040516102cb9190612a18565b60405180910390f35b3480156102e057600080fd5b506102e9610957565b6040516102f69190612a42565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061298c565b61097b565b005b34801561033457600080fd5b5061033d610ae8565b60405161034a9190612a42565b60405180910390f35b61036d60048036038101906103689190612a89565b610b0e565b005b61038960048036038101906103849190612ab6565b610b1a565b005b34801561039757600080fd5b506103b260048036038101906103ad919061298c565b610b28565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612ab6565b610c21565b6040516103e89190612b11565b60405180910390f35b61040b60048036038101906104069190612bc7565b610c35565b005b34801561041957600080fd5b50610434600480360381019061042f9190612c90565b610d3e565b005b61043e610e5d565b005b34801561044c57600080fd5b50610455610e67565b005b34801561046357600080fd5b5061047e6004803603810190610479919061298c565b610ec8565b60405161048b91906129d2565b60405180910390f35b3480156104a057600080fd5b506104a9610eda565b6040516104b691906129d2565b60405180910390f35b3480156104cb57600080fd5b506104d4610edf565b6040516104e191906129d2565b60405180910390f35b3480156104f657600080fd5b506104ff610ee4565b60405161050c9190612a42565b60405180910390f35b34801561052157600080fd5b5061052a610f0a565b005b34801561053857600080fd5b50610541610f6b565b60405161054e9190612a42565b60405180910390f35b610571600480360381019061056c9190612ab6565b610f8f565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612ab6565b610f9d565b6040516105a79190612b11565b60405180910390f35b6105b8610fb1565b005b3480156105c657600080fd5b506105cf610fbb565b6040516105dc9190612d60565b60405180910390f35b3480156105f157600080fd5b506105fa610ff8565b6040516106079190612a42565b60405180910390f35b34801561061c57600080fd5b50610625611022565b60405161063291906129d2565b60405180910390f35b34801561064757600080fd5b50610650611028565b60405161065d91906129d2565b60405180910390f35b34801561067257600080fd5b5061067b61102d565b60405161068891906129d2565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612ab6565b611032565b005b6106c2611342565b005b3480156106d057600080fd5b506106d961134c565b6040516106e691906129d2565b60405180910390f35b3480156106fb57600080fd5b50610704611351565b6040516107119190612da5565b60405180910390f35b34801561072657600080fd5b5061072f611375565b60405161073c9190612a42565b60405180910390f35b61075f600480360381019061075a9190612e6c565b611384565b005b34801561076d57600080fd5b506107766116e8565b60405161078391906129d2565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190612c90565b6116ed565b005b3480156107c157600080fd5b506107dc60048036038101906107d79190612a89565b611846565b005b6107f860048036038101906107f39190612f69565b6118a8565b005b34801561080657600080fd5b50610821600480360381019061081c919061298c565b611e4f565b005b61083d6004803603810190610838919061298c565b611f48565b005b6108596004803603810190610854919061298c565b611f54565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ab6565b611f60565b005b34801561089057600080fd5b50610899611fe8565b6040516108a69190612a42565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d1919061298c565b61200c565b6040516108e391906129d2565b60405180910390f35b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a90046fffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081036109cd5750610ae5565b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a95818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fcbfdaa15c344a7a5b846b2199db1ca289c82041c65048ce19264f9fdd8cee27482604051610adb91906129d2565b60405180910390a2505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b178161203e565b50565b610b24828261204b565b5050565b6004610b3381612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b99576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a25050565b6000610c2d8383612098565b905092915050565b6020610c4081612061565b600060035490503460036000828254610c59919061300c565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166322895118348b8b8b8b8b8b8b6040518963ffffffff1660e01b8152600401610cc6979695949392919061309c565b6000604051808303818588803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50505050507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf860035482604051610d2b9291906130fc565b60405180910390a1505050505050505050565b6008610d4981612061565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d849190612a42565b602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061313a565b9050610df283828673ffffffffffffffffffffffffffffffffffffffff166120af9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f02dc46f45168b3833fa84aa22ee90f4ffec812cf1067be0413353eb95c031b0583604051610e4f91906129d2565b60405180910390a350505050565b610e656120fe565b565b600160005414610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906131b3565b60405180910390fd5b6002600081905550610ebe6001612152565b6001600081905550565b6000610ed3826123f0565b9050919050565b600481565b602081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160005414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906131b3565b60405180910390fd5b6002600081905550610f616000612152565b6001600081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f99828261240b565b5050565b6000610fa98383612421565b905092915050565b610fb9612439565b565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600181565b600281565b600160005414611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e906131b3565b60405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e6576110e2612475565b8290505b60008083146110f55782611158565b60056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156111f5576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112c091906131d3565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff167fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969660405160405180910390a3611334818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b505060016000819055505050565b61134a612492565b565b601081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061137f6124a6565b905090565b600161138f81612061565b6001600054146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb906131b3565b60405180910390fd5b600260008190555084849050878790501461141b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61143334888890508561142e9190613207565b6124b4565b600061145f7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b898990508110156116c9576114e08a8a8381811061148657611485613249565b5b90506020028101906114989190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a838181106114f5576114f4613249565b5b90506020028101906115079190613287565b8a8a8581811061151a57611519613249565b5b905060200201602081019061152f9190613316565b604051602001611541939291906133a9565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16858360405161159a919061340f565b60006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b5050905080611617576040517fd3d2fd8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8484611623919061300c565b9350848a8a8581811061163957611638613249565b5b905060200201602081019061164e9190613316565b67ffffffffffffffff167f19cd6ffa1afc5a20b44dd0fea708b8fb38af1d7891d4929811a3c65ff1624fb98e8e8781811061168c5761168b613249565b5b905060200281019061169e9190613287565b6040516116ac929190613426565b60405180910390a3505080806116c19061344a565b915050611465565b506116d5348286612625565b5050600160008190555050505050505050565b600881565b6116f5612475565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a26117e881611f54565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa1c3c7ba08cdab9542dfbb1f9606093e828bca6c2678c82942703ec4e223790260405160405180910390a35050565b600461185181612061565b6003548203156118a45760006003549050826003819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8838260405161189a9291906130fc565b60405180910390a1505b5050565b60026118b381612061565b6001600054146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906131b3565b60405180910390fd5b6002600081905550600061192c7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b87879050811015611a4357600088888381811061195257611951613249565b5b90506020028101906119649190613492565b806000019061197391906134ba565b905014806119b65750603f88888381811061199157611990613249565b5b90506020028101906119a39190613492565b80600001906119b291906134ba565b9050115b156119ed576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b878782818110611a00576119ff613249565b5b9050602002810190611a129190613492565b8060000190611a2191906134ba565b905082611a2e919061300c565b91508080611a3b9061344a565b915050611932565b5060008183611a529190613207565b9050611a5e34826124b4565b60005b88889050811015611e3157611aeb898983818110611a8257611a81613249565b5b9050602002810190611a949190613492565b8060200190611aa39190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60005b898983818110611b0157611b00613249565b5b9050602002810190611b139190613492565b8060000190611b2291906134ba565b9050811015611e1d57611bcd8a8a84818110611b4157611b40613249565b5b9050602002810190611b539190613492565b8060000190611b6291906134ba565b83818110611b7357611b72613249565b5b9050602002810190611b859190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a84818110611be257611be1613249565b5b9050602002810190611bf49190613492565b8060000190611c0391906134ba565b83818110611c1457611c13613249565b5b9050602002810190611c269190613287565b8c8c86818110611c3957611c38613249565b5b9050602002810190611c4b9190613492565b8060200190611c5a9190613287565b604051602001611c6d949392919061351d565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168783604051611cc6919061340f565b60006040518083038185875af1925050503d8060008114611d03576040519150601f19603f3d011682016040523d82523d6000602084013e611d08565b606091505b5050905080611d43576040517f1684b73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f70327b6e1280f8015a284fca27cbbef10ac24c017f6452ff98212167813459d88d8d87818110611d7857611d77613249565b5b9050602002810190611d8a9190613492565b8060000190611d9991906134ba565b86818110611daa57611da9613249565b5b9050602002810190611dbc9190613287565b8f8f89818110611dcf57611dce613249565b5b9050602002810190611de19190613492565b8060200190611df09190613287565b604051611e009493929190613545565b60405180910390a250508080611e159061344a565b915050611aee565b508080611e299061344a565b915050611a61565b50611e3d348287612625565b50505060016000819055505050505050565b6010611e5a81612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ec0576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fab0699d690a6fcb85f70e4d28ee4c6114c3d90c12c579ca5abe089b8ff6ff1bf60405160405180910390a25050565b611f5181612700565b50565b611f5d81612741565b50565b600160005414611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c906131b3565b60405180910390fd5b60026000819055506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906135cc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60006120178261276b565b9050919050565b60005a60005a84865af161203a5763b12d13eb6000526004601cfd5b5050565b6120483382612786565b50565b612053612475565b61205d8282612796565b5050565b638b78c6d81954331461209557638b78c6d8600c5233600052806020600c205416612094576382b429006000526004601cfd5b5b50565b600081826120a585610ec8565b1614905092915050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166120f4576390b8ec186000526004601cfd5b6000603452505050565b60006121086127a6565b67ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60004790506000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690506000818361219a91906131d3565b90506000633b9aca007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166121d89190613207565b90506000808284101580156121ef57506000600354115b156122185760035484111561220f57600354915060035484039050612213565b8391505b61221c565b8390505b6fffffffffffffffffffffffffffffffff8016841115612268576040517f502cbcb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211156122e557816fffffffffffffffffffffffffffffffff166003600082825461229591906131d3565b925050819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8600354836003546122ce919061300c565b6040516122dc9291906130fc565b60405180910390a15b600187036123525760008211806122fc5750600081115b156123515780828661230e919061300c565b612318919061300c565b600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b61237f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683896127b1565b6123ac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682896127b1565b7f8b367b31582d5c638694615c1cfc77ffcf9febcf6e6c793358089f7769cfeee68282896040516123df939291906135ec565b60405180910390a150505050505050565b6000638b78c6d8600c52816000526020600c20549050919050565b612413612475565b61241d8282612786565b5050565b6000808261242e85610ec8565b161415905092915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b638b78c6d819543314612490576382b429006000526004601cfd5b565b61249a612475565b6124a4600061288c565b565b6000638b78c6d81954905090565b808210156124ee576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1660405161251a90613649565b600060405180830381855afa9150503d8060008114612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b509150915081612596576040517f448e5c4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806125a090613690565b60001c9250838311156125df576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6030815114612622576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b818311156126fb5760008173ffffffffffffffffffffffffffffffffffffffff16838561265291906131d3565b60405161265e90613649565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50509050806126f95782846126b591906131d3565b8273ffffffffffffffffffffffffffffffffffffffff167fff295b6ae91fb82f39d5bb544f1e62ce33f6978255b7c7434f8137bdf107f6d960405160405180910390a35b505b505050565b612708612475565b63389a75e1600c52806000526020600c20805442111561273057636f5e88186000526004601cfd5b600081555061273e8161288c565b50565b612749612475565b8060601b61275f57637448fbae6000526004601cfd5b6127688161288c565b50565b600063389a75e1600c52816000526020600c20549050919050565b612792828260006128ca565b5050565b6127a2828260016128ca565b5050565b60006202a300905090565b6000821115612887576001810361281d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612811919061300c565b92505081905550612886565b600081036128535761284e828473ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b612885565b6040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b505050565b638b78c6d8198160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a38181555050565b638b78c6d8600c52826000526020600c208054838117836128ed57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129598261292e565b9050919050565b6129698161294e565b811461297457600080fd5b50565b60008135905061298681612960565b92915050565b6000602082840312156129a2576129a1612924565b5b60006129b084828501612977565b91505092915050565b6000819050919050565b6129cc816129b9565b82525050565b60006020820190506129e760008301846129c3565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a12816129ed565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c8161294e565b82525050565b6000602082019050612a576000830184612a33565b92915050565b612a66816129b9565b8114612a7157600080fd5b50565b600081359050612a8381612a5d565b92915050565b600060208284031215612a9f57612a9e612924565b5b6000612aad84828501612a74565b91505092915050565b60008060408385031215612acd57612acc612924565b5b6000612adb85828601612977565b9250506020612aec85828601612a74565b9150509250929050565b60008115159050919050565b612b0b81612af6565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612b5157612b50612b2c565b5b8235905067ffffffffffffffff811115612b6e57612b6d612b31565b5b602083019150836001820283011115612b8a57612b89612b36565b5b9250929050565b6000819050919050565b612ba481612b91565b8114612baf57600080fd5b50565b600081359050612bc181612b9b565b92915050565b60008060008060008060006080888a031215612be657612be5612924565b5b600088013567ffffffffffffffff811115612c0457612c03612929565b5b612c108a828b01612b3b565b9750975050602088013567ffffffffffffffff811115612c3357612c32612929565b5b612c3f8a828b01612b3b565b9550955050604088013567ffffffffffffffff811115612c6257612c61612929565b5b612c6e8a828b01612b3b565b93509350506060612c818a828b01612bb2565b91505092959891949750929550565b60008060408385031215612ca757612ca6612924565b5b6000612cb585828601612977565b9250506020612cc685828601612977565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0a578082015181840152602081019050612cef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3282612cd0565b612d3c8185612cdb565b9350612d4c818560208601612cec565b612d5581612d16565b840191505092915050565b60006020820190508181036000830152612d7a8184612d27565b905092915050565b600067ffffffffffffffff82169050919050565b612d9f81612d82565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008083601f840112612dd657612dd5612b2c565b5b8235905067ffffffffffffffff811115612df357612df2612b31565b5b602083019150836020820283011115612e0f57612e0e612b36565b5b9250929050565b60008083601f840112612e2c57612e2b612b2c565b5b8235905067ffffffffffffffff811115612e4957612e48612b31565b5b602083019150836020820283011115612e6557612e64612b36565b5b9250929050565b60008060008060008060808789031215612e8957612e88612924565b5b600087013567ffffffffffffffff811115612ea757612ea6612929565b5b612eb389828a01612dc0565b9650965050602087013567ffffffffffffffff811115612ed657612ed5612929565b5b612ee289828a01612e16565b94509450506040612ef589828a01612a74565b9250506060612f0689828a01612977565b9150509295509295509295565b60008083601f840112612f2957612f28612b2c565b5b8235905067ffffffffffffffff811115612f4657612f45612b31565b5b602083019150836020820283011115612f6257612f61612b36565b5b9250929050565b60008060008060608587031215612f8357612f82612924565b5b600085013567ffffffffffffffff811115612fa157612fa0612929565b5b612fad87828801612f13565b94509450506020612fc087828801612a74565b9250506040612fd187828801612977565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613017826129b9565b9150613022836129b9565b925082820190508082111561303a57613039612fdd565b5b92915050565b600082825260208201905092915050565b82818337600083830152505050565b600061306c8385613040565b9350613079838584613051565b61308283612d16565b840190509392505050565b61309681612b91565b82525050565b600060808201905081810360008301526130b781898b613060565b905081810360208301526130cc818789613060565b905081810360408301526130e1818587613060565b90506130f0606083018461308d565b98975050505050505050565b600060408201905061311160008301856129c3565b61311e60208301846129c3565b9392505050565b60008151905061313481612a5d565b92915050565b6000602082840312156131505761314f612924565b5b600061315e84828501613125565b91505092915050565b7f5245454e5452414e435900000000000000000000000000000000000000000000600082015250565b600061319d600a83612cdb565b91506131a882613167565b602082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b60006131de826129b9565b91506131e9836129b9565b925082820390508181111561320157613200612fdd565b5b92915050565b6000613212826129b9565b915061321d836129b9565b925082820261322b816129b9565b9150828204841483151761324257613241612fdd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126132a4576132a3613278565b5b80840192508235915067ffffffffffffffff8211156132c6576132c561327d565b5b6020830192506001820236038313156132e2576132e1613282565b5b509250929050565b6132f381612d82565b81146132fe57600080fd5b50565b600081359050613310816132ea565b92915050565b60006020828403121561332c5761332b612924565b5b600061333a84828501613301565b91505092915050565b600081905092915050565b600061335a8385613343565b9350613367838584613051565b82840190509392505050565b60008160c01b9050919050565b600061338b82613373565b9050919050565b6133a361339e82612d82565b613380565b82525050565b60006133b682858761334e565b91506133c28284613392565b600882019150819050949350505050565b600081519050919050565b60006133e9826133d3565b6133f38185613343565b9350613403818560208601612cec565b80840191505092915050565b600061341b82846133de565b915081905092915050565b60006020820190508181036000830152613441818486613060565b90509392505050565b6000613455826129b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361348757613486612fdd565b5b600182019050919050565b6000823560016040038336030381126134ae576134ad613278565b5b80830191505092915050565b600080833560016020038436030381126134d7576134d6613278565b5b80840192508235915067ffffffffffffffff8211156134f9576134f861327d565b5b60208301925060208202360383131561351557613514613282565b5b509250929050565b600061352a82868861334e565b915061353782848661334e565b915081905095945050505050565b60006040820190508181036000830152613560818688613060565b90508181036020830152613575818486613060565b905095945050505050565b7f4e6f7420696d706c656d656e7465640000000000000000000000000000000000600082015250565b60006135b6600f83612cdb565b91506135c182613580565b602082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b600060608201905061360160008301866129c3565b61360e60208301856129c3565b61361b60408301846129c3565b949350505050565b50565b6000613633600083613343565b915061363e82613623565b600082019050919050565b600061365482613626565b9150819050919050565b6000819050602082019050919050565b600061367a8251612b91565b80915050919050565b600082821b905092915050565b600061369b826133d3565b826136a58461365e565b90506136b08161366e565b925060208210156136f0576136eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613683565b831692505b505091905056fea26469706673582212205b83464c8159b4a300316c2a0b8a5da2e7cc180d9e2495b4c3be8d1a402389a864736f6c63430008130033a2646970667358221220d0677431495e7a3ae579ad87b584d9963ccdcd75c74dc989f0bccd47105e3cb364736f6c63430008130033";
@@ -402,7 +395,7 @@ var DefinitionFlow = /* @__PURE__ */ ((DefinitionFlow2) => {
402
395
  })(DefinitionFlow || {});
403
396
  var DEFAULT_BASE_URL = "https://api.obol.tech";
404
397
  var DEFAULT_BASE_VERSION = "v1";
405
- var DEFAULT_CHAIN_ID = 17e3;
398
+ var DEFAULT_CHAIN_ID = 560048;
406
399
  var ETHER_TO_GWEI = 10 ** 9;
407
400
  var TERMS_AND_CONDITIONS_VERSION = 1;
408
401
  var TERMS_AND_CONDITIONS_URL = TERMS_AND_CONDITIONS_VERSION === 1 ? "https://obol.org/terms.pdf" : `https://obol.org/${TERMS_AND_CONDITIONS_VERSION}/terms.pdf`;
@@ -410,8 +403,6 @@ var TERMS_AND_CONDITIONS_HASH = "0xd33721644e8f3afab1495a74abe3523cec12d48b8da6c
410
403
  var AVAILABLE_SPLITTER_CHAINS = {
411
404
  [1 /* 0x00000000 */]: true,
412
405
  // Mainnet
413
- [17e3 /* 0x01017000 */]: true,
414
- // Holesky
415
406
  [560048 /* 0x10000910 */]: true
416
407
  // Hoodi
417
408
  };
@@ -456,27 +447,6 @@ var CHAIN_CONFIGURATION = {
456
447
  address: "0xcD7a6C118Ac8F6544BC5076F2D8Fb86D2C546756"
457
448
  }
458
449
  },
459
- [17e3 /* 0x01017000 */]: {
460
- SPLITMAIN_CONTRACT: {
461
- address: "0xfC8a305728051367797DADE6Aa0344E0987f5286",
462
- bytecode: HOLESKY_SPLITMAIN_BYTECODE
463
- },
464
- MULTICALL3_CONTRACT: {
465
- address: "0xcA11bde05977b3631167028862bE2a173976CA11",
466
- bytecode: HOLESKY_MULTICALL3_BYTECODE
467
- },
468
- OWR_FACTORY_CONTRACT: {
469
- address: "0xc0961353fcc43a99e3041db07ac646720e116256",
470
- bytecode: HOLESKY_OWR_FACTORY_BYTECODE
471
- },
472
- RETROACTIVE_FUNDING_CONTRACT: {
473
- address: "0x43F641fA70e09f0326ac66b4Ef0C416EaEcBC6f5",
474
- bytecode: ""
475
- },
476
- EOA_WITHDRAWAL_CONTRACT: {
477
- address: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
478
- }
479
- },
480
450
  [560048 /* 0x10000910 */]: {
481
451
  SPLITMAIN_CONTRACT: {
482
452
  address: "0xc05ae267291705ac16F75283572294ed2a91CBc7",
@@ -523,8 +493,6 @@ var OBOL_SDK_EMAIL = "sdk@dvlabs.tech";
523
493
  var PROVIDER_MAP = {
524
494
  1: `${define_process_env_default.RPC_MAINNET}`,
525
495
  // Mainnet
526
- 17e3: `${define_process_env_default.RPC_HOLESKY}`,
527
- // Holesky
528
496
  11155111: `${define_process_env_default.RPC_SEPOLIA}`,
529
497
  // Sepolia
530
498
  100: `${define_process_env_default.RPC_GNOSIS}`,
@@ -535,14 +503,10 @@ var PROVIDER_MAP = {
535
503
  var CAPELLA_FORK_MAPPING = {
536
504
  "0x00000000": "0x03000000",
537
505
  // Mainnet
538
- "0x00001020": "0x03001020",
539
- // Goerli
540
506
  "0x00000064": "0x03000064",
541
507
  // Gnosis
542
508
  "0x90000069": "0x90000072",
543
509
  // Sepolia
544
- "0x01017000": "0x04017000",
545
- // Holesky
546
510
  "0x10000910": "0x40000910"
547
511
  // Hoodi
548
512
  };
@@ -589,6 +553,20 @@ var ConflictError = class _ConflictError extends Error {
589
553
  Object.setPrototypeOf(this, _ConflictError.prototype);
590
554
  }
591
555
  };
556
+ var SignerRequiredError = class _SignerRequiredError extends Error {
557
+ constructor(method) {
558
+ super(`Signer is required in ${method}`);
559
+ this.name = "SignerRequiredError";
560
+ Object.setPrototypeOf(this, _SignerRequiredError.prototype);
561
+ }
562
+ };
563
+ var UnsupportedChainError = class _UnsupportedChainError extends Error {
564
+ constructor(chainId, operation) {
565
+ super(`${operation} is not supported on chain ${chainId}`);
566
+ this.name = "UnsupportedChainError";
567
+ Object.setPrototypeOf(this, _UnsupportedChainError.prototype);
568
+ }
569
+ };
592
570
 
593
571
  // src/verification/common.ts
594
572
  import { fromHexString as fromHexString5 } from "@chainsafe/ssz";
@@ -4443,7 +4421,7 @@ var CID = class _CID {
4443
4421
  return this;
4444
4422
  }
4445
4423
  // Legacy
4446
- [(_a = Symbol.toStringTag, Symbol.for("nodejs.util.inspect.custom"))]() {
4424
+ [(_a = Symbol.toStringTag, /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom"))]() {
4447
4425
  return `CID(${this.toString()})`;
4448
4426
  }
4449
4427
  /**
@@ -4669,7 +4647,7 @@ function encodeCID(version, code2, multihash) {
4669
4647
  bytes3.set(multihash, hashOffset);
4670
4648
  return bytes3;
4671
4649
  }
4672
- var cidSymbol = Symbol.for("@ipld/js-cid/CID");
4650
+ var cidSymbol = /* @__PURE__ */ Symbol.for("@ipld/js-cid/CID");
4673
4651
 
4674
4652
  // node_modules/multiformats/dist/src/basics.js
4675
4653
  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);
@@ -5881,8 +5859,8 @@ function sizeForAddr(codec, bytes3, offset) {
5881
5859
  }
5882
5860
 
5883
5861
  // node_modules/@multiformats/multiaddr/dist/src/multiaddr.js
5884
- var inspect = Symbol.for("nodejs.util.inspect.custom");
5885
- var symbol = Symbol.for("@multiformats/multiaddr");
5862
+ var inspect = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
5863
+ var symbol = /* @__PURE__ */ Symbol.for("@multiformats/multiaddr");
5886
5864
  var DNS_CODES = [
5887
5865
  CODE_DNS,
5888
5866
  CODE_DNS4,
@@ -6438,7 +6416,7 @@ var InvalidPublicKeyError = class extends Error {
6438
6416
  __publicField(InvalidPublicKeyError, "name", "InvalidPublicKeyError");
6439
6417
 
6440
6418
  // node_modules/uint8arraylist/dist/src/index.js
6441
- var symbol2 = Symbol.for("@achingbrain/uint8arraylist");
6419
+ var symbol2 = /* @__PURE__ */ Symbol.for("@achingbrain/uint8arraylist");
6442
6420
  function findBufAndOffset(bufs, index) {
6443
6421
  if (index == null || index < 0) {
6444
6422
  throw new RangeError("index is out of bounds");
@@ -11788,7 +11766,7 @@ function publicKeyToProtobuf(key) {
11788
11766
  }
11789
11767
 
11790
11768
  // node_modules/@libp2p/interface/dist/src/peer-id.js
11791
- var peerIdSymbol = Symbol.for("@libp2p/peer-id");
11769
+ var peerIdSymbol = /* @__PURE__ */ Symbol.for("@libp2p/peer-id");
11792
11770
 
11793
11771
  // node_modules/@libp2p/interface/dist/src/errors.js
11794
11772
  var UnsupportedKeyTypeError2 = class extends Error {
@@ -11800,7 +11778,7 @@ var UnsupportedKeyTypeError2 = class extends Error {
11800
11778
  __publicField(UnsupportedKeyTypeError2, "name", "UnsupportedKeyTypeError");
11801
11779
 
11802
11780
  // node_modules/@libp2p/peer-id/dist/src/peer-id.js
11803
- var inspect2 = Symbol.for("nodejs.util.inspect.custom");
11781
+ var inspect2 = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
11804
11782
  var LIBP2P_KEY_CODE = 114;
11805
11783
  var _a4;
11806
11784
  var PeerIdImpl = class {
@@ -16529,28 +16507,31 @@ var Incentives = class {
16529
16507
  this.provider = provider;
16530
16508
  }
16531
16509
  /**
16532
- * Claims Obol incentives from a Merkle Distributor contract using an address.
16533
- *
16534
- * This method automatically fetches incentive data and verifies whether the incentives have already been claimed.
16535
- * If `txHash` is `null`, it indicates that the incentives were already claimed.
16510
+ * Claims Obol incentives from a Merkle Distributor contract for the given address.
16536
16511
  *
16537
- * Note: This method is not yet enabled and will throw an error if called.
16512
+ * Automatically fetches incentive data, checks if already claimed, and submits
16513
+ * the on-chain claim transaction. Returns `{ txHash: null }` if incentives were
16514
+ * already claimed (idempotent).
16538
16515
  *
16539
- * @remarks
16540
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16541
- * and not pushed to version control.
16516
+ * @param address - The operator's Ethereum address to claim incentives for.
16517
+ * @returns The transaction hash, or `{ txHash: null }` if already claimed.
16518
+ * @throws {SignerRequiredError} If no signer was provided.
16519
+ * @throws {Error} If no incentives are found for the address.
16542
16520
  *
16543
- * @param {string} address - The address to claim incentives for
16544
- * @returns {Promise<ClaimIncentivesResponse>} The transaction hash or already claimed status
16545
- * @throws Will throw an error if the incentives data is not found or the claim fails
16546
- *
16547
- * An example of how to use claimIncentives:
16548
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L281)
16521
+ * @example
16522
+ * ```typescript
16523
+ * const { txHash } = await client.incentives.claimIncentives("0xOperator...");
16524
+ * if (txHash) {
16525
+ * console.log("Claimed:", txHash);
16526
+ * } else {
16527
+ * console.log("Already claimed");
16528
+ * }
16529
+ * ```
16549
16530
  */
16550
16531
  claimIncentives(address) {
16551
16532
  return __async(this, null, function* () {
16552
16533
  if (!this.signer) {
16553
- throw new Error("Signer is required in claimIncentives");
16534
+ throw new SignerRequiredError("claimIncentives");
16554
16535
  }
16555
16536
  try {
16556
16537
  const incentivesData = yield this.getIncentivesByAddress(address);
@@ -16589,15 +16570,21 @@ var Incentives = class {
16589
16570
  });
16590
16571
  }
16591
16572
  /**
16592
- * Read isClaimed.
16573
+ * Checks whether incentives have already been claimed for a given operator index.
16593
16574
  *
16594
- * @param {ETH_ADDRESS} contractAddress - Address of the Merkle Distributor Contract
16595
- * @param {ETH_ADDRESS} index - operator index in merkle tree
16596
- * @returns {Promise<boolean>} true if incentives are already claime
16575
+ * Read-only on-chain call no transaction sent.
16597
16576
  *
16577
+ * @param contractAddress - Address of the Merkle Distributor contract.
16578
+ * @param index - The operator's index in the Merkle tree (from {@link Incentives.getIncentivesByAddress}).
16579
+ * @returns `true` if the incentives at that index have already been claimed.
16598
16580
  *
16599
- * An example of how to use isClaimed:
16600
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L266)
16581
+ * @example
16582
+ * ```typescript
16583
+ * const claimed = await client.incentives.isClaimed(
16584
+ * "0xMerkleDistributor...",
16585
+ * 42,
16586
+ * );
16587
+ * ```
16601
16588
  */
16602
16589
  isClaimed(contractAddress, index) {
16603
16590
  return __async(this, null, function* () {
@@ -16609,12 +16596,20 @@ var Incentives = class {
16609
16596
  });
16610
16597
  }
16611
16598
  /**
16612
- * @param address - Operator address
16613
- * @returns {Promise<IncentivesType>} The matched incentives from DB
16614
- * @throws On not found if address not found.
16599
+ * Fetches claimable incentive data for an operator address from the Obol API.
16600
+ *
16601
+ * The returned data includes the Merkle proof, amount, and contract address
16602
+ * needed to claim on-chain. This is a read-only API call.
16603
+ *
16604
+ * @param address - The operator's Ethereum address.
16605
+ * @returns Claimable incentive data including amount, Merkle proof, and contract address.
16606
+ * @throws {Error} If no incentives are found for the given address (404).
16615
16607
  *
16616
- * An example of how to use getIncentivesByAddress:
16617
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L250)
16608
+ * @example
16609
+ * ```typescript
16610
+ * const incentives = await client.incentives.getIncentivesByAddress("0xOperator...");
16611
+ * console.log(incentives.amount, incentives.contract_address);
16612
+ * ```
16618
16613
  */
16619
16614
  getIncentivesByAddress(address) {
16620
16615
  return __async(this, null, function* () {
@@ -16764,11 +16759,8 @@ var Exit = class _Exit {
16764
16759
  *
16765
16760
  * @example
16766
16761
  * ```typescript
16767
- * // For mainnet with a provider
16768
- * const exit = new Exit(1, provider);
16769
- *
16770
- * // For goerli testnet without provider
16771
- * const exit = new Exit(5, null);
16762
+ * const client = new Client({ chainId: 1 }, signer, provider);
16763
+ * const exit = client.exit; // Access via client, do not instantiate directly
16772
16764
  * ```
16773
16765
  */
16774
16766
  constructor(chainId, provider) {
@@ -17216,45 +17208,53 @@ var ObolSplits = class {
17216
17208
  this.provider = provider;
17217
17209
  }
17218
17210
  /**
17219
- * Creates an Obol OVM and Pull split configuration for rewards-only scenario.
17211
+ * Deploys an OVM and SplitV2 contract for a **rewards-only** split scenario.
17220
17212
  *
17221
- * This method deploys OVM and SplitV2 contracts for managing validator rewards only.
17222
- * Principal is handled by a single address, while rewards are split among recipients.
17213
+ * Principal goes to a single address; only validator rewards are split among
17214
+ * the configured recipients. Automatically appends the Obol RAF recipient.
17223
17215
  *
17224
- * @remarks
17225
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17226
- * and not pushed to version control.
17216
+ * - Sends one or more on-chain transactions (irreversible).
17217
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
17227
17218
  *
17228
- * **📌 Note:** The Obol Validator Manager (OVM) feature is only enabled on Hoodi on launchpad.
17219
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
17220
+ * @returns The OVM address as `withdrawal_address` and splitter as `fee_recipient_address`.
17221
+ * @throws {SignerRequiredError} If no signer was provided.
17222
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
17229
17223
  *
17230
- * @param {OVMRewardsSplitPayload} payload - Data needed to deploy OVM and SplitV2
17231
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
17232
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
17233
- *
17234
- * An example of how to use createValidatorManagerAndRewardsSplit:
17235
- * [createValidatorManagerAndRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L333)
17224
+ * @example
17225
+ * ```typescript
17226
+ * const { withdrawal_address, fee_recipient_address } =
17227
+ * await client.splits.createValidatorManagerAndRewardsSplit({
17228
+ * rewardSplitRecipients: [
17229
+ * { address: "0xOp1...", percentAllocation: 50 },
17230
+ * { address: "0xOp2...", percentAllocation: 49 },
17231
+ * ],
17232
+ * principalRecipient: "0xPrincipal...",
17233
+ * OVMOwnerAddress: "0xOwner...",
17234
+ * });
17235
+ * ```
17236
17236
  */
17237
17237
  createValidatorManagerAndRewardsSplit(payload) {
17238
17238
  return __async(this, null, function* () {
17239
17239
  const salt = SPLITS_V2_SALT;
17240
17240
  if (!this.signer) {
17241
- throw new Error(
17242
- "Signer is required in createValidatorManagerAndRewardsSplit"
17243
- );
17241
+ throw new SignerRequiredError("createValidatorManagerAndRewardsSplit");
17244
17242
  }
17245
17243
  const validatedPayload = validatePayload(
17246
17244
  payload,
17247
17245
  ovmRewardsSplitPayloadSchema
17248
17246
  );
17249
17247
  if (!isChainSupportedForSplitters(this.chainId)) {
17250
- throw new Error(
17251
- `Splitter configuration is not supported on ${this.chainId} chain`
17248
+ throw new UnsupportedChainError(
17249
+ this.chainId,
17250
+ "createValidatorManagerAndRewardsSplit"
17252
17251
  );
17253
17252
  }
17254
17253
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17255
17254
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
17256
- throw new Error(
17257
- `OVM contract factory is not configured for chain ${this.chainId}`
17255
+ throw new UnsupportedChainError(
17256
+ this.chainId,
17257
+ "createValidatorManagerAndRewardsSplit"
17258
17258
  );
17259
17259
  }
17260
17260
  if (!this.provider) {
@@ -17266,8 +17266,9 @@ var ObolSplits = class {
17266
17266
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
17267
17267
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
17268
17268
  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)) {
17269
- throw new Error(
17270
- `Contracts configuration is incomplete for chain ${this.chainId}`
17269
+ throw new UnsupportedChainError(
17270
+ this.chainId,
17271
+ "createValidatorManagerAndRewardsSplit"
17271
17272
  );
17272
17273
  }
17273
17274
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -17287,7 +17288,7 @@ var ObolSplits = class {
17287
17288
  );
17288
17289
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
17289
17290
  throw new Error(
17290
- `Splitter contract is not deployed or available on chain ${this.chainId}`
17291
+ `Required factory contracts are not available on chain ${this.chainId}`
17291
17292
  );
17292
17293
  }
17293
17294
  const retroActiveFundingRecipient = {
@@ -17354,45 +17355,56 @@ var ObolSplits = class {
17354
17355
  });
17355
17356
  }
17356
17357
  /**
17357
- * Creates an Obol OVM and Total split configuration for total split scenario.
17358
- *
17359
- * This method deploys OVM and SplitV2 contracts for managing both validator rewards and principal.
17360
- * Both rewards and principal are split among recipients, with rewards including RAF recipient.
17358
+ * Deploys an OVM and SplitV2 contract for a **total split** scenario.
17361
17359
  *
17362
- * @remarks
17363
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17364
- * and not pushed to version control.
17360
+ * Both principal and rewards are split among recipients via separate SplitV2
17361
+ * contracts. Automatically appends the Obol RAF recipient to rewards.
17365
17362
  *
17366
- * **📌 Note:** The Obol Validator Manager (OVM) feature is only enabled on Hoodi on launchpad.
17363
+ * - Sends one or more on-chain transactions (irreversible).
17364
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
17367
17365
  *
17368
- * @param {OVMTotalSplitPayload} payload - Data needed to deploy OVM and SplitV2
17369
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
17370
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
17366
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
17367
+ * @returns The OVM address as `withdrawal_address` and rewards splitter as `fee_recipient_address`.
17368
+ * @throws {SignerRequiredError} If no signer was provided.
17369
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
17371
17370
  *
17372
- * An example of how to use createValidatorManagerAndTotalSplit:
17373
- * [createValidatorManagerAndTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#340)
17371
+ * @example
17372
+ * ```typescript
17373
+ * const { withdrawal_address, fee_recipient_address } =
17374
+ * await client.splits.createValidatorManagerAndTotalSplit({
17375
+ * rewardSplitRecipients: [
17376
+ * { address: "0xOp1...", percentAllocation: 50 },
17377
+ * { address: "0xOp2...", percentAllocation: 49 },
17378
+ * ],
17379
+ * principalSplitRecipients: [
17380
+ * { address: "0xOp1...", percentAllocation: 50 },
17381
+ * { address: "0xOp2...", percentAllocation: 50 },
17382
+ * ],
17383
+ * OVMOwnerAddress: "0xOwner...",
17384
+ * });
17385
+ * ```
17374
17386
  */
17375
17387
  createValidatorManagerAndTotalSplit(payload) {
17376
17388
  return __async(this, null, function* () {
17377
17389
  const salt = SPLITS_V2_SALT;
17378
17390
  if (!this.signer) {
17379
- throw new Error(
17380
- "Signer is required in createValidatorManagerAndTotalSplit"
17381
- );
17391
+ throw new SignerRequiredError("createValidatorManagerAndTotalSplit");
17382
17392
  }
17383
17393
  const validatedPayload = validatePayload(
17384
17394
  payload,
17385
17395
  ovmTotalSplitPayloadSchema
17386
17396
  );
17387
17397
  if (!isChainSupportedForSplitters(this.chainId)) {
17388
- throw new Error(
17389
- `Splitter configuration is not supported on ${this.chainId} chain`
17398
+ throw new UnsupportedChainError(
17399
+ this.chainId,
17400
+ "createValidatorManagerAndTotalSplit"
17390
17401
  );
17391
17402
  }
17392
17403
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17393
17404
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
17394
- throw new Error(
17395
- `OVM contract factory is not configured for chain ${this.chainId}`
17405
+ throw new UnsupportedChainError(
17406
+ this.chainId,
17407
+ "createValidatorManagerAndTotalSplit"
17396
17408
  );
17397
17409
  }
17398
17410
  if (!this.provider) {
@@ -17404,8 +17416,9 @@ var ObolSplits = class {
17404
17416
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
17405
17417
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
17406
17418
  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)) {
17407
- throw new Error(
17408
- `Contracts configuration is incomplete for chain ${this.chainId}`
17419
+ throw new UnsupportedChainError(
17420
+ this.chainId,
17421
+ "createValidatorManagerAndTotalSplit"
17409
17422
  );
17410
17423
  }
17411
17424
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -17425,7 +17438,7 @@ var ObolSplits = class {
17425
17438
  );
17426
17439
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
17427
17440
  throw new Error(
17428
- `Splitter contract is not deployed or available on chain ${this.chainId}`
17441
+ `Required factory contracts are not available on chain ${this.chainId}`
17429
17442
  );
17430
17443
  }
17431
17444
  const retroActiveFundingRecipient = {
@@ -17512,34 +17525,30 @@ var ObolSplits = class {
17512
17525
  });
17513
17526
  }
17514
17527
  /**
17515
- * Requests withdrawal from an OVM contract.
17528
+ * Requests withdrawal of validator funds from an OVM contract.
17516
17529
  *
17517
- * This method allows requesting withdrawal of validator funds from an OVM contract.
17518
- * The withdrawal request includes OVM address, validator public keys and corresponding withdrawal amounts.
17530
+ * Sends an on-chain transaction to the OVM contract requesting withdrawal
17531
+ * for the specified validator public keys and amounts.
17519
17532
  *
17520
- * @remarks
17521
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17522
- * and not pushed to version control.
17533
+ * @param payload - Withdrawal request data including OVM address, validator
17534
+ * public keys, amounts, and fees.
17535
+ * @returns The transaction hash of the withdrawal request.
17536
+ * @throws {SignerRequiredError} If no signer was provided.
17523
17537
  *
17524
- * @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
17525
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
17526
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
17527
- *
17528
- * An example of how to use requestWithdrawal:
17538
+ * @example
17529
17539
  * ```typescript
17530
- * const result = await client.splits.requestWithdrawal({
17531
- * ovmAddress: '0x1234567890123456789012345678901234567890',
17532
- * pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
17533
- * amounts: ['32000000000'], // 32 ETH in gwei
17534
- * withdrawalFees: '1000000000000000' // Total fees in wei
17540
+ * const { txHash } = await client.splits.requestWithdrawal({
17541
+ * ovmAddress: "0xOVM...",
17542
+ * pubKeys: ["0xValidatorPubkey..."],
17543
+ * amounts: ["32000000000"],
17544
+ * withdrawalFees: "1000000000000000",
17535
17545
  * });
17536
- * console.log('Withdrawal requested:', result.txHash);
17537
17546
  * ```
17538
17547
  */
17539
17548
  requestWithdrawal(payload) {
17540
17549
  return __async(this, null, function* () {
17541
17550
  if (!this.signer) {
17542
- throw new Error("Signer is required in requestWithdrawal");
17551
+ throw new SignerRequiredError("requestWithdrawal");
17543
17552
  }
17544
17553
  const validatedPayload = validatePayload(
17545
17554
  payload,
@@ -17555,38 +17564,33 @@ var ObolSplits = class {
17555
17564
  });
17556
17565
  }
17557
17566
  /**
17558
- * Deposits to OVM contract by sending individual transactions for each deposit.
17567
+ * Deposits validators to an OVM contract. Each deposit is sent as a separate
17568
+ * on-chain transaction.
17559
17569
  *
17560
- * This method allows depositing to an OVM contract. Each deposit is sent as a separate transaction
17561
- * Each deposit includes validator public key, withdrawal credentials, signature, deposit data root, and amount.
17570
+ * @param payload - Deposit data including the OVM address and an array of
17571
+ * validator deposit objects (pubkey, withdrawal_credentials, signature,
17572
+ * deposit_data_root, amount).
17573
+ * @returns An array of transaction hashes, one per deposit.
17574
+ * @throws {SignerRequiredError} If no signer was provided.
17562
17575
  *
17563
- * @remarks
17564
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17565
- * and not pushed to version control.
17566
- *
17567
- * @param {OVMDepositPayload} payload - Data needed to deposit to OVM
17568
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes, one for each deposit
17569
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the deposit fails
17570
- *
17571
- * An example of how to use deposit:
17576
+ * @example
17572
17577
  * ```typescript
17573
- * const result = await client.splits.deposit({
17574
- * ovmAddress: '0x1234567890123456789012345678901234567890',
17578
+ * const { txHashes } = await client.splits.deposit({
17579
+ * ovmAddress: "0xOVM...",
17575
17580
  * deposits: [{
17576
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17577
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
17578
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17579
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
17580
- * amount: '32000000000000000000' // 32 ETH in wei
17581
- * }]
17581
+ * pubkey: "0x...",
17582
+ * withdrawal_credentials: "0x...",
17583
+ * signature: "0x...",
17584
+ * deposit_data_root: "0x...",
17585
+ * amount: "32000000000000000000",
17586
+ * }],
17582
17587
  * });
17583
- * console.log('Deposits completed:', result.txHashes);
17584
17588
  * ```
17585
17589
  */
17586
17590
  deposit(payload) {
17587
17591
  return __async(this, null, function* () {
17588
17592
  if (!this.signer) {
17589
- throw new Error("Signer is required in deposit");
17593
+ throw new SignerRequiredError("deposit");
17590
17594
  }
17591
17595
  const validatedPayload = validatePayload(
17592
17596
  payload,
@@ -17806,43 +17810,37 @@ var EOA = class {
17806
17810
  this.provider = provider;
17807
17811
  }
17808
17812
  /**
17809
- * Requests withdrawal from an EOA contract.
17810
- *
17811
- * This method allows requesting withdrawal of validator funds.
17812
- * The withdrawal request includes validator public key and corresponding withdrawal amount.
17813
+ * Requests withdrawal of validator funds via the EOA withdrawal contract.
17813
17814
  *
17814
- * @remarks
17815
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17816
- * and not pushed to version control.
17815
+ * Sends an on-chain transaction. Requires both a signer and a provider.
17817
17816
  *
17818
- * @param {EOAWithdrawalPayload} payload - Data needed to request withdrawal
17819
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
17820
- * @throws Will throw an error if the signer is not provided or the request fails
17817
+ * @param payload - Withdrawal data including validator `pubkey`, `allocation`
17818
+ * (in ETH), and `requiredFee` (in wei).
17819
+ * @returns The transaction hash, or `null` if no transaction was needed.
17820
+ * @throws {SignerRequiredError} If no signer was provided.
17821
+ * @throws {UnsupportedChainError} If the chain has no EOA withdrawal contract.
17821
17822
  *
17822
- * An example of how to use requestWithdrawal:
17823
+ * @example
17823
17824
  * ```typescript
17824
- * const result = await client.eoa.requestWithdrawal({
17825
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17826
- * allocation: 32, // 32 ETH
17827
- * requiredFee: '1' // in wei
17825
+ * const { txHash } = await client.eoa.requestWithdrawal({
17826
+ * pubkey: "0xValidatorPubkey...",
17827
+ * allocation: 32,
17828
+ * requiredFee: "1",
17828
17829
  * });
17829
- * console.log('Withdrawal requested:', result.txHash);
17830
17830
  * ```
17831
17831
  */
17832
17832
  requestWithdrawal(payload) {
17833
17833
  return __async(this, null, function* () {
17834
17834
  var _a6;
17835
17835
  if (!this.signer) {
17836
- throw new Error("Signer is required in requestWithdrawal");
17836
+ throw new SignerRequiredError("requestWithdrawal");
17837
17837
  }
17838
17838
  if (!this.provider) {
17839
17839
  throw new Error("Provider is required in requestWithdrawal");
17840
17840
  }
17841
17841
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17842
17842
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.EOA_WITHDRAWAL_CONTRACT) == null ? void 0 : _a6.address)) {
17843
- throw new Error(
17844
- `EOA withdrawal contract is not configured for chain ${this.chainId}`
17845
- );
17843
+ throw new UnsupportedChainError(this.chainId, "EOA requestWithdrawal");
17846
17844
  }
17847
17845
  const validatedPayload = validatePayload(
17848
17846
  payload,
@@ -17861,47 +17859,39 @@ var EOA = class {
17861
17859
  });
17862
17860
  }
17863
17861
  /**
17864
- * Deposits to batch deposit contract.
17865
- *
17866
- * This method allows depositing multiple validators to the Ethereum beacon chain
17867
- * using the Pier Two batch deposit contract for gas efficiency.
17868
- * Each deposit includes validator public key, withdrawal credentials, signature, and amount.
17862
+ * Batch-deposits validators to the beacon chain via the Pier Two batch
17863
+ * deposit contract for gas efficiency.
17869
17864
  *
17870
- * @remarks
17871
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17872
- * and not pushed to version control.
17865
+ * Due to EVM gas limits, it is recommended to deposit at most 500
17866
+ * validators per call.
17873
17867
  *
17874
- * **⚠️ Gas Limit:** Due to EVM constraints, it is recommended to deposit in batches of up to 500 at a time.
17868
+ * @param payload - Deposit data including an array of validator deposit objects.
17869
+ * @returns An array of transaction hashes, one per batch.
17870
+ * @throws {SignerRequiredError} If no signer was provided.
17871
+ * @throws {UnsupportedChainError} If the chain has no batch deposit contract.
17875
17872
  *
17876
- * @param {EOADepositPayload} payload - Data needed to deposit to batch contract
17877
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes for all batches
17878
- * @throws Will throw an error if the signer is not provided, contract is not configured, or the deposit fails
17879
- *
17880
- * An example of how to use deposit:
17873
+ * @example
17881
17874
  * ```typescript
17882
- * const result = await client.eoa.deposit({
17875
+ * const { txHashes } = await client.eoa.deposit({
17883
17876
  * deposits: [{
17884
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17885
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
17886
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
17887
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17888
- * amount: '32000000000000000000' // 32 ETH in wei
17889
- * }]
17877
+ * pubkey: "0x...",
17878
+ * withdrawal_credentials: "0x...",
17879
+ * deposit_data_root: "0x...",
17880
+ * signature: "0x...",
17881
+ * amount: "32000000000000000000",
17882
+ * }],
17890
17883
  * });
17891
- * console.log('Deposits completed:', result.txHashes);
17892
17884
  * ```
17893
17885
  */
17894
17886
  deposit(payload) {
17895
17887
  return __async(this, null, function* () {
17896
17888
  var _a6;
17897
17889
  if (!this.signer) {
17898
- throw new Error("Signer is required in deposit");
17890
+ throw new SignerRequiredError("deposit");
17899
17891
  }
17900
17892
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17901
17893
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.BATCH_DEPOSIT_CONTRACT) == null ? void 0 : _a6.address)) {
17902
- throw new Error(
17903
- `Batch deposit contract is not configured for chain ${this.chainId}`
17904
- );
17894
+ throw new UnsupportedChainError(this.chainId, "EOA deposit");
17905
17895
  }
17906
17896
  const validatedPayload = validatePayload(
17907
17897
  payload,
@@ -17929,14 +17919,26 @@ var validateClusterLock = (lock, safeRpcUrl) => __async(null, null, function* ()
17929
17919
  // src/index.ts
17930
17920
  var Client = class extends Base {
17931
17921
  /**
17932
- * @param config - Client configurations
17933
- * @param config.baseUrl - obol-api url
17934
- * @param config.chainId - Blockchain network ID
17935
- * @param signer - ethersJS Signer
17936
- * @returns Obol-SDK Client instance
17922
+ * Creates a new Obol SDK client.
17923
+ *
17924
+ * @param config - Client configuration object.
17925
+ * @param config.baseUrl - Obol API base URL. Defaults to `https://api.obol.tech`.
17926
+ * @param config.chainId - Target chain ID. Defaults to `560048` (Hoodi).
17927
+ * Supported: 1 (Mainnet), 560048 (Hoodi), 100 (Gnosis), 11155111 (Sepolia).
17928
+ * @param signer - An ethers `Wallet` or `JsonRpcSigner`. Required for any
17929
+ * write operation (creating clusters, deploying splits, claiming incentives).
17930
+ * Read-only operations (`getClusterDefinition`, `getClusterLock`) work without a signer.
17931
+ * @param provider - An ethers `Provider`. If omitted, falls back to `signer.provider`.
17932
+ *
17933
+ * @example
17934
+ * ```typescript
17935
+ * // Minimal read-only client (no signer)
17936
+ * const readClient = new Client({ chainId: 1 });
17937
+ * const def = await readClient.getClusterDefinition(configHash);
17937
17938
  *
17938
- * An example of how to instantiate obol-sdk Client:
17939
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L29)
17939
+ * // Full client with signer for write operations
17940
+ * const client = new Client({ chainId: 560048 }, signer);
17941
+ * ```
17940
17942
  */
17941
17943
  constructor(config2, signer, provider) {
17942
17944
  super(config2);
@@ -17953,17 +17955,30 @@ var Client = class extends Base {
17953
17955
  this.eoa = new EOA(this.signer, this.chainId, this.provider);
17954
17956
  }
17955
17957
  /**
17956
- * Accepts Obol terms and conditions to be able to create or update data.
17957
- * @returns {Promise<string>} terms and conditions acceptance success message.
17958
- * @throws On unverified signature or wrong hash.
17958
+ * Accepts the latest Obol terms and conditions.
17959
+ *
17960
+ * **Must be called once** before any write operation
17961
+ * (`createClusterDefinition`, `acceptClusterDefinition`, etc.).
17962
+ * Calling it again after acceptance throws a {@link ConflictError}.
17963
+ *
17964
+ * - Requires a `signer` to be provided at client construction.
17965
+ * - Signs an EIP-712 typed-data message; no on-chain transaction is sent.
17966
+ * - Idempotent per signer address: once accepted, subsequent calls throw `ConflictError`.
17967
+ *
17968
+ * @returns A success message string from the Obol API.
17969
+ * @throws {SignerRequiredError} If no signer was provided to the client.
17970
+ * @throws {ConflictError} If the terms were already accepted by this address.
17959
17971
  *
17960
- * An example of how to use acceptObolLatestTermsAndConditions:
17961
- * [acceptObolLatestTermsAndConditions](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L44)
17972
+ * @example
17973
+ * ```typescript
17974
+ * const message = await client.acceptObolLatestTermsAndConditions();
17975
+ * console.log(message); // "Terms and conditions accepted successfully"
17976
+ * ```
17962
17977
  */
17963
17978
  acceptObolLatestTermsAndConditions() {
17964
17979
  return __async(this, null, function* () {
17965
17980
  if (!this.signer) {
17966
- throw new Error("Signer is required in acceptObolTermsAndConditions");
17981
+ throw new SignerRequiredError("acceptObolLatestTermsAndConditions");
17967
17982
  }
17968
17983
  try {
17969
17984
  const termsAndConditionsHash = TERMS_AND_CONDITIONS_HASH;
@@ -17999,19 +18014,37 @@ var Client = class extends Base {
17999
18014
  });
18000
18015
  }
18001
18016
  /**
18002
- * Deploys OWR and Splitter Proxy.
18017
+ * Deploys an Optimistic Withdrawal Recipient (OWR) and a Splitter Proxy contract.
18018
+ *
18019
+ * Use this when the **principal** goes to a single address and only **rewards**
18020
+ * are split among recipients. For splitting both principal and rewards, see
18021
+ * {@link Client.createObolTotalSplit}.
18003
18022
  *
18004
- * @remarks
18005
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
18006
- * and not pushed to version control.
18023
+ * - Requires a `signer` with ETH to pay deployment gas.
18024
+ * - Sends one or more on-chain transactions (irreversible).
18025
+ * - Automatically appends the Obol Retroactive Funding (RAF) recipient at the
18026
+ * configured percentage (default 1%).
18027
+ * - Only supported on Mainnet (1) and Hoodi (560048).
18007
18028
  *
18008
- * @param {RewardsSplitPayload} rewardsSplitPayload - Data needed to deploy owr and splitter.
18009
- * @returns {Promise<ClusterValidator>} owr address as withdrawal address and splitter as fee recipient
18029
+ * @param rewardsSplitPayload - Configuration for the OWR and splitter deployment.
18030
+ * @returns The deployed OWR address as `withdrawal_address` and the
18031
+ * splitter proxy address as `fee_recipient_address`.
18032
+ * @throws {SignerRequiredError} If no signer was provided.
18033
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
18010
18034
  *
18011
- * An example of how to use createObolRewardsSplit:
18012
- * [createObolRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L141)
18035
+ * @example
18036
+ * ```typescript
18037
+ * const { withdrawal_address, fee_recipient_address } =
18038
+ * await client.createObolRewardsSplit({
18039
+ * splitRecipients: [
18040
+ * { account: "0xOperator1...", percentAllocation: 50 },
18041
+ * { account: "0xOperator2...", percentAllocation: 49 },
18042
+ * ],
18043
+ * principalRecipient: "0xPrincipalAddress...",
18044
+ * etherAmount: 32,
18045
+ * });
18046
+ * ```
18013
18047
  */
18014
- // add the example reference
18015
18048
  createObolRewardsSplit(_0) {
18016
18049
  return __async(this, arguments, function* ({
18017
18050
  splitRecipients,
@@ -18023,7 +18056,7 @@ var Client = class extends Base {
18023
18056
  recoveryAddress
18024
18057
  }) {
18025
18058
  if (!this.signer) {
18026
- throw new Error("Signer is required in createObolRewardsSplit");
18059
+ throw new SignerRequiredError("createObolRewardsSplit");
18027
18060
  }
18028
18061
  const validatedPayload = validatePayload(
18029
18062
  {
@@ -18038,15 +18071,11 @@ var Client = class extends Base {
18038
18071
  rewardsSplitterPayloadSchema
18039
18072
  );
18040
18073
  if (!isChainSupportedForSplitters(this.chainId)) {
18041
- throw new Error(
18042
- `Splitter configuration is not supported on ${this.chainId} chain`
18043
- );
18074
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
18044
18075
  }
18045
18076
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
18046
18077
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
18047
- throw new Error(
18048
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
18049
- );
18078
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
18050
18079
  }
18051
18080
  const checkSplitMainAddress = yield isContractAvailable(
18052
18081
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -18065,7 +18094,7 @@ var Client = class extends Base {
18065
18094
  );
18066
18095
  if (!checkMulticall3Address || !checkSplitMainAddress || !checkOWRFactoryAddress) {
18067
18096
  throw new Error(
18068
- `Something isn not working as expected, check this issue with obol-sdk team on ${OBOL_SDK_EMAIL}`
18097
+ `Required factory contracts are not available on chain ${this.chainId}. Contact Obol at ${OBOL_SDK_EMAIL}`
18069
18098
  );
18070
18099
  }
18071
18100
  const retroActiveFundingRecipient = {
@@ -18106,19 +18135,37 @@ var Client = class extends Base {
18106
18135
  });
18107
18136
  }
18108
18137
  /**
18109
- * Deploys Splitter Proxy.
18138
+ * Deploys a Splitter Proxy contract that splits **both principal and rewards**.
18139
+ *
18140
+ * Unlike {@link Client.createObolRewardsSplit}, this method does not deploy an
18141
+ * OWR – the splitter address is used as both `withdrawal_address` and
18142
+ * `fee_recipient_address`.
18110
18143
  *
18111
- * @remarks
18112
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
18113
- * and not pushed to version control.
18144
+ * - Requires a `signer` with ETH to pay deployment gas.
18145
+ * - Sends an on-chain transaction if the splitter is not already deployed (irreversible).
18146
+ * - If the predicted splitter is already deployed, returns the existing address without
18147
+ * sending a transaction (idempotent).
18148
+ * - Automatically appends the Obol RAF recipient.
18149
+ * - Only supported on Mainnet (1) and Hoodi (560048).
18114
18150
  *
18115
- * @param {TotalSplitPayload} totalSplitPayload - Data needed to deploy splitter if it doesnt exist.
18116
- * @returns {Promise<ClusterValidator>} splitter address as withdrawal address and splitter as fee recipient too
18151
+ * @param totalSplitPayload - Configuration for the splitter deployment.
18152
+ * @returns The splitter address as both `withdrawal_address` and `fee_recipient_address`.
18153
+ * @throws {SignerRequiredError} If no signer was provided.
18154
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
18155
+ * @throws {Error} If required on-chain factory contracts are unavailable.
18117
18156
  *
18118
- * An example of how to use createObolTotalSplit:
18119
- * [createObolTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L168)
18157
+ * @example
18158
+ * ```typescript
18159
+ * const { withdrawal_address, fee_recipient_address } =
18160
+ * await client.createObolTotalSplit({
18161
+ * splitRecipients: [
18162
+ * { account: "0xOperator1...", percentAllocation: 50 },
18163
+ * { account: "0xOperator2...", percentAllocation: 49.9 },
18164
+ * ],
18165
+ * });
18166
+ * // withdrawal_address === fee_recipient_address (same splitter)
18167
+ * ```
18120
18168
  */
18121
- // add the example reference
18122
18169
  createObolTotalSplit(_0) {
18123
18170
  return __async(this, arguments, function* ({
18124
18171
  splitRecipients,
@@ -18127,7 +18174,7 @@ var Client = class extends Base {
18127
18174
  controllerAddress
18128
18175
  }) {
18129
18176
  if (!this.signer) {
18130
- throw new Error("Signer is required in createObolTotalSplit");
18177
+ throw new SignerRequiredError("createObolTotalSplit");
18131
18178
  }
18132
18179
  const validatedPayload = validatePayload(
18133
18180
  {
@@ -18139,15 +18186,11 @@ var Client = class extends Base {
18139
18186
  totalSplitterPayloadSchema
18140
18187
  );
18141
18188
  if (!isChainSupportedForSplitters(this.chainId)) {
18142
- throw new Error(
18143
- `Splitter configuration is not supported on ${this.chainId} chain`
18144
- );
18189
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
18145
18190
  }
18146
18191
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
18147
18192
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
18148
- throw new Error(
18149
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
18150
- );
18193
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
18151
18194
  }
18152
18195
  const checkSplitMainAddress = yield isContractAvailable(
18153
18196
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -18156,7 +18199,7 @@ var Client = class extends Base {
18156
18199
  );
18157
18200
  if (!checkSplitMainAddress) {
18158
18201
  throw new Error(
18159
- `Something isn not working as expected, check this issue with obol-sdk team on ${OBOL_SDK_EMAIL}`
18202
+ `Required factory contracts are not available on chain ${this.chainId}. Contact Obol at ${OBOL_SDK_EMAIL}`
18160
18203
  );
18161
18204
  }
18162
18205
  const retroActiveFundingRecipient = {
@@ -18201,38 +18244,69 @@ var Client = class extends Base {
18201
18244
  });
18202
18245
  }
18203
18246
  /**
18204
- * Read OWR Tranches.
18247
+ * Reads the tranches of a deployed Optimistic Withdrawal Recipient (OWR) contract.
18248
+ *
18249
+ * Returns the principal recipient, reward recipient, and staked principal amount
18250
+ * configured in the OWR. This is a read-only on-chain call (no transaction sent).
18205
18251
  *
18206
- * @remarks
18207
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
18208
- * and not pushed to version control.
18252
+ * - Requires a `signer` (for provider access).
18209
18253
  *
18210
- * @param {ETH_ADDRESS} owrAddress - Address of the Deployed OWR Contract
18211
- * @returns {Promise<OWRTranches>} owr tranch information about principal and reward reciepient, as well as the principal amount
18254
+ * @param owrAddress - The Ethereum address of the deployed OWR contract.
18255
+ * @returns The OWR tranche data: `principalRecipient`, `rewardRecipient`, and `amountOfPrincipalStake`.
18256
+ * @throws {SignerRequiredError} If no signer was provided.
18212
18257
  *
18258
+ * @example
18259
+ * ```typescript
18260
+ * const tranches = await client.getOWRTranches("0xOWRAddress...");
18261
+ * console.log(tranches.principalRecipient);
18262
+ * console.log(tranches.rewardRecipient);
18263
+ * console.log(tranches.amountOfPrincipalStake);
18264
+ * ```
18213
18265
  */
18214
18266
  getOWRTranches(owrAddress) {
18215
18267
  return __async(this, null, function* () {
18216
18268
  if (!this.signer) {
18217
- throw new Error("Signer is required in getOWRTranches");
18269
+ throw new SignerRequiredError("getOWRTranches");
18218
18270
  }
18219
18271
  const signer = this.signer;
18220
18272
  return yield getOWRTranches({ owrAddress, signer });
18221
18273
  });
18222
18274
  }
18223
18275
  /**
18224
- * Creates a cluster definition which contains cluster configuration.
18225
- * @param {ClusterPayload} newCluster - The new unique cluster.
18226
- * @returns {Promise<string>} config_hash.
18227
- * @throws On duplicate entries, missing or wrong cluster keys.
18276
+ * Creates a new cluster definition and registers it with the Obol API.
18277
+ *
18278
+ * A cluster definition describes the operators, validators, and configuration
18279
+ * for a Distributed Key Generation (DKG) ceremony. After creation, each operator
18280
+ * must call {@link Client.acceptClusterDefinition} to join.
18228
18281
  *
18229
- * An example of how to use createClusterDefinition:
18230
- * [createObolCluster](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L59)
18282
+ * - Requires {@link Client.acceptObolLatestTermsAndConditions} to have been called first.
18283
+ * - Requires a `signer`.
18284
+ * - The `config_hash` returned is the unique identifier for this cluster.
18285
+ * - Threshold is automatically set to `ceil(2/3 * operators.length)`.
18286
+ * - Creating a duplicate cluster throws a {@link ConflictError}.
18287
+ *
18288
+ * @param newCluster - The cluster configuration payload.
18289
+ * @returns The `config_hash` string that uniquely identifies this cluster definition.
18290
+ * @throws {SignerRequiredError} If no signer was provided.
18291
+ * @throws {ConflictError} If an identical cluster definition already exists.
18292
+ *
18293
+ * @example
18294
+ * ```typescript
18295
+ * const configHash = await client.createClusterDefinition({
18296
+ * name: "my-dvt-cluster",
18297
+ * operators: [{ address: "0xOp1..." }, { address: "0xOp2..." }],
18298
+ * validators: [{
18299
+ * fee_recipient_address: "0xFeeRecipient...",
18300
+ * withdrawal_address: "0xWithdrawal...",
18301
+ * }],
18302
+ * });
18303
+ * console.log("Cluster created:", configHash);
18304
+ * ```
18231
18305
  */
18232
18306
  createClusterDefinition(newCluster) {
18233
18307
  return __async(this, null, function* () {
18234
18308
  if (!this.signer) {
18235
- throw new Error("Signer is required in createClusterDefinition");
18309
+ throw new SignerRequiredError("createClusterDefinition");
18236
18310
  }
18237
18311
  const validatedCluster = validatePayload(
18238
18312
  newCluster,
@@ -18280,19 +18354,33 @@ var Client = class extends Base {
18280
18354
  });
18281
18355
  }
18282
18356
  /**
18283
- * Approves joining a cluster with specific configuration.
18284
- * @param {OperatorPayload} operatorPayload - The operator data including signatures.
18285
- * @param {string} configHash - The config hash of the cluster which the operator confirms joining to.
18286
- * @returns {Promise<ClusterDefinition>} The cluster definition.
18287
- * @throws On unauthorized, duplicate entries, missing keys, not found cluster or invalid data.
18357
+ * Accepts (joins) an existing cluster definition as an operator.
18358
+ *
18359
+ * Each operator in the cluster must call this method with their ENR and the
18360
+ * cluster's `config_hash` to signal readiness for the DKG ceremony.
18361
+ *
18362
+ * - Requires a `signer` (the operator's address is derived from it).
18363
+ * - Signs two EIP-712 messages: one for the config hash, one for the ENR.
18364
+ * - The operator must be listed in the cluster definition's `operators` array.
18288
18365
  *
18289
- * An example of how to use acceptClusterDefinition:
18290
- * [acceptClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L106)
18366
+ * @param operatorPayload - Operator data. Must include `enr` (Ethereum Node Record)
18367
+ * and `version` at minimum.
18368
+ * @param configHash - The `config_hash` returned by {@link Client.createClusterDefinition}.
18369
+ * @returns The updated cluster definition with the operator's acceptance recorded.
18370
+ * @throws {SignerRequiredError} If no signer was provided.
18371
+ *
18372
+ * @example
18373
+ * ```typescript
18374
+ * const updatedDef = await client.acceptClusterDefinition(
18375
+ * { enr: "enr:-LK4Q...", version: "v1.10.0" },
18376
+ * configHash,
18377
+ * );
18378
+ * ```
18291
18379
  */
18292
18380
  acceptClusterDefinition(operatorPayload, configHash) {
18293
18381
  return __async(this, null, function* () {
18294
18382
  if (!this.signer) {
18295
- throw new Error("Signer is required in acceptClusterDefinition");
18383
+ throw new SignerRequiredError("acceptClusterDefinition");
18296
18384
  }
18297
18385
  const validatedPayload = validatePayload(
18298
18386
  operatorPayload,
@@ -18332,12 +18420,19 @@ var Client = class extends Base {
18332
18420
  });
18333
18421
  }
18334
18422
  /**
18335
- * @param configHash - The configuration hash returned in createClusterDefinition
18336
- * @returns {Promise<ClusterDefinition>} The cluster definition for config hash
18337
- * @throws On not found config hash.
18423
+ * Retrieves a cluster definition by its configuration hash.
18424
+ *
18425
+ * This is a read-only API call – no signer is required.
18338
18426
  *
18339
- * An example of how to use getClusterDefinition:
18340
- * [getObolClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L74)
18427
+ * @param configHash - The `config_hash` returned by {@link Client.createClusterDefinition}.
18428
+ * @returns The full cluster definition including operators, validators, and metadata.
18429
+ * @throws {Error} If no cluster definition exists for the given hash (404).
18430
+ *
18431
+ * @example
18432
+ * ```typescript
18433
+ * const definition = await client.getClusterDefinition(configHash);
18434
+ * console.log(definition.name, definition.operators.length);
18435
+ * ```
18341
18436
  */
18342
18437
  getClusterDefinition(configHash) {
18343
18438
  return __async(this, null, function* () {
@@ -18351,12 +18446,22 @@ var Client = class extends Base {
18351
18446
  });
18352
18447
  }
18353
18448
  /**
18354
- * @param configHash - The configuration hash in cluster-definition
18355
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
18356
- * @throws On not found cluster definition or lock.
18449
+ * Retrieves a cluster lock by the cluster's configuration hash.
18450
+ *
18451
+ * A cluster lock is generated after a successful DKG ceremony and contains
18452
+ * the distributed validators, their public key shares, and deposit data.
18453
+ * This is a read-only API call – no signer is required.
18454
+ *
18455
+ * @param configHash - The `config_hash` from the cluster definition.
18456
+ * @returns The cluster lock including distributed validators and deposit data.
18457
+ * @throws {Error} If no lock exists for the given config hash (DKG not yet complete, or not found).
18357
18458
  *
18358
- * An example of how to use getClusterLock:
18359
- * [getObolClusterLock](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L89)
18459
+ * @example
18460
+ * ```typescript
18461
+ * const lock = await client.getClusterLock(configHash);
18462
+ * console.log(lock.distributed_validators.length);
18463
+ * console.log(lock.lock_hash);
18464
+ * ```
18360
18465
  */
18361
18466
  getClusterLock(configHash) {
18362
18467
  return __async(this, null, function* () {
@@ -18370,10 +18475,20 @@ var Client = class extends Base {
18370
18475
  });
18371
18476
  }
18372
18477
  /**
18373
- * @param lockHash - The configuration hash in cluster-definition
18374
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
18375
- * @throws On not found cluster definition or lock.
18478
+ * Retrieves a cluster lock by its lock hash (as opposed to config hash).
18479
+ *
18480
+ * Use this when you have the `lock_hash` directly rather than the `config_hash`.
18481
+ * This is a read-only API call – no signer is required.
18376
18482
  *
18483
+ * @param lockHash - The `lock_hash` from a cluster lock.
18484
+ * @returns The cluster lock including distributed validators and deposit data.
18485
+ * @throws {Error} If no lock exists for the given lock hash (not found).
18486
+ *
18487
+ * @example
18488
+ * ```typescript
18489
+ * const lock = await client.getClusterLockByHash(lockHash);
18490
+ * console.log(lock.cluster_definition.name);
18491
+ * ```
18377
18492
  */
18378
18493
  getClusterLockByHash(lockHash) {
18379
18494
  return __async(this, null, function* () {
@@ -18394,6 +18509,7 @@ export {
18394
18509
  CONFIG_VERSION,
18395
18510
  CONFLICT_ERROR_MSG,
18396
18511
  Client,
18512
+ ConflictError,
18397
18513
  CreatorConfigHashSigningTypes,
18398
18514
  CreatorTypedMessage,
18399
18515
  DEFAULT_BASE_URL,
@@ -18425,10 +18541,12 @@ export {
18425
18541
  PROVIDER_MAP,
18426
18542
  SDK_VERSION,
18427
18543
  SPLITS_V2_SALT,
18544
+ SignerRequiredError,
18428
18545
  TERMS_AND_CONDITIONS_HASH,
18429
18546
  TERMS_AND_CONDITIONS_URL,
18430
18547
  TERMS_AND_CONDITIONS_VERSION,
18431
18548
  TermsAndConditionsSigningTypes,
18549
+ UnsupportedChainError,
18432
18550
  clusterConfigOrDefinitionHash,
18433
18551
  clusterLockHash,
18434
18552
  isChainSupportedForSplitters,