@obolnetwork/obol-sdk 2.11.8 → 2.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  };
@@ -89,7 +89,7 @@ import { v4 as uuidv4 } from "uuid";
89
89
  // package.json
90
90
  var package_default = {
91
91
  name: "@obolnetwork/obol-sdk",
92
- version: "2.11.8",
92
+ version: "2.11.10",
93
93
  description: "A package for creating Distributed Validators using the Obol API.",
94
94
  bugs: {
95
95
  url: "https://github.com/obolnetwork/obol-sdk/issues"
@@ -149,7 +149,6 @@ var package_default = {
149
149
  },
150
150
  dependencies: {
151
151
  "@chainsafe/bls": "6.0.3",
152
- "@chainsafe/blst": "^0.2.0",
153
152
  "@chainsafe/enr": "^5.0.1",
154
153
  "@chainsafe/ssz": "^0.14.0",
155
154
  "@metamask/eth-sig-util": "^8.2.0",
@@ -182,7 +181,7 @@ var package_default = {
182
181
  husky: "^9.1.7",
183
182
  jest: "^29.7.0",
184
183
  "lint-staged": "^16.2.3",
185
- msw: "^2.11.3",
184
+ msw: "^2.12.4",
186
185
  nock: "^14.0.10",
187
186
  "npm-run-all": "^4.1.5",
188
187
  prettier: "^3.6.2",
@@ -265,24 +264,21 @@ var package_default = {
265
264
  "<rootDir>/test"
266
265
  ],
267
266
  maxWorkers: "50%"
268
- }
267
+ },
268
+ packageManager: "yarn@1.22.22"
269
269
  };
270
270
 
271
271
  // src/types.ts
272
272
  var FORK_MAPPING = /* @__PURE__ */ ((FORK_MAPPING2) => {
273
273
  FORK_MAPPING2[FORK_MAPPING2["0x00000000"] = 1] = "0x00000000";
274
- FORK_MAPPING2[FORK_MAPPING2["0x00001020"] = 5] = "0x00001020";
275
274
  FORK_MAPPING2[FORK_MAPPING2["0x00000064"] = 100] = "0x00000064";
276
- FORK_MAPPING2[FORK_MAPPING2["0x01017000"] = 17e3] = "0x01017000";
277
275
  FORK_MAPPING2[FORK_MAPPING2["0x90000069"] = 11155111] = "0x90000069";
278
276
  FORK_MAPPING2[FORK_MAPPING2["0x10000910"] = 560048] = "0x10000910";
279
277
  return FORK_MAPPING2;
280
278
  })(FORK_MAPPING || {});
281
279
  var FORK_NAMES = {
282
280
  [1 /* 0x00000000 */]: "mainnet",
283
- [5 /* 0x00001020 */]: "goerli",
284
281
  [100 /* 0x00000064 */]: "gnosis",
285
- [17e3 /* 0x01017000 */]: "holesky",
286
282
  [11155111 /* 0x90000069 */]: "sepolia",
287
283
  [560048 /* 0x10000910 */]: "hoodi"
288
284
  };
@@ -291,9 +287,6 @@ var FORK_NAMES = {
291
287
  var MAINNET_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ab2565b61040b565b005b34801561015257600080fd5b50610144610161366004612c4c565b6104a6565b34801561017257600080fd5b50610144610181366004612ab2565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ab2565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ab2565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d5d565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d03565b610c4d565b34801561026a57600080fd5b50610226610279366004612ddb565b610d82565b34801561028a57600080fd5b50610144610299366004612c4c565b611144565b3480156102aa57600080fd5b506102267f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b3381565b3480156102de57600080fd5b506102266102ed366004612ab2565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612b95565b611487565b34801561033a57600080fd5b506101bc610349366004612c3a565b6117aa565b34801561035a57600080fd5b50610144610369366004612ab2565b61187e565b34801561037a57600080fd5b50610144610389366004612ace565b61194d565b34801561039a57600080fd5b506102266103a9366004612ab2565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612b95565b611a1f565b3480156103f757600080fd5b50610144610406366004612b06565b611d6f565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061057183612020565b63ffffffff16146105a75761058582612020565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120c59050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b0383166000908152602081905260409020546109389190612f98565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b83612020565b63ffffffff1614610a1f5761058582612020565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061239f915050565b9050610c3f7f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b33826123d5565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb38661247a565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ab2565b6124cd565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d729493929190612f08565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f83612020565b63ffffffff1614610e635761058582612020565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c925061239f915050565b90506001600160a01b038616611098576110917f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b3382612539565b94506110f5565b6110c17f000000000000000000000000d94c0ce4f8eefa4ebf44bf6665688edeef213b336125e9565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b038516600081815260026020526040808220849055517f8d5f9943c664a3edaf4d3eb18cc5e2c45a7d2dc5869be33d33bbc0fff9bc25909190a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111855760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611214578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611243578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061125083612020565b63ffffffff16146112645761058582612020565b82516000190160005b8181101561135b5784816001018151811061129857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112c957634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106112fb5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061132357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561135357604051630db7e4c760e01b815260048101829052602401610448565b60010161126d565b50600063ffffffff1683828151811061138457634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113b457604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156113e75760405163308440e360e21b815263ffffffff82166004820152602401610448565b6113f58c8b8b8b8b8b612698565b6114798c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120c59050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114c85760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611557578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611586578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061159383612020565b63ffffffff16146115a75761058582612020565b82516000190160005b8181101561169e578481600101815181106115db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061160c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061163e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061166657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561169657604051630db7e4c760e01b815260048101829052602401610448565b6001016115b0565b50600063ffffffff168382815181106116c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561172a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117388b8b8b8b8b8b612698565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127589050565b6001600160a01b0382166000908152600260205260408120546117ce576000611847565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561180f57600080fd5b505afa158015611823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118479190612e6c565b6001600160a01b038084166000908152600160209081526040808320938816835292905220546118779190612f98565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118c05760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b03828116600090815260026020526040902060010154839116331461198e5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119c15760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aae578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611add578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611aea83612020565b63ffffffff1614611afe5761058582612020565b82516000190160005b81811015611bf557848160010181518110611b3257634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b6357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611b955760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bbd57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611bed57604051630db7e4c760e01b815260048101829052602401610448565b600101611b07565b50600063ffffffff16838281518110611c1e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c4e57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c815760405163308440e360e21b815263ffffffff82166004820152602401610448565b611cf18a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b9250612073915050565b611d638a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127589050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611db05760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e3f578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e6e578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e7b83612020565b63ffffffff1614611e8f5761058582612020565b82516000190160005b81811015611f8657848160010181518110611ec357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611ef457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f265760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f4e57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f7e57604051630db7e4c760e01b815260048101829052602401610448565b600101611e98565b50600063ffffffff16838281518110611faf57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611fdf57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156120125760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d638a8a8a8a8a8a612698565b8051600090815b8181101561206c5783818151811061204f57634e487b7160e01b600052603260045260246000fd5b6020026020010151836120629190612fb0565b9250600101612027565b5050919050565b600061208084848461239f565b6001600160a01b03861660009081526002602052604090205490915081146120be5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561212a57600080fd5b505afa15801561213e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121629190612e6c565b9050801561216f57600019015b811561217c576001820391505b818101925081156121b0576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d46866040516121ff91815260200190565b60405180910390a463ffffffff851615612271576001600160a01b038881166000908152600160205260408120620f424063ffffffff891687020492839290881661224a573361224c565b875b6001600160a01b03168152602081019190915260400160002080549091019055909203915b865160005b81811015612329576122ba858983815181106122a257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c90859081106122f757634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612276565b5050801561239457604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561237b57600080fd5b505af115801561238f573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123b693929190612e84565b6040516020818303038152906040528051906020012090509392505050565b6000611877838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b03811660009081526020819052604081205461249f90600190612fd8565b6001600160a01b0383166000818152602081905260409020600190559091506124c8908261293a565b919050565b6001600160a01b038082166000908152600160208181526040808420948716845293905291812054909161250091612fd8565b6001600160a01b038084166000818152600160208181526040808420958a16845294905292902091909155909150610938908483612990565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124c857604051630985da9b60e41b815260040160405180910390fd5b600061270986868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525087925061239f915050565b6001600160a01b0388166000818152600260205260408082208490555192935090917f45e1e99513dd915ac128b94953ca64c6375717ea1894b3114db08cdca51debd29190a250505050505050565b6001600160a01b0385166000818152602081905260408120549131908215612781576001830392505b5081810182156127a8576001600160a01b0388166000908152602081905260409020600190555b836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b836040516127ed91815260200190565b60405180910390a363ffffffff85161561284c57620f424063ffffffff8616820204806000806001600160a01b0388166128275733612829565b875b6001600160a01b0316815260208101919091526040016000208054909101905590035b865160005b818110156128d25761287d838983815181106122a257634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128a057634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b0316825281019190915260400160002080549091019055600101612851565b5050811561293057604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561291c57600080fd5b505af1158015611479573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af190508061298b5760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129cb81612a0f565b612a095760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a2157806000803e806000fd5b8060208114612a39578015612a4a576000925061206c565b816000803e6000511515925061206c565b5060019392505050565b60008083601f840112612a65578182fd5b50813567ffffffffffffffff811115612a7c578182fd5b6020830191508360208260051b8501011115612a9757600080fd5b9250929050565b803563ffffffff811681146124c857600080fd5b600060208284031215612ac3578081fd5b813561187781613005565b60008060408385031215612ae0578081fd5b8235612aeb81613005565b91506020830135612afb81613005565b809150509250929050565b60008060008060008060808789031215612b1e578182fd5b8635612b2981613005565b9550602087013567ffffffffffffffff80821115612b45578384fd5b612b518a838b01612a54565b90975095506040890135915080821115612b69578384fd5b50612b7689828a01612a54565b9094509250612b89905060608801612a9e565b90509295509295509295565b600080600080600080600060a0888a031215612baf578081fd5b8735612bba81613005565b9650602088013567ffffffffffffffff80821115612bd6578283fd5b612be28b838c01612a54565b909850965060408a0135915080821115612bfa578283fd5b50612c078a828b01612a54565b9095509350612c1a905060608901612a9e565b91506080880135612c2a81613005565b8091505092959891949750929550565b60008060408385031215612ae0578182fd5b60008060008060008060008060c0898b031215612c67578081fd5b8835612c7281613005565b97506020890135612c8281613005565b9650604089013567ffffffffffffffff80821115612c9e578283fd5b612caa8c838d01612a54565b909850965060608b0135915080821115612cc2578283fd5b50612ccf8b828c01612a54565b9095509350612ce2905060808a01612a9e565b915060a0890135612cf281613005565b809150509295985092959890939650565b60008060008060608587031215612d18578384fd5b8435612d2381613005565b935060208501359250604085013567ffffffffffffffff811115612d45578283fd5b612d5187828801612a54565b95989497509550505050565b600080600080600060608688031215612d74578081fd5b853567ffffffffffffffff80821115612d8b578283fd5b612d9789838a01612a54565b90975095506020880135915080821115612daf578283fd5b50612dbc88828901612a54565b9094509250612dcf905060408701612a9e565b90509295509295909350565b60008060008060008060808789031215612df3578182fd5b863567ffffffffffffffff80821115612e0a578384fd5b612e168a838b01612a54565b90985096506020890135915080821115612e2e578384fd5b50612e3b89828a01612a54565b9095509350612e4e905060408801612a9e565b91506060870135612e5e81613005565b809150509295509295509295565b600060208284031215612e7d578081fd5b5051919050565b835160009082906020808801845b83811015612eb75781516001600160a01b031685529382019390820190600101612e92565b50508651818801939250845b81811015612ee557845163ffffffff1684529382019392820192600101612ec3565b50505060e09490941b6001600160e01b0319168452505060049091019392505050565b84815260606020808301829052908201849052600090859060808401835b87811015612f54578335612f3981613005565b6001600160a01b031682529282019290820190600101612f26565b5084810360408601528551808252908201925081860190845b81811015612f8957825185529383019391830191600101612f6d565b50929998505050505050505050565b60008219821115612fab57612fab612fef565b500190565b600063ffffffff808316818516808303821115612fcf57612fcf612fef565b01949350505050565b600082821015612fea57612fea612fef565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461301a57600080fd5b5056fea264697066735822122078638564d8f0338df6cf15b5c2680d5c2ef45167f59938471977e9756316b94964736f6c63430008040033";
292
288
  var MAINNET_MULTICALL3_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
293
289
  var MAINNET_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006a575b600080fd5b61004e61004936600461031b565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000e11eabf19a49c389d3e8735c35f8f34f28bdcb2281565b60006001600160a01b03841615806100b057506001600160a01b038316155b156100ce57604051637e511f1560e11b815260040160405180910390fd5b816000036100ef57604051638966ee9560e01b815260040160405180910390fd5b6bffffffffffffffffffffffff82111561012357604051637a95f47560e01b81526004810183905260240160405180910390fd5b604051606086901b6bffffffffffffffffffffffff191660208201526001600160a01b0385811660a085901b176034830181905290851660548301819052909160009060740160408051601f1981840301815291905290506101ae6001600160a01b037f000000000000000000000000e11eabf19a49c389d3e8735c35f8f34f28bdcb221682610213565b604080516001600160a01b038b811682528a8116602083015289811682840152606082018990529151929650908616917ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb9181900360800190a2505050949350505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f0975050866102e05763301164256000526004601cfd5b90528552601f19850152603f19840152605f1990920191909152919050565b80356001600160a01b038116811461031657600080fd5b919050565b6000806000806080858703121561033157600080fd5b61033a856102ff565b9350610348602086016102ff565b9250610356604086016102ff565b939692955092936060013592505056fea26469706673582212207e26706744441b67ebb26904afecebf545348e41ee746030e32bb85594999a1264736f6c63430008130033";
294
- var HOLESKY_SPLITMAIN_BYTECODE = "0x6080604052600436106101185760003560e01c806377b1e4e9116100a0578063c7de644011610064578063c7de64401461034e578063d0e4b2f41461036e578063e10e51d61461038e578063e61cb05e146103cb578063ecef0ace146103eb57600080fd5b806377b1e4e91461027e5780638117abc11461029e57806388c662aa146102d2578063a5e3909e1461030e578063c3a8962c1461032e57600080fd5b80633bb66a7b116100e75780633bb66a7b146101cf5780633f26479e146101ef57806352844dd3146102065780636e5f69191461023e5780637601f7821461025e57600080fd5b80631267c6da146101245780631581130214610146578063189cbaa0146101665780631da0b8fc1461018657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5061014461013f366004612ae0565b61040b565b005b34801561015257600080fd5b50610144610161366004612c7a565b6104a6565b34801561017257600080fd5b50610144610181366004612ae0565b61081a565b34801561019257600080fd5b506101bc6101a1366004612ae0565b6001600160a01b031660009081526002602052604090205490565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101bc6101ea366004612ae0565b6108e5565b3480156101fb57600080fd5b506101bc620f424081565b34801561021257600080fd5b50610226610221366004612d8b565b61093e565b6040516001600160a01b0390911681526020016101c6565b34801561024a57600080fd5b50610144610259366004612d31565b610c4d565b34801561026a57600080fd5b50610226610279366004612e09565b610d82565b34801561028a57600080fd5b50610144610299366004612c7a565b611160565b3480156102aa57600080fd5b506102267f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d1781565b3480156102de57600080fd5b506102266102ed366004612ae0565b6001600160a01b039081166000908152600260205260409020600101541690565b34801561031a57600080fd5b50610144610329366004612bc3565b6114a3565b34801561033a57600080fd5b506101bc610349366004612c68565b6117c6565b34801561035a57600080fd5b50610144610369366004612ae0565b61189a565b34801561037a57600080fd5b50610144610389366004612afc565b611969565b34801561039a57600080fd5b506102266103a9366004612ae0565b6001600160a01b03908116600090815260026020819052604090912001541690565b3480156103d757600080fd5b506101446103e6366004612bc3565b611a3b565b3480156103f757600080fd5b50610144610406366004612b34565b611d8b565b6001600160a01b0381811660009081526002602052604090206001015482911633146104515760405163472511eb60e11b81523360048201526024015b60405180910390fd5b6001600160a01b038216600081815260026020819052604080832090910180546001600160a01b0319169055517f6c2460a415b84be3720c209fe02f2cad7a6bcba21e8637afe8957b7ec4b6ef879190a25050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050610535578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610564578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f42406105718361203c565b63ffffffff16146105a7576105858261203c565b60405163fcc487c160e01b815263ffffffff9091166004820152602401610448565b82516000190160005b8181101561069e578481600101815181106105db57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061060c57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061063e5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061066657634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561069657604051630db7e4c760e01b815260048101829052602401610448565b6001016105b0565b50600063ffffffff168382815181106106c757634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156106f757604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561072a5760405163308440e360e21b815263ffffffff82166004820152602401610448565b61079a8b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061208f915050565b61080d8b8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506120e19050565b5050505050505050505050565b6001600160a01b03818116600090815260026020526040902060010154829116331461085b5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905191931691907f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d0908490a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b0319169055565b6001600160a01b038116600090815260026020526040812054610909576000610915565b816001600160a01b0316315b6001600160a01b03831660009081526020819052604090205461093891906130da565b92915050565b6000858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152505083518692506002111590506109cf578251604051630e8c626560e41b815260040161044891815260200190565b81518351146109fe578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610a0b8361203c565b63ffffffff1614610a1f576105858261203c565b82516000190160005b81811015610b1657848160010181518110610a5357634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610a8457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610ab65760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610ade57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b0e57604051630db7e4c760e01b815260048101829052602401610448565b600101610a28565b50600063ffffffff16838281518110610b3f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610b6f57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610ba25760405163308440e360e21b815263ffffffff82166004820152602401610448565b6000610c138a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92506123b6915050565b9050610c3f7f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d17826123ec565b9a9950505050505050505050565b60008167ffffffffffffffff811115610c7657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c9f578160200160208202803683370190505b50905060008415610cb657610cb386612491565b90505b60005b83811015610d3257610cff87868684818110610ce557634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610cfa9190612ae0565b6124e4565b838281518110610d1f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152600101610cb9565b50856001600160a01b03167fa9e30bf144f83390a4fe47562a4e16892108102221c674ff538da0b72a83d17482868686604051610d72949392919061304a565b60405180910390a2505050505050565b600086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050610e13578251604051630e8c626560e41b815260040161044891815260200190565b8151835114610e42578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240610e4f8361203c565b63ffffffff1614610e63576105858261203c565b82516000190160005b81811015610f5a57848160010181518110610e9757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110610ec857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610610efa5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110610f2257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610f5257604051630db7e4c760e01b815260048101829052602401610448565b600101610e6c565b50600063ffffffff16838281518110610f8357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415610fb357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115610fe65760405163308440e360e21b815263ffffffff82166004820152602401610448565b60006110578b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92506123b6915050565b90506001600160a01b038616611098576110917f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d1782612550565b94506110f5565b6110c17f000000000000000000000000124afa8ae23fa2c77f3cbce0ca12464fe00b3d17612600565b6001600160a01b03818116600090815260026020526040902060010180546001600160a01b03191691891691909117905594505b6001600160a01b03851660008181526002602052604090819020839055517fd2bcf51a5767c814cfe0266a99141f75a32103bbf8c400fbc1ac0c3b73ce25e89061114a908e908e908e908e908e908e90612ff9565b60405180910390a2505050509695505050505050565b6001600160a01b0388811660009081526002602052604090206001015489911633146111a15760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611230578251604051630e8c626560e41b815260040161044891815260200190565b815183511461125f578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f424061126c8361203c565b63ffffffff1614611280576105858261203c565b82516000190160005b81811015611377578481600101815181106112b457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03168582815181106112e557634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316106113175760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061133f57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561136f57604051630db7e4c760e01b815260048101829052602401610448565b600101611289565b50600063ffffffff168382815181106113a057634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156113d057604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156114035760405163308440e360e21b815263ffffffff82166004820152602401610448565b6114118c8b8b8b8b8b6126af565b6114958c8c8c8c80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c91506120e19050565b505050505050505050505050565b6001600160a01b0387811660009081526002602052604090206001015488911633146114e45760405163472511eb60e11b8152336004820152602401610448565b86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250508351879250600211159050611573578251604051630e8c626560e41b815260040161044891815260200190565b81518351146115a2578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f42406115af8361203c565b63ffffffff16146115c3576105858261203c565b82516000190160005b818110156116ba578481600101815181106115f757634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031685828151811061162857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03161061165a5760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff1684828151811061168257634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff1614156116b257604051630db7e4c760e01b815260048101829052602401610448565b6001016115cc565b50600063ffffffff168382815181106116e357634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16141561171357604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff1611156117465760405163308440e360e21b815263ffffffff82166004820152602401610448565b6117548b8b8b8b8b8b6126af565b61080d8b8b8b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808f0282810182019093528e82529093508e92508d9182918501908490808284376000920191909152508c92508b91506127889050565b6001600160a01b0382166000908152600260205260408120546117ea576000611863565b6040516370a0823160e01b81526001600160a01b0384811660048301528316906370a082319060240160206040518083038186803b15801561182b57600080fd5b505afa15801561183f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118639190612e9a565b6001600160a01b0380841660009081526001602090815260408083209388168352929052205461189391906130da565b9392505050565b6001600160a01b038181166000908152600260208190526040909120015482911633146118dc5760405163472511eb60e11b8152336004820152602401610448565b6001600160a01b03808316600081815260026020819052604080832091820180546001600160a01b0319169055600190910154905133949190911692917f943d69cf2bbe08a9d44b3c4ce6da17d939d758739370620871ce99a6437866d091a4506001600160a01b0316600090815260026020526040902060010180546001600160a01b03191633179055565b6001600160a01b0382811660009081526002602052604090206001015483911633146119aa5760405163472511eb60e11b8152336004820152602401610448565b816001600160a01b0381166119dd5760405163c369130760e01b81526001600160a01b0382166004820152602401610448565b6001600160a01b03848116600081815260026020819052604080832090910180546001600160a01b0319169488169485179055517f107cf6ea8668d533df1aab5bb8b6315bb0c25f0b6c955558d09368f290668fc79190a350505050565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611aca578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611af9578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611b068361203c565b63ffffffff1614611b1a576105858261203c565b82516000190160005b81811015611c1157848160010181518110611b4e57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611b7f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611bb15760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611bd957634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c0957604051630db7e4c760e01b815260048101829052602401610448565b600101611b23565b50600063ffffffff16838281518110611c3a57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611c6a57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff161115611c9d5760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d0d8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b925061208f915050565b611d7f8a8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c9182918501908490808284376000920191909152508b92508a91506127889050565b50505050505050505050565b6001600160a01b038681166000908152600260205260409020600101548791163314611dcc5760405163472511eb60e11b8152336004820152602401610448565b85858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250508351869250600211159050611e5b578251604051630e8c626560e41b815260040161044891815260200190565b8151835114611e8a578251825160405163b34f351d60e01b815260048101929092526024820152604401610448565b620f4240611e978361203c565b63ffffffff1614611eab576105858261203c565b82516000190160005b81811015611fa257848160010181518110611edf57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316858281518110611f1057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031610611f425760405163ac6bd23360e01b815260048101829052602401610448565b600063ffffffff16848281518110611f6a57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611f9a57604051630db7e4c760e01b815260048101829052602401610448565b600101611eb4565b50600063ffffffff16838281518110611fcb57634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff161415611ffb57604051630db7e4c760e01b815260048101829052602401610448565b50620186a08163ffffffff16111561202e5760405163308440e360e21b815263ffffffff82166004820152602401610448565b611d7f8a8a8a8a8a8a6126af565b8051600090815b818110156120885783818151811061206b57634e487b7160e01b600052603260045260246000fd5b60200260200101518361207e91906130f2565b9250600101612043565b5050919050565b600061209c8484846123b6565b6001600160a01b03861660009081526002602052604090205490915081146120da5760405163dd5ff45760e01b815260048101829052602401610448565b5050505050565b6001600160a01b038581166000818152600160209081526040808320948b16808452949091528082205490516370a0823160e01b815260048101949094529092909183916370a082319060240160206040518083038186803b15801561214657600080fd5b505afa15801561215a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217e9190612e9a565b9050801561218b57600019015b8115612198576001820391505b818101925081156121cc576001600160a01b038089166000908152600160208181526040808420948e168452939052919020555b6001600160a01b0384166121e057336121e2565b835b9350836001600160a01b0316886001600160a01b03168a6001600160a01b03167fb5ee5dc3d2c31a019bbf2c787e0e9c97971c96aceea1c38c12fc8fd25c536d468660405161223391815260200190565b60405180910390a463ffffffff851615612288576000620f424063ffffffff87168502046001600160a01b03808b166000908152600160209081526040808320938a1683529290522080548201905590930392505b865160005b81811015612340576122d1858983815181106122b957634e487b7160e01b600052603260045260246000fd5b602002602001015163ffffffff16620f424091020490565b6001600160a01b038b1660009081526001602052604081208b519091908c908590811061230e57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000208054909101905560010161228d565b505080156123ab57604051633e0f9fff60e11b81526001600160a01b038981166004830152602482018390528a1690637c1f3ffe90604401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b505050505b505050505050505050565b60008383836040516020016123cd93929190612f32565b6040516020818303038152906040528051906020012090509392505050565b6000611893838330604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b6033820152606093841b60468201526d5af43d3d93803e605b57fd5bf3ff60901b605a820152921b6068830152607c8201526067808220609c830152605591012090565b6001600160a01b0381166000908152602081905260408120546124b69060019061311a565b6001600160a01b0383166000818152602081905260409020600190559091506124df9082612968565b919050565b6001600160a01b03808216600090815260016020818152604080842094871684529390529181205490916125179161311a565b6001600160a01b038084166000818152600160208181526040808420958a168452949052929020919091559091506109389084836129be565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528360601b60468201526c5af43d3d93803e605b57fd5bf360981b605a820152826067826000f59150506001600160a01b0381166109385760405163380bbe1360e01b815260040160405180910390fd5b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b0381166124df57604051630985da9b60e41b815260040160405180910390fd5b600061272086868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a028281018201909352898252909350899250889182918501908490808284376000920191909152508792506123b6915050565b6001600160a01b0388166000818152600260205260409081902083905551919250907fce55a01ad467ce2f3080a2cef6eb951b65f489b97956f76c2c04bcddab92aaa9906127779089908990899089908990612fb9565b60405180910390a250505050505050565b6001600160a01b03851660008181526020819052604081205491319082156127b1576001830392505b5081810182156127d8576001600160a01b0388166000908152602081905260409020600190555b6001600160a01b0384166127ec57336127ee565b835b9350836001600160a01b0316886001600160a01b03167f87c3ca0a87d9b82033e4bc55e6d30621f8d7e0c9d8ca7988edfde8932787b77b8360405161283591815260200190565b60405180910390a363ffffffff85161561287a576001600160a01b03841660009081526020819052604090208054620f424063ffffffff881684020490810190915590035b865160005b81811015612900576128ab838983815181106122b957634e487b7160e01b600052603260045260246000fd5b6000808b84815181106128ce57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b031682528101919091526040016000208054909101905560010161287f565b5050811561295e57604051632ac3affd60e21b8152600481018390526001600160a01b0389169063ab0ebff490602401600060405180830381600087803b15801561294a57600080fd5b505af1158015611495573d6000803e3d6000fd5b5050505050505050565b600080600080600085875af19050806129b95760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610448565b505050565b600060405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526000806044836000895af19150506129f981612a3d565b612a375760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610448565b50505050565b60003d82612a4f57806000803e806000fd5b8060208114612a67578015612a785760009250612088565b816000803e60005115159250612088565b5060019392505050565b60008083601f840112612a93578182fd5b50813567ffffffffffffffff811115612aaa578182fd5b6020830191508360208260051b8501011115612ac557600080fd5b9250929050565b803563ffffffff811681146124df57600080fd5b600060208284031215612af1578081fd5b813561189381613147565b60008060408385031215612b0e578081fd5b8235612b1981613147565b91506020830135612b2981613147565b809150509250929050565b60008060008060008060808789031215612b4c578182fd5b8635612b5781613147565b9550602087013567ffffffffffffffff80821115612b73578384fd5b612b7f8a838b01612a82565b90975095506040890135915080821115612b97578384fd5b50612ba489828a01612a82565b9094509250612bb7905060608801612acc565b90509295509295509295565b600080600080600080600060a0888a031215612bdd578081fd5b8735612be881613147565b9650602088013567ffffffffffffffff80821115612c04578283fd5b612c108b838c01612a82565b909850965060408a0135915080821115612c28578283fd5b50612c358a828b01612a82565b9095509350612c48905060608901612acc565b91506080880135612c5881613147565b8091505092959891949750929550565b60008060408385031215612b0e578182fd5b60008060008060008060008060c0898b031215612c95578081fd5b8835612ca081613147565b97506020890135612cb081613147565b9650604089013567ffffffffffffffff80821115612ccc578283fd5b612cd88c838d01612a82565b909850965060608b0135915080821115612cf0578283fd5b50612cfd8b828c01612a82565b9095509350612d10905060808a01612acc565b915060a0890135612d2081613147565b809150509295985092959890939650565b60008060008060608587031215612d46578384fd5b8435612d5181613147565b935060208501359250604085013567ffffffffffffffff811115612d73578283fd5b612d7f87828801612a82565b95989497509550505050565b600080600080600060608688031215612da2578081fd5b853567ffffffffffffffff80821115612db9578283fd5b612dc589838a01612a82565b90975095506020880135915080821115612ddd578283fd5b50612dea88828901612a82565b9094509250612dfd905060408701612acc565b90509295509295909350565b60008060008060008060808789031215612e21578182fd5b863567ffffffffffffffff80821115612e38578384fd5b612e448a838b01612a82565b90985096506020890135915080821115612e5c578384fd5b50612e6989828a01612a82565b9095509350612e7c905060408801612acc565b91506060870135612e8c81613147565b809150509295509295509295565b600060208284031215612eab578081fd5b5051919050565b81835260006020808501945082825b85811015612eef578135612ed481613147565b6001600160a01b031687529582019590820190600101612ec1565b509495945050505050565b81835260006020808501945082825b85811015612eef5763ffffffff612f1f83612acc565b1687529582019590820190600101612f09565b835160009082906020808801845b83811015612f655781516001600160a01b031685529382019390820190600101612f40565b50508651818801939250845b81811015612f9357845163ffffffff1684529382019392820192600101612f71565b505050612fac818660e01b6001600160e01b0319169052565b6004019695505050505050565b606081526000612fcd606083018789612eb2565b8281036020840152612fe0818688612efa565b91505063ffffffff831660408301529695505050505050565b60808152600061300d60808301888a612eb2565b8281036020840152613020818789612efa565b63ffffffff95909516604084015250506001600160a01b0391909116606090910152949350505050565b84815260606020808301829052908201849052600090859060808401835b8781101561309657833561307b81613147565b6001600160a01b031682529282019290820190600101613068565b5084810360408601528551808252908201925081860190845b818110156130cb578251855293830193918301916001016130af565b50929998505050505050505050565b600082198211156130ed576130ed613131565b500190565b600063ffffffff80831681851680830382111561311157613111613131565b01949350505050565b60008282101561312c5761312c613131565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461315c57600080fd5b5056fea26469706673582212203623903cdef9a8c0647bc7a19460e0774b453343d6cfb95b942d17a3fd381b4764736f6c63430008040033";
295
- var HOLESKY_MULTICALL3_BYTECODE = "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033";
296
- var HOLESKY_OWR_FACTORY_BYTECODE = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c3d7aa861461003b578063c52425e41461006a575b600080fd5b61004e61004936600461031b565b610091565b6040516001600160a01b03909116815260200160405180910390f35b61004e7f000000000000000000000000a70eb35c1ee7f96688ea5e530ddf1ebedd0c825981565b60006001600160a01b03841615806100b057506001600160a01b038316155b156100ce57604051637e511f1560e11b815260040160405180910390fd5b816000036100ef57604051638966ee9560e01b815260040160405180910390fd5b6bffffffffffffffffffffffff82111561012357604051637a95f47560e01b81526004810183905260240160405180910390fd5b604051606086901b6bffffffffffffffffffffffff191660208201526001600160a01b0385811660a085901b176034830181905290851660548301819052909160009060740160408051601f1981840301815291905290506101ae6001600160a01b037f000000000000000000000000a70eb35c1ee7f96688ea5e530ddf1ebedd0c82591682610213565b604080516001600160a01b038b811682528a8116602083015289811682840152606082018990529151929650908616917ff818472e7ef9970531a3465a1d70817d221d2c79dc98ea49bdb1254783dba6eb9181900360800190a2505050949350505050565b600060608203516040830351602084035184518060208701018051600283016c5af43d3d93803e606057fd5bf3895289600d8a035278593da1005b363d3d373d3d3d3d610000806062363936013d738160481b1760218a03527f9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff603a8a035272fd6100003d81600a3d39f336602c57343d527f6062820160781b1761ff9e82106059018a03528060f01b8352606c8101604c8a036000f0975050866102e05763301164256000526004601cfd5b90528552601f19850152603f19840152605f1990920191909152919050565b80356001600160a01b038116811461031657600080fd5b919050565b6000806000806080858703121561033157600080fd5b61033a856102ff565b9350610348602086016102ff565b9250610356604086016102ff565b939692955092936060013592505056fea26469706673582212207e26706744441b67ebb26904afecebf545348e41ee746030e32bb85594999a1264736f6c63430008130033";
297
290
  var HOODI_OVM_FACTORY_BYTECODE = "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806306dbd0cb14620000575780633e5b34b21462000079578063cdba577d146200009b578063f7f8ff7a14620000d1575b600080fd5b62000061620000f3565b60405162000070919062000464565b60405180910390f35b6200008362000117565b60405162000092919062000464565b60405180910390f35b620000b96004803603810190620000b39190620004fc565b6200013b565b604051620000c89190620005d9565b60405180910390f35b620000db620003ed565b604051620000ea919062000464565b60405180910390f35b7f00000000000000000000000000000961ef480eb55e80d19ad83579a64c00700281565b7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f22adafa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200020b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000243576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008267ffffffffffffffff160362000288576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6501dcd65000008267ffffffffffffffff161115620002d3576040517f12f9b82600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a5900072517f00000000000000000000000000000961ef480eb55e80d19ad83579a64c0070027f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa87878787604051620003489062000411565b6200035a979695949392919062000607565b604051809103906000f08015801562000377573d6000803e3d6000fd5b5090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5f69e7dce622f5df4a1899cf39ca6eb1216397f2c07206d2ef33aebf960827a3868686604051620003dd9392919062000684565b60405180910390a3949350505050565b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a59000725181565b613d2e80620006c283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200044c826200041f565b9050919050565b6200045e816200043f565b82525050565b60006020820190506200047b600083018462000453565b92915050565b600080fd5b62000491816200043f565b81146200049d57600080fd5b50565b600081359050620004b18162000486565b92915050565b600067ffffffffffffffff82169050919050565b620004d681620004b7565b8114620004e257600080fd5b50565b600081359050620004f681620004cb565b92915050565b6000806000806080858703121562000519576200051862000481565b5b60006200052987828801620004a0565b94505060206200053c87828801620004a0565b93505060406200054f87828801620004a0565b92505060606200056287828801620004e5565b91505092959194509250565b6000819050919050565b600062000599620005936200058d846200041f565b6200056e565b6200041f565b9050919050565b6000620005ad8262000578565b9050919050565b6000620005c182620005a0565b9050919050565b620005d381620005b4565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b6200060181620004b7565b82525050565b600060e0820190506200061e600083018a62000453565b6200062d602083018962000453565b6200063c604083018862000453565b6200064b606083018762000453565b6200065a608083018662000453565b6200066960a083018562000453565b6200067860c0830184620005f6565b98975050505050505050565b60006060820190506200069b600083018662000453565b620006aa602083018562000453565b620006b96040830184620005f6565b94935050505056fe61010060405260016000553480156200001757600080fd5b5060405162003d2e38038062003d2e83398181016040528101906200003d9190620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620000a4576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200010b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000172576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620001d9576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000240576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a7576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508067ffffffffffffffff1660e08167ffffffffffffffff1681525050620003f284620003ff60201b60201c565b505050505050506200059d565b8060601b60601c905080638b78c6d819558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a350565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200046d8262000440565b9050919050565b6200047f8162000460565b81146200048b57600080fd5b50565b6000815190506200049f8162000474565b92915050565b600067ffffffffffffffff82169050919050565b620004c481620004a5565b8114620004d057600080fd5b50565b600081519050620004e481620004b9565b92915050565b600080600080600080600060e0888a0312156200050c576200050b6200043b565b5b60006200051c8a828b016200048e565b97505060206200052f8a828b016200048e565b9650506040620005428a828b016200048e565b9550506060620005558a828b016200048e565b9450506080620005688a828b016200048e565b93505060a06200057b8a828b016200048e565b92505060c06200058e8a828b01620004d3565b91505092959891949750929550565b60805160a05160c05160e05161372d620006016000396000818161135301526121a5015260008181610c620152610f6d0152600081816109590152818161143a015261155601526000818161190701528181611c820152611fea015261372d6000f3fe6080604052600436106102605760003560e01c806354d1f13d116101445780639124aafb116100b6578063e521136f1161007a578063e521136f146107fa578063f04e283e14610823578063f2fde38b1461083f578063f5e45d4d1461085b578063f7f8ff7a14610884578063fee81cf4146108af57610267565b80639124aafb146107455780639fdb5e8a14610761578063ba45b0b81461078c578063bca2da78146107b5578063dc04d8f4146107de57610267565b80636c196886116101085780636c196886146106665780636ea056a914610691578063715018a6146106ba57806379de7638146106c45780637bfafd59146106ef5780638da5cb5b1461071a57610267565b806354d1f13d146105b057806354fd4d50146105ba578063565a2e2c146105e55780635f097d751461061057806367db90c21461063b57610267565b806324ae6a27116101dd578063353efdcf116101a1578063353efdcf146104bf578063377b2c34146104ea5780633a6a4d2e146105155780633e5b34b21461052c5780634a4ee7b114610557578063514e62fc1461057357610267565b806324ae6a271461040d57806325692962146104365780632d7fd507146104405780632de94807146104575780633332c3241461049457610267565b8063183a4f6e11610224578063183a4f6e146103535780631c10893f1461036f5780631c31f7101461038b5780631cd64df4146103b457806322895118146103f157610267565b806303615ba31461026c578063043edae8146102a957806306dbd0cb146102d45780630da58dbb146102ff57806317f333401461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061298c565b6108ec565b6040516102a091906129d2565b60405180910390f35b3480156102b557600080fd5b506102be610935565b6040516102cb9190612a18565b60405180910390f35b3480156102e057600080fd5b506102e9610957565b6040516102f69190612a42565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061298c565b61097b565b005b34801561033457600080fd5b5061033d610ae8565b60405161034a9190612a42565b60405180910390f35b61036d60048036038101906103689190612a89565b610b0e565b005b61038960048036038101906103849190612ab6565b610b1a565b005b34801561039757600080fd5b506103b260048036038101906103ad919061298c565b610b28565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612ab6565b610c21565b6040516103e89190612b11565b60405180910390f35b61040b60048036038101906104069190612bc7565b610c35565b005b34801561041957600080fd5b50610434600480360381019061042f9190612c90565b610d3e565b005b61043e610e5d565b005b34801561044c57600080fd5b50610455610e67565b005b34801561046357600080fd5b5061047e6004803603810190610479919061298c565b610ec8565b60405161048b91906129d2565b60405180910390f35b3480156104a057600080fd5b506104a9610eda565b6040516104b691906129d2565b60405180910390f35b3480156104cb57600080fd5b506104d4610edf565b6040516104e191906129d2565b60405180910390f35b3480156104f657600080fd5b506104ff610ee4565b60405161050c9190612a42565b60405180910390f35b34801561052157600080fd5b5061052a610f0a565b005b34801561053857600080fd5b50610541610f6b565b60405161054e9190612a42565b60405180910390f35b610571600480360381019061056c9190612ab6565b610f8f565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612ab6565b610f9d565b6040516105a79190612b11565b60405180910390f35b6105b8610fb1565b005b3480156105c657600080fd5b506105cf610fbb565b6040516105dc9190612d60565b60405180910390f35b3480156105f157600080fd5b506105fa610ff8565b6040516106079190612a42565b60405180910390f35b34801561061c57600080fd5b50610625611022565b60405161063291906129d2565b60405180910390f35b34801561064757600080fd5b50610650611028565b60405161065d91906129d2565b60405180910390f35b34801561067257600080fd5b5061067b61102d565b60405161068891906129d2565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612ab6565b611032565b005b6106c2611342565b005b3480156106d057600080fd5b506106d961134c565b6040516106e691906129d2565b60405180910390f35b3480156106fb57600080fd5b50610704611351565b6040516107119190612da5565b60405180910390f35b34801561072657600080fd5b5061072f611375565b60405161073c9190612a42565b60405180910390f35b61075f600480360381019061075a9190612e6c565b611384565b005b34801561076d57600080fd5b506107766116e8565b60405161078391906129d2565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190612c90565b6116ed565b005b3480156107c157600080fd5b506107dc60048036038101906107d79190612a89565b611846565b005b6107f860048036038101906107f39190612f69565b6118a8565b005b34801561080657600080fd5b50610821600480360381019061081c919061298c565b611e4f565b005b61083d6004803603810190610838919061298c565b611f48565b005b6108596004803603810190610854919061298c565b611f54565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ab6565b611f60565b005b34801561089057600080fd5b50610899611fe8565b6040516108a69190612a42565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d1919061298c565b61200c565b6040516108e391906129d2565b60405180910390f35b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a90046fffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081036109cd5750610ae5565b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a95818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fcbfdaa15c344a7a5b846b2199db1ca289c82041c65048ce19264f9fdd8cee27482604051610adb91906129d2565b60405180910390a2505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b178161203e565b50565b610b24828261204b565b5050565b6004610b3381612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b99576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a25050565b6000610c2d8383612098565b905092915050565b6020610c4081612061565b600060035490503460036000828254610c59919061300c565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166322895118348b8b8b8b8b8b8b6040518963ffffffff1660e01b8152600401610cc6979695949392919061309c565b6000604051808303818588803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50505050507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf860035482604051610d2b9291906130fc565b60405180910390a1505050505050505050565b6008610d4981612061565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d849190612a42565b602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061313a565b9050610df283828673ffffffffffffffffffffffffffffffffffffffff166120af9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f02dc46f45168b3833fa84aa22ee90f4ffec812cf1067be0413353eb95c031b0583604051610e4f91906129d2565b60405180910390a350505050565b610e656120fe565b565b600160005414610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906131b3565b60405180910390fd5b6002600081905550610ebe6001612152565b6001600081905550565b6000610ed3826123f0565b9050919050565b600481565b602081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160005414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906131b3565b60405180910390fd5b6002600081905550610f616000612152565b6001600081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f99828261240b565b5050565b6000610fa98383612421565b905092915050565b610fb9612439565b565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600181565b600281565b600160005414611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e906131b3565b60405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e6576110e2612475565b8290505b60008083146110f55782611158565b60056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156111f5576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112c091906131d3565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff167fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969660405160405180910390a3611334818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b505060016000819055505050565b61134a612492565b565b601081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061137f6124a6565b905090565b600161138f81612061565b6001600054146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb906131b3565b60405180910390fd5b600260008190555084849050878790501461141b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61143334888890508561142e9190613207565b6124b4565b600061145f7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b898990508110156116c9576114e08a8a8381811061148657611485613249565b5b90506020028101906114989190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a838181106114f5576114f4613249565b5b90506020028101906115079190613287565b8a8a8581811061151a57611519613249565b5b905060200201602081019061152f9190613316565b604051602001611541939291906133a9565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16858360405161159a919061340f565b60006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b5050905080611617576040517fd3d2fd8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8484611623919061300c565b9350848a8a8581811061163957611638613249565b5b905060200201602081019061164e9190613316565b67ffffffffffffffff167f19cd6ffa1afc5a20b44dd0fea708b8fb38af1d7891d4929811a3c65ff1624fb98e8e8781811061168c5761168b613249565b5b905060200281019061169e9190613287565b6040516116ac929190613426565b60405180910390a3505080806116c19061344a565b915050611465565b506116d5348286612625565b5050600160008190555050505050505050565b600881565b6116f5612475565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a26117e881611f54565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa1c3c7ba08cdab9542dfbb1f9606093e828bca6c2678c82942703ec4e223790260405160405180910390a35050565b600461185181612061565b6003548203156118a45760006003549050826003819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8838260405161189a9291906130fc565b60405180910390a1505b5050565b60026118b381612061565b6001600054146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906131b3565b60405180910390fd5b6002600081905550600061192c7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b87879050811015611a4357600088888381811061195257611951613249565b5b90506020028101906119649190613492565b806000019061197391906134ba565b905014806119b65750603f88888381811061199157611990613249565b5b90506020028101906119a39190613492565b80600001906119b291906134ba565b9050115b156119ed576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b878782818110611a00576119ff613249565b5b9050602002810190611a129190613492565b8060000190611a2191906134ba565b905082611a2e919061300c565b91508080611a3b9061344a565b915050611932565b5060008183611a529190613207565b9050611a5e34826124b4565b60005b88889050811015611e3157611aeb898983818110611a8257611a81613249565b5b9050602002810190611a949190613492565b8060200190611aa39190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60005b898983818110611b0157611b00613249565b5b9050602002810190611b139190613492565b8060000190611b2291906134ba565b9050811015611e1d57611bcd8a8a84818110611b4157611b40613249565b5b9050602002810190611b539190613492565b8060000190611b6291906134ba565b83818110611b7357611b72613249565b5b9050602002810190611b859190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a84818110611be257611be1613249565b5b9050602002810190611bf49190613492565b8060000190611c0391906134ba565b83818110611c1457611c13613249565b5b9050602002810190611c269190613287565b8c8c86818110611c3957611c38613249565b5b9050602002810190611c4b9190613492565b8060200190611c5a9190613287565b604051602001611c6d949392919061351d565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168783604051611cc6919061340f565b60006040518083038185875af1925050503d8060008114611d03576040519150601f19603f3d011682016040523d82523d6000602084013e611d08565b606091505b5050905080611d43576040517f1684b73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f70327b6e1280f8015a284fca27cbbef10ac24c017f6452ff98212167813459d88d8d87818110611d7857611d77613249565b5b9050602002810190611d8a9190613492565b8060000190611d9991906134ba565b86818110611daa57611da9613249565b5b9050602002810190611dbc9190613287565b8f8f89818110611dcf57611dce613249565b5b9050602002810190611de19190613492565b8060200190611df09190613287565b604051611e009493929190613545565b60405180910390a250508080611e159061344a565b915050611aee565b508080611e299061344a565b915050611a61565b50611e3d348287612625565b50505060016000819055505050505050565b6010611e5a81612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ec0576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fab0699d690a6fcb85f70e4d28ee4c6114c3d90c12c579ca5abe089b8ff6ff1bf60405160405180910390a25050565b611f5181612700565b50565b611f5d81612741565b50565b600160005414611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c906131b3565b60405180910390fd5b60026000819055506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906135cc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60006120178261276b565b9050919050565b60005a60005a84865af161203a5763b12d13eb6000526004601cfd5b5050565b6120483382612786565b50565b612053612475565b61205d8282612796565b5050565b638b78c6d81954331461209557638b78c6d8600c5233600052806020600c205416612094576382b429006000526004601cfd5b5b50565b600081826120a585610ec8565b1614905092915050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166120f4576390b8ec186000526004601cfd5b6000603452505050565b60006121086127a6565b67ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60004790506000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690506000818361219a91906131d3565b90506000633b9aca007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166121d89190613207565b90506000808284101580156121ef57506000600354115b156122185760035484111561220f57600354915060035484039050612213565b8391505b61221c565b8390505b6fffffffffffffffffffffffffffffffff8016841115612268576040517f502cbcb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211156122e557816fffffffffffffffffffffffffffffffff166003600082825461229591906131d3565b925050819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8600354836003546122ce919061300c565b6040516122dc9291906130fc565b60405180910390a15b600187036123525760008211806122fc5750600081115b156123515780828661230e919061300c565b612318919061300c565b600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b61237f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683896127b1565b6123ac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682896127b1565b7f8b367b31582d5c638694615c1cfc77ffcf9febcf6e6c793358089f7769cfeee68282896040516123df939291906135ec565b60405180910390a150505050505050565b6000638b78c6d8600c52816000526020600c20549050919050565b612413612475565b61241d8282612786565b5050565b6000808261242e85610ec8565b161415905092915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b638b78c6d819543314612490576382b429006000526004601cfd5b565b61249a612475565b6124a4600061288c565b565b6000638b78c6d81954905090565b808210156124ee576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1660405161251a90613649565b600060405180830381855afa9150503d8060008114612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b509150915081612596576040517f448e5c4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806125a090613690565b60001c9250838311156125df576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6030815114612622576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b818311156126fb5760008173ffffffffffffffffffffffffffffffffffffffff16838561265291906131d3565b60405161265e90613649565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50509050806126f95782846126b591906131d3565b8273ffffffffffffffffffffffffffffffffffffffff167fff295b6ae91fb82f39d5bb544f1e62ce33f6978255b7c7434f8137bdf107f6d960405160405180910390a35b505b505050565b612708612475565b63389a75e1600c52806000526020600c20805442111561273057636f5e88186000526004601cfd5b600081555061273e8161288c565b50565b612749612475565b8060601b61275f57637448fbae6000526004601cfd5b6127688161288c565b50565b600063389a75e1600c52816000526020600c20549050919050565b612792828260006128ca565b5050565b6127a2828260016128ca565b5050565b60006202a300905090565b6000821115612887576001810361281d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612811919061300c565b92505081905550612886565b600081036128535761284e828473ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b612885565b6040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b505050565b638b78c6d8198160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a38181555050565b638b78c6d8600c52826000526020600c208054838117836128ed57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129598261292e565b9050919050565b6129698161294e565b811461297457600080fd5b50565b60008135905061298681612960565b92915050565b6000602082840312156129a2576129a1612924565b5b60006129b084828501612977565b91505092915050565b6000819050919050565b6129cc816129b9565b82525050565b60006020820190506129e760008301846129c3565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a12816129ed565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c8161294e565b82525050565b6000602082019050612a576000830184612a33565b92915050565b612a66816129b9565b8114612a7157600080fd5b50565b600081359050612a8381612a5d565b92915050565b600060208284031215612a9f57612a9e612924565b5b6000612aad84828501612a74565b91505092915050565b60008060408385031215612acd57612acc612924565b5b6000612adb85828601612977565b9250506020612aec85828601612a74565b9150509250929050565b60008115159050919050565b612b0b81612af6565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612b5157612b50612b2c565b5b8235905067ffffffffffffffff811115612b6e57612b6d612b31565b5b602083019150836001820283011115612b8a57612b89612b36565b5b9250929050565b6000819050919050565b612ba481612b91565b8114612baf57600080fd5b50565b600081359050612bc181612b9b565b92915050565b60008060008060008060006080888a031215612be657612be5612924565b5b600088013567ffffffffffffffff811115612c0457612c03612929565b5b612c108a828b01612b3b565b9750975050602088013567ffffffffffffffff811115612c3357612c32612929565b5b612c3f8a828b01612b3b565b9550955050604088013567ffffffffffffffff811115612c6257612c61612929565b5b612c6e8a828b01612b3b565b93509350506060612c818a828b01612bb2565b91505092959891949750929550565b60008060408385031215612ca757612ca6612924565b5b6000612cb585828601612977565b9250506020612cc685828601612977565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0a578082015181840152602081019050612cef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3282612cd0565b612d3c8185612cdb565b9350612d4c818560208601612cec565b612d5581612d16565b840191505092915050565b60006020820190508181036000830152612d7a8184612d27565b905092915050565b600067ffffffffffffffff82169050919050565b612d9f81612d82565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008083601f840112612dd657612dd5612b2c565b5b8235905067ffffffffffffffff811115612df357612df2612b31565b5b602083019150836020820283011115612e0f57612e0e612b36565b5b9250929050565b60008083601f840112612e2c57612e2b612b2c565b5b8235905067ffffffffffffffff811115612e4957612e48612b31565b5b602083019150836020820283011115612e6557612e64612b36565b5b9250929050565b60008060008060008060808789031215612e8957612e88612924565b5b600087013567ffffffffffffffff811115612ea757612ea6612929565b5b612eb389828a01612dc0565b9650965050602087013567ffffffffffffffff811115612ed657612ed5612929565b5b612ee289828a01612e16565b94509450506040612ef589828a01612a74565b9250506060612f0689828a01612977565b9150509295509295509295565b60008083601f840112612f2957612f28612b2c565b5b8235905067ffffffffffffffff811115612f4657612f45612b31565b5b602083019150836020820283011115612f6257612f61612b36565b5b9250929050565b60008060008060608587031215612f8357612f82612924565b5b600085013567ffffffffffffffff811115612fa157612fa0612929565b5b612fad87828801612f13565b94509450506020612fc087828801612a74565b9250506040612fd187828801612977565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613017826129b9565b9150613022836129b9565b925082820190508082111561303a57613039612fdd565b5b92915050565b600082825260208201905092915050565b82818337600083830152505050565b600061306c8385613040565b9350613079838584613051565b61308283612d16565b840190509392505050565b61309681612b91565b82525050565b600060808201905081810360008301526130b781898b613060565b905081810360208301526130cc818789613060565b905081810360408301526130e1818587613060565b90506130f0606083018461308d565b98975050505050505050565b600060408201905061311160008301856129c3565b61311e60208301846129c3565b9392505050565b60008151905061313481612a5d565b92915050565b6000602082840312156131505761314f612924565b5b600061315e84828501613125565b91505092915050565b7f5245454e5452414e435900000000000000000000000000000000000000000000600082015250565b600061319d600a83612cdb565b91506131a882613167565b602082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b60006131de826129b9565b91506131e9836129b9565b925082820390508181111561320157613200612fdd565b5b92915050565b6000613212826129b9565b915061321d836129b9565b925082820261322b816129b9565b9150828204841483151761324257613241612fdd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126132a4576132a3613278565b5b80840192508235915067ffffffffffffffff8211156132c6576132c561327d565b5b6020830192506001820236038313156132e2576132e1613282565b5b509250929050565b6132f381612d82565b81146132fe57600080fd5b50565b600081359050613310816132ea565b92915050565b60006020828403121561332c5761332b612924565b5b600061333a84828501613301565b91505092915050565b600081905092915050565b600061335a8385613343565b9350613367838584613051565b82840190509392505050565b60008160c01b9050919050565b600061338b82613373565b9050919050565b6133a361339e82612d82565b613380565b82525050565b60006133b682858761334e565b91506133c28284613392565b600882019150819050949350505050565b600081519050919050565b60006133e9826133d3565b6133f38185613343565b9350613403818560208601612cec565b80840191505092915050565b600061341b82846133de565b915081905092915050565b60006020820190508181036000830152613441818486613060565b90509392505050565b6000613455826129b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361348757613486612fdd565b5b600182019050919050565b6000823560016040038336030381126134ae576134ad613278565b5b80830191505092915050565b600080833560016020038436030381126134d7576134d6613278565b5b80840192508235915067ffffffffffffffff8211156134f9576134f861327d565b5b60208301925060208202360383131561351557613514613282565b5b509250929050565b600061352a82868861334e565b915061353782848661334e565b915081905095945050505050565b60006040820190508181036000830152613560818688613060565b90508181036020830152613575818486613060565b905095945050505050565b7f4e6f7420696d706c656d656e7465640000000000000000000000000000000000600082015250565b60006135b6600f83612cdb565b91506135c182613580565b602082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b600060608201905061360160008301866129c3565b61360e60208301856129c3565b61361b60408301846129c3565b949350505050565b50565b6000613633600083613343565b915061363e82613623565b600082019050919050565b600061365482613626565b9150819050919050565b6000819050602082019050919050565b600061367a8251612b91565b80915050919050565b600082821b905092915050565b600061369b826133d3565b826136a58461365e565b90506136b08161366e565b925060208210156136f0576136eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613683565b831692505b505091905056fea26469706673582212205b83464c8159b4a300316c2a0b8a5da2e7cc180d9e2495b4c3be8d1a402389a864736f6c63430008130033a2646970667358221220aea92119bec81712bf6fc14aab2158d1db00f01c70decc4c8ae0f54e5391b91364736f6c63430008130033";
298
291
  var HOODI_WAREHOUSE_BYTECODE = "0x60806040526004361015610011575f80fd5b5f3560e01c8062ad800c14611aa7578062fdd58e14611a3857806301ffc9a7146119485780630647ee20146118ce578063095bcdb61461182457806310c07f2f146117b157806314925cad1461148e5780632e72102f1461139657806331f7d964146111ff5780633644e515146113565780633f26479e1461131b5780633f47e662146112d45780633fcbd4d114611265578063426a84931461124b57806348eebe45146111ff5780634e41a1fb146111aa578063558a729714611155578063598af9e714611103578063676ae78f14611067578063829ab5c114610fc95780638340f54914610f3c57806384b0196e14610e0c578063b6363cf214610d8f578063b70e36f014610d11578063d23c072414610c49578063dc393b6b14610926578063e088902914610550578063f46d86e2146104f8578063f940e385146103085763fe99049a14610161575f80fd5b346103045760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610198611b48565b6101a0611b6b565b90604435917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596102556064359373ffffffffffffffffffffffffffffffffffffffff8091169384331415806102e4575b610263575b845f52600160205260405f20875f5260205260405f20610216878254611fe8565b90551693845f52600160205260405f20865f5260205260405f2061023b828254611ff5565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b845f5260206002815260405f20335f52815260405f20885f52815260405f2054877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036102b4575b5050506101f5565b6102bd91611fe8565b90865f526002815260405f20335f52815260405f2090895f525260405f20555f80876102ac565b50845f525f60205260405f20335f5260205260ff60405f205416156101f0565b5f80fd5b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045761033f611b48565b610347611b6b565b73ffffffffffffffffffffffffffffffffffffffff8083169081331415806104ee575b6104a5575b815f52600160205260405f20921691825f5260205260405f2054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff840193841161047857815f52600160205260405f20835f5260205260405f206103d5858254611fe8565b9055604080513381526020810186905284915f9185917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885991a48373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee840361046957610435915082612c9c565b6040519283525f60208401527ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db60403394a4005b6104739184612c06565b610435565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b815f52600660205260ff60405f205460101c161561036f57602482604051907fc7f7362e0000000000000000000000000000000000000000000000000000000082526004820152fd5b508132141561036a565b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045760206040517f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f8152f35b346103045760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610587611b48565b67ffffffffffffffff602435818111610304576105a8903690600401611d17565b9092604435838111610304576105c2903690600401611d17565b93909273ffffffffffffffffffffffffffffffffffffffff6064351660643503610304578481036108fc5773ffffffffffffffffffffffffffffffffffffffff83165f52600660205260405f2091604051926040840191848310908311176108cf5760ff916040525461ffff8116845260101c161515806020840152610888575f5b81811061064d57005b610658818787612002565b359061ffff845116828181020481148315171561047857600192620f424061068961068485888e612002565b61203f565b92610743610698868d8d612002565b3573ffffffffffffffffffffffffffffffffffffffff8b165f528760205260405f2073ffffffffffffffffffffffffffffffffffffffff87165f5260205260405f206106e5828254611fe8565b9055604080513381526020810183905273ffffffffffffffffffffffffffffffffffffffff888116925f92918f16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599190a4838386020490611fe8565b9273ffffffffffffffffffffffffffffffffffffffff851673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee03610836576107958473ffffffffffffffffffffffffffffffffffffffff8c16612c9c565b828282020461080b575b6040519384520204602082015273ffffffffffffffffffffffffffffffffffffffff80606435169216907ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db604073ffffffffffffffffffffffffffffffffffffffff8a1692a401610644565b610831838383020473ffffffffffffffffffffffffffffffffffffffff60643516612c9c565b61079f565b610857848b73ffffffffffffffffffffffffffffffffffffffff8816612c06565b82828202041561079f57610831838383020460643573ffffffffffffffffffffffffffffffffffffffff8816612c06565b60248373ffffffffffffffffffffffffffffffffffffffff604051917fc7f7362e000000000000000000000000000000000000000000000000000000008352166004820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60046040517fff633a38000000000000000000000000000000000000000000000000000000008152fd5b3461030457610100807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045761095f611b48565b610967611b6b565b61096f611be3565b606435906084359260a4359560c4359065ffffffffffff82168092036103045760e43567ffffffffffffffff8111610304576109af903690600401611cd1565b6109b98989612245565b604051986109c68a611c1e565b5f8a52834211610c185789516020809b012093604051908b8201927f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f8452604083015f905273ffffffffffffffffffffffffffffffffffffffff96878d1696876060860152888a1660808601528a151560a08601528b60c08601528c60e086015284015f905261012084015261014083015261016090818301528152610a6b81611c01565b519020610a76612466565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201526042902091610ab78284612db3565b6005819692961015610beb57159485610bdf575b5050508215610b1a575b505015610af057610ae59461296f565b505060405160018152f35b60046040517f815e1d64000000000000000000000000000000000000000000000000000000008152fd5b5f9192508190604051610b9581610b698d8201947f1626ba7e00000000000000000000000000000000000000000000000000000000988987526024840152604060448401526064830190611b05565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611c56565b5190895afa90610ba3612c6d565b82610bd2575b82610bb8575b50508780610ad5565b909150878180518101031261030457870151148780610baf565b9150878251101591610ba9565b16149250898080610acb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602484604051907f3aae54290000000000000000000000000000000000000000000000000000000082526004820152fd5b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457335f52600660205260405f206004359061ffff8216809203610304578054602435801515809103610304577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000062ff0000859260101b16921617179055604051908152610ce2611bf2565b151560208201527fbc150027ce95c264ad6d257eb2f738f76ce357f3b4a68aaf2d1681ce903cb21c60403392a2005b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457600435335f52600560205260405f208160081c5f5260205260405f20600160ff83161b8154179055337f239b0d63832ec06e8082928dc583392b57a30d16e4bb425b49d82c7808e308b05f80a3005b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610dc6611b48565b610dce611b6b565b9073ffffffffffffffffffffffffffffffffffffffff8091165f525f60205260405f2091165f52602052602060ff60405f2054166040519015158152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457610edf610e667f53706c69747357617265686f757365000000000000000000000000000000000f61277e565b610e8f7f76310000000000000000000000000000000000000000000000000000000000026128ad565b60405190610e9c82611c1e565b5f8252610eed6020916040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e0602088015260e0870190611b05565b908582036040870152611b05565b4660608501523060808501525f60a085015283810360c0850152602080845192838152019301915f5b828110610f2557505050500390f35b835185528695509381019392810192600101610f16565b73ffffffffffffffffffffffffffffffffffffffff610f5a36611dd2565b91921673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8103610fb457348203610f8a57610f889261269c565b005b60046040517f2c5211c6000000000000000000000000000000000000000000000000000000008152fd5b610f8892610fc483303385612702565b61269c565b346103045760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457611000611b48565b611008611bf2565b9060843573ffffffffffffffffffffffffffffffffffffffff811681036103045760a4359267ffffffffffffffff84116103045761104d61105c943690600401611cd1565b926064359160443591336122da565b602060405160018152f35b61107036611d48565b929091938382036108fc5773ffffffffffffffffffffffffffffffffffffffff5f9516935f5b8381106110d157868673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81036110c357503403610f8a57005b90610f889130903390612702565b806110fd6110ed6110e5600194868a612002565b35809a611ff5565b9888610fc4610684858a8a612002565b01611096565b346103045761111136611dd2565b9173ffffffffffffffffffffffffffffffffffffffff8091165f52600260205260405f2091165f5260205260405f20905f52602052602060405f2054604051908152f35b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045760206111a0611191611b48565b611199611bf2565b903361260c565b6040519015158152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576111fb6111e760043561211a565b604051918291602083526020830190611b05565b0390f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457602060405173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8152f35b346103045760206111a061125e36611b8e565b913361259e565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff6112b1611b48565b165f52600560205260405f206024355f52602052602060405f2054604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020611310600435612060565b60ff60405191168152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020604051620f42408152f35b34610304575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261030457602061138e612466565b604051908152f35b34610304576113a436611d48565b93918484036108fc57939291905f9473ffffffffffffffffffffffffffffffffffffffff809116945f945b8086106113fd578787335f52600160205260405f20905f526020526113f960405f20918254611fe8565b9055005b9091929394966114826001916114176106848b868b612002565b9089876114258d898c612002565b359316805f52602086815260405f2090835f525260405f20611448858254611ff5565b9055604080513380825260208201879052917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885991a4611ff5565b970194939291906113cf565b34610304576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576114c6611b48565b6114ce611b6b565b6114d6611be3565b73ffffffffffffffffffffffffffffffffffffffff60a4351660a435036103045767ffffffffffffffff9160c43583811161030457611519903690600401611cd1565b92610104359065ffffffffffff82168203610304576101243590811161030457611547903690600401611cd1565b61155360e43587612245565b65ffffffffffff82164211611778576042855160208701209260405160208101917f01eb7e05a16709b6f764150593b828b1110ce9fbd8830ba01c079956b1c9cd7f83526001604083015273ffffffffffffffffffffffffffffffffffffffff8a169586606084015273ffffffffffffffffffffffffffffffffffffffff8816608084015288151560a084015260643560c084015260843560e084015273ffffffffffffffffffffffffffffffffffffffff60a4351661010084015261012083015260e43561014083015265ffffffffffff610160911681830152815261163981611c01565b519020611644612466565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015220906116828183612db3565b6005819592951015610beb57159384611758575b505082156116bb575b505015610af05761105c9360a4359260843592606435926122da565b5f919250819060405161170b81610b6960208201947f1626ba7e00000000000000000000000000000000000000000000000000000000988987526024840152604060448401526064830190611b05565b5190885afa90611719612c6d565b8261174a575b8261172e575b5050858061169f565b9091506020818051810103126103045760200151148580611725565b91506020825110159161171f565b73ffffffffffffffffffffffffffffffffffffffff161492508780611696565b60248265ffffffffffff604051917f3aae5429000000000000000000000000000000000000000000000000000000008352166004820152fd5b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff6117fd611b48565b165f5260066020526040805f205460ff82519161ffff8116835260101c1615156020820152f35b346103045773ffffffffffffffffffffffffffffffffffffffff61184736611b8e565b91929092335f52600160205260405f20845f5260205260405f2061186c848254611fe8565b90551690815f52600160205260405f20835f5260205260405f20611891828254611ff5565b9055604080513380825260208201939093527f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599181908101610255565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576020600160ff61190b611b48565b73ffffffffffffffffffffffffffffffffffffffff60243591165f526005845260405f208160081c5f528452161b60405f20541615604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361030457807f0f632fb30000000000000000000000000000000000000000000000000000000060209214908115611a0e575b81156119e4575b506040519015158152f35b7f4a31d20700000000000000000000000000000000000000000000000000000000915014826119d9565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506119d2565b346103045760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103045773ffffffffffffffffffffffffffffffffffffffff611a84611b48565b165f52600160205260405f206024355f52602052602060405f2054604051908152f35b346103045760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610304576111fb6111e7600435611ed7565b5f5b838110611af55750505f910152565b8181015183820152602001611ae6565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093611b4181518092818752878088019101611ae4565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361030457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361030457565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103045760043573ffffffffffffffffffffffffffffffffffffffff8116810361030457906024359060443590565b60443590811515820361030457565b60243590811515820361030457565b610180810190811067ffffffffffffffff8211176108cf57604052565b6020810190811067ffffffffffffffff8211176108cf57604052565b6040810190811067ffffffffffffffff8211176108cf57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176108cf57604052565b67ffffffffffffffff81116108cf57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561030457803590611ce882611c97565b92611cf66040519485611c56565b8284526020838301011161030457815f926020809301838601378301015290565b9181601f840112156103045782359167ffffffffffffffff8311610304576020808501948460051b01011161030457565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103045767ffffffffffffffff906004358281116103045781611d9391600401611d17565b9390939260243573ffffffffffffffffffffffffffffffffffffffff81168103610304579260443591821161030457611dce91600401611d17565b9091565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103045773ffffffffffffffffffffffffffffffffffffffff90600435828116810361030457916024359081168103610304579060443590565b6020818303126103045780519067ffffffffffffffff8211610304570181601f82011215610304578051611e6581611c97565b92611e736040519485611c56565b8184526020828401011161030457611e919160208085019101611ae4565b90565b6020611ed5919392936040519481611eb58793518092868087019101611ae4565b8201611ec982518093868085019101611ae4565b01038085520183611c56565b565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8114611fbe576004905f73ffffffffffffffffffffffffffffffffffffffff611f4a60405193611f1b85611c3a565b600f85527f53706c69747320577261707065642000000000000000000000000000000000006020860152612aaa565b16604051938480927f06fdde030000000000000000000000000000000000000000000000000000000082525afa908115611fb357611e91925f92611f8f575b50611e94565b611fac9192503d805f833e611fa48183611c56565b810190611e32565b905f611f89565b6040513d5f823e3d90fd5b50611e917f53706c69747320577261707065642045746865720000000000000000000000146121f7565b9190820391821161047857565b9190820180921161047857565b91908110156120125760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff811681036103045790565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee811461211457602073ffffffffffffffffffffffffffffffffffffffff61209d600493612aaa565b16604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa908115611fb3575f916120db575090565b90506020813d60201161210c575b816120f660209383611c56565b81010312610304575160ff811681036103045790565b3d91506120e9565b50601290565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81146121d1576004905f73ffffffffffffffffffffffffffffffffffffffff61218d6040519361215e85611c3a565b600685527f73706c69747300000000000000000000000000000000000000000000000000006020860152612aaa565b16604051938480927f95d89b410000000000000000000000000000000000000000000000000000000082525afa908115611fb357611e91925f92611f8f5750611e94565b50611e917f73706c69747345544800000000000000000000000000000000000000000000095b60ff811690601f821161221b576040519161221183611c3a565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff600160ff84161b911690815f52600560205260405f208360081c5f5260205260405f208181541880915516156122b0577f239b0d63832ec06e8082928dc583392b57a30d16e4bb425b49d82c7808e308b05f80a3565b60046040517f756688fe000000000000000000000000000000000000000000000000000000008152fd5b612366602082989795949396976122f48987878b8861296f565b9790995f73ffffffffffffffffffffffffffffffffffffffff604051809781968295847fb74de3da000000000000000000000000000000000000000000000000000000009c8d86521660048501528c151560248501528d6044850152606484015260a0608484015260a4830190611b05565b0393165af18015611fb3575f906123eb575b7fffffffff00000000000000000000000000000000000000000000000000000000915016036123c157156123b45750506123b19261260c565b50565b919092506123b19361259e565b60046040517f578b0306000000000000000000000000000000000000000000000000000000008152fd5b506020813d60201161245e575b8161240560209383611c56565b8101031261030457517fffffffff0000000000000000000000000000000000000000000000000000000081168103610304577fffffffff0000000000000000000000000000000000000000000000000000000090612378565b3d91506123f8565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008fb66f38cf86a3d5e8768f8f1754a24a6c661fb816301480612575575b156124ce577fb0c5ec167a46b474387d254af1fd88b6613ba712decfdb698acc78fc2211fda090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527fcbb4ec162d38f6df0314120199cbe3d402052c2b8c5677f9b26ba737e4ad0b8d60408201527f0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d21760608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176108cf5760405251902090565b507f0000000000000000000000000000000000000000000000000000000000088bb046146124a5565b90919260207fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a79173ffffffffffffffffffffffffffffffffffffffff80941693845f526002835260405f20951694855f52825260405f20865f5282528060405f2055604051908152a4600190565b909160207fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa2679173ffffffffffffffffffffffffffffffffffffffff80941693845f525f835260405f20951694855f52825260405f20901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3600190565b7f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596126fd73ffffffffffffffffffffffffffffffffffffffff5f9395949516938484526001602052604084208685526020526040842061023b828254611ff5565b0390a4565b9290604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015273ffffffffffffffffffffffffffffffffffffffff809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176108cf57611ed592604052612adf565b60ff811461278f57611e91906121f7565b506040515f600354906001908260011c600184169283156128a3575b602094858310851461287657828752869490811561283757506001146127da575b5050611e9192500382611c56565b9093915060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f915b81831061281f575050611e9193508201015f806127cc565b85548784018501529485019486945091830191612807565b9050611e919593507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f806127cc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b90607f16906127ab565b60ff81146128be57611e91906121f7565b506040515f600454906001908260011c60018416928315612965575b60209485831085146128765782875286949081156128375750600114612908575050611e9192500382611c56565b9093915060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b935f915b81831061294d575050611e9193508201015f806127cc565b85548784018501529485019486945091830191612935565b90607f16906128da565b9492939091935f80955f14612a6357501590811591612a59575b50612a2f5773ffffffffffffffffffffffffffffffffffffffff80941693845f525f60205260405f20911690815f5260205260ff60405f20541693805f525f60205260405f20825f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267602060405160018152a3565b60046040517fc6fc3b8a000000000000000000000000000000000000000000000000000000008152fd5b905015155f612989565b9594506123b19273ffffffffffffffffffffffffffffffffffffffff8087165f52600260205260405f209082165f5260205260405f20825f5260205260405f20549561259e565b8060a01c612ab55790565b60046040517f35278d12000000000000000000000000000000000000000000000000000000008152fd5b604051612b499173ffffffffffffffffffffffffffffffffffffffff16612b0582611c3a565b5f806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1612b43612c6d565b91612e6c565b8051828115918215612be6575b5050905015612b625750565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b83809293500103126103045781015180151581036103045780825f612b56565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff929092166024830152604480830193909352918152611ed591612c68606483611c56565b612adf565b3d15612c97573d90612c7e82611c97565b91612c8c6040519384611c56565b82523d5f602084013e565b606090565b814710612d55575f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1612cc9612c6d565b5015612cd157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152fd5b9060418151145f14612ddb57611dce91602082015190606060408401519301515f1a90612de4565b50505f90600290565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e61576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15611fb3575f5173ffffffffffffffffffffffffffffffffffffffff811615612e5957905f90565b505f90600190565b505050505f90600390565b91929015612ee75750815115612e80575090565b3b15612e895790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015612efa5750805190602001fd5b612f38906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b05565b0390fdfea264697066735822122044605f36cd509b52f51e0b7e4bf7df4fd8f23b37a10d536036d532c76204192964736f6c63430008170033";
299
292
  var MAINNET_OVM_FACTORY_BYTECODE = "0x60806040523480156200001157600080fd5b5060043610620000525760003560e01c806306dbd0cb14620000575780633e5b34b21462000079578063cdba577d146200009b578063f7f8ff7a14620000d1575b600080fd5b62000061620000f3565b60405162000070919062000464565b60405180910390f35b6200008362000117565b60405162000092919062000464565b60405180910390f35b620000b96004803603810190620000b39190620004fc565b6200013b565b604051620000c89190620005d9565b60405180910390f35b620000db620003ed565b604051620000ea919062000464565b60405180910390f35b7f00000000000000000000000000000961ef480eb55e80d19ad83579a64c00700281565b7f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa81565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620001a3576040517f22adafa200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806200020b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1562000243576040517ffca23e2a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008267ffffffffffffffff160362000288576040517f8966ee9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6501dcd65000008267ffffffffffffffff161115620002d3576040517f12f9b82600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a5900072517f00000000000000000000000000000961ef480eb55e80d19ad83579a64c0070027f00000000000000000000000000000000219ab540356cbb839cbe05303d7705fa87878787604051620003489062000411565b6200035a979695949392919062000607565b604051809103906000f08015801562000377573d6000803e3d6000fd5b5090508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f5f69e7dce622f5df4a1899cf39ca6eb1216397f2c07206d2ef33aebf960827a3868686604051620003dd9392919062000684565b60405180910390a3949350505050565b7f0000000000000000000000000000bbddc7ce488642fb579f8b00f3a59000725181565b613d2e80620006c283390190565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200044c826200041f565b9050919050565b6200045e816200043f565b82525050565b60006020820190506200047b600083018462000453565b92915050565b600080fd5b62000491816200043f565b81146200049d57600080fd5b50565b600081359050620004b18162000486565b92915050565b600067ffffffffffffffff82169050919050565b620004d681620004b7565b8114620004e257600080fd5b50565b600081359050620004f681620004cb565b92915050565b6000806000806080858703121562000519576200051862000481565b5b60006200052987828801620004a0565b94505060206200053c87828801620004a0565b93505060406200054f87828801620004a0565b92505060606200056287828801620004e5565b91505092959194509250565b6000819050919050565b600062000599620005936200058d846200041f565b6200056e565b6200041f565b9050919050565b6000620005ad8262000578565b9050919050565b6000620005c182620005a0565b9050919050565b620005d381620005b4565b82525050565b6000602082019050620005f06000830184620005c8565b92915050565b6200060181620004b7565b82525050565b600060e0820190506200061e600083018a62000453565b6200062d602083018962000453565b6200063c604083018862000453565b6200064b606083018762000453565b6200065a608083018662000453565b6200066960a083018562000453565b6200067860c0830184620005f6565b98975050505050505050565b60006060820190506200069b600083018662000453565b620006aa602083018562000453565b620006b96040830184620005f6565b94935050505056fe61010060405260016000553480156200001757600080fd5b5060405162003d2e38038062003d2e83398181016040528101906200003d9190620004ea565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620000a4576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036200010b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000172576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620001d9576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000240576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002a7576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508573ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508067ffffffffffffffff1660e08167ffffffffffffffff1681525050620003f284620003ff60201b60201c565b505050505050506200059d565b8060601b60601c905080638b78c6d819558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a350565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200046d8262000440565b9050919050565b6200047f8162000460565b81146200048b57600080fd5b50565b6000815190506200049f8162000474565b92915050565b600067ffffffffffffffff82169050919050565b620004c481620004a5565b8114620004d057600080fd5b50565b600081519050620004e481620004b9565b92915050565b600080600080600080600060e0888a0312156200050c576200050b6200043b565b5b60006200051c8a828b016200048e565b97505060206200052f8a828b016200048e565b9650506040620005428a828b016200048e565b9550506060620005558a828b016200048e565b9450506080620005688a828b016200048e565b93505060a06200057b8a828b016200048e565b92505060c06200058e8a828b01620004d3565b91505092959891949750929550565b60805160a05160c05160e05161372d620006016000396000818161135301526121a5015260008181610c620152610f6d0152600081816109590152818161143a015261155601526000818161190701528181611c820152611fea015261372d6000f3fe6080604052600436106102605760003560e01c806354d1f13d116101445780639124aafb116100b6578063e521136f1161007a578063e521136f146107fa578063f04e283e14610823578063f2fde38b1461083f578063f5e45d4d1461085b578063f7f8ff7a14610884578063fee81cf4146108af57610267565b80639124aafb146107455780639fdb5e8a14610761578063ba45b0b81461078c578063bca2da78146107b5578063dc04d8f4146107de57610267565b80636c196886116101085780636c196886146106665780636ea056a914610691578063715018a6146106ba57806379de7638146106c45780637bfafd59146106ef5780638da5cb5b1461071a57610267565b806354d1f13d146105b057806354fd4d50146105ba578063565a2e2c146105e55780635f097d751461061057806367db90c21461063b57610267565b806324ae6a27116101dd578063353efdcf116101a1578063353efdcf146104bf578063377b2c34146104ea5780633a6a4d2e146105155780633e5b34b21461052c5780634a4ee7b114610557578063514e62fc1461057357610267565b806324ae6a271461040d57806325692962146104365780632d7fd507146104405780632de94807146104575780633332c3241461049457610267565b8063183a4f6e11610224578063183a4f6e146103535780631c10893f1461036f5780631c31f7101461038b5780631cd64df4146103b457806322895118146103f157610267565b806303615ba31461026c578063043edae8146102a957806306dbd0cb146102d45780630da58dbb146102ff57806317f333401461032857610267565b3661026757005b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061298c565b6108ec565b6040516102a091906129d2565b60405180910390f35b3480156102b557600080fd5b506102be610935565b6040516102cb9190612a18565b60405180910390f35b3480156102e057600080fd5b506102e9610957565b6040516102f69190612a42565b60405180910390f35b34801561030b57600080fd5b506103266004803603810190610321919061298c565b61097b565b005b34801561033457600080fd5b5061033d610ae8565b60405161034a9190612a42565b60405180910390f35b61036d60048036038101906103689190612a89565b610b0e565b005b61038960048036038101906103849190612ab6565b610b1a565b005b34801561039757600080fd5b506103b260048036038101906103ad919061298c565b610b28565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612ab6565b610c21565b6040516103e89190612b11565b60405180910390f35b61040b60048036038101906104069190612bc7565b610c35565b005b34801561041957600080fd5b50610434600480360381019061042f9190612c90565b610d3e565b005b61043e610e5d565b005b34801561044c57600080fd5b50610455610e67565b005b34801561046357600080fd5b5061047e6004803603810190610479919061298c565b610ec8565b60405161048b91906129d2565b60405180910390f35b3480156104a057600080fd5b506104a9610eda565b6040516104b691906129d2565b60405180910390f35b3480156104cb57600080fd5b506104d4610edf565b6040516104e191906129d2565b60405180910390f35b3480156104f657600080fd5b506104ff610ee4565b60405161050c9190612a42565b60405180910390f35b34801561052157600080fd5b5061052a610f0a565b005b34801561053857600080fd5b50610541610f6b565b60405161054e9190612a42565b60405180910390f35b610571600480360381019061056c9190612ab6565b610f8f565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612ab6565b610f9d565b6040516105a79190612b11565b60405180910390f35b6105b8610fb1565b005b3480156105c657600080fd5b506105cf610fbb565b6040516105dc9190612d60565b60405180910390f35b3480156105f157600080fd5b506105fa610ff8565b6040516106079190612a42565b60405180910390f35b34801561061c57600080fd5b50610625611022565b60405161063291906129d2565b60405180910390f35b34801561064757600080fd5b50610650611028565b60405161065d91906129d2565b60405180910390f35b34801561067257600080fd5b5061067b61102d565b60405161068891906129d2565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190612ab6565b611032565b005b6106c2611342565b005b3480156106d057600080fd5b506106d961134c565b6040516106e691906129d2565b60405180910390f35b3480156106fb57600080fd5b50610704611351565b6040516107119190612da5565b60405180910390f35b34801561072657600080fd5b5061072f611375565b60405161073c9190612a42565b60405180910390f35b61075f600480360381019061075a9190612e6c565b611384565b005b34801561076d57600080fd5b506107766116e8565b60405161078391906129d2565b60405180910390f35b34801561079857600080fd5b506107b360048036038101906107ae9190612c90565b6116ed565b005b3480156107c157600080fd5b506107dc60048036038101906107d79190612a89565b611846565b005b6107f860048036038101906107f39190612f69565b6118a8565b005b34801561080657600080fd5b50610821600480360381019061081c919061298c565b611e4f565b005b61083d6004803603810190610838919061298c565b611f48565b005b6108596004803603810190610854919061298c565b611f54565b005b34801561086757600080fd5b50610882600480360381019061087d9190612ab6565b611f60565b005b34801561089057600080fd5b50610899611fe8565b6040516108a69190612a42565b60405180910390f35b3480156108bb57600080fd5b506108d660048036038101906108d1919061298c565b61200c565b6040516108e391906129d2565b60405180910390f35b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a90046fffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081036109cd5750610ae5565b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a95818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b8173ffffffffffffffffffffffffffffffffffffffff167fcbfdaa15c344a7a5b846b2199db1ca289c82041c65048ce19264f9fdd8cee27482604051610adb91906129d2565b60405180910390a2505b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b178161203e565b50565b610b24828261204b565b5050565b6004610b3381612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b99576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a25050565b6000610c2d8383612098565b905092915050565b6020610c4081612061565b600060035490503460036000828254610c59919061300c565b925050819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166322895118348b8b8b8b8b8b8b6040518963ffffffff1660e01b8152600401610cc6979695949392919061309c565b6000604051808303818588803b158015610cdf57600080fd5b505af1158015610cf3573d6000803e3d6000fd5b50505050507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf860035482604051610d2b9291906130fc565b60405180910390a1505050505050505050565b6008610d4981612061565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d849190612a42565b602060405180830381865afa158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc5919061313a565b9050610df283828673ffffffffffffffffffffffffffffffffffffffff166120af9092919063ffffffff16565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f02dc46f45168b3833fa84aa22ee90f4ffec812cf1067be0413353eb95c031b0583604051610e4f91906129d2565b60405180910390a350505050565b610e656120fe565b565b600160005414610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906131b3565b60405180910390fd5b6002600081905550610ebe6001612152565b6001600081905550565b6000610ed3826123f0565b9050919050565b600481565b602081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160005414610f4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f46906131b3565b60405180910390fd5b6002600081905550610f616000612152565b6001600081905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f99828261240b565b5050565b6000610fa98383612421565b905092915050565b610fb9612439565b565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b600181565b600281565b600160005414611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e906131b3565b60405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146110e6576110e2612475565b8290505b60008083146110f55782611158565b60056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020545b905060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156111f5576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600460008282829054906101000a90046fffffffffffffffffffffffffffffffff160392506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112c091906131d3565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff167fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969660405160405180910390a3611334818373ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b505060016000819055505050565b61134a612492565b565b601081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061137f6124a6565b905090565b600161138f81612061565b6001600054146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb906131b3565b60405180910390fd5b600260008190555084849050878790501461141b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61143334888890508561142e9190613207565b6124b4565b600061145f7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b898990508110156116c9576114e08a8a8381811061148657611485613249565b5b90506020028101906114989190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a838181106114f5576114f4613249565b5b90506020028101906115079190613287565b8a8a8581811061151a57611519613249565b5b905060200201602081019061152f9190613316565b604051602001611541939291906133a9565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16858360405161159a919061340f565b60006040518083038185875af1925050503d80600081146115d7576040519150601f19603f3d011682016040523d82523d6000602084013e6115dc565b606091505b5050905080611617576040517fd3d2fd8200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8484611623919061300c565b9350848a8a8581811061163957611638613249565b5b905060200201602081019061164e9190613316565b67ffffffffffffffff167f19cd6ffa1afc5a20b44dd0fea708b8fb38af1d7891d4929811a3c65ff1624fb98e8e8781811061168c5761168b613249565b5b905060200281019061169e9190613287565b6040516116ac929190613426565b60405180910390a3505080806116c19061344a565b915050611465565b506116d5348286612625565b5050600160008190555050505050505050565b600881565b6116f5612475565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361175b576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167feee59a71c694e68368a1cb0d135c448051bbfb12289e6c2223b0ceb100c2321d60405160405180910390a26117e881611f54565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fa1c3c7ba08cdab9542dfbb1f9606093e828bca6c2678c82942703ec4e223790260405160405180910390a35050565b600461185181612061565b6003548203156118a45760006003549050826003819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8838260405161189a9291906130fc565b60405180910390a1505b5050565b60026118b381612061565b6001600054146118f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ef906131b3565b60405180910390fd5b6002600081905550600061192c7f0000000000000000000000000000000000000000000000000000000000000000856124f2565b90506000805b87879050811015611a4357600088888381811061195257611951613249565b5b90506020028101906119649190613492565b806000019061197391906134ba565b905014806119b65750603f88888381811061199157611990613249565b5b90506020028101906119a39190613492565b80600001906119b291906134ba565b9050115b156119ed576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b878782818110611a00576119ff613249565b5b9050602002810190611a129190613492565b8060000190611a2191906134ba565b905082611a2e919061300c565b91508080611a3b9061344a565b915050611932565b5060008183611a529190613207565b9050611a5e34826124b4565b60005b88889050811015611e3157611aeb898983818110611a8257611a81613249565b5b9050602002810190611a949190613492565b8060200190611aa39190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60005b898983818110611b0157611b00613249565b5b9050602002810190611b139190613492565b8060000190611b2291906134ba565b9050811015611e1d57611bcd8a8a84818110611b4157611b40613249565b5b9050602002810190611b539190613492565b8060000190611b6291906134ba565b83818110611b7357611b72613249565b5b9050602002810190611b859190613287565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506125e7565b60008a8a84818110611be257611be1613249565b5b9050602002810190611bf49190613492565b8060000190611c0391906134ba565b83818110611c1457611c13613249565b5b9050602002810190611c269190613287565b8c8c86818110611c3957611c38613249565b5b9050602002810190611c4b9190613492565b8060200190611c5a9190613287565b604051602001611c6d949392919061351d565b604051602081830303815290604052905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168783604051611cc6919061340f565b60006040518083038185875af1925050503d8060008114611d03576040519150601f19603f3d011682016040523d82523d6000602084013e611d08565b606091505b5050905080611d43576040517f1684b73e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b867f70327b6e1280f8015a284fca27cbbef10ac24c017f6452ff98212167813459d88d8d87818110611d7857611d77613249565b5b9050602002810190611d8a9190613492565b8060000190611d9991906134ba565b86818110611daa57611da9613249565b5b9050602002810190611dbc9190613287565b8f8f89818110611dcf57611dce613249565b5b9050602002810190611de19190613492565b8060200190611df09190613287565b604051611e009493929190613545565b60405180910390a250508080611e159061344a565b915050611aee565b508080611e299061344a565b915050611a61565b50611e3d348287612625565b50505060016000819055505050505050565b6010611e5a81612061565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ec0576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff167fab0699d690a6fcb85f70e4d28ee4c6114c3d90c12c579ca5abe089b8ff6ff1bf60405160405180910390a25050565b611f5181612700565b50565b611f5d81612741565b50565b600160005414611fa5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9c906131b3565b60405180910390fd5b60026000819055506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdf906135cc565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b60006120178261276b565b9050919050565b60005a60005a84865af161203a5763b12d13eb6000526004601cfd5b5050565b6120483382612786565b50565b612053612475565b61205d8282612796565b5050565b638b78c6d81954331461209557638b78c6d8600c5233600052806020600c205416612094576382b429006000526004601cfd5b5b50565b600081826120a585610ec8565b1614905092915050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d1560016000511417166120f4576390b8ec186000526004601cfd5b6000603452505050565b60006121086127a6565b67ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b60004790506000600460009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1690506000818361219a91906131d3565b90506000633b9aca007f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff166121d89190613207565b90506000808284101580156121ef57506000600354115b156122185760035484111561220f57600354915060035484039050612213565b8391505b61221c565b8390505b6fffffffffffffffffffffffffffffffff8016841115612268576040517f502cbcb200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008211156122e557816fffffffffffffffffffffffffffffffff166003600082825461229591906131d3565b925050819055507f09aced8c098d4a0a1f486296935d5746bc64dfd41ed58ad84f4e5afab784fcf8600354836003546122ce919061300c565b6040516122dc9291906130fc565b60405180910390a15b600187036123525760008211806122fc5750600081115b156123515780828661230e919061300c565b612318919061300c565b600460006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b61237f600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683896127b1565b6123ac600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682896127b1565b7f8b367b31582d5c638694615c1cfc77ffcf9febcf6e6c793358089f7769cfeee68282896040516123df939291906135ec565b60405180910390a150505050505050565b6000638b78c6d8600c52816000526020600c20549050919050565b612413612475565b61241d8282612786565b5050565b6000808261242e85610ec8565b161415905092915050565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b638b78c6d819543314612490576382b429006000526004601cfd5b565b61249a612475565b6124a4600061288c565b565b6000638b78c6d81954905090565b808210156124ee576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1660405161251a90613649565b600060405180830381855afa9150503d8060008114612555576040519150601f19603f3d011682016040523d82523d6000602084013e61255a565b606091505b509150915081612596576040517f448e5c4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806125a090613690565b60001c9250838311156125df576040517f7953952a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6030815114612622576040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b818311156126fb5760008173ffffffffffffffffffffffffffffffffffffffff16838561265291906131d3565b60405161265e90613649565b60006040518083038185875af1925050503d806000811461269b576040519150601f19603f3d011682016040523d82523d6000602084013e6126a0565b606091505b50509050806126f95782846126b591906131d3565b8273ffffffffffffffffffffffffffffffffffffffff167fff295b6ae91fb82f39d5bb544f1e62ce33f6978255b7c7434f8137bdf107f6d960405160405180910390a35b505b505050565b612708612475565b63389a75e1600c52806000526020600c20805442111561273057636f5e88186000526004601cfd5b600081555061273e8161288c565b50565b612749612475565b8060601b61275f57637448fbae6000526004601cfd5b6127688161288c565b50565b600063389a75e1600c52816000526020600c20549050919050565b612792828260006128ca565b5050565b6127a2828260016128ca565b5050565b60006202a300905090565b6000821115612887576001810361281d5781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612811919061300c565b92505081905550612886565b600081036128535761284e828473ffffffffffffffffffffffffffffffffffffffff1661201e90919063ffffffff16565b612885565b6040517f19cdc2fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b505050565b638b78c6d8198160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a38181555050565b638b78c6d8600c52826000526020600c208054838117836128ed57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129598261292e565b9050919050565b6129698161294e565b811461297457600080fd5b50565b60008135905061298681612960565b92915050565b6000602082840312156129a2576129a1612924565b5b60006129b084828501612977565b91505092915050565b6000819050919050565b6129cc816129b9565b82525050565b60006020820190506129e760008301846129c3565b92915050565b60006fffffffffffffffffffffffffffffffff82169050919050565b612a12816129ed565b82525050565b6000602082019050612a2d6000830184612a09565b92915050565b612a3c8161294e565b82525050565b6000602082019050612a576000830184612a33565b92915050565b612a66816129b9565b8114612a7157600080fd5b50565b600081359050612a8381612a5d565b92915050565b600060208284031215612a9f57612a9e612924565b5b6000612aad84828501612a74565b91505092915050565b60008060408385031215612acd57612acc612924565b5b6000612adb85828601612977565b9250506020612aec85828601612a74565b9150509250929050565b60008115159050919050565b612b0b81612af6565b82525050565b6000602082019050612b266000830184612b02565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612b5157612b50612b2c565b5b8235905067ffffffffffffffff811115612b6e57612b6d612b31565b5b602083019150836001820283011115612b8a57612b89612b36565b5b9250929050565b6000819050919050565b612ba481612b91565b8114612baf57600080fd5b50565b600081359050612bc181612b9b565b92915050565b60008060008060008060006080888a031215612be657612be5612924565b5b600088013567ffffffffffffffff811115612c0457612c03612929565b5b612c108a828b01612b3b565b9750975050602088013567ffffffffffffffff811115612c3357612c32612929565b5b612c3f8a828b01612b3b565b9550955050604088013567ffffffffffffffff811115612c6257612c61612929565b5b612c6e8a828b01612b3b565b93509350506060612c818a828b01612bb2565b91505092959891949750929550565b60008060408385031215612ca757612ca6612924565b5b6000612cb585828601612977565b9250506020612cc685828601612977565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612d0a578082015181840152602081019050612cef565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d3282612cd0565b612d3c8185612cdb565b9350612d4c818560208601612cec565b612d5581612d16565b840191505092915050565b60006020820190508181036000830152612d7a8184612d27565b905092915050565b600067ffffffffffffffff82169050919050565b612d9f81612d82565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008083601f840112612dd657612dd5612b2c565b5b8235905067ffffffffffffffff811115612df357612df2612b31565b5b602083019150836020820283011115612e0f57612e0e612b36565b5b9250929050565b60008083601f840112612e2c57612e2b612b2c565b5b8235905067ffffffffffffffff811115612e4957612e48612b31565b5b602083019150836020820283011115612e6557612e64612b36565b5b9250929050565b60008060008060008060808789031215612e8957612e88612924565b5b600087013567ffffffffffffffff811115612ea757612ea6612929565b5b612eb389828a01612dc0565b9650965050602087013567ffffffffffffffff811115612ed657612ed5612929565b5b612ee289828a01612e16565b94509450506040612ef589828a01612a74565b9250506060612f0689828a01612977565b9150509295509295509295565b60008083601f840112612f2957612f28612b2c565b5b8235905067ffffffffffffffff811115612f4657612f45612b31565b5b602083019150836020820283011115612f6257612f61612b36565b5b9250929050565b60008060008060608587031215612f8357612f82612924565b5b600085013567ffffffffffffffff811115612fa157612fa0612929565b5b612fad87828801612f13565b94509450506020612fc087828801612a74565b9250506040612fd187828801612977565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613017826129b9565b9150613022836129b9565b925082820190508082111561303a57613039612fdd565b5b92915050565b600082825260208201905092915050565b82818337600083830152505050565b600061306c8385613040565b9350613079838584613051565b61308283612d16565b840190509392505050565b61309681612b91565b82525050565b600060808201905081810360008301526130b781898b613060565b905081810360208301526130cc818789613060565b905081810360408301526130e1818587613060565b90506130f0606083018461308d565b98975050505050505050565b600060408201905061311160008301856129c3565b61311e60208301846129c3565b9392505050565b60008151905061313481612a5d565b92915050565b6000602082840312156131505761314f612924565b5b600061315e84828501613125565b91505092915050565b7f5245454e5452414e435900000000000000000000000000000000000000000000600082015250565b600061319d600a83612cdb565b91506131a882613167565b602082019050919050565b600060208201905081810360008301526131cc81613190565b9050919050565b60006131de826129b9565b91506131e9836129b9565b925082820390508181111561320157613200612fdd565b5b92915050565b6000613212826129b9565b915061321d836129b9565b925082820261322b816129b9565b9150828204841483151761324257613241612fdd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126132a4576132a3613278565b5b80840192508235915067ffffffffffffffff8211156132c6576132c561327d565b5b6020830192506001820236038313156132e2576132e1613282565b5b509250929050565b6132f381612d82565b81146132fe57600080fd5b50565b600081359050613310816132ea565b92915050565b60006020828403121561332c5761332b612924565b5b600061333a84828501613301565b91505092915050565b600081905092915050565b600061335a8385613343565b9350613367838584613051565b82840190509392505050565b60008160c01b9050919050565b600061338b82613373565b9050919050565b6133a361339e82612d82565b613380565b82525050565b60006133b682858761334e565b91506133c28284613392565b600882019150819050949350505050565b600081519050919050565b60006133e9826133d3565b6133f38185613343565b9350613403818560208601612cec565b80840191505092915050565b600061341b82846133de565b915081905092915050565b60006020820190508181036000830152613441818486613060565b90509392505050565b6000613455826129b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361348757613486612fdd565b5b600182019050919050565b6000823560016040038336030381126134ae576134ad613278565b5b80830191505092915050565b600080833560016020038436030381126134d7576134d6613278565b5b80840192508235915067ffffffffffffffff8211156134f9576134f861327d565b5b60208301925060208202360383131561351557613514613282565b5b509250929050565b600061352a82868861334e565b915061353782848661334e565b915081905095945050505050565b60006040820190508181036000830152613560818688613060565b90508181036020830152613575818486613060565b905095945050505050565b7f4e6f7420696d706c656d656e7465640000000000000000000000000000000000600082015250565b60006135b6600f83612cdb565b91506135c182613580565b602082019050919050565b600060208201905081810360008301526135e5816135a9565b9050919050565b600060608201905061360160008301866129c3565b61360e60208301856129c3565b61361b60408301846129c3565b949350505050565b50565b6000613633600083613343565b915061363e82613623565b600082019050919050565b600061365482613626565b9150819050919050565b6000819050602082019050919050565b600061367a8251612b91565b80915050919050565b600082821b905092915050565b600061369b826133d3565b826136a58461365e565b90506136b08161366e565b925060208210156136f0576136eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613683565b831692505b505091905056fea26469706673582212205b83464c8159b4a300316c2a0b8a5da2e7cc180d9e2495b4c3be8d1a402389a864736f6c63430008130033a2646970667358221220d0677431495e7a3ae579ad87b584d9963ccdcd75c74dc989f0bccd47105e3cb364736f6c63430008130033";
@@ -399,7 +392,7 @@ var DefinitionFlow = /* @__PURE__ */ ((DefinitionFlow2) => {
399
392
  })(DefinitionFlow || {});
400
393
  var DEFAULT_BASE_URL = "https://api.obol.tech";
401
394
  var DEFAULT_BASE_VERSION = "v1";
402
- var DEFAULT_CHAIN_ID = 17e3;
395
+ var DEFAULT_CHAIN_ID = 560048;
403
396
  var ETHER_TO_GWEI = 10 ** 9;
404
397
  var TERMS_AND_CONDITIONS_VERSION = 1;
405
398
  var TERMS_AND_CONDITIONS_URL = TERMS_AND_CONDITIONS_VERSION === 1 ? "https://obol.org/terms.pdf" : `https://obol.org/${TERMS_AND_CONDITIONS_VERSION}/terms.pdf`;
@@ -407,8 +400,6 @@ var TERMS_AND_CONDITIONS_HASH = "0xd33721644e8f3afab1495a74abe3523cec12d48b8da6c
407
400
  var AVAILABLE_SPLITTER_CHAINS = {
408
401
  [1 /* 0x00000000 */]: true,
409
402
  // Mainnet
410
- [17e3 /* 0x01017000 */]: true,
411
- // Holesky
412
403
  [560048 /* 0x10000910 */]: true
413
404
  // Hoodi
414
405
  };
@@ -453,27 +444,6 @@ var CHAIN_CONFIGURATION = {
453
444
  address: "0xcD7a6C118Ac8F6544BC5076F2D8Fb86D2C546756"
454
445
  }
455
446
  },
456
- [17e3 /* 0x01017000 */]: {
457
- SPLITMAIN_CONTRACT: {
458
- address: "0xfC8a305728051367797DADE6Aa0344E0987f5286",
459
- bytecode: HOLESKY_SPLITMAIN_BYTECODE
460
- },
461
- MULTICALL3_CONTRACT: {
462
- address: "0xcA11bde05977b3631167028862bE2a173976CA11",
463
- bytecode: HOLESKY_MULTICALL3_BYTECODE
464
- },
465
- OWR_FACTORY_CONTRACT: {
466
- address: "0xc0961353fcc43a99e3041db07ac646720e116256",
467
- bytecode: HOLESKY_OWR_FACTORY_BYTECODE
468
- },
469
- RETROACTIVE_FUNDING_CONTRACT: {
470
- address: "0x43F641fA70e09f0326ac66b4Ef0C416EaEcBC6f5",
471
- bytecode: ""
472
- },
473
- EOA_WITHDRAWAL_CONTRACT: {
474
- address: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
475
- }
476
- },
477
447
  [560048 /* 0x10000910 */]: {
478
448
  SPLITMAIN_CONTRACT: {
479
449
  address: "0xc05ae267291705ac16F75283572294ed2a91CBc7",
@@ -520,8 +490,6 @@ var OBOL_SDK_EMAIL = "sdk@dvlabs.tech";
520
490
  var PROVIDER_MAP = {
521
491
  1: `${process.env.RPC_MAINNET}`,
522
492
  // Mainnet
523
- 17e3: `${process.env.RPC_HOLESKY}`,
524
- // Holesky
525
493
  11155111: `${process.env.RPC_SEPOLIA}`,
526
494
  // Sepolia
527
495
  100: `${process.env.RPC_GNOSIS}`,
@@ -532,14 +500,10 @@ var PROVIDER_MAP = {
532
500
  var CAPELLA_FORK_MAPPING = {
533
501
  "0x00000000": "0x03000000",
534
502
  // Mainnet
535
- "0x00001020": "0x03001020",
536
- // Goerli
537
503
  "0x00000064": "0x03000064",
538
504
  // Gnosis
539
505
  "0x90000069": "0x90000072",
540
506
  // Sepolia
541
- "0x01017000": "0x04017000",
542
- // Holesky
543
507
  "0x10000910": "0x40000910"
544
508
  // Hoodi
545
509
  };
@@ -586,6 +550,20 @@ var ConflictError = class _ConflictError extends Error {
586
550
  Object.setPrototypeOf(this, _ConflictError.prototype);
587
551
  }
588
552
  };
553
+ var SignerRequiredError = class _SignerRequiredError extends Error {
554
+ constructor(method) {
555
+ super(`Signer is required in ${method}`);
556
+ this.name = "SignerRequiredError";
557
+ Object.setPrototypeOf(this, _SignerRequiredError.prototype);
558
+ }
559
+ };
560
+ var UnsupportedChainError = class _UnsupportedChainError extends Error {
561
+ constructor(chainId, operation) {
562
+ super(`${operation} is not supported on chain ${chainId}`);
563
+ this.name = "UnsupportedChainError";
564
+ Object.setPrototypeOf(this, _UnsupportedChainError.prototype);
565
+ }
566
+ };
589
567
 
590
568
  // src/verification/common.ts
591
569
  import { fromHexString as fromHexString5 } from "@chainsafe/ssz";
@@ -629,7 +607,7 @@ var isContractAvailable = (contractAddress, provider, bytecode) => __async(null,
629
607
  if (bytecode) {
630
608
  return !!code2 && code2 === bytecode;
631
609
  }
632
- return !!code2 && code2 !== "0x" && code2 !== "0x0";
610
+ return !!code2 && code2 !== "0x" && code2 !== "0x0" && !code2.startsWith("0xef0100");
633
611
  });
634
612
  var getProvider = (chainId, rpcUrl) => {
635
613
  const resolvedRpcUrl = rpcUrl != null ? rpcUrl : PROVIDER_MAP[chainId];
@@ -4440,7 +4418,7 @@ var CID = class _CID {
4440
4418
  return this;
4441
4419
  }
4442
4420
  // Legacy
4443
- [(_a = Symbol.toStringTag, Symbol.for("nodejs.util.inspect.custom"))]() {
4421
+ [(_a = Symbol.toStringTag, /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom"))]() {
4444
4422
  return `CID(${this.toString()})`;
4445
4423
  }
4446
4424
  /**
@@ -4666,7 +4644,7 @@ function encodeCID(version, code2, multihash) {
4666
4644
  bytes3.set(multihash, hashOffset);
4667
4645
  return bytes3;
4668
4646
  }
4669
- var cidSymbol = Symbol.for("@ipld/js-cid/CID");
4647
+ var cidSymbol = /* @__PURE__ */ Symbol.for("@ipld/js-cid/CID");
4670
4648
 
4671
4649
  // node_modules/multiformats/dist/src/basics.js
4672
4650
  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);
@@ -5669,8 +5647,8 @@ function sizeForAddr(codec, bytes3, offset) {
5669
5647
  }
5670
5648
 
5671
5649
  // node_modules/@multiformats/multiaddr/dist/src/multiaddr.js
5672
- var inspect = Symbol.for("nodejs.util.inspect.custom");
5673
- var symbol = Symbol.for("@multiformats/multiaddr");
5650
+ var inspect = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
5651
+ var symbol = /* @__PURE__ */ Symbol.for("@multiformats/multiaddr");
5674
5652
  var DNS_CODES = [
5675
5653
  CODE_DNS,
5676
5654
  CODE_DNS4,
@@ -6415,7 +6393,7 @@ var InvalidPublicKeyError = class extends Error {
6415
6393
  __publicField(InvalidPublicKeyError, "name", "InvalidPublicKeyError");
6416
6394
 
6417
6395
  // node_modules/uint8arraylist/dist/src/index.js
6418
- var symbol2 = Symbol.for("@achingbrain/uint8arraylist");
6396
+ var symbol2 = /* @__PURE__ */ Symbol.for("@achingbrain/uint8arraylist");
6419
6397
  function findBufAndOffset(bufs, index) {
6420
6398
  if (index == null || index < 0) {
6421
6399
  throw new RangeError("index is out of bounds");
@@ -10977,7 +10955,7 @@ function publicKeyToProtobuf(key) {
10977
10955
  }
10978
10956
 
10979
10957
  // node_modules/@libp2p/interface/dist/src/peer-id.js
10980
- var peerIdSymbol = Symbol.for("@libp2p/peer-id");
10958
+ var peerIdSymbol = /* @__PURE__ */ Symbol.for("@libp2p/peer-id");
10981
10959
 
10982
10960
  // node_modules/@libp2p/interface/dist/src/errors.js
10983
10961
  var UnsupportedKeyTypeError2 = class extends Error {
@@ -10989,7 +10967,7 @@ var UnsupportedKeyTypeError2 = class extends Error {
10989
10967
  __publicField(UnsupportedKeyTypeError2, "name", "UnsupportedKeyTypeError");
10990
10968
 
10991
10969
  // node_modules/@libp2p/peer-id/dist/src/peer-id.js
10992
- var inspect2 = Symbol.for("nodejs.util.inspect.custom");
10970
+ var inspect2 = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
10993
10971
  var LIBP2P_KEY_CODE = 114;
10994
10972
  var _a4;
10995
10973
  var PeerIdImpl = class {
@@ -11685,7 +11663,9 @@ var validateEOASignature = ({
11685
11663
  try {
11686
11664
  const sig = ethers2.Signature.from(token);
11687
11665
  const digest2 = TypedDataUtils.eip712Hash(data, SignTypedDataVersion.V4);
11688
- return ethers2.recoverAddress(digest2, sig).toLowerCase() === address.toLocaleLowerCase();
11666
+ const recovered = ethers2.getAddress(ethers2.recoverAddress(digest2, sig));
11667
+ const normalizedAddress = ethers2.getAddress(address);
11668
+ return recovered === normalizedAddress;
11689
11669
  } catch (err) {
11690
11670
  console.error(`validate EOA Signature error: ${err}`);
11691
11671
  throw err;
@@ -15716,28 +15696,31 @@ var Incentives = class {
15716
15696
  this.provider = provider;
15717
15697
  }
15718
15698
  /**
15719
- * Claims Obol incentives from a Merkle Distributor contract using an address.
15720
- *
15721
- * This method automatically fetches incentive data and verifies whether the incentives have already been claimed.
15722
- * If `txHash` is `null`, it indicates that the incentives were already claimed.
15699
+ * Claims Obol incentives from a Merkle Distributor contract for the given address.
15723
15700
  *
15724
- * Note: This method is not yet enabled and will throw an error if called.
15701
+ * Automatically fetches incentive data, checks if already claimed, and submits
15702
+ * the on-chain claim transaction. Returns `{ txHash: null }` if incentives were
15703
+ * already claimed (idempotent).
15725
15704
  *
15726
- * @remarks
15727
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
15728
- * and not pushed to version control.
15705
+ * @param address - The operator's Ethereum address to claim incentives for.
15706
+ * @returns The transaction hash, or `{ txHash: null }` if already claimed.
15707
+ * @throws {SignerRequiredError} If no signer was provided.
15708
+ * @throws {Error} If no incentives are found for the address.
15729
15709
  *
15730
- * @param {string} address - The address to claim incentives for
15731
- * @returns {Promise<ClaimIncentivesResponse>} The transaction hash or already claimed status
15732
- * @throws Will throw an error if the incentives data is not found or the claim fails
15733
- *
15734
- * An example of how to use claimIncentives:
15735
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L281)
15710
+ * @example
15711
+ * ```typescript
15712
+ * const { txHash } = await client.incentives.claimIncentives("0xOperator...");
15713
+ * if (txHash) {
15714
+ * console.log("Claimed:", txHash);
15715
+ * } else {
15716
+ * console.log("Already claimed");
15717
+ * }
15718
+ * ```
15736
15719
  */
15737
15720
  claimIncentives(address) {
15738
15721
  return __async(this, null, function* () {
15739
15722
  if (!this.signer) {
15740
- throw new Error("Signer is required in claimIncentives");
15723
+ throw new SignerRequiredError("claimIncentives");
15741
15724
  }
15742
15725
  try {
15743
15726
  const incentivesData = yield this.getIncentivesByAddress(address);
@@ -15776,15 +15759,21 @@ var Incentives = class {
15776
15759
  });
15777
15760
  }
15778
15761
  /**
15779
- * Read isClaimed.
15762
+ * Checks whether incentives have already been claimed for a given operator index.
15780
15763
  *
15781
- * @param {ETH_ADDRESS} contractAddress - Address of the Merkle Distributor Contract
15782
- * @param {ETH_ADDRESS} index - operator index in merkle tree
15783
- * @returns {Promise<boolean>} true if incentives are already claime
15764
+ * Read-only on-chain call no transaction sent.
15784
15765
  *
15766
+ * @param contractAddress - Address of the Merkle Distributor contract.
15767
+ * @param index - The operator's index in the Merkle tree (from {@link Incentives.getIncentivesByAddress}).
15768
+ * @returns `true` if the incentives at that index have already been claimed.
15785
15769
  *
15786
- * An example of how to use isClaimed:
15787
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L266)
15770
+ * @example
15771
+ * ```typescript
15772
+ * const claimed = await client.incentives.isClaimed(
15773
+ * "0xMerkleDistributor...",
15774
+ * 42,
15775
+ * );
15776
+ * ```
15788
15777
  */
15789
15778
  isClaimed(contractAddress, index) {
15790
15779
  return __async(this, null, function* () {
@@ -15796,12 +15785,20 @@ var Incentives = class {
15796
15785
  });
15797
15786
  }
15798
15787
  /**
15799
- * @param address - Operator address
15800
- * @returns {Promise<IncentivesType>} The matched incentives from DB
15801
- * @throws On not found if address not found.
15788
+ * Fetches claimable incentive data for an operator address from the Obol API.
15789
+ *
15790
+ * The returned data includes the Merkle proof, amount, and contract address
15791
+ * needed to claim on-chain. This is a read-only API call.
15792
+ *
15793
+ * @param address - The operator's Ethereum address.
15794
+ * @returns Claimable incentive data including amount, Merkle proof, and contract address.
15795
+ * @throws {Error} If no incentives are found for the given address (404).
15802
15796
  *
15803
- * An example of how to use getIncentivesByAddress:
15804
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L250)
15797
+ * @example
15798
+ * ```typescript
15799
+ * const incentives = await client.incentives.getIncentivesByAddress("0xOperator...");
15800
+ * console.log(incentives.amount, incentives.contract_address);
15801
+ * ```
15805
15802
  */
15806
15803
  getIncentivesByAddress(address) {
15807
15804
  return __async(this, null, function* () {
@@ -15951,11 +15948,8 @@ var Exit = class _Exit {
15951
15948
  *
15952
15949
  * @example
15953
15950
  * ```typescript
15954
- * // For mainnet with a provider
15955
- * const exit = new Exit(1, provider);
15956
- *
15957
- * // For goerli testnet without provider
15958
- * const exit = new Exit(5, null);
15951
+ * const client = new Client({ chainId: 1 }, signer, provider);
15952
+ * const exit = client.exit; // Access via client, do not instantiate directly
15959
15953
  * ```
15960
15954
  */
15961
15955
  constructor(chainId, provider) {
@@ -16403,43 +16397,53 @@ var ObolSplits = class {
16403
16397
  this.provider = provider;
16404
16398
  }
16405
16399
  /**
16406
- * Creates an Obol OVM and Pull split configuration for rewards-only scenario.
16400
+ * Deploys an OVM and SplitV2 contract for a **rewards-only** split scenario.
16407
16401
  *
16408
- * This method deploys OVM and SplitV2 contracts for managing validator rewards only.
16409
- * Principal is handled by a single address, while rewards are split among recipients.
16402
+ * Principal goes to a single address; only validator rewards are split among
16403
+ * the configured recipients. Automatically appends the Obol RAF recipient.
16410
16404
  *
16411
- * @remarks
16412
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16413
- * and not pushed to version control.
16405
+ * - Sends one or more on-chain transactions (irreversible).
16406
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
16414
16407
  *
16415
- * @param {OVMRewardsSplitPayload} payload - Data needed to deploy OVM and SplitV2
16416
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
16417
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
16408
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
16409
+ * @returns The OVM address as `withdrawal_address` and splitter as `fee_recipient_address`.
16410
+ * @throws {SignerRequiredError} If no signer was provided.
16411
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
16418
16412
  *
16419
- * An example of how to use createValidatorManagerAndRewardsSplit:
16420
- * [createValidatorManagerAndRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L333)
16413
+ * @example
16414
+ * ```typescript
16415
+ * const { withdrawal_address, fee_recipient_address } =
16416
+ * await client.splits.createValidatorManagerAndRewardsSplit({
16417
+ * rewardSplitRecipients: [
16418
+ * { address: "0xOp1...", percentAllocation: 50 },
16419
+ * { address: "0xOp2...", percentAllocation: 49 },
16420
+ * ],
16421
+ * principalRecipient: "0xPrincipal...",
16422
+ * OVMOwnerAddress: "0xOwner...",
16423
+ * });
16424
+ * ```
16421
16425
  */
16422
16426
  createValidatorManagerAndRewardsSplit(payload) {
16423
16427
  return __async(this, null, function* () {
16424
16428
  const salt = SPLITS_V2_SALT;
16425
16429
  if (!this.signer) {
16426
- throw new Error(
16427
- "Signer is required in createValidatorManagerAndRewardsSplit"
16428
- );
16430
+ throw new SignerRequiredError("createValidatorManagerAndRewardsSplit");
16429
16431
  }
16430
16432
  const validatedPayload = validatePayload(
16431
16433
  payload,
16432
16434
  ovmRewardsSplitPayloadSchema
16433
16435
  );
16434
16436
  if (!isChainSupportedForSplitters(this.chainId)) {
16435
- throw new Error(
16436
- `Splitter configuration is not supported on ${this.chainId} chain`
16437
+ throw new UnsupportedChainError(
16438
+ this.chainId,
16439
+ "createValidatorManagerAndRewardsSplit"
16437
16440
  );
16438
16441
  }
16439
16442
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
16440
16443
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
16441
- throw new Error(
16442
- `OVM contract factory is not configured for chain ${this.chainId}`
16444
+ throw new UnsupportedChainError(
16445
+ this.chainId,
16446
+ "createValidatorManagerAndRewardsSplit"
16443
16447
  );
16444
16448
  }
16445
16449
  if (!this.provider) {
@@ -16451,8 +16455,9 @@ var ObolSplits = class {
16451
16455
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
16452
16456
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
16453
16457
  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)) {
16454
- throw new Error(
16455
- `Contracts configuration is incomplete for chain ${this.chainId}`
16458
+ throw new UnsupportedChainError(
16459
+ this.chainId,
16460
+ "createValidatorManagerAndRewardsSplit"
16456
16461
  );
16457
16462
  }
16458
16463
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -16472,7 +16477,7 @@ var ObolSplits = class {
16472
16477
  );
16473
16478
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
16474
16479
  throw new Error(
16475
- `Splitter contract is not deployed or available on chain ${this.chainId}`
16480
+ `Required factory contracts are not available on chain ${this.chainId}`
16476
16481
  );
16477
16482
  }
16478
16483
  const retroActiveFundingRecipient = {
@@ -16539,43 +16544,56 @@ var ObolSplits = class {
16539
16544
  });
16540
16545
  }
16541
16546
  /**
16542
- * Creates an Obol OVM and Total split configuration for total split scenario.
16547
+ * Deploys an OVM and SplitV2 contract for a **total split** scenario.
16543
16548
  *
16544
- * This method deploys OVM and SplitV2 contracts for managing both validator rewards and principal.
16545
- * Both rewards and principal are split among recipients, with rewards including RAF recipient.
16549
+ * Both principal and rewards are split among recipients via separate SplitV2
16550
+ * contracts. Automatically appends the Obol RAF recipient to rewards.
16546
16551
  *
16547
- * @remarks
16548
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16549
- * and not pushed to version control.
16552
+ * - Sends one or more on-chain transactions (irreversible).
16553
+ * - Only supported on chains with OVM factory contracts (Mainnet, Hoodi).
16550
16554
  *
16551
- * @param {OVMTotalSplitPayload} payload - Data needed to deploy OVM and SplitV2
16552
- * @returns {Promise<ClusterValidator>} OVM address as withdrawal address and splitter as fee recipient
16553
- * @throws Will throw an error if the splitter configuration is not supported or deployment fails
16555
+ * @param payload - Configuration for the OVM and SplitV2 deployment.
16556
+ * @returns The OVM address as `withdrawal_address` and rewards splitter as `fee_recipient_address`.
16557
+ * @throws {SignerRequiredError} If no signer was provided.
16558
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
16554
16559
  *
16555
- * An example of how to use createValidatorManagerAndTotalSplit:
16556
- * [createValidatorManagerAndTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#340)
16560
+ * @example
16561
+ * ```typescript
16562
+ * const { withdrawal_address, fee_recipient_address } =
16563
+ * await client.splits.createValidatorManagerAndTotalSplit({
16564
+ * rewardSplitRecipients: [
16565
+ * { address: "0xOp1...", percentAllocation: 50 },
16566
+ * { address: "0xOp2...", percentAllocation: 49 },
16567
+ * ],
16568
+ * principalSplitRecipients: [
16569
+ * { address: "0xOp1...", percentAllocation: 50 },
16570
+ * { address: "0xOp2...", percentAllocation: 50 },
16571
+ * ],
16572
+ * OVMOwnerAddress: "0xOwner...",
16573
+ * });
16574
+ * ```
16557
16575
  */
16558
16576
  createValidatorManagerAndTotalSplit(payload) {
16559
16577
  return __async(this, null, function* () {
16560
16578
  const salt = SPLITS_V2_SALT;
16561
16579
  if (!this.signer) {
16562
- throw new Error(
16563
- "Signer is required in createValidatorManagerAndTotalSplit"
16564
- );
16580
+ throw new SignerRequiredError("createValidatorManagerAndTotalSplit");
16565
16581
  }
16566
16582
  const validatedPayload = validatePayload(
16567
16583
  payload,
16568
16584
  ovmTotalSplitPayloadSchema
16569
16585
  );
16570
16586
  if (!isChainSupportedForSplitters(this.chainId)) {
16571
- throw new Error(
16572
- `Splitter configuration is not supported on ${this.chainId} chain`
16587
+ throw new UnsupportedChainError(
16588
+ this.chainId,
16589
+ "createValidatorManagerAndTotalSplit"
16573
16590
  );
16574
16591
  }
16575
16592
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
16576
16593
  if (!(chainConfig == null ? void 0 : chainConfig.OVM_FACTORY_CONTRACT)) {
16577
- throw new Error(
16578
- `OVM contract factory is not configured for chain ${this.chainId}`
16594
+ throw new UnsupportedChainError(
16595
+ this.chainId,
16596
+ "createValidatorManagerAndTotalSplit"
16579
16597
  );
16580
16598
  }
16581
16599
  if (!this.provider) {
@@ -16587,8 +16605,9 @@ var ObolSplits = class {
16587
16605
  const splitV2FactoryConfig = chainConfig.SPLIT_V2_FACTORY_CONTRACT;
16588
16606
  const multiCall3Config = chainConfig.MULTICALL3_CONTRACT;
16589
16607
  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)) {
16590
- throw new Error(
16591
- `Contracts configuration is incomplete for chain ${this.chainId}`
16608
+ throw new UnsupportedChainError(
16609
+ this.chainId,
16610
+ "createValidatorManagerAndTotalSplit"
16592
16611
  );
16593
16612
  }
16594
16613
  const checkOVMFactoryContract = yield isContractAvailable(
@@ -16608,7 +16627,7 @@ var ObolSplits = class {
16608
16627
  );
16609
16628
  if (!checkOVMFactoryContract || !checkSplitV2FactoryContract || !checkMultiCall3Contract) {
16610
16629
  throw new Error(
16611
- `Splitter contract is not deployed or available on chain ${this.chainId}`
16630
+ `Required factory contracts are not available on chain ${this.chainId}`
16612
16631
  );
16613
16632
  }
16614
16633
  const retroActiveFundingRecipient = {
@@ -16695,34 +16714,30 @@ var ObolSplits = class {
16695
16714
  });
16696
16715
  }
16697
16716
  /**
16698
- * Requests withdrawal from an OVM contract.
16717
+ * Requests withdrawal of validator funds from an OVM contract.
16699
16718
  *
16700
- * This method allows requesting withdrawal of validator funds from an OVM contract.
16701
- * The withdrawal request includes OVM address, validator public keys and corresponding withdrawal amounts.
16719
+ * Sends an on-chain transaction to the OVM contract requesting withdrawal
16720
+ * for the specified validator public keys and amounts.
16702
16721
  *
16703
- * @remarks
16704
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16705
- * and not pushed to version control.
16722
+ * @param payload - Withdrawal request data including OVM address, validator
16723
+ * public keys, amounts, and fees.
16724
+ * @returns The transaction hash of the withdrawal request.
16725
+ * @throws {SignerRequiredError} If no signer was provided.
16706
16726
  *
16707
- * @param {OVMRequestWithdrawalPayload} payload - Data needed to request withdrawal
16708
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
16709
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the request fails
16710
- *
16711
- * An example of how to use requestWithdrawal:
16727
+ * @example
16712
16728
  * ```typescript
16713
- * const result = await client.splits.requestWithdrawal({
16714
- * ovmAddress: '0x1234567890123456789012345678901234567890',
16715
- * pubKeys: ['0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456'],
16716
- * amounts: ['32000000000'], // 32 ETH in gwei
16717
- * withdrawalFees: '1000000000000000' // Total fees in wei
16729
+ * const { txHash } = await client.splits.requestWithdrawal({
16730
+ * ovmAddress: "0xOVM...",
16731
+ * pubKeys: ["0xValidatorPubkey..."],
16732
+ * amounts: ["32000000000"],
16733
+ * withdrawalFees: "1000000000000000",
16718
16734
  * });
16719
- * console.log('Withdrawal requested:', result.txHash);
16720
16735
  * ```
16721
16736
  */
16722
16737
  requestWithdrawal(payload) {
16723
16738
  return __async(this, null, function* () {
16724
16739
  if (!this.signer) {
16725
- throw new Error("Signer is required in requestWithdrawal");
16740
+ throw new SignerRequiredError("requestWithdrawal");
16726
16741
  }
16727
16742
  const validatedPayload = validatePayload(
16728
16743
  payload,
@@ -16738,38 +16753,33 @@ var ObolSplits = class {
16738
16753
  });
16739
16754
  }
16740
16755
  /**
16741
- * Deposits to OVM contract by sending individual transactions for each deposit.
16742
- *
16743
- * This method allows depositing to an OVM contract. Each deposit is sent as a separate transaction
16744
- * Each deposit includes validator public key, withdrawal credentials, signature, deposit data root, and amount.
16745
- *
16746
- * @remarks
16747
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16748
- * and not pushed to version control.
16756
+ * Deposits validators to an OVM contract. Each deposit is sent as a separate
16757
+ * on-chain transaction.
16749
16758
  *
16750
- * @param {OVMDepositPayload} payload - Data needed to deposit to OVM
16751
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes, one for each deposit
16752
- * @throws Will throw an error if the signer is not provided, OVM address is invalid, or the deposit fails
16759
+ * @param payload - Deposit data including the OVM address and an array of
16760
+ * validator deposit objects (pubkey, withdrawal_credentials, signature,
16761
+ * deposit_data_root, amount).
16762
+ * @returns An array of transaction hashes, one per deposit.
16763
+ * @throws {SignerRequiredError} If no signer was provided.
16753
16764
  *
16754
- * An example of how to use deposit:
16765
+ * @example
16755
16766
  * ```typescript
16756
- * const result = await client.splits.deposit({
16757
- * ovmAddress: '0x1234567890123456789012345678901234567890',
16767
+ * const { txHashes } = await client.splits.deposit({
16768
+ * ovmAddress: "0xOVM...",
16758
16769
  * deposits: [{
16759
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
16760
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
16761
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
16762
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
16763
- * amount: '32000000000000000000' // 32 ETH in wei
16764
- * }]
16770
+ * pubkey: "0x...",
16771
+ * withdrawal_credentials: "0x...",
16772
+ * signature: "0x...",
16773
+ * deposit_data_root: "0x...",
16774
+ * amount: "32000000000000000000",
16775
+ * }],
16765
16776
  * });
16766
- * console.log('Deposits completed:', result.txHashes);
16767
16777
  * ```
16768
16778
  */
16769
16779
  deposit(payload) {
16770
16780
  return __async(this, null, function* () {
16771
16781
  if (!this.signer) {
16772
- throw new Error("Signer is required in deposit");
16782
+ throw new SignerRequiredError("deposit");
16773
16783
  }
16774
16784
  const validatedPayload = validatePayload(
16775
16785
  payload,
@@ -16989,43 +16999,37 @@ var EOA = class {
16989
16999
  this.provider = provider;
16990
17000
  }
16991
17001
  /**
16992
- * Requests withdrawal from an EOA contract.
16993
- *
16994
- * This method allows requesting withdrawal of validator funds.
16995
- * The withdrawal request includes validator public key and corresponding withdrawal amount.
17002
+ * Requests withdrawal of validator funds via the EOA withdrawal contract.
16996
17003
  *
16997
- * @remarks
16998
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
16999
- * and not pushed to version control.
17004
+ * Sends an on-chain transaction. Requires both a signer and a provider.
17000
17005
  *
17001
- * @param {EOAWithdrawalPayload} payload - Data needed to request withdrawal
17002
- * @returns {Promise<{txHash: string}>} Transaction hash of the withdrawal request
17003
- * @throws Will throw an error if the signer is not provided or the request fails
17006
+ * @param payload - Withdrawal data including validator `pubkey`, `allocation`
17007
+ * (in ETH), and `requiredFee` (in wei).
17008
+ * @returns The transaction hash, or `null` if no transaction was needed.
17009
+ * @throws {SignerRequiredError} If no signer was provided.
17010
+ * @throws {UnsupportedChainError} If the chain has no EOA withdrawal contract.
17004
17011
  *
17005
- * An example of how to use requestWithdrawal:
17012
+ * @example
17006
17013
  * ```typescript
17007
- * const result = await client.eoa.requestWithdrawal({
17008
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17009
- * allocation: 32, // 32 ETH
17010
- * requiredFee: '1' // in wei
17014
+ * const { txHash } = await client.eoa.requestWithdrawal({
17015
+ * pubkey: "0xValidatorPubkey...",
17016
+ * allocation: 32,
17017
+ * requiredFee: "1",
17011
17018
  * });
17012
- * console.log('Withdrawal requested:', result.txHash);
17013
17019
  * ```
17014
17020
  */
17015
17021
  requestWithdrawal(payload) {
17016
17022
  return __async(this, null, function* () {
17017
17023
  var _a6;
17018
17024
  if (!this.signer) {
17019
- throw new Error("Signer is required in requestWithdrawal");
17025
+ throw new SignerRequiredError("requestWithdrawal");
17020
17026
  }
17021
17027
  if (!this.provider) {
17022
17028
  throw new Error("Provider is required in requestWithdrawal");
17023
17029
  }
17024
17030
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17025
17031
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.EOA_WITHDRAWAL_CONTRACT) == null ? void 0 : _a6.address)) {
17026
- throw new Error(
17027
- `EOA withdrawal contract is not configured for chain ${this.chainId}`
17028
- );
17032
+ throw new UnsupportedChainError(this.chainId, "EOA requestWithdrawal");
17029
17033
  }
17030
17034
  const validatedPayload = validatePayload(
17031
17035
  payload,
@@ -17044,47 +17048,39 @@ var EOA = class {
17044
17048
  });
17045
17049
  }
17046
17050
  /**
17047
- * Deposits to batch deposit contract.
17048
- *
17049
- * This method allows depositing multiple validators to the Ethereum beacon chain
17050
- * using the Pier Two batch deposit contract for gas efficiency.
17051
- * Each deposit includes validator public key, withdrawal credentials, signature, and amount.
17052
- *
17053
- * @remarks
17054
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17055
- * and not pushed to version control.
17051
+ * Batch-deposits validators to the beacon chain via the Pier Two batch
17052
+ * deposit contract for gas efficiency.
17056
17053
  *
17057
- * **⚠️ Gas Limit:** Due to EVM constraints, it is recommended to deposit in batches of up to 500 at a time.
17054
+ * Due to EVM gas limits, it is recommended to deposit at most 500
17055
+ * validators per call.
17058
17056
  *
17059
- * @param {EOADepositPayload} payload - Data needed to deposit to batch contract
17060
- * @returns {Promise<{txHashes: string[]}>} Array of transaction hashes for all batches
17061
- * @throws Will throw an error if the signer is not provided, contract is not configured, or the deposit fails
17057
+ * @param payload - Deposit data including an array of validator deposit objects.
17058
+ * @returns An array of transaction hashes, one per batch.
17059
+ * @throws {SignerRequiredError} If no signer was provided.
17060
+ * @throws {UnsupportedChainError} If the chain has no batch deposit contract.
17062
17061
  *
17063
- * An example of how to use deposit:
17062
+ * @example
17064
17063
  * ```typescript
17065
- * const result = await client.eoa.deposit({
17064
+ * const { txHashes } = await client.eoa.deposit({
17066
17065
  * deposits: [{
17067
- * pubkey: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17068
- * withdrawal_credentials: '0x1234567890123456789012345678901234567890',
17069
- * deposit_data_root: '0x1234567890123456789012345678901234567890123456789012345678901234',
17070
- * signature: '0x123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456',
17071
- * amount: '32000000000000000000' // 32 ETH in wei
17072
- * }]
17066
+ * pubkey: "0x...",
17067
+ * withdrawal_credentials: "0x...",
17068
+ * deposit_data_root: "0x...",
17069
+ * signature: "0x...",
17070
+ * amount: "32000000000000000000",
17071
+ * }],
17073
17072
  * });
17074
- * console.log('Deposits completed:', result.txHashes);
17075
17073
  * ```
17076
17074
  */
17077
17075
  deposit(payload) {
17078
17076
  return __async(this, null, function* () {
17079
17077
  var _a6;
17080
17078
  if (!this.signer) {
17081
- throw new Error("Signer is required in deposit");
17079
+ throw new SignerRequiredError("deposit");
17082
17080
  }
17083
17081
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17084
17082
  if (!((_a6 = chainConfig == null ? void 0 : chainConfig.BATCH_DEPOSIT_CONTRACT) == null ? void 0 : _a6.address)) {
17085
- throw new Error(
17086
- `Batch deposit contract is not configured for chain ${this.chainId}`
17087
- );
17083
+ throw new UnsupportedChainError(this.chainId, "EOA deposit");
17088
17084
  }
17089
17085
  const validatedPayload = validatePayload(
17090
17086
  payload,
@@ -17112,14 +17108,26 @@ var validateClusterLock = (lock, safeRpcUrl) => __async(null, null, function* ()
17112
17108
  // src/index.ts
17113
17109
  var Client = class extends Base {
17114
17110
  /**
17115
- * @param config - Client configurations
17116
- * @param config.baseUrl - obol-api url
17117
- * @param config.chainId - Blockchain network ID
17118
- * @param signer - ethersJS Signer
17119
- * @returns Obol-SDK Client instance
17111
+ * Creates a new Obol SDK client.
17112
+ *
17113
+ * @param config - Client configuration object.
17114
+ * @param config.baseUrl - Obol API base URL. Defaults to `https://api.obol.tech`.
17115
+ * @param config.chainId - Target chain ID. Defaults to `560048` (Hoodi).
17116
+ * Supported: 1 (Mainnet), 560048 (Hoodi), 100 (Gnosis), 11155111 (Sepolia).
17117
+ * @param signer - An ethers `Wallet` or `JsonRpcSigner`. Required for any
17118
+ * write operation (creating clusters, deploying splits, claiming incentives).
17119
+ * Read-only operations (`getClusterDefinition`, `getClusterLock`) work without a signer.
17120
+ * @param provider - An ethers `Provider`. If omitted, falls back to `signer.provider`.
17120
17121
  *
17121
- * An example of how to instantiate obol-sdk Client:
17122
- * [obolClient](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L29)
17122
+ * @example
17123
+ * ```typescript
17124
+ * // Minimal read-only client (no signer)
17125
+ * const readClient = new Client({ chainId: 1 });
17126
+ * const def = await readClient.getClusterDefinition(configHash);
17127
+ *
17128
+ * // Full client with signer for write operations
17129
+ * const client = new Client({ chainId: 560048 }, signer);
17130
+ * ```
17123
17131
  */
17124
17132
  constructor(config2, signer, provider) {
17125
17133
  super(config2);
@@ -17136,17 +17144,30 @@ var Client = class extends Base {
17136
17144
  this.eoa = new EOA(this.signer, this.chainId, this.provider);
17137
17145
  }
17138
17146
  /**
17139
- * Accepts Obol terms and conditions to be able to create or update data.
17140
- * @returns {Promise<string>} terms and conditions acceptance success message.
17141
- * @throws On unverified signature or wrong hash.
17147
+ * Accepts the latest Obol terms and conditions.
17142
17148
  *
17143
- * An example of how to use acceptObolLatestTermsAndConditions:
17144
- * [acceptObolLatestTermsAndConditions](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L44)
17149
+ * **Must be called once** before any write operation
17150
+ * (`createClusterDefinition`, `acceptClusterDefinition`, etc.).
17151
+ * Calling it again after acceptance throws a {@link ConflictError}.
17152
+ *
17153
+ * - Requires a `signer` to be provided at client construction.
17154
+ * - Signs an EIP-712 typed-data message; no on-chain transaction is sent.
17155
+ * - Idempotent per signer address: once accepted, subsequent calls throw `ConflictError`.
17156
+ *
17157
+ * @returns A success message string from the Obol API.
17158
+ * @throws {SignerRequiredError} If no signer was provided to the client.
17159
+ * @throws {ConflictError} If the terms were already accepted by this address.
17160
+ *
17161
+ * @example
17162
+ * ```typescript
17163
+ * const message = await client.acceptObolLatestTermsAndConditions();
17164
+ * console.log(message); // "Terms and conditions accepted successfully"
17165
+ * ```
17145
17166
  */
17146
17167
  acceptObolLatestTermsAndConditions() {
17147
17168
  return __async(this, null, function* () {
17148
17169
  if (!this.signer) {
17149
- throw new Error("Signer is required in acceptObolTermsAndConditions");
17170
+ throw new SignerRequiredError("acceptObolLatestTermsAndConditions");
17150
17171
  }
17151
17172
  try {
17152
17173
  const termsAndConditionsHash = TERMS_AND_CONDITIONS_HASH;
@@ -17182,19 +17203,37 @@ var Client = class extends Base {
17182
17203
  });
17183
17204
  }
17184
17205
  /**
17185
- * Deploys OWR and Splitter Proxy.
17206
+ * Deploys an Optimistic Withdrawal Recipient (OWR) and a Splitter Proxy contract.
17186
17207
  *
17187
- * @remarks
17188
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17189
- * and not pushed to version control.
17208
+ * Use this when the **principal** goes to a single address and only **rewards**
17209
+ * are split among recipients. For splitting both principal and rewards, see
17210
+ * {@link Client.createObolTotalSplit}.
17190
17211
  *
17191
- * @param {RewardsSplitPayload} rewardsSplitPayload - Data needed to deploy owr and splitter.
17192
- * @returns {Promise<ClusterValidator>} owr address as withdrawal address and splitter as fee recipient
17212
+ * - Requires a `signer` with ETH to pay deployment gas.
17213
+ * - Sends one or more on-chain transactions (irreversible).
17214
+ * - Automatically appends the Obol Retroactive Funding (RAF) recipient at the
17215
+ * configured percentage (default 1%).
17216
+ * - Only supported on Mainnet (1) and Hoodi (560048).
17193
17217
  *
17194
- * An example of how to use createObolRewardsSplit:
17195
- * [createObolRewardsSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L141)
17218
+ * @param rewardsSplitPayload - Configuration for the OWR and splitter deployment.
17219
+ * @returns The deployed OWR address as `withdrawal_address` and the
17220
+ * splitter proxy address as `fee_recipient_address`.
17221
+ * @throws {SignerRequiredError} If no signer was provided.
17222
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
17223
+ *
17224
+ * @example
17225
+ * ```typescript
17226
+ * const { withdrawal_address, fee_recipient_address } =
17227
+ * await client.createObolRewardsSplit({
17228
+ * splitRecipients: [
17229
+ * { account: "0xOperator1...", percentAllocation: 50 },
17230
+ * { account: "0xOperator2...", percentAllocation: 49 },
17231
+ * ],
17232
+ * principalRecipient: "0xPrincipalAddress...",
17233
+ * etherAmount: 32,
17234
+ * });
17235
+ * ```
17196
17236
  */
17197
- // add the example reference
17198
17237
  createObolRewardsSplit(_0) {
17199
17238
  return __async(this, arguments, function* ({
17200
17239
  splitRecipients,
@@ -17206,7 +17245,7 @@ var Client = class extends Base {
17206
17245
  recoveryAddress
17207
17246
  }) {
17208
17247
  if (!this.signer) {
17209
- throw new Error("Signer is required in createObolRewardsSplit");
17248
+ throw new SignerRequiredError("createObolRewardsSplit");
17210
17249
  }
17211
17250
  const validatedPayload = validatePayload(
17212
17251
  {
@@ -17221,15 +17260,11 @@ var Client = class extends Base {
17221
17260
  rewardsSplitterPayloadSchema
17222
17261
  );
17223
17262
  if (!isChainSupportedForSplitters(this.chainId)) {
17224
- throw new Error(
17225
- `Splitter configuration is not supported on ${this.chainId} chain`
17226
- );
17263
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
17227
17264
  }
17228
17265
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17229
17266
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
17230
- throw new Error(
17231
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
17232
- );
17267
+ throw new UnsupportedChainError(this.chainId, "createObolRewardsSplit");
17233
17268
  }
17234
17269
  const checkSplitMainAddress = yield isContractAvailable(
17235
17270
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -17248,7 +17283,7 @@ var Client = class extends Base {
17248
17283
  );
17249
17284
  if (!checkMulticall3Address || !checkSplitMainAddress || !checkOWRFactoryAddress) {
17250
17285
  throw new Error(
17251
- `Something isn not working as expected, check this issue with obol-sdk team on ${OBOL_SDK_EMAIL}`
17286
+ `Required factory contracts are not available on chain ${this.chainId}. Contact Obol at ${OBOL_SDK_EMAIL}`
17252
17287
  );
17253
17288
  }
17254
17289
  const retroActiveFundingRecipient = {
@@ -17289,19 +17324,37 @@ var Client = class extends Base {
17289
17324
  });
17290
17325
  }
17291
17326
  /**
17292
- * Deploys Splitter Proxy.
17327
+ * Deploys a Splitter Proxy contract that splits **both principal and rewards**.
17293
17328
  *
17294
- * @remarks
17295
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17296
- * and not pushed to version control.
17329
+ * Unlike {@link Client.createObolRewardsSplit}, this method does not deploy an
17330
+ * OWR the splitter address is used as both `withdrawal_address` and
17331
+ * `fee_recipient_address`.
17297
17332
  *
17298
- * @param {TotalSplitPayload} totalSplitPayload - Data needed to deploy splitter if it doesnt exist.
17299
- * @returns {Promise<ClusterValidator>} splitter address as withdrawal address and splitter as fee recipient too
17333
+ * - Requires a `signer` with ETH to pay deployment gas.
17334
+ * - Sends an on-chain transaction if the splitter is not already deployed (irreversible).
17335
+ * - If the predicted splitter is already deployed, returns the existing address without
17336
+ * sending a transaction (idempotent).
17337
+ * - Automatically appends the Obol RAF recipient.
17338
+ * - Only supported on Mainnet (1) and Hoodi (560048).
17300
17339
  *
17301
- * An example of how to use createObolTotalSplit:
17302
- * [createObolTotalSplit](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L168)
17340
+ * @param totalSplitPayload - Configuration for the splitter deployment.
17341
+ * @returns The splitter address as both `withdrawal_address` and `fee_recipient_address`.
17342
+ * @throws {SignerRequiredError} If no signer was provided.
17343
+ * @throws {UnsupportedChainError} If the chain does not support splitters.
17344
+ * @throws {Error} If required on-chain factory contracts are unavailable.
17345
+ *
17346
+ * @example
17347
+ * ```typescript
17348
+ * const { withdrawal_address, fee_recipient_address } =
17349
+ * await client.createObolTotalSplit({
17350
+ * splitRecipients: [
17351
+ * { account: "0xOperator1...", percentAllocation: 50 },
17352
+ * { account: "0xOperator2...", percentAllocation: 49.9 },
17353
+ * ],
17354
+ * });
17355
+ * // withdrawal_address === fee_recipient_address (same splitter)
17356
+ * ```
17303
17357
  */
17304
- // add the example reference
17305
17358
  createObolTotalSplit(_0) {
17306
17359
  return __async(this, arguments, function* ({
17307
17360
  splitRecipients,
@@ -17310,7 +17363,7 @@ var Client = class extends Base {
17310
17363
  controllerAddress
17311
17364
  }) {
17312
17365
  if (!this.signer) {
17313
- throw new Error("Signer is required in createObolTotalSplit");
17366
+ throw new SignerRequiredError("createObolTotalSplit");
17314
17367
  }
17315
17368
  const validatedPayload = validatePayload(
17316
17369
  {
@@ -17322,15 +17375,11 @@ var Client = class extends Base {
17322
17375
  totalSplitterPayloadSchema
17323
17376
  );
17324
17377
  if (!isChainSupportedForSplitters(this.chainId)) {
17325
- throw new Error(
17326
- `Splitter configuration is not supported on ${this.chainId} chain`
17327
- );
17378
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
17328
17379
  }
17329
17380
  const chainConfig = CHAIN_CONFIGURATION[this.chainId];
17330
17381
  if (!(chainConfig == null ? void 0 : chainConfig.SPLITMAIN_CONTRACT)) {
17331
- throw new Error(
17332
- `SPLITMAIN_CONTRACT is not configured for chain ${this.chainId}`
17333
- );
17382
+ throw new UnsupportedChainError(this.chainId, "createObolTotalSplit");
17334
17383
  }
17335
17384
  const checkSplitMainAddress = yield isContractAvailable(
17336
17385
  chainConfig.SPLITMAIN_CONTRACT.address,
@@ -17339,7 +17388,7 @@ var Client = class extends Base {
17339
17388
  );
17340
17389
  if (!checkSplitMainAddress) {
17341
17390
  throw new Error(
17342
- `Something isn not working as expected, check this issue with obol-sdk team on ${OBOL_SDK_EMAIL}`
17391
+ `Required factory contracts are not available on chain ${this.chainId}. Contact Obol at ${OBOL_SDK_EMAIL}`
17343
17392
  );
17344
17393
  }
17345
17394
  const retroActiveFundingRecipient = {
@@ -17384,38 +17433,69 @@ var Client = class extends Base {
17384
17433
  });
17385
17434
  }
17386
17435
  /**
17387
- * Read OWR Tranches.
17436
+ * Reads the tranches of a deployed Optimistic Withdrawal Recipient (OWR) contract.
17388
17437
  *
17389
- * @remarks
17390
- * **⚠️ Important:** If you're storing the private key in an `.env` file, ensure it is securely managed
17391
- * and not pushed to version control.
17438
+ * Returns the principal recipient, reward recipient, and staked principal amount
17439
+ * configured in the OWR. This is a read-only on-chain call (no transaction sent).
17392
17440
  *
17393
- * @param {ETH_ADDRESS} owrAddress - Address of the Deployed OWR Contract
17394
- * @returns {Promise<OWRTranches>} owr tranch information about principal and reward reciepient, as well as the principal amount
17441
+ * - Requires a `signer` (for provider access).
17395
17442
  *
17443
+ * @param owrAddress - The Ethereum address of the deployed OWR contract.
17444
+ * @returns The OWR tranche data: `principalRecipient`, `rewardRecipient`, and `amountOfPrincipalStake`.
17445
+ * @throws {SignerRequiredError} If no signer was provided.
17446
+ *
17447
+ * @example
17448
+ * ```typescript
17449
+ * const tranches = await client.getOWRTranches("0xOWRAddress...");
17450
+ * console.log(tranches.principalRecipient);
17451
+ * console.log(tranches.rewardRecipient);
17452
+ * console.log(tranches.amountOfPrincipalStake);
17453
+ * ```
17396
17454
  */
17397
17455
  getOWRTranches(owrAddress) {
17398
17456
  return __async(this, null, function* () {
17399
17457
  if (!this.signer) {
17400
- throw new Error("Signer is required in getOWRTranches");
17458
+ throw new SignerRequiredError("getOWRTranches");
17401
17459
  }
17402
17460
  const signer = this.signer;
17403
17461
  return yield getOWRTranches({ owrAddress, signer });
17404
17462
  });
17405
17463
  }
17406
17464
  /**
17407
- * Creates a cluster definition which contains cluster configuration.
17408
- * @param {ClusterPayload} newCluster - The new unique cluster.
17409
- * @returns {Promise<string>} config_hash.
17410
- * @throws On duplicate entries, missing or wrong cluster keys.
17465
+ * Creates a new cluster definition and registers it with the Obol API.
17466
+ *
17467
+ * A cluster definition describes the operators, validators, and configuration
17468
+ * for a Distributed Key Generation (DKG) ceremony. After creation, each operator
17469
+ * must call {@link Client.acceptClusterDefinition} to join.
17470
+ *
17471
+ * - Requires {@link Client.acceptObolLatestTermsAndConditions} to have been called first.
17472
+ * - Requires a `signer`.
17473
+ * - The `config_hash` returned is the unique identifier for this cluster.
17474
+ * - Threshold is automatically set to `ceil(2/3 * operators.length)`.
17475
+ * - Creating a duplicate cluster throws a {@link ConflictError}.
17411
17476
  *
17412
- * An example of how to use createClusterDefinition:
17413
- * [createObolCluster](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L59)
17477
+ * @param newCluster - The cluster configuration payload.
17478
+ * @returns The `config_hash` string that uniquely identifies this cluster definition.
17479
+ * @throws {SignerRequiredError} If no signer was provided.
17480
+ * @throws {ConflictError} If an identical cluster definition already exists.
17481
+ *
17482
+ * @example
17483
+ * ```typescript
17484
+ * const configHash = await client.createClusterDefinition({
17485
+ * name: "my-dvt-cluster",
17486
+ * operators: [{ address: "0xOp1..." }, { address: "0xOp2..." }],
17487
+ * validators: [{
17488
+ * fee_recipient_address: "0xFeeRecipient...",
17489
+ * withdrawal_address: "0xWithdrawal...",
17490
+ * }],
17491
+ * });
17492
+ * console.log("Cluster created:", configHash);
17493
+ * ```
17414
17494
  */
17415
17495
  createClusterDefinition(newCluster) {
17416
17496
  return __async(this, null, function* () {
17417
17497
  if (!this.signer) {
17418
- throw new Error("Signer is required in createClusterDefinition");
17498
+ throw new SignerRequiredError("createClusterDefinition");
17419
17499
  }
17420
17500
  const validatedCluster = validatePayload(
17421
17501
  newCluster,
@@ -17463,19 +17543,33 @@ var Client = class extends Base {
17463
17543
  });
17464
17544
  }
17465
17545
  /**
17466
- * Approves joining a cluster with specific configuration.
17467
- * @param {OperatorPayload} operatorPayload - The operator data including signatures.
17468
- * @param {string} configHash - The config hash of the cluster which the operator confirms joining to.
17469
- * @returns {Promise<ClusterDefinition>} The cluster definition.
17470
- * @throws On unauthorized, duplicate entries, missing keys, not found cluster or invalid data.
17546
+ * Accepts (joins) an existing cluster definition as an operator.
17547
+ *
17548
+ * Each operator in the cluster must call this method with their ENR and the
17549
+ * cluster's `config_hash` to signal readiness for the DKG ceremony.
17550
+ *
17551
+ * - Requires a `signer` (the operator's address is derived from it).
17552
+ * - Signs two EIP-712 messages: one for the config hash, one for the ENR.
17553
+ * - The operator must be listed in the cluster definition's `operators` array.
17554
+ *
17555
+ * @param operatorPayload - Operator data. Must include `enr` (Ethereum Node Record)
17556
+ * and `version` at minimum.
17557
+ * @param configHash - The `config_hash` returned by {@link Client.createClusterDefinition}.
17558
+ * @returns The updated cluster definition with the operator's acceptance recorded.
17559
+ * @throws {SignerRequiredError} If no signer was provided.
17471
17560
  *
17472
- * An example of how to use acceptClusterDefinition:
17473
- * [acceptClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L106)
17561
+ * @example
17562
+ * ```typescript
17563
+ * const updatedDef = await client.acceptClusterDefinition(
17564
+ * { enr: "enr:-LK4Q...", version: "v1.10.0" },
17565
+ * configHash,
17566
+ * );
17567
+ * ```
17474
17568
  */
17475
17569
  acceptClusterDefinition(operatorPayload, configHash) {
17476
17570
  return __async(this, null, function* () {
17477
17571
  if (!this.signer) {
17478
- throw new Error("Signer is required in acceptClusterDefinition");
17572
+ throw new SignerRequiredError("acceptClusterDefinition");
17479
17573
  }
17480
17574
  const validatedPayload = validatePayload(
17481
17575
  operatorPayload,
@@ -17515,12 +17609,19 @@ var Client = class extends Base {
17515
17609
  });
17516
17610
  }
17517
17611
  /**
17518
- * @param configHash - The configuration hash returned in createClusterDefinition
17519
- * @returns {Promise<ClusterDefinition>} The cluster definition for config hash
17520
- * @throws On not found config hash.
17612
+ * Retrieves a cluster definition by its configuration hash.
17521
17613
  *
17522
- * An example of how to use getClusterDefinition:
17523
- * [getObolClusterDefinition](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L74)
17614
+ * This is a read-only API call – no signer is required.
17615
+ *
17616
+ * @param configHash - The `config_hash` returned by {@link Client.createClusterDefinition}.
17617
+ * @returns The full cluster definition including operators, validators, and metadata.
17618
+ * @throws {Error} If no cluster definition exists for the given hash (404).
17619
+ *
17620
+ * @example
17621
+ * ```typescript
17622
+ * const definition = await client.getClusterDefinition(configHash);
17623
+ * console.log(definition.name, definition.operators.length);
17624
+ * ```
17524
17625
  */
17525
17626
  getClusterDefinition(configHash) {
17526
17627
  return __async(this, null, function* () {
@@ -17534,12 +17635,22 @@ var Client = class extends Base {
17534
17635
  });
17535
17636
  }
17536
17637
  /**
17537
- * @param configHash - The configuration hash in cluster-definition
17538
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
17539
- * @throws On not found cluster definition or lock.
17638
+ * Retrieves a cluster lock by the cluster's configuration hash.
17639
+ *
17640
+ * A cluster lock is generated after a successful DKG ceremony and contains
17641
+ * the distributed validators, their public key shares, and deposit data.
17642
+ * This is a read-only API call – no signer is required.
17540
17643
  *
17541
- * An example of how to use getClusterLock:
17542
- * [getObolClusterLock](https://github.com/ObolNetwork/obol-sdk-examples/blob/main/TS-Example/index.ts#L89)
17644
+ * @param configHash - The `config_hash` from the cluster definition.
17645
+ * @returns The cluster lock including distributed validators and deposit data.
17646
+ * @throws {Error} If no lock exists for the given config hash (DKG not yet complete, or not found).
17647
+ *
17648
+ * @example
17649
+ * ```typescript
17650
+ * const lock = await client.getClusterLock(configHash);
17651
+ * console.log(lock.distributed_validators.length);
17652
+ * console.log(lock.lock_hash);
17653
+ * ```
17543
17654
  */
17544
17655
  getClusterLock(configHash) {
17545
17656
  return __async(this, null, function* () {
@@ -17553,10 +17664,20 @@ var Client = class extends Base {
17553
17664
  });
17554
17665
  }
17555
17666
  /**
17556
- * @param lockHash - The configuration hash in cluster-definition
17557
- * @returns {Promise<ClusterLock>} The matched cluster details (lock) from DB
17558
- * @throws On not found cluster definition or lock.
17667
+ * Retrieves a cluster lock by its lock hash (as opposed to config hash).
17668
+ *
17669
+ * Use this when you have the `lock_hash` directly rather than the `config_hash`.
17670
+ * This is a read-only API call – no signer is required.
17671
+ *
17672
+ * @param lockHash - The `lock_hash` from a cluster lock.
17673
+ * @returns The cluster lock including distributed validators and deposit data.
17674
+ * @throws {Error} If no lock exists for the given lock hash (not found).
17559
17675
  *
17676
+ * @example
17677
+ * ```typescript
17678
+ * const lock = await client.getClusterLockByHash(lockHash);
17679
+ * console.log(lock.cluster_definition.name);
17680
+ * ```
17560
17681
  */
17561
17682
  getClusterLockByHash(lockHash) {
17562
17683
  return __async(this, null, function* () {
@@ -17577,6 +17698,7 @@ export {
17577
17698
  CONFIG_VERSION,
17578
17699
  CONFLICT_ERROR_MSG,
17579
17700
  Client,
17701
+ ConflictError,
17580
17702
  CreatorConfigHashSigningTypes,
17581
17703
  CreatorTypedMessage,
17582
17704
  DEFAULT_BASE_URL,
@@ -17608,10 +17730,12 @@ export {
17608
17730
  PROVIDER_MAP,
17609
17731
  SDK_VERSION,
17610
17732
  SPLITS_V2_SALT,
17733
+ SignerRequiredError,
17611
17734
  TERMS_AND_CONDITIONS_HASH,
17612
17735
  TERMS_AND_CONDITIONS_URL,
17613
17736
  TERMS_AND_CONDITIONS_VERSION,
17614
17737
  TermsAndConditionsSigningTypes,
17738
+ UnsupportedChainError,
17615
17739
  clusterConfigOrDefinitionHash,
17616
17740
  clusterLockHash,
17617
17741
  isChainSupportedForSplitters,