@boostxyz/sdk 5.3.1 → 6.0.0
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.
- package/dist/Actions/Action.cjs +1 -1
- package/dist/Actions/Action.js +3 -3
- package/dist/Actions/EventAction.cjs +1 -1
- package/dist/Actions/EventAction.cjs.map +1 -1
- package/dist/Actions/EventAction.d.ts +13 -3
- package/dist/Actions/EventAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.js +216 -193
- package/dist/Actions/EventAction.js.map +1 -1
- package/dist/AllowLists/AllowList.cjs +1 -1
- package/dist/AllowLists/AllowList.js +2 -2
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
- package/dist/AllowLists/SimpleAllowList.js +24 -24
- package/dist/AllowLists/SimpleAllowList.js.map +1 -1
- package/dist/AllowLists/SimpleDenyList.cjs +1 -1
- package/dist/AllowLists/SimpleDenyList.js +3 -3
- package/dist/Auth/PassthroughAuth.cjs +1 -1
- package/dist/Auth/PassthroughAuth.cjs.map +1 -1
- package/dist/Auth/PassthroughAuth.js +14 -14
- package/dist/Boost.cjs.map +1 -1
- package/dist/Boost.js.map +1 -1
- package/dist/BoostCore.cjs +2 -2
- package/dist/BoostCore.cjs.map +1 -1
- package/dist/BoostCore.d.ts +247 -0
- package/dist/BoostCore.d.ts.map +1 -1
- package/dist/BoostCore.js +421 -259
- package/dist/BoostCore.js.map +1 -1
- package/dist/BoostRegistry.cjs +1 -1
- package/dist/BoostRegistry.cjs.map +1 -1
- package/dist/BoostRegistry.js +43 -43
- package/dist/BoostRegistry.js.map +1 -1
- package/dist/Budget-DMbfdTom.cjs +2 -0
- package/dist/{Budget-AoNx7uFd.cjs.map → Budget-DMbfdTom.cjs.map} +1 -1
- package/dist/Budget-DO6sGTIR.js +463 -0
- package/dist/{Budget-DYIV9iNK.js.map → Budget-DO6sGTIR.js.map} +1 -1
- package/dist/Budgets/Budget.cjs +1 -1
- package/dist/Budgets/Budget.js +2 -2
- package/dist/Budgets/ManagedBudget.cjs +1 -1
- package/dist/Budgets/ManagedBudget.cjs.map +1 -1
- package/dist/Budgets/ManagedBudget.js +53 -53
- package/dist/Budgets/ManagedBudgetWithFees.d.ts +26 -0
- package/dist/Budgets/ManagedBudgetWithFees.d.ts.map +1 -1
- package/dist/Deployable/DeployableTarget.cjs +1 -1
- package/dist/Deployable/DeployableTarget.js +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.js +15 -15
- package/dist/Incentive-Boviez4z.js +1036 -0
- package/dist/Incentive-Boviez4z.js.map +1 -0
- package/dist/Incentive-wM4zizTH.cjs +2 -0
- package/dist/Incentive-wM4zizTH.cjs.map +1 -0
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.d.ts +9 -1
- package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
- package/dist/Incentives/AllowListIncentive.js +64 -47
- package/dist/Incentives/AllowListIncentive.js.map +1 -1
- package/dist/Incentives/CGDAIncentive.cjs +1 -1
- package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
- package/dist/Incentives/CGDAIncentive.d.ts +12 -1
- package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
- package/dist/Incentives/CGDAIncentive.js +64 -33
- package/dist/Incentives/CGDAIncentive.js.map +1 -1
- package/dist/Incentives/ERC20Incentive.cjs +1 -1
- package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
- package/dist/Incentives/ERC20Incentive.d.ts +37 -1
- package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.js +73 -49
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/Incentives/ERC20PeggedIncentive.d.ts +35 -0
- package/dist/Incentives/ERC20PeggedIncentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts +35 -0
- package/dist/Incentives/ERC20PeggedVariableCriteriaIncentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +25 -0
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.js +24 -24
- package/dist/Incentives/ERC20VariableCriteriaIncentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
- package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.d.ts +35 -0
- package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.js +55 -38
- package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.d.ts +25 -0
- package/dist/Incentives/Incentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.js +2 -2
- package/dist/Incentives/PointsIncentive.cjs +1 -1
- package/dist/Incentives/PointsIncentive.cjs.map +1 -1
- package/dist/Incentives/PointsIncentive.d.ts +8 -0
- package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
- package/dist/Incentives/PointsIncentive.js +50 -28
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/SimpleDenyList-CW4RwwRw.js +133 -0
- package/dist/{SimpleDenyList-ByAr4X1r.js.map → SimpleDenyList-CW4RwwRw.js.map} +1 -1
- package/dist/SimpleDenyList-Cybtz7AK.cjs +2 -0
- package/dist/{SimpleDenyList-CsRXJPwm.cjs.map → SimpleDenyList-Cybtz7AK.cjs.map} +1 -1
- package/dist/Validators/LimitedSignerValidator.cjs +1 -1
- package/dist/Validators/LimitedSignerValidator.cjs.map +1 -1
- package/dist/Validators/LimitedSignerValidator.js +33 -33
- package/dist/Validators/LimitedSignerValidator.js.map +1 -1
- package/dist/Validators/SignerValidator.cjs +1 -1
- package/dist/Validators/SignerValidator.cjs.map +1 -1
- package/dist/Validators/SignerValidator.js +26 -26
- package/dist/Validators/SignerValidator.js.map +1 -1
- package/dist/Validators/Validator.cjs +1 -1
- package/dist/Validators/Validator.js +3 -3
- package/dist/deployments-CIXw_WKk.cjs +2 -0
- package/dist/deployments-CIXw_WKk.cjs.map +1 -0
- package/dist/{deployments-D0fs26TV.js → deployments-DqjtOTUr.js} +47 -47
- package/dist/{deployments-D0fs26TV.js.map → deployments-DqjtOTUr.js.map} +1 -1
- package/dist/deployments.json +24 -24
- package/dist/generated-DgXPUgXl.cjs +3 -0
- package/dist/generated-DgXPUgXl.cjs.map +1 -0
- package/dist/{generated-Cyvr_Tjx.js → generated-pJZHmRCK.js} +728 -459
- package/dist/generated-pJZHmRCK.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +137 -136
- package/package.json +1 -1
- package/src/Actions/EventAction.ts +108 -27
- package/src/BoostCore.test.ts +124 -2
- package/src/BoostCore.ts +227 -0
- package/src/Incentives/AllowListIncentive.ts +17 -0
- package/src/Incentives/CGDAIncentive.ts +31 -0
- package/src/Incentives/ERC20Incentive.ts +27 -0
- package/src/Incentives/ERC20PeggedIncentive.ts +18 -0
- package/src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts +26 -0
- package/src/Incentives/ERC20VariableIncentive.ts +18 -0
- package/src/Incentives/PointsIncentive.ts +22 -0
- package/dist/Budget-AoNx7uFd.cjs +0 -2
- package/dist/Budget-DYIV9iNK.js +0 -463
- package/dist/Incentive-BbkfwGOb.cjs +0 -2
- package/dist/Incentive-BbkfwGOb.cjs.map +0 -1
- package/dist/Incentive-qlnv5kQB.js +0 -991
- package/dist/Incentive-qlnv5kQB.js.map +0 -1
- package/dist/SimpleDenyList-ByAr4X1r.js +0 -133
- package/dist/SimpleDenyList-CsRXJPwm.cjs +0 -2
- package/dist/deployments-DoIOqxco.cjs +0 -2
- package/dist/deployments-DoIOqxco.cjs.map +0 -1
- package/dist/generated-Cyvr_Tjx.js.map +0 -1
- package/dist/generated-DtYPHhtX.cjs +0 -3
- package/dist/generated-DtYPHhtX.cjs.map +0 -1
package/dist/BoostCore.js
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { waitForTransactionReceipt as
|
|
3
|
-
import { createClient as
|
|
4
|
-
import { i as
|
|
5
|
-
import { actionFromAddress as
|
|
6
|
-
import { EventAction as
|
|
7
|
-
import { allowListFromAddress as
|
|
8
|
-
import { SimpleAllowList as
|
|
9
|
-
import { S as
|
|
10
|
-
import { PassthroughAuth as
|
|
11
|
-
import { prepareBoostPayload as
|
|
12
|
-
import { b as
|
|
13
|
-
import { ManagedBudget as
|
|
14
|
-
import { Deployable as
|
|
1
|
+
import { g as C, cl as M, cm as j, cn as x, co as z, cp as q, cq as k, cr as G, cs as W, ct as U, cu as H, cv as Q, cw as X, cx as J, cy as K, cz as Y, cA as Z, cB as f0, cC as e0, cD as b0, cE as a0, cF as t0 } from "./generated-pJZHmRCK.js";
|
|
2
|
+
import { waitForTransactionReceipt as c0, getAccount as d0, getChains as n0, getTransactionReceipt as s0 } from "@wagmi/core";
|
|
3
|
+
import { createClient as i0, custom as o0, zeroAddress as m, parseEventLogs as B, zeroHash as l, keccak256 as r0, encodePacked as u0 } from "viem";
|
|
4
|
+
import { i as h0 } from "./deployments-DqjtOTUr.js";
|
|
5
|
+
import { actionFromAddress as l0 } from "./Actions/Action.js";
|
|
6
|
+
import { EventAction as g0 } from "./Actions/EventAction.js";
|
|
7
|
+
import { allowListFromAddress as w0, OpenAllowList as m0 } from "./AllowLists/AllowList.js";
|
|
8
|
+
import { SimpleAllowList as v0 } from "./AllowLists/SimpleAllowList.js";
|
|
9
|
+
import { S as C0 } from "./SimpleDenyList-CW4RwwRw.js";
|
|
10
|
+
import { PassthroughAuth as A0 } from "./Auth/PassthroughAuth.js";
|
|
11
|
+
import { prepareBoostPayload as E, Boost as F } from "./Boost.js";
|
|
12
|
+
import { b as I0, M as y0 } from "./Budget-DO6sGTIR.js";
|
|
13
|
+
import { ManagedBudget as P0 } from "./Budgets/ManagedBudget.js";
|
|
14
|
+
import { Deployable as _0 } from "./Deployable/Deployable.js";
|
|
15
15
|
import { Roles as R } from "./Deployable/DeployableTargetWithRBAC.js";
|
|
16
|
-
import { AllowListIncentive as
|
|
17
|
-
import { CGDAIncentive as
|
|
18
|
-
import { ERC20Incentive as
|
|
19
|
-
import { i as
|
|
20
|
-
import { ERC20VariableCriteriaIncentive as
|
|
21
|
-
import { PointsIncentive as
|
|
22
|
-
import { LimitedSignerValidator as
|
|
23
|
-
import { SignerValidator as
|
|
24
|
-
import { BoostValidatorEOA as
|
|
25
|
-
import { BoostCoreNoIdentifierEmitted as
|
|
16
|
+
import { AllowListIncentive as B0 } from "./Incentives/AllowListIncentive.js";
|
|
17
|
+
import { CGDAIncentive as E0 } from "./Incentives/CGDAIncentive.js";
|
|
18
|
+
import { ERC20Incentive as F0 } from "./Incentives/ERC20Incentive.js";
|
|
19
|
+
import { i as R0, E as T0, a as p0 } from "./Incentive-Boviez4z.js";
|
|
20
|
+
import { ERC20VariableCriteriaIncentive as D0 } from "./Incentives/ERC20VariableCriteriaIncentive.js";
|
|
21
|
+
import { PointsIncentive as L0 } from "./Incentives/PointsIncentive.js";
|
|
22
|
+
import { LimitedSignerValidator as S0 } from "./Validators/LimitedSignerValidator.js";
|
|
23
|
+
import { SignerValidator as N0 } from "./Validators/SignerValidator.js";
|
|
24
|
+
import { BoostValidatorEOA as T, validatorFromAddress as O0 } from "./Validators/Validator.js";
|
|
25
|
+
import { BoostCoreNoIdentifierEmitted as V0, DeployableUnknownOwnerProvidedError as $0, InvalidProtocolChainIdError as M0, BudgetMustAuthorizeBoostCore as j0, MustInitializeBudgetError as x0, IncentiveNotCloneableError as z0, BoostNotFoundError as q0 } from "./errors.js";
|
|
26
26
|
import { assertValidAddressByChainId as u } from "./utils.js";
|
|
27
|
-
import { ERC20VariableIncentive as
|
|
28
|
-
import { simulateContract as
|
|
29
|
-
import { parseAccount as
|
|
30
|
-
const Uf = "0x60806040526103e8600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e860055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550348015610064575f80fd5b5060405161589b38038061589b83398181016040528101906100869190610296565b6100958161011d60201b60201c565b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102e6565b61012b6101f960201b60201c565b156101a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101f6565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61022a82610201565b9050919050565b5f61023b82610220565b9050919050565b61024b81610231565b8114610255575f80fd5b50565b5f8151905061026681610242565b92915050565b61027581610220565b811461027f575f80fd5b50565b5f815190506102908161026c565b92915050565b5f805f606084860312156102ad576102ac6101fd565b5b5f6102ba86828701610258565b93505060206102cb86828701610282565b92505060406102dc86828701610282565b9150509250925092565b6155a8806102f35f395ff3fe6080604052600436106101b6575f3560e01c80638da5cb5b116100eb578063dd98558c11610089578063f04e283e11610063578063f04e283e1461056b578063f2fde38b14610587578063fee81cf4146105a3578063fefceca9146105df576101b6565b8063dd98558c146104ca578063e21ff73114610507578063eccc19a614610543576101b6565b8063b0e21e8a116100c5578063b0e21e8a14610424578063caa1647b1461044e578063d73792a914610476578063dd7dc9a9146104a0576101b6565b80638da5cb5b146103b45780638fe4f523146103de578063a92647dc146103fa576101b6565b80635045b866116101585780635f32c23e116101325780635f32c23e1461033c578063715018a614610364578063730f9c571461036e5780637b1039991461038a576101b6565b80635045b866146102de57806354d1f13d146103085780635edb9eb014610312576101b6565b8063346339d511610194578063346339d51461022857806339a51be51461026457806343bc42d31461028e57806346877b1a146102b6576101b6565b806313c8e2de146101ba578063219f71f0146101f6578063256929621461021e575b5f80fd5b3480156101c5575f80fd5b506101e060048036038101906101db9190613cda565b61061f565b6040516101ed9190613fb6565b60405180910390f35b348015610201575f80fd5b5061021c60048036038101906102179190614000565b6108c7565b005b610226610912565b005b348015610233575f80fd5b5061024e6004803603810190610249919061405e565b610963565b60405161025b9190614162565b60405180910390f35b34801561026f575f80fd5b50610278610a3a565b604051610285919061418a565b60405180910390f35b348015610299575f80fd5b506102b460048036038101906102af91906141cd565b610a5f565b005b3480156102c1575f80fd5b506102dc60048036038101906102d79190614000565b610a93565b005b3480156102e9575f80fd5b506102f2610ade565b6040516102ff919061418a565b60405180910390f35b610310610b03565b005b34801561031d575f80fd5b50610326610b3c565b6040516103339190614207565b60405180910390f35b348015610347575f80fd5b50610362600480360381019061035d9190614220565b610b47565b005b61036c610d34565b005b610388600480360381019061038391906142bf565b610d47565b005b348015610395575f80fd5b5061039e611291565b6040516103ab9190614375565b60405180910390f35b3480156103bf575f80fd5b506103c86112b6565b6040516103d5919061418a565b60405180910390f35b6103f860048036038101906103f3919061438e565b6112de565b005b348015610405575f80fd5b5061040e6112f3565b60405161041b9190614432565b60405180910390f35b34801561042f575f80fd5b50610438611318565b604051610445919061445a565b60405180910390f35b348015610459575f80fd5b50610474600480360381019061046f91906141cd565b611332565b005b348015610481575f80fd5b5061048a6113b4565b604051610497919061445a565b60405180910390f35b3480156104ab575f80fd5b506104b46113ba565b6040516104c1919061445a565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190614473565b6113d3565b6040516104fe9291906144e4565b60405180910390f35b348015610512575f80fd5b5061052d6004803603810190610528919061450b565b611ab9565b60405161053a9190613fb6565b60405180910390f35b34801561054e575f80fd5b5061056960048036038101906105649190614000565b6126be565b005b61058560048036038101906105809190614000565b612709565b005b6105a1600480360381019061059c9190614000565b612747565b005b3480156105ae575f80fd5b506105c960048036038101906105c49190614000565b612770565b6040516105d69190614207565b60405180910390f35b3480156105ea575f80fd5b506106056004803603810190610600919061405e565b612789565b604051610616959493929190614565565b60405180910390f35b610627613aec565b5f828154811061063a576106396145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561082757602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107de575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6108cf6127e6565b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f61091b61281d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b61096b613ba2565b60065f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff1660028111156109aa576109a9614089565b5b60028111156109bc576109bb614089565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a676127e6565b80600460146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610a9b6127e6565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd212685403610b655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610b7c8383612827565b90505f60065f8381526020019081526020015f2090505f808581548110610ba657610ba56145b6565b5b905f5260205f2090600802016004018481548110610bc757610bc66145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f826002015461271067ffffffffffffffff168460010154610c139190614610565b610c1d919061467e565b90505f610c2a8484612859565b905081811115610d1f575f8282610c4191906146ae565b90505f61271067ffffffffffffffff16866002015483610c619190614610565b610c6b919061467e565b9050610c778682612a60565b80866001015410610ca15780866001015f828254610c9591906146ae565b92505081905550610cab565b5f86600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16888a7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610d149190614207565b60405180910390a450505b50505050503868929eee149b4bd21268555050565b610d3c6127e6565b610d455f612c6d565b565b3068929eee149b4bd212685403610d655763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610d8557610d846145b6565b5b905f5260205f20906008020190505f610d9e8888612827565b90505f60065f8381526020019081526020015f2090505f836004018981548110610dcb57610dca6145b6565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050836002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8689896040518463ffffffff1660e01b8152600401610e559392919061473b565b602060405180830381865afa158015610e70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9491906147a0565b610eca576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b6900348c8c898c8c6040518763ffffffff1660e01b8152600401610f2f9594939291906147cb565b60206040518083038185885af1158015610f4b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f7091906147a0565b610fa6576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611003575f61100e565b61100d8383612859565b5b90508173ffffffffffffffffffffffffffffffffffffffff1663bb1757cf878a8a6040518463ffffffff1660e01b815260040161104d9392919061473b565b6020604051808303815f875af1158015611069573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061108d91906147a0565b6110d2578588886040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016110c99392919061473b565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361112f575f61113a565b6111398484612859565b5b90505f81831161114a575f611157565b818361115691906146ae565b5b90505f61271067ffffffffffffffff168660020154836111779190614610565b611181919061467e565b90505f811115611221576111958682612a60565b80866001015f8282546111a891906146ae565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516112189190614207565b60405180910390a45b8873ffffffffffffffffffffffffffffffffffffffff168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f60405161126d9392919061473b565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b6112ec858585858533610d47565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460149054906101000a900467ffffffffffffffff1681565b61133a6127e6565b61271067ffffffffffffffff168167ffffffffffffffff1610611389576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b61271081565b60055f9054906101000a900467ffffffffffffffff1681565b5f803068929eee149b4bd2126854036113f35763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808581548110611413576114126145b6565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561160057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116115b7575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61170f8686612827565b90505f60065f8381526020019081526020015f2090505f898981019061173591906149a2565b90505f816020015180602001905181019061175091906149fd565b90505f61271067ffffffffffffffff168460020154836117709190614610565b61177a919061467e565b90505f811115611979576001600281111561179857611797614089565b5b845f015f9054906101000a900460ff1660028111156117ba576117b9614089565b5b14806117f857505f60028111156117d4576117d3614089565b5b845f015f9054906101000a900460ff1660028111156117f6576117f5614089565b5b145b156118535761184e835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b611925565b60028081111561186657611865614089565b5b845f015f9054906101000a900460ff16600281111561188857611887614089565b5b0361192457835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016118f69493929190614a4b565b5f604051808303815f87803b15801561190d575f80fd5b505af115801561191f573d5f803e3d5ffd5b505050505b5b825f015173ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516119709190614207565b60405180910390a45b5f8087608001518b81518110611992576119916145b6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016119c69190614b3b565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016119f19190614b93565b60408051808303815f875af1158015611a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a309190614bc7565b915091505f8203611a7c57338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611a739392919061473b565b60405180910390fd5b82866001015f828254611a8f91906146ae565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b611ac1613aec565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611bb5575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b8152600401611b74919061418a565b602060405180830381865afa158015611b8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb391906147a0565b155b15611bec576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611c0a5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611c6385858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050612d7c565b806020019051810190611c769190614f65565b9050611c84815f0151612e15565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611dae578160a00151600460149054906101000a900467ffffffffffffffff16611da99190614fac565b611e59565b8160a0015160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1539a6b88886040518363ffffffff1660e01b8152600401611e0f929190614fe7565b602060405180830381865afa158015611e2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e4e9190615009565b611e589190614fac565b5b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611ebf7fe67157950000000000000000000000000000000000000000000000000000000083602001516001612ef0565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f2f7fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612ef0565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611fcb575f612067565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7f1ecff88886040518363ffffffff1660e01b8152600401612027929190614fe7565b602060405180830381865afa158015612042573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120669190615034565b5b90506120938360800151845f0151846005015f9054906101000a900467ffffffffffffffff1684612f12565b8260040190805190602001906120aa929190613bf4565b505f73ffffffffffffffffffffffffffffffffffffffff1683604001516020015173ffffffffffffffffffffffffffffffffffffffff161461211b576121167f5912b89c0000000000000000000000000000000000000000000000000000000084604001516001612ef0565b612204565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016121969190615099565b602060405180830381865afa1580156121b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121d591906147a0565b6121df575f612203565b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b826001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122fa577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016122f19291906150b2565b60405180910390fd5b815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f8054905061237e91906146ae565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8560040180549050866001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161242394939291906150d9565b60405180910390a481604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561260d57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125c4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505094505050503868929eee149b4bd21268555092915050565b6126c66127e6565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6127116127e6565b63389a75e1600c52805f526020600c20805442111561273757636f5e88185f526004601cfd5b5f81555061274481612c6d565b50565b61274f6127e6565b8060601b61276457637448fbae5f526004601cfd5b61276d81612c6d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b6006602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754331461281b576382b429005f526004601cfd5b565b5f6202a300905090565b5f828260405160200161283b92919061513c565b60405160208183030381529060405280519060200120905092915050565b5f6001600281111561286e5761286d614089565b5b835f015f9054906101000a900460ff1660028111156128905761288f614089565b5b14806128ce57505f60028111156128aa576128a9614089565b5b835f015f9054906101000a900460ff1660028111156128cc576128cb614089565b5b145b1561297557825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161292f919061418a565b602060405180830381865afa15801561294a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061296e91906149fd565b9050612a5a565b60028081111561298857612987614089565b5b835f015f9054906101000a900460ff1660028111156129aa576129a9614089565b5b03612a5657825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e8385600301546040518363ffffffff1660e01b8152600401612a10929190615167565b602060405180830381865afa158015612a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a4f91906149fd565b9050612a5a565b5f90505b92915050565b60016002811115612a7457612a73614089565b5b825f015f9054906101000a900460ff166002811115612a9657612a95614089565b5b1480612ad457505f6002811115612ab057612aaf614089565b5b825f015f9054906101000a900460ff166002811115612ad257612ad1614089565b5b145b15612b7957612b4860035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b612b74825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661300b565b612c69565b600280811115612b8c57612b8b614089565b5b825f015f9054906101000a900460ff166002811115612bae57612bad614089565b5b03612c6857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b8152600401612c3a9493929190614a4b565b5f604051808303815f87803b158015612c51575f80fd5b505af1158015612c63573d5f803e3d5ffd5b505050505b5b5050565b612c756130fe565b15612cda577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612d30565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612d73576390b8ec185f526004601cfd5b5f603452505050565b6060815115612e105760405190506020810160048301805184518501811983525b80861015612df6576001860195508551601f1a80612de6576001870196508651601f1a5f198652607f8111612dd457600181013887395b6001607f821601860195505050612df1565b808553600185019450505b612d9d565b81835260208501840385525f845260208401604052505050505b919050565b612e3f7fe49cedd70000000000000000000000000000000000000000000000000000000082613102565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b8152600401612e78919061418a565b602060405180830381865afa158015612e93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eb791906147a0565b612eed576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612eff848460200151613102565b612f0983836131f9565b90509392505050565b60605f60015f80549050612f2691906146ae565b9050855167ffffffffffffffff811115612f4357612f4261481b565b5b604051908082528060200260200182016040528015612f715781602001602082028036833780820191505090505b5091505f5b865181101561300157612fa7878281518110612f9557612f946145b6565b5b602002602001015187878786866132b5565b838281518110612fba57612fb96145b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050612f76565b5050949350505050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401613045919061418a565b602060405180830381865afa158015613060573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061308491906149fd565b905060055f9054906101000a900467ffffffffffffffff1667ffffffffffffffff168110156130fa576130f960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16612d339092919063ffffffff16565b5b5050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806131b157508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b81526004016131709190615099565b602060405180830381865afa15801561318b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af91906147a0565b155b156131f55781816040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016131ec9291906150b2565b60405180910390fd5b5050565b5f825f015161320c578260200151613230565b61322f836020015173ffffffffffffffffffffffffffffffffffffffff1661365f565b5b9050825f0151801561323f5750815b156132af578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016132819190614b93565b5f604051808303815f87803b158015613298575f80fd5b505af11580156132aa573d5f803e3d5ffd5b505050505b92915050565b5f80876040015190506132ec7fa9216705000000000000000000000000000000000000000000000000000000008960200151613102565b875f0151613357577fa92167050000000000000000000000000000000000000000000000000000000088602001516040517fe1c4444800000000000000000000000000000000000000000000000000000000815260040161334e9291906150b2565b60405180910390fd5b6133827fa921670500000000000000000000000000000000000000000000000000000000895f612ef0565b91505f8273ffffffffffffffffffffffffffffffffffffffff16634e7165a2836040518263ffffffff1660e01b81526004016133be9190614b93565b5f60405180830381865afa1580156133d8573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190613400919061518e565b90505f8151146135ed575f80613416838a613671565b915091508973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b81526004016134539190614b93565b6020604051808303815f875af115801561346f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349391906147a0565b6134c9576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8973ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b81526004016135029190614b93565b6020604051808303815f875af115801561351e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061354291906147a0565b613578576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061358d9190615289565b90506135e988885f73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16036135d15783602001516135d3565b8b5b858e67ffffffffffffffff16865f01518b613949565b5050505b8273ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b81526004016136269190614b93565b5f604051808303815f87803b15801561363d575f80fd5b505af115801561364f573d5f803e3d5ffd5b5050505050509695505050505050565b5f61366a5f83613a9b565b9050919050565b60605f80848060200190518101906136899190615289565b90505f849050600160028111156136a3576136a2614089565b5b825f015160028111156136b9576136b8614089565b5b14806136eb57505f60028111156136d3576136d2614089565b5b825f015160028111156136e9576136e8614089565b5b145b156137df575f82606001518060200190518101906137099190615309565b90505f61271067ffffffffffffffff168367ffffffffffffffff16835f01516137329190614610565b61373c919061467e565b90505f604051806020016040528083815250905080604051602001613761919061534e565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016137c191906153c7565b60405160208183030381529060405282965096505050505050613942565b6002808111156137f2576137f1614089565b5b825f0151600281111561380857613807614089565b5b03613910575f82606001518060200190518101906138269190615464565b90505f61271067ffffffffffffffff168367ffffffffffffffff1683602001516138509190614610565b61385a919061467e565b90505f6040518060600160405280845f01518152602001838152602001846040015181525090508060405160200161389291906154f8565b604051602081830303815290604052856060018190525030856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050846040516020016138f291906153c7565b60405160208183030381529060405282965096505050505050613942565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b5f60028081111561395d5761395c614089565b5b8360028111156139705761396f614089565b5b0361398f57818060200190518101906139899190615518565b50809150505b5f6040518060a001604052808560028111156139ae576139ad614089565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff1681526020018781526020018681526020018381525090508060065f6139ef8c8c612827565b81526020019081526020015f205f820151815f015f6101000a81548160ff02191690836002811115613a2457613a23614089565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613ae25763301164255f526004601cfd5b5f60215292915050565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a001604052805f6002811115613bc057613bbf614089565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b828054828255905f5260205f20908101928215613c6a579160200282015b82811115613c69578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613c12565b5b509050613c779190613c7b565b5090565b5b80821115613c92575f815f905550600101613c7c565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b613cb981613ca7565b8114613cc3575f80fd5b50565b5f81359050613cd481613cb0565b92915050565b5f60208284031215613cef57613cee613c9f565b5b5f613cfc84828501613cc6565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f613d47613d42613d3d84613d05565b613d24565b613d05565b9050919050565b5f613d5882613d2d565b9050919050565b5f613d6982613d4e565b9050919050565b613d7981613d5f565b82525050565b5f613d8982613d4e565b9050919050565b613d9981613d7f565b82525050565b5f613da982613d4e565b9050919050565b613db981613d9f565b82525050565b5f613dc982613d2d565b9050919050565b5f613dda82613dbf565b9050919050565b613dea81613dd0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613e2382613d4e565b9050919050565b613e3381613e19565b82525050565b5f613e448383613e2a565b60208301905092915050565b5f602082019050919050565b5f613e6682613df0565b613e708185613dfa565b9350613e7b83613e0a565b805f5b83811015613eab578151613e928882613e39565b9750613e9d83613e50565b925050600181019050613e7e565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613ed481613eb8565b82525050565b613ee381613ca7565b82525050565b5f613ef382613d05565b9050919050565b613f0381613ee9565b82525050565b5f61010083015f830151613f1f5f860182613d70565b506020830151613f326020860182613d90565b506040830151613f456040860182613db0565b506060830151613f586060860182613de1565b5060808301518482036080860152613f708282613e5c565b91505060a0830151613f8560a0860182613ecb565b5060c0830151613f9860c0860182613eda565b5060e0830151613fab60e0860182613efa565b508091505092915050565b5f6020820190508181035f830152613fce8184613f09565b905092915050565b613fdf81613ee9565b8114613fe9575f80fd5b50565b5f81359050613ffa81613fd6565b92915050565b5f6020828403121561401557614014613c9f565b5b5f61402284828501613fec565b91505092915050565b5f819050919050565b61403d8161402b565b8114614047575f80fd5b50565b5f8135905061405881614034565b92915050565b5f6020828403121561407357614072613c9f565b5b5f6140808482850161404a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600381106140c7576140c6614089565b5b50565b5f8190506140d7826140b6565b919050565b5f6140e6826140ca565b9050919050565b6140f6816140dc565b82525050565b60a082015f8201516141105f8501826140ed565b5060208201516141236020850182613efa565b5060408201516141366040850182613eda565b5060608201516141496060850182613eda565b50608082015161415c6080850182613eda565b50505050565b5f60a0820190506141755f8301846140fc565b92915050565b61418481613ee9565b82525050565b5f60208201905061419d5f83018461417b565b92915050565b6141ac81613eb8565b81146141b6575f80fd5b50565b5f813590506141c7816141a3565b92915050565b5f602082840312156141e2576141e1613c9f565b5b5f6141ef848285016141b9565b91505092915050565b61420181613ca7565b82525050565b5f60208201905061421a5f8301846141f8565b92915050565b5f806040838503121561423657614235613c9f565b5b5f61424385828601613cc6565b925050602061425485828601613cc6565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261427f5761427e61425e565b5b8235905067ffffffffffffffff81111561429c5761429b614262565b5b6020830191508360018202830111156142b8576142b7614266565b5b9250929050565b5f805f805f8060a087890312156142d9576142d8613c9f565b5b5f6142e689828a01613cc6565b96505060206142f789828a01613cc6565b955050604061430889828a01613fec565b945050606087013567ffffffffffffffff81111561432957614328613ca3565b5b61433589828a0161426a565b9350935050608061434889828a01613fec565b9150509295509295509295565b5f61435f82613d4e565b9050919050565b61436f81614355565b82525050565b5f6020820190506143885f830184614366565b92915050565b5f805f805f608086880312156143a7576143a6613c9f565b5b5f6143b488828901613cc6565b95505060206143c588828901613cc6565b94505060406143d688828901613fec565b935050606086013567ffffffffffffffff8111156143f7576143f6613ca3565b5b6144038882890161426a565b92509250509295509295909350565b5f61441c82613d4e565b9050919050565b61442c81614412565b82525050565b5f6020820190506144455f830184614423565b92915050565b61445481613eb8565b82525050565b5f60208201905061446d5f83018461444b565b92915050565b5f805f806060858703121561448b5761448a613c9f565b5b5f85013567ffffffffffffffff8111156144a8576144a7613ca3565b5b6144b48782880161426a565b945094505060206144c787828801613cc6565b92505060406144d887828801613cc6565b91505092959194509250565b5f6040820190506144f75f8301856141f8565b614504602083018461417b565b9392505050565b5f806020838503121561452157614520613c9f565b5b5f83013567ffffffffffffffff81111561453e5761453d613ca3565b5b61454a8582860161426a565b92509250509250929050565b61455f816140dc565b82525050565b5f60a0820190506145785f830188614556565b614585602083018761417b565b61459260408301866141f8565b61459f60608301856141f8565b6145ac60808301846141f8565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61461a82613ca7565b915061462583613ca7565b925082820261463381613ca7565b9150828204841483151761464a576146496145e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61468882613ca7565b915061469383613ca7565b9250826146a3576146a2614651565b5b828204905092915050565b5f6146b882613ca7565b91506146c383613ca7565b92508282039050818111156146db576146da6145e3565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61471a83856146e1565b93506147278385846146f1565b614730836146ff565b840190509392505050565b5f60408201905061474e5f83018661417b565b818103602083015261476181848661470f565b9050949350505050565b5f8115159050919050565b61477f8161476b565b8114614789575f80fd5b50565b5f8151905061479a81614776565b92915050565b5f602082840312156147b5576147b4613c9f565b5b5f6147c28482850161478c565b91505092915050565b5f6080820190506147de5f8301886141f8565b6147eb60208301876141f8565b6147f8604083018661417b565b818103606083015261480b81848661470f565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614851826146ff565b810181811067ffffffffffffffff821117156148705761486f61481b565b5b80604052505050565b5f614882613c96565b905061488e8282614848565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156148b5576148b461481b565b5b6148be826146ff565b9050602081019050919050565b5f6148dd6148d88461489b565b614879565b9050828152602081018484840111156148f9576148f8614897565b5b6149048482856146f1565b509392505050565b5f82601f8301126149205761491f61425e565b5b81356149308482602086016148cb565b91505092915050565b5f6040828403121561494e5761494d614817565b5b6149586040614879565b90505f61496784828501613fec565b5f83015250602082013567ffffffffffffffff81111561498a57614989614893565b5b6149968482850161490c565b60208301525092915050565b5f602082840312156149b7576149b6613c9f565b5b5f82013567ffffffffffffffff8111156149d4576149d3613ca3565b5b6149e084828501614939565b91505092915050565b5f815190506149f781613cb0565b92915050565b5f60208284031215614a1257614a11613c9f565b5b5f614a1f848285016149e9565b91505092915050565b50565b5f614a365f836146e1565b9150614a4182614a28565b5f82019050919050565b5f60a082019050614a5e5f83018761417b565b614a6b602083018661417b565b614a7860408301856141f8565b614a8560608301846141f8565b8181036080830152614a9681614a2b565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f614ad382614aa1565b614add8185614aab565b9350614aed818560208601614abb565b614af6816146ff565b840191505092915050565b5f604083015f830151614b165f860182613efa565b5060208301518482036020860152614b2e8282614ac9565b9150508091505092915050565b5f6020820190508181035f830152614b538184614b01565b905092915050565b5f614b6582614aa1565b614b6f81856146e1565b9350614b7f818560208601614abb565b614b88816146ff565b840191505092915050565b5f6020820190508181035f830152614bab8184614b5b565b905092915050565b5f81519050614bc181613fd6565b92915050565b5f8060408385031215614bdd57614bdc613c9f565b5b5f614bea858286016149e9565b9250506020614bfb85828601614bb3565b9150509250929050565b5f614c0f82613d05565b9050919050565b5f614c2082614c05565b9050919050565b614c3081614c16565b8114614c3a575f80fd5b50565b5f81519050614c4b81614c27565b92915050565b5f614c63614c5e8461489b565b614879565b905082815260208101848484011115614c7f57614c7e614897565b5b614c8a848285614abb565b509392505050565b5f82601f830112614ca657614ca561425e565b5b8151614cb6848260208601614c51565b91505092915050565b5f60608284031215614cd457614cd3614817565b5b614cde6060614879565b90505f614ced8482850161478c565b5f830152506020614d0084828501614bb3565b602083015250604082015167ffffffffffffffff811115614d2457614d23614893565b5b614d3084828501614c92565b60408301525092915050565b5f67ffffffffffffffff821115614d5657614d5561481b565b5b602082029050602081019050919050565b5f614d79614d7484614d3c565b614879565b90508083825260208201905060208402830185811115614d9c57614d9b614266565b5b835b81811015614de357805167ffffffffffffffff811115614dc157614dc061425e565b5b808601614dce8982614cbf565b85526020850194505050602081019050614d9e565b5050509392505050565b5f82601f830112614e0157614e0061425e565b5b8151614e11848260208601614d67565b91505092915050565b5f81519050614e28816141a3565b92915050565b5f6101008284031215614e4457614e43614817565b5b614e4f610100614879565b90505f614e5e84828501614c3d565b5f83015250602082015167ffffffffffffffff811115614e8157614e80614893565b5b614e8d84828501614cbf565b602083015250604082015167ffffffffffffffff811115614eb157614eb0614893565b5b614ebd84828501614cbf565b604083015250606082015167ffffffffffffffff811115614ee157614ee0614893565b5b614eed84828501614cbf565b606083015250608082015167ffffffffffffffff811115614f1157614f10614893565b5b614f1d84828501614ded565b60808301525060a0614f3184828501614e1a565b60a08301525060c0614f45848285016149e9565b60c08301525060e0614f5984828501614bb3565b60e08301525092915050565b5f60208284031215614f7a57614f79613c9f565b5b5f82015167ffffffffffffffff811115614f9757614f96613ca3565b5b614fa384828501614e2e565b91505092915050565b5f614fb682613eb8565b9150614fc183613eb8565b9250828201905067ffffffffffffffff811115614fe157614fe06145e3565b5b92915050565b5f6020820190508181035f83015261500081848661470f565b90509392505050565b5f6020828403121561501e5761501d613c9f565b5b5f61502b84828501614e1a565b91505092915050565b5f6020828403121561504957615048613c9f565b5b5f61505684828501614bb3565b91505092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6150938161505f565b82525050565b5f6020820190506150ac5f83018461508a565b92915050565b5f6040820190506150c55f83018561508a565b6150d2602083018461417b565b9392505050565b5f6080820190506150ec5f8301876141f8565b6150f9602083018661417b565b615106604083018561417b565b615113606083018461417b565b95945050505050565b5f819050919050565b61513661513182613ca7565b61511c565b82525050565b5f6151478285615125565b6020820191506151578284615125565b6020820191508190509392505050565b5f60408201905061517a5f83018561417b565b61518760208301846141f8565b9392505050565b5f602082840312156151a3576151a2613c9f565b5b5f82015167ffffffffffffffff8111156151c0576151bf613ca3565b5b6151cc84828501614c92565b91505092915050565b600381106151e1575f80fd5b50565b5f815190506151f2816151d5565b92915050565b5f6080828403121561520d5761520c614817565b5b6152176080614879565b90505f615226848285016151e4565b5f83015250602061523984828501614bb3565b602083015250604061524d84828501614bb3565b604083015250606082015167ffffffffffffffff81111561527157615270614893565b5b61527d84828501614c92565b60608301525092915050565b5f6020828403121561529e5761529d613c9f565b5b5f82015167ffffffffffffffff8111156152bb576152ba613ca3565b5b6152c7848285016151f8565b91505092915050565b5f602082840312156152e5576152e4614817565b5b6152ef6020614879565b90505f6152fe848285016149e9565b5f8301525092915050565b5f6020828403121561531e5761531d613c9f565b5b5f61532b848285016152d0565b91505092915050565b602082015f8201516153485f850182613eda565b50505050565b5f6020820190506153615f830184615334565b92915050565b5f608083015f83015161537c5f8601826140ed565b50602083015161538f6020860182613efa565b5060408301516153a26040860182613efa565b50606083015184820360608601526153ba8282614ac9565b9150508091505092915050565b5f6020820190508181035f8301526153df8184615367565b905092915050565b5f606082840312156153fc576153fb614817565b5b6154066060614879565b90505f615415848285016149e9565b5f830152506020615428848285016149e9565b602083015250604082015167ffffffffffffffff81111561544c5761544b614893565b5b61545884828501614c92565b60408301525092915050565b5f6020828403121561547957615478613c9f565b5b5f82015167ffffffffffffffff81111561549657615495613ca3565b5b6154a2848285016153e7565b91505092915050565b5f606083015f8301516154c05f860182613eda565b5060208301516154d36020860182613eda565b50604083015184820360408601526154eb8282614ac9565b9150508091505092915050565b5f6020820190508181035f83015261551081846154ab565b905092915050565b5f806040838503121561552e5761552d613c9f565b5b5f61553b858286016149e9565b925050602083015167ffffffffffffffff81111561555c5761555b613ca3565b5b61556885828601614c92565b915050925092905056fea2646970667358221220be55f1e697f2023485c9127bd515ad65d975731fa37c63396acdde5e0b7d137764736f6c634300081a0033";
|
|
31
|
-
function
|
|
32
|
-
const e =
|
|
33
|
-
switch (
|
|
27
|
+
import { ERC20VariableIncentive as k0 } from "./Incentives/ERC20VariableIncentive.js";
|
|
28
|
+
import { simulateContract as G0, writeContract as W0 } from "viem/actions";
|
|
29
|
+
import { parseAccount as U0, getAddress as H0 } from "viem/utils";
|
|
30
|
+
const Q0 = "0x608060405260048054607d60a31b600160a01b600160e01b0319909116179055600580546001600160401b0319166103e817905534801561003e575f80fd5b50604051614fb2380380614fb283398101604081905261005d916100e8565b61006681610098565b50600180546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055610132565b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a35b50565b6001600160a01b03811681146100d1575f80fd5b5f805f606084860312156100fa575f80fd5b8351610105816100d4565b6020850151909350610116816100d4565b6040850151909250610127816100d4565b809150509250925092565b614e738061013f5f395ff3fe6080604052600436106101d0575f3560e01c80637b103999116100fd578063dd7dc9a911610092578063f04e283e11610062578063f04e283e14610551578063f2fde38b14610564578063fee81cf414610577578063fefceca9146105a8575f80fd5b8063dd7dc9a9146104b7578063dd98558c146104d7578063e21ff73114610513578063eccc19a614610532575f80fd5b8063b0e21e8a116100cd578063b0e21e8a14610413578063caa1647b14610464578063d5137b5214610483578063d73792a9146104a2575f80fd5b80637b1039991461038f5780638da5cb5b146103ae5780638fe4f523146103e1578063a92647dc146103f4575f80fd5b806343bc42d3116101735780635edb9eb0116101435780635edb9eb0146103385780635f32c23e14610355578063715018a614610374578063730f9c571461037c575f80fd5b806343bc42d3146102d357806346877b1a146102f25780635045b8661461031157806354d1f13d14610330575f80fd5b8063219f71f0116101ae578063219f71f0146102495780632569296214610268578063346339d51461027057806339a51be51461029c575f80fd5b806313c8e2de146101d457806316614282146102095780631fa2acdc1461022a575b5f80fd5b3480156101df575f80fd5b506101f36101ee366004613e90565b61060b565b6040516102009190613eea565b60405180910390f35b348015610214575f80fd5b50610228610223366004613fe8565b610740565b005b348015610235575f80fd5b5061022861024436600461404b565b610eb3565b348015610254575f80fd5b506102286102633660046140b1565b611628565b61022861166a565b34801561027b575f80fd5b5061028f61028a366004613e90565b6116b7565b6040516102009190614139565b3480156102a7575f80fd5b506003546102bb906001600160a01b031681565b6040516001600160a01b039091168152602001610200565b3480156102de575f80fd5b506102286102ed366004614197565b61176c565b3480156102fd575f80fd5b5061022861030c3660046140b1565b6117c7565b34801561031c575f80fd5b506004546102bb906001600160a01b031681565b610228611809565b348015610343575f80fd5b505f545b604051908152602001610200565b348015610360575f80fd5b5061022861036f3660046141b2565b611842565b6102286119db565b61022861038a3660046141d2565b6119ee565b34801561039a575f80fd5b506001546102bb906001600160a01b031681565b3480156103b9575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927546102bb565b6102286103ef366004614249565b611e55565b3480156103ff575f80fd5b506002546102bb906001600160a01b031681565b34801561041e575f80fd5b5060045461044b9074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610200565b34801561046f575f80fd5b5061022861047e366004614197565b611e6a565b34801561048e575f80fd5b506102bb61049d3660046142ae565b611ef2565b3480156104ad575f80fd5b5061044b61271081565b3480156104c2575f80fd5b5060055461044b9067ffffffffffffffff1681565b3480156104e2575f80fd5b506104f66104f13660046142f8565b61211e565b604080519283526001600160a01b03909116602083015201610200565b34801561051e575f80fd5b506101f361052d366004614345565b61257a565b34801561053d575f80fd5b5061022861054c3660046140b1565b612dab565b61022861055f3660046140b1565b612ded565b6102286105723660046140b1565b612e2a565b348015610582575f80fd5b506103476105913660046140b1565b63389a75e1600c9081525f91909152602090205490565b3480156105b3575f80fd5b506105fa6105c2366004613e90565b60066020525f9081526040902080546001820154600283015460039093015460ff8316936101009093046001600160a01b0316929085565b604051610200959493929190614384565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e08101919091525f828154811061065c5761065c6143bd565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b039081168452600182015481168486015260028201548116848401526003820154166060840152600481018054835181870281018701909452808452939491936080860193928301828280156106ff57602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116106e1575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b031660609091015292915050565b3068929eee149b4bd21268540361075e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061077d5761077d6143bd565b905f5260205f20906008020190505f8160040185815481106107a1576107a16143bd565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a2906107f69088908890600401614413565b5f60405180830381865afa158015610810573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610837919081019061456d565b905080515f03610873576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8180602001905181019061088891906145aa565b90505f8080806001855160028111156108a3576108a36140d3565b14806108c057505f855160028111156108be576108be6140d3565b145b15610924575f85606001518060200190518101906108de9190614652565b805160058b0154909650909150612710906109039067ffffffffffffffff16876146c1565b61090d91906146d8565b93506109198486614710565b9081905291506109da565b600285516002811115610939576109396140d3565b036109a8575f85606001518060200190518101906109579190614723565b602081015160058b01549096509091506127109061097f9067ffffffffffffffff16876146c1565b61098991906146d8565b93506109958486614710565b60208201819052905190925090506109da565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109e58d8d612e50565b5f8181526006602052604081206001810180549394509092879290610a0b908490614710565b909155505085159150610e99905057600185516002811115610a2f57610a2f6140d3565b1480610a4c57505f85516002811115610a4a57610a4a6140d3565b145b15610c6b5760208501516040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b038216906323b872dd906064016020604051808303815f875af1158015610abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae391906147b0565b506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820187905282169063095ea7b3906044016020604051808303815f875af1158015610b49573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6d91906147b0565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018690526001600160a01b038916906330db555f906024015f604051808303815f87803b158015610bc6575f80fd5b505af1158015610bd8573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015610c40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6491906147b0565b5050610e59565b60208501516040517ff242432a000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526064810184905260a060848201525f60a48201526001600160a01b0382169063f242432a9060c4015f604051808303815f87803b158015610ce8575f80fd5b505af1158015610cfa573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b81166004830152600160248301528416925063a22cb46591506044015f604051808303815f87803b158015610d5e575f80fd5b505af1158015610d70573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018890526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015610dcc575f80fd5b505af1158015610dde573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b158015610e41575f80fd5b505af1158015610e53573d5f803e3d5ffd5b50505050505b604080518581526020810185905233918d918f917f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f31876910160405180910390a45b50505050505050503868929eee149b4bd212685550505050565b3068929eee149b4bd212685403610ed15763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808681548110610ef057610ef06143bd565b905f5260205f20906008020190505f816004018681548110610f1457610f146143bd565b5f9182526020822001546040517f4e7165a20000000000000000000000000000000000000000000000000000000081526001600160a01b0390911692508290634e7165a290610f699089908990600401614413565b5f60405180830381865afa158015610f83573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610faa919081019061456d565b905080515f03610fe6576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81806020019051810190610ffb91906145aa565b90505f6001600160a01b038616156110135785611022565b60038501546001600160a01b03165b905061102d81612e7f565b5f8080600185516002811115611045576110456140d3565b148061106257505f85516002811115611060576110606140d3565b145b156110e9575f85606001518060200190518101906110809190614652565b805160058b0154909550909150612710906110a59067ffffffffffffffff16866146c1565b6110af91906146d8565b92506110bb8385614710565b8082526040805160208101839052919350015b60408051601f19818403018152919052606087015250611174565b6002855160028111156110fe576110fe6140d3565b036109a8575f856060015180602001905181019061111c9190614723565b602081015160058b0154909550909150612710906111449067ffffffffffffffff16866146c1565b61114e91906146d8565b925061115a8385614710565b60208083018290526040519193506110ce918391016147f9565b30604080870191909152515f9061118f908790602001614827565b60408051601f19818403018152908290527ffa4ca9b100000000000000000000000000000000000000000000000000000000825291506001600160a01b0386169063fa4ca9b1906111e4908490600401614878565b6020604051808303815f875af1158015611200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122491906147b0565b61125a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6112658f8f612e50565b5f818152600660205260408120600181018054939450909287929061128b908490614710565b90915550508515925061160d915050576001855160028111156112b0576112b06140d3565b14806112cd57505f855160028111156112cb576112cb6140d3565b145b1561145e5760208501516040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526024820186905282169063095ea7b3906044016020604051808303815f875af115801561133c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136091906147b0565b506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b038916906330db555f906024015f604051808303815f87803b1580156113b9575f80fd5b505af11580156113cb573d5f803e3d5ffd5b50506040517f095ea7b30000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063095ea7b391506044016020604051808303815f875af1158015611433573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061145791906147b0565b50506115be565b60208501516040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301526001602483015282169063a22cb465906044015f604051808303815f87803b1580156114c3575f80fd5b505af11580156114d5573d5f803e3d5ffd5b50506040517f30db555f000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038b1692506330db555f91506024015f604051808303815f87803b158015611531575f80fd5b505af1158015611543573d5f803e3d5ffd5b50506040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301525f60248301528416925063a22cb46591506044015f604051808303815f87803b1580156115a6575f80fd5b505af11580156115b8573d5f803e3d5ffd5b50505050505b336001600160a01b03168c8e7f2ad351412a5089670d592612b17f248e8526b92879399b24b35421b4c8f318768686604051611604929190918252602082015260400190565b60405180910390a45b50505050505050503868929eee149b4bd21268555050505050565b611630612f5e565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6116ee6040805160a08101909152805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f8281526006602052604090819020815160a081019092528054829060ff16600281111561171e5761171e6140d3565b600281111561172f5761172f6140d3565b8152815461010090046001600160a01b03166020820152600182015460408201526002820154606082015260039091015460809091015292915050565b611774612f5e565b6004805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6117cf612f5e565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b3068929eee149b4bd2126854036118605763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6118778383612e50565b5f81815260066020526040812081549293509181908690811061189c5761189c6143bd565b905f5260205f20906008020160040184815481106118bc576118bc6143bd565b5f918252602082200154600284015460018501546001600160a01b039092169350906118eb90612710906146c1565b6118f591906146d8565b90505f6119028484612f93565b9050818111156119c6575f611917838361488a565b90505f61271067ffffffffffffffff1686600201548361193791906146c1565b61194191906146d8565b905061194d86826130e1565b808660010154106119765780866001015f82825461196b919061488a565b9091555061197d9050565b5f60018701555b6003546040518281526001600160a01b039091169089908b907f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b179060200160405180910390a450505b50505050503868929eee149b4bd21268555050565b6119e3612f5e565b6119ec5f61321d565b565b3068929eee149b4bd212685403611a0c5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110611a2b57611a2b6143bd565b905f5260205f20906008020190505f611a448888612e50565b5f81815260066020526040812060048501805493945090928a908110611a6c57611a6c6143bd565b5f9182526020909120015460028501546040517fe3f756de0000000000000000000000000000000000000000000000000000000081526001600160a01b03928316935091169063e3f756de90611aca9088908b908b9060040161489d565b602060405180830381865afa158015611ae5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0991906147b0565b611b3f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018401546040517f703b69000000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063703b6900903490611b94908e908e908b908e908e906004016148c8565b60206040518083038185885af1158015611bb0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611bd591906147b0565b611c0b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81545f9061010090046001600160a01b0316611c27575f611c31565b611c318383612f93565b6040517fbb1757cf0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0383169063bb1757cf90611c7d9089908c908c9060040161489d565b6020604051808303815f875af1158015611c99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cbd91906147b0565b611d02578588886040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401611cf99392919061489d565b60405180910390fd5b82545f9061010090046001600160a01b0316611d1e575f611d28565b611d288484612f93565b90505f818311611d38575f611d42565b611d42828461488a565b90505f61271067ffffffffffffffff16866002015483611d6291906146c1565b611d6c91906146d8565b90508015611df257611d7e86826130e1565b80866001015f828254611d91919061488a565b9250508190555060035f9054906101000a90046001600160a01b03166001600160a01b03168d8f7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051611de991815260200190565b60405180910390a45b886001600160a01b03168d8f7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478f8f8f604051611e319392919061489d565b60405180910390a450505050505050503868929eee149b4bd2126855505050505050565b611e638585858585336119ee565b5050505050565b611e72612f5e565b61271067ffffffffffffffff821610611eb7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b5f3068929eee149b4bd212685403611f115763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808481548110611f3057611f306143bd565b5f918252602090912060089091020160078101549091506001600160a01b03163314611f88576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003810154611f9f906001600160a01b0316612e7f565b6004808201805491549091905f906001600160a01b0316611fc0575f612052565b6004546040516001600160a01b039091169063c7f1ecff90611fe8908a908a90602001614901565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016120139190614878565b602060405180830381865afa15801561202e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061205291906149b8565b905061208861206087614a20565b600386015460058701546001600160a01b039091169067ffffffffffffffff16848b87613275565b83546001810185555f858152602080822090920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851690811790915560405191825292975084918a917f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae910160405180910390a4505050503868929eee149b4bd212685592915050565b5f803068929eee149b4bd21268540361213e5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f80858154811061215d5761215d6143bd565b5f9182526020918290206040805161010081018252600890930290910180546001600160a01b0390811684526001820154811684860152600282015481168484015260038201541660608401526004810180548351818702810187019094528084529394919360808601939283018282801561220057602002820191905f5260205f20905b81546001600160a01b031681526001909101906020018083116121e2575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b039081166060928301529082015191925016331461227d576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6122888686612e50565b5f8181526006602052604081209192506122a4898b018b614a89565b90505f81602001518060200190518101906122bf9190614b26565b90505f61271067ffffffffffffffff168460020154836122df91906146c1565b6122e991906146d8565b90508015612457576001845460ff166002811115612309576123096140d3565b148061232957505f845460ff166002811115612327576123276140d3565b145b15612351578251845461234c916101009091046001600160a01b03169083613615565b61240e565b6002845460ff166002811115612369576123696140d3565b0361240e578354835160038601546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b1580156123f7575f80fd5b505af1158015612409573d5f803e3d5ffd5b505050505b825f01516001600160a01b0316898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161244e91815260200190565b60405180910390a45b5f8087608001518b8151811061246f5761246f6143bd565b60200260200101516001600160a01b031663474f5a44866040516020016124969190614b3d565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016124c19190614878565b60408051808303815f875af11580156124dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125009190614b6a565b91509150815f0361254357338e8e6040517f9ecd71a9000000000000000000000000000000000000000000000000000000008152600401611cf99392919061489d565b82866001015f828254612556919061488a565b90915550503868929eee149b4bd2126855909d909c509a5050505050505050505050565b60408051610100810182525f808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e081019190915260025433906001600160a01b03161580159061265757506002546040517ffe9fbb800000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063fe9fbb8090602401602060405180830381865afa158015612631573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061265591906147b0565b155b1561268e576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd2126854036126ac5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6126f785858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061365e92505050565b80602001905181019061270a9190614c92565b9050612718815f0151612e7f565b5f805460018101825590805260e082015160089091027f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56a810180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b039485161790915583517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e566830180549092169084161790556004547f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909101911661281c5760a0820151600454612817919074010000000000000000000000000000000000000000900467ffffffffffffffff16614dbd565b6128b4565b60a0820151600480546040517fb1539a6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163b1539a6b9161286b918b918b9101614413565b602060405180830381865afa158015612886573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128aa9190614ddd565b6128b49190614dbd565b6005820180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff9290921691909117905560c08201516006820155602082015161292b907fe6715795000000000000000000000000000000000000000000000000000000009060016136f1565b81547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03919091161781556060820151612990907fe2089f79000000000000000000000000000000000000000000000000000000009060016136f1565b6002820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161790556004545f91166129d6575f612a5f565b600480546040517fc7f1ecff0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163c7f1ecff91612a20918b918b9101614413565b602060405180830381865afa158015612a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a5f91906149b8565b608084015184516005850154929350612a829267ffffffffffffffff1684613712565b8051612a98916004850191602090910190613e01565b506040830151602001516001600160a01b031615612ae557612ae07f5912b89c00000000000000000000000000000000000000000000000000000000846040015160016136f1565b612b9d565b81546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201526001600160a01b03909116906301ffc9a790602401602060405180830381865afa158015612b63573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b8791906147b0565b612b91575f612b9d565b81546001600160a01b03165b6001830180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169182179055612c34576040517fe1c444480000000000000000000000000000000000000000000000000000000081527f5912b89c0000000000000000000000000000000000000000000000000000000060048201525f6024820152604401611cf9565b815460078301545f546001600160a01b039283169290911690612c599060019061488a565b6004850154600186015460028701546003880154604080519485526001600160a01b03938416602086015291831684830152919091166060830152517f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd9181900360800190a4604080516101008101825283546001600160a01b03908116825260018501548116602080840191909152600286015482168385015260038601549091166060830152600485018054845181840281018401909552808552929386936080860193919291830182828015612d5957602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612d3b575b5050509183525050600582015467ffffffffffffffff166020820152600682015460408201526007909101546001600160a01b03166060909101523868929eee149b4bd2126855979650505050505050565b612db3612f5e565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b612df5612f5e565b63389a75e1600c52805f526020600c208054421115612e1b57636f5e88185f526004601cfd5b5f9055612e278161321d565b50565b612e32612f5e565b8060601b612e4757637448fbae5f526004601cfd5b612e278161321d565b604080516020808201859052818301849052825180830384018152606090920190925280519101205b92915050565b612ea97fe49cedd70000000000000000000000000000000000000000000000000000000082613844565b6040517ffe9fbb800000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b0382169063fe9fbb8090602401602060405180830381865afa158015612f04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2891906147b0565b612e27576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146119ec576382b429005f526004601cfd5b5f6001835460ff166002811115612fac57612fac6140d3565b1480612fcc57505f835460ff166002811115612fca57612fca6140d3565b145b156130635782546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152610100909204909116906370a08231906024015b602060405180830381865afa158015613038573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305c9190614b26565b9050612e79565b6002835460ff16600281111561307b5761307b6140d3565b036130d957825460038401546040517efdd58e0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820192909252610100909204169062fdd58e9060440161301d565b505f92915050565b6001825460ff1660028111156130f9576130f96140d3565b148061311957505f825460ff166002811115613117576131176140d3565b145b1561315c57600354825461313f916001600160a01b036101009092048216911683613615565b81546131589061010090046001600160a01b0316613962565b5050565b6002825460ff166002811115613174576131746140d3565b0361315857815460038054908401546040517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03928316602482015260448101919091526064810184905260a060848201525f60a4820152610100909204169063f242432a9060c4015f604051808303815f87803b158015613203575f80fd5b505af1158015613215573d5f803e3d5ffd5b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f80876040015190506132ac7fa9216705000000000000000000000000000000000000000000000000000000008960200151613844565b875161331b5760208801516040517fe1c444480000000000000000000000000000000000000000000000000000000081527fa92167050000000000000000000000000000000000000000000000000000000060048201526001600160a01b039091166024820152604401611cf9565b6133467fa921670500000000000000000000000000000000000000000000000000000000895f6136f1565b91505f826001600160a01b0316634e7165a2836040518263ffffffff1660e01b81526004016133759190614878565b5f60405180830381865afa15801561338f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526133b6919081019061456d565b905080515f14613597575f806133cc838a613a1e565b6040517ffa4ca9b100000000000000000000000000000000000000000000000000000000815291935091506001600160a01b038b169063fa4ca9b190613416908590600401614878565b6020604051808303815f875af1158015613432573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061345691906147b0565b61348c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffa4ca9b10000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063fa4ca9b1906134d1908690600401614878565b6020604051808303815f875af11580156134ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061351191906147b0565b613547576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8380602001905181019061355c91906145aa565b905061359388886001600160a01b038c1661357b57836020015161357d565b8b5b858e67ffffffffffffffff16865f01518b613bb7565b5050505b6040517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0384169063439fab91906135dc908590600401614878565b5f604051808303815f87803b1580156135f3575f80fd5b505af1158015613605573d5f803e3d5ffd5b5050505050509695505050505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716613655576390b8ec185f526004601cfd5b5f603452505050565b60608151156136ec5760405190506020810160048301805184518501811983525b808610156136d6576001860195508551601f1a806136c7576001870196508651601f1a5f198652607f81116136b657600181013887395b607f1694909401600101935061367f565b8085535060018401935061367f565b509052601f198282030182525f81526020016040525b919050565b5f613700848460200151613844565b61370a8383613cf3565b949350505050565b5f8054606091906137259060019061488a565b9050855167ffffffffffffffff81111561374157613741614426565b60405190808252806020026020018201604052801561376a578160200160208202803683370190505b5091505f5b865181101561383a5761379f87828151811061378d5761378d6143bd565b60200260200101518787878686613275565b8382815181106137b1576137b16143bd565b60200260200101906001600160a01b031690816001600160a01b0316815250508281815181106137e3576137e36143bd565b60200260200101516001600160a01b031681837f500ae5072ea307af9f1d7b29f92e0379b973527e56e000e5445b7b9f5fbb09ae600160405161382a911515815260200190565b60405180910390a460010161376f565b5050949350505050565b6001600160a01b03811615806138f857506040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156138d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138f691906147b0565b155b15613158576040517fe1c444480000000000000000000000000000000000000000000000000000000081527fffffffff00000000000000000000000000000000000000000000000000000000831660048201526001600160a01b0382166024820152604401611cf9565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156139bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139e39190614b26565b90505f811180156139ff575060055467ffffffffffffffff1681105b1561315857600354613158906001600160a01b03848116911683613615565b60605f8084806020019051810190613a3691906145aa565b905083600182516002811115613a4e57613a4e6140d3565b1480613a6b57505f82516002811115613a6957613a696140d3565b145b15613b19575f8260600151806020019051810190613a899190614652565b80519091505f9061271090613aa99067ffffffffffffffff8616906146c1565b613ab391906146d8565b6040805160208082018352838252825190810184905292935091015b60408051601f198184030181529181526060870191909152308682015251613afb908690602001614827565b60405160208183030381529060405282965096505050505050613bb0565b600282516002811115613b2e57613b2e6140d3565b036109a8575f8260600151806020019051810190613b4c9190614723565b90505f61271067ffffffffffffffff168367ffffffffffffffff168360200151613b7691906146c1565b613b8091906146d8565b604080516060810182528451815260208082018490528583015182840152915192935091613acf918391016147f9565b9250929050565b5f6002836002811115613bcc57613bcc6140d3565b03613be95781806020019051810190613be59190614df8565b5090505b5f6040518060a00160405280856002811115613c0757613c076140d3565b8152602001886001600160a01b031681526020018781526020018681526020018381525090508060065f613c3b8c8c612e50565b815260208101919091526040015f208151815482907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836002811115613c8657613c866140d3565b0217905550602082015181546001600160a01b03909116610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9091161781556040820151600182015560608201516002820155608090910151600390910155505050505050505050565b81515f90613d05578260200151613d1b565b613d1b83602001516001600160a01b0316613daa565b83519091508015613d295750815b15612e795760408084015190517f439fab910000000000000000000000000000000000000000000000000000000081526001600160a01b0383169163439fab9191613d779190600401614878565b5f604051808303815f87803b158015613d8e575f80fd5b505af1158015613da0573d5f803e3d5ffd5b5050505092915050565b5f612e795f835f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080613df75763301164255f526004601cfd5b5f60215292915050565b828054828255905f5260205f20908101928215613e6c579160200282015b82811115613e6c57825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190613e1f565b50613e78929150613e7c565b5090565b5b80821115613e78575f8155600101613e7d565b5f60208284031215613ea0575f80fd5b5035919050565b5f8151808452602084019350602083015f5b82811015613ee05781516001600160a01b0316865260209586019590910190600101613eb9565b5093949350505050565b602081526001600160a01b0382511660208201525f6020830151613f1960408401826001600160a01b03169052565b5060408301516001600160a01b03811660608401525060608301516001600160a01b038116608084015250608083015161010060a0840152613f5f610120840182613ea7565b905060a0840151613f7c60c085018267ffffffffffffffff169052565b5060c084015160e084015260e0840151613fa26101008501826001600160a01b03169052565b509392505050565b5f8083601f840112613fba575f80fd5b50813567ffffffffffffffff811115613fd1575f80fd5b602083019150836020828501011115613bb0575f80fd5b5f805f8060608587031215613ffb575f80fd5b8435935060208501359250604085013567ffffffffffffffff81111561401f575f80fd5b61402b87828801613faa565b95989497509550505050565b6001600160a01b0381168114612e27575f80fd5b5f805f805f6080868803121561405f575f80fd5b8535945060208601359350604086013567ffffffffffffffff811115614083575f80fd5b61408f88828901613faa565b90945092505060608601356140a381614037565b809150509295509295909350565b5f602082840312156140c1575f80fd5b81356140cc81614037565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110614135577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9052565b5f60a08201905061414b828451614100565b6001600160a01b03602084015116602083015260408301516040830152606083015160608301526080830151608083015292915050565b67ffffffffffffffff81168114612e27575f80fd5b5f602082840312156141a7575f80fd5b81356140cc81614182565b5f80604083850312156141c3575f80fd5b50508035926020909101359150565b5f805f805f8060a087890312156141e7575f80fd5b8635955060208701359450604087013561420081614037565b9350606087013567ffffffffffffffff81111561421b575f80fd5b61422789828a01613faa565b909450925050608087013561423b81614037565b809150509295509295509295565b5f805f805f6080868803121561425d575f80fd5b8535945060208601359350604086013561427681614037565b9250606086013567ffffffffffffffff811115614291575f80fd5b61429d88828901613faa565b969995985093965092949392505050565b5f80604083850312156142bf575f80fd5b82359150602083013567ffffffffffffffff8111156142dc575f80fd5b8301606081860312156142ed575f80fd5b809150509250929050565b5f805f806060858703121561430b575f80fd5b843567ffffffffffffffff811115614321575f80fd5b61432d87828801613faa565b90989097506020870135966040013595509350505050565b5f8060208385031215614356575f80fd5b823567ffffffffffffffff81111561436c575f80fd5b61437885828601613faa565b90969095509350505050565b60a081016143928288614100565b6001600160a01b03861660208301528460408301528360608301528260808301529695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b602081525f61370a6020830184866143ea565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516080810167ffffffffffffffff8111828210171561447657614476614426565b60405290565b6040516060810167ffffffffffffffff8111828210171561447657614476614426565b604051610100810167ffffffffffffffff8111828210171561447657614476614426565b604051601f8201601f1916810167ffffffffffffffff811182821017156144ec576144ec614426565b604052919050565b5f67ffffffffffffffff82111561450d5761450d614426565b50601f01601f191660200190565b5f82601f83011261452a575f80fd5b815161453d614538826144f4565b6144c3565b818152846020838601011115614551575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f6020828403121561457d575f80fd5b815167ffffffffffffffff811115614593575f80fd5b61370a8482850161451b565b80516136ec81614037565b5f602082840312156145ba575f80fd5b815167ffffffffffffffff8111156145d0575f80fd5b8201608081850312156145e1575f80fd5b6145e9614453565b8151600381106145f7575f80fd5b8152602082015161460781614037565b6020820152604082015161461a81614037565b6040820152606082015167ffffffffffffffff811115614638575f80fd5b6146448682850161451b565b606083015250949350505050565b5f6020828403128015614663575f80fd5b506040516020810167ffffffffffffffff8111828210171561468757614687614426565b6040529151825250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082028115828204841417612e7957612e79614694565b5f8261470b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b80820180821115612e7957612e79614694565b5f60208284031215614733575f80fd5b815167ffffffffffffffff811115614749575f80fd5b82016060818503121561475a575f80fd5b61476261447c565b8151815260208083015190820152604082015167ffffffffffffffff811115614789575f80fd5b6147958682850161451b565b604083015250949350505050565b8015158114612e27575f80fd5b5f602082840312156147c0575f80fd5b81516140cc816147a3565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152602082015160408201525f604083015160608084015261370a60808401826147cb565b60208152614839602082018351614100565b6001600160a01b0360208301511660408201526001600160a01b0360408301511660608201525f606083015160808084015261370a60a08401826147cb565b602081525f6140cc60208301846147cb565b81810381811115612e7957612e79614694565b6001600160a01b0384168152604060208201525f6148bf6040830184866143ea565b95945050505050565b8581528460208201526001600160a01b0384166040820152608060608201525f6148f66080830184866143ea565b979650505050505050565b828152604060208201525f8235614917816147a3565b15156040830152602083013561492c81614037565b6001600160a01b031660608301526040830135368490037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261496f575f80fd5b830160208101903567ffffffffffffffff81111561498b575f80fd5b803603821315614999575f80fd5b606060808501526149ae60a0850182846143ea565b9695505050505050565b5f602082840312156149c8575f80fd5b81516140cc81614037565b5f82601f8301126149e2575f80fd5b81356149f0614538826144f4565b818152846020838601011115614a04575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60608236031215614a30575f80fd5b614a3861447c565b8235614a43816147a3565b81526020830135614a5381614037565b6020820152604083013567ffffffffffffffff811115614a71575f80fd5b614a7d368286016149d3565b60408301525092915050565b5f60208284031215614a99575f80fd5b813567ffffffffffffffff811115614aaf575f80fd5b820160408185031215614ac0575f80fd5b6040805190810167ffffffffffffffff81118282101715614ae357614ae3614426565b6040528135614af181614037565b8152602082013567ffffffffffffffff811115614b0c575f80fd5b614b18868285016149d3565b602083015250949350505050565b5f60208284031215614b36575f80fd5b5051919050565b602081526001600160a01b0382511660208201525f602083015160408084015261370a60608401826147cb565b5f8060408385031215614b7b575f80fd5b825160208401519092506142ed81614037565b5f60608284031215614b9e575f80fd5b614ba661447c565b90508151614bb3816147a3565b81526020820151614bc381614037565b6020820152604082015167ffffffffffffffff811115614be1575f80fd5b614a7d8482850161451b565b5f82601f830112614bfc575f80fd5b815167ffffffffffffffff811115614c1657614c16614426565b8060051b614c26602082016144c3565b91825260208185018101929081019086841115614c41575f80fd5b6020860192505b838310156149ae57825167ffffffffffffffff811115614c66575f80fd5b614c75886020838a0101614b8e565b83525060209283019290910190614c48565b80516136ec81614182565b5f60208284031215614ca2575f80fd5b815167ffffffffffffffff811115614cb8575f80fd5b82016101008185031215614cca575f80fd5b614cd261449f565b614cdb8261459f565b8152602082015167ffffffffffffffff811115614cf6575f80fd5b614d0286828501614b8e565b602083015250604082015167ffffffffffffffff811115614d21575f80fd5b614d2d86828501614b8e565b604083015250606082015167ffffffffffffffff811115614d4c575f80fd5b614d5886828501614b8e565b606083015250608082015167ffffffffffffffff811115614d77575f80fd5b614d8386828501614bed565b608083015250614d9560a08301614c87565b60a082015260c08281015190820152614db060e0830161459f565b60e0820152949350505050565b67ffffffffffffffff8181168382160190811115612e7957612e79614694565b5f60208284031215614ded575f80fd5b81516140cc81614182565b5f8060408385031215614e09575f80fd5b8251602084015190925067ffffffffffffffff811115614e27575f80fd5b614e338582860161451b565b915050925092905056fea26469706673582212201ae4465621fddb41ff261280bf98c27ad722212d6adbce644afd906f4677503164736f6c634300081a0033";
|
|
31
|
+
function L(d) {
|
|
32
|
+
const e = d.state.current, f = d.state.connections.get(e), b = f == null ? void 0 : f.accounts, a = b == null ? void 0 : b[0], t = d.chains.find((n) => n.id === (f == null ? void 0 : f.chainId)), c = d.state.status;
|
|
33
|
+
switch (c) {
|
|
34
34
|
case "connected":
|
|
35
35
|
return {
|
|
36
36
|
address: a,
|
|
37
37
|
addresses: b,
|
|
38
|
-
chain:
|
|
38
|
+
chain: t,
|
|
39
39
|
chainId: f == null ? void 0 : f.chainId,
|
|
40
40
|
connector: f == null ? void 0 : f.connector,
|
|
41
41
|
isConnected: !0,
|
|
42
42
|
isConnecting: !1,
|
|
43
43
|
isDisconnected: !1,
|
|
44
44
|
isReconnecting: !1,
|
|
45
|
-
status:
|
|
45
|
+
status: c
|
|
46
46
|
};
|
|
47
47
|
case "reconnecting":
|
|
48
48
|
return {
|
|
49
49
|
address: a,
|
|
50
50
|
addresses: b,
|
|
51
|
-
chain:
|
|
51
|
+
chain: t,
|
|
52
52
|
chainId: f == null ? void 0 : f.chainId,
|
|
53
53
|
connector: f == null ? void 0 : f.connector,
|
|
54
54
|
isConnected: !!a,
|
|
55
55
|
isConnecting: !1,
|
|
56
56
|
isDisconnected: !1,
|
|
57
57
|
isReconnecting: !0,
|
|
58
|
-
status:
|
|
58
|
+
status: c
|
|
59
59
|
};
|
|
60
60
|
case "connecting":
|
|
61
61
|
return {
|
|
62
62
|
address: a,
|
|
63
63
|
addresses: b,
|
|
64
|
-
chain:
|
|
64
|
+
chain: t,
|
|
65
65
|
chainId: f == null ? void 0 : f.chainId,
|
|
66
66
|
connector: f == null ? void 0 : f.connector,
|
|
67
67
|
isConnected: !1,
|
|
68
68
|
isConnecting: !0,
|
|
69
69
|
isDisconnected: !1,
|
|
70
70
|
isReconnecting: !1,
|
|
71
|
-
status:
|
|
71
|
+
status: c
|
|
72
72
|
};
|
|
73
73
|
case "disconnected":
|
|
74
74
|
return {
|
|
@@ -81,36 +81,36 @@ function N(t) {
|
|
|
81
81
|
isConnecting: !1,
|
|
82
82
|
isDisconnected: !0,
|
|
83
83
|
isReconnecting: !1,
|
|
84
|
-
status:
|
|
84
|
+
status: c
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
function
|
|
89
|
-
return
|
|
88
|
+
function X0(d) {
|
|
89
|
+
return d.state.chainId;
|
|
90
90
|
}
|
|
91
|
-
function
|
|
92
|
-
const b =
|
|
91
|
+
function S(d, e, f) {
|
|
92
|
+
const b = d[e.name];
|
|
93
93
|
if (typeof b == "function")
|
|
94
94
|
return b;
|
|
95
|
-
const a =
|
|
96
|
-
return typeof a == "function" ? a : (
|
|
95
|
+
const a = d[f];
|
|
96
|
+
return typeof a == "function" ? a : (t) => e(d, t);
|
|
97
97
|
}
|
|
98
|
-
const
|
|
99
|
-
var
|
|
98
|
+
const J0 = "2.13.8", K0 = () => `@wagmi/core@${J0}`;
|
|
99
|
+
var N = function(d, e, f, b) {
|
|
100
100
|
if (f === "a" && !b) throw new TypeError("Private accessor was defined without a getter");
|
|
101
|
-
if (typeof e == "function" ?
|
|
102
|
-
return f === "m" ? b : f === "a" ? b.call(
|
|
103
|
-
},
|
|
104
|
-
class
|
|
101
|
+
if (typeof e == "function" ? d !== e || !b : !e.has(d)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
102
|
+
return f === "m" ? b : f === "a" ? b.call(d) : b ? b.value : e.get(d);
|
|
103
|
+
}, y, O;
|
|
104
|
+
class v extends Error {
|
|
105
105
|
get docsBaseUrl() {
|
|
106
106
|
return "https://wagmi.sh/core";
|
|
107
107
|
}
|
|
108
108
|
get version() {
|
|
109
|
-
return
|
|
109
|
+
return K0();
|
|
110
110
|
}
|
|
111
111
|
constructor(e, f = {}) {
|
|
112
|
-
var
|
|
113
|
-
super(),
|
|
112
|
+
var t;
|
|
113
|
+
super(), y.add(this), Object.defineProperty(this, "details", {
|
|
114
114
|
enumerable: !0,
|
|
115
115
|
configurable: !0,
|
|
116
116
|
writable: !0,
|
|
@@ -136,7 +136,7 @@ class m extends Error {
|
|
|
136
136
|
writable: !0,
|
|
137
137
|
value: "WagmiCoreError"
|
|
138
138
|
});
|
|
139
|
-
const b = f.cause instanceof
|
|
139
|
+
const b = f.cause instanceof v ? f.cause.details : (t = f.cause) != null && t.message ? f.cause.message : f.details, a = f.cause instanceof v && f.cause.docsPath || f.docsPath;
|
|
140
140
|
this.message = [
|
|
141
141
|
e || "An error occurred.",
|
|
142
142
|
"",
|
|
@@ -150,13 +150,13 @@ class m extends Error {
|
|
|
150
150
|
`), f.cause && (this.cause = f.cause), this.details = b, this.docsPath = a, this.metaMessages = f.metaMessages, this.shortMessage = e;
|
|
151
151
|
}
|
|
152
152
|
walk(e) {
|
|
153
|
-
return
|
|
153
|
+
return N(this, y, "m", O).call(this, this, e);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
|
|
157
|
-
return f != null && f(e) ? e : e.cause ?
|
|
156
|
+
y = /* @__PURE__ */ new WeakSet(), O = function d(e, f) {
|
|
157
|
+
return f != null && f(e) ? e : e.cause ? N(this, y, "m", d).call(this, e.cause, f) : e;
|
|
158
158
|
};
|
|
159
|
-
class
|
|
159
|
+
class Y0 extends v {
|
|
160
160
|
constructor() {
|
|
161
161
|
super("Connector not connected."), Object.defineProperty(this, "name", {
|
|
162
162
|
enumerable: !0,
|
|
@@ -166,7 +166,7 @@ class Qf extends m {
|
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
|
-
class
|
|
169
|
+
class Z0 extends v {
|
|
170
170
|
constructor({ address: e, connector: f }) {
|
|
171
171
|
super(`Account "${e}" not found for connector "${f.name}".`), Object.defineProperty(this, "name", {
|
|
172
172
|
enumerable: !0,
|
|
@@ -176,7 +176,7 @@ class Yf extends m {
|
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
-
class
|
|
179
|
+
class f1 extends v {
|
|
180
180
|
constructor({ connectionChainId: e, connectorChainId: f }) {
|
|
181
181
|
super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${e}).`, {
|
|
182
182
|
metaMessages: [
|
|
@@ -191,7 +191,7 @@ class Jf extends m {
|
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
-
class
|
|
194
|
+
class e1 extends v {
|
|
195
195
|
constructor({ connector: e }) {
|
|
196
196
|
super(`Connector "${e.name}" unavailable while reconnecting.`, {
|
|
197
197
|
details: [
|
|
@@ -207,113 +207,113 @@ class Kf extends m {
|
|
|
207
207
|
});
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
async function V(
|
|
210
|
+
async function V(d, e = {}) {
|
|
211
211
|
let f;
|
|
212
212
|
if (e.connector) {
|
|
213
|
-
const { connector:
|
|
214
|
-
if (
|
|
215
|
-
throw new
|
|
213
|
+
const { connector: i } = e;
|
|
214
|
+
if (d.state.status === "reconnecting" && !i.getAccounts && !i.getChainId)
|
|
215
|
+
throw new e1({ connector: i });
|
|
216
216
|
const [w, g] = await Promise.all([
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
i.getAccounts(),
|
|
218
|
+
i.getChainId()
|
|
219
219
|
]);
|
|
220
220
|
f = {
|
|
221
221
|
accounts: w,
|
|
222
222
|
chainId: g,
|
|
223
|
-
connector:
|
|
223
|
+
connector: i
|
|
224
224
|
};
|
|
225
225
|
} else
|
|
226
|
-
f =
|
|
226
|
+
f = d.state.connections.get(d.state.current);
|
|
227
227
|
if (!f)
|
|
228
|
-
throw new
|
|
228
|
+
throw new Y0();
|
|
229
229
|
const b = e.chainId ?? f.chainId, a = await f.connector.getChainId();
|
|
230
230
|
if (a !== f.chainId)
|
|
231
|
-
throw new
|
|
231
|
+
throw new f1({
|
|
232
232
|
connectionChainId: f.chainId,
|
|
233
233
|
connectorChainId: a
|
|
234
234
|
});
|
|
235
|
-
const
|
|
236
|
-
if (
|
|
237
|
-
return
|
|
238
|
-
const
|
|
239
|
-
if (
|
|
240
|
-
throw new
|
|
241
|
-
address:
|
|
242
|
-
connector:
|
|
235
|
+
const t = f.connector;
|
|
236
|
+
if (t.getClient)
|
|
237
|
+
return t.getClient({ chainId: b });
|
|
238
|
+
const c = U0(e.account ?? f.accounts[0]);
|
|
239
|
+
if (c.address = H0(c.address), e.account && !f.accounts.some((i) => i.toLowerCase() === c.address.toLowerCase()))
|
|
240
|
+
throw new Z0({
|
|
241
|
+
address: c.address,
|
|
242
|
+
connector: t
|
|
243
243
|
});
|
|
244
|
-
const n =
|
|
245
|
-
return
|
|
246
|
-
account:
|
|
244
|
+
const n = d.chains.find((i) => i.id === b), s = await f.connector.getProvider({ chainId: b });
|
|
245
|
+
return i0({
|
|
246
|
+
account: c,
|
|
247
247
|
chain: n,
|
|
248
248
|
name: "Connector Client",
|
|
249
|
-
transport: (
|
|
249
|
+
transport: (i) => o0(s)({ ...i, retryCount: 0 })
|
|
250
250
|
});
|
|
251
251
|
}
|
|
252
|
-
async function
|
|
253
|
-
const { abi: f, chainId: b, connector: a, ...
|
|
254
|
-
let
|
|
255
|
-
e.account ?
|
|
252
|
+
async function b1(d, e) {
|
|
253
|
+
const { abi: f, chainId: b, connector: a, ...t } = e;
|
|
254
|
+
let c;
|
|
255
|
+
e.account ? c = e.account : c = (await V(d, {
|
|
256
256
|
chainId: b,
|
|
257
257
|
connector: a
|
|
258
258
|
})).account;
|
|
259
|
-
const n =
|
|
259
|
+
const n = d.getClient({ chainId: b }), s = S(n, G0, "simulateContract"), { result: i, request: w } = await s({ ...t, abi: f, account: c });
|
|
260
260
|
return {
|
|
261
261
|
chainId: n.chain.id,
|
|
262
|
-
result:
|
|
262
|
+
result: i,
|
|
263
263
|
request: { __mode: "prepared", ...w, chainId: b }
|
|
264
264
|
};
|
|
265
265
|
}
|
|
266
|
-
async function
|
|
267
|
-
const { account: f, chainId: b, connector: a, __mode:
|
|
266
|
+
async function p(d, e) {
|
|
267
|
+
const { account: f, chainId: b, connector: a, __mode: t, ...c } = e;
|
|
268
268
|
let n;
|
|
269
|
-
typeof f == "object" && f.type === "local" ? n =
|
|
270
|
-
const { connector:
|
|
271
|
-
let
|
|
272
|
-
if (
|
|
273
|
-
|
|
269
|
+
typeof f == "object" && f.type === "local" ? n = d.getClient({ chainId: b }) : n = await V(d, { account: f, chainId: b, connector: a });
|
|
270
|
+
const { connector: s } = L(d);
|
|
271
|
+
let i;
|
|
272
|
+
if (t === "prepared" || s != null && s.supportsSimulation)
|
|
273
|
+
i = c;
|
|
274
274
|
else {
|
|
275
|
-
const { request: o } = await
|
|
276
|
-
...
|
|
275
|
+
const { request: o } = await b1(d, {
|
|
276
|
+
...c,
|
|
277
277
|
account: f,
|
|
278
278
|
chainId: b
|
|
279
279
|
});
|
|
280
|
-
|
|
280
|
+
i = o;
|
|
281
281
|
}
|
|
282
|
-
return await
|
|
283
|
-
...
|
|
282
|
+
return await S(n, W0, "writeContract")({
|
|
283
|
+
...i,
|
|
284
284
|
...f ? { account: f } : {},
|
|
285
285
|
chain: b ? { id: b } : null
|
|
286
286
|
});
|
|
287
287
|
}
|
|
288
|
-
function
|
|
289
|
-
return
|
|
290
|
-
var
|
|
291
|
-
const b =
|
|
292
|
-
let
|
|
293
|
-
return f.chainId ?
|
|
288
|
+
function a1(d) {
|
|
289
|
+
return d.address !== void 0 && typeof d.address == "object" ? (e, f) => {
|
|
290
|
+
var c;
|
|
291
|
+
const b = X0(e), a = L(e);
|
|
292
|
+
let t;
|
|
293
|
+
return f.chainId ? t = f.chainId : f.account && f.account === a.address || f.account === void 0 ? t = a.chainId : t = b, p(e, {
|
|
294
294
|
...f,
|
|
295
|
-
...
|
|
296
|
-
address:
|
|
297
|
-
abi:
|
|
295
|
+
...d.functionName ? { functionName: d.functionName } : {},
|
|
296
|
+
address: t ? (c = d.address) == null ? void 0 : c[t] : void 0,
|
|
297
|
+
abi: d.abi
|
|
298
298
|
});
|
|
299
|
-
} : (e, f) =>
|
|
299
|
+
} : (e, f) => p(e, {
|
|
300
300
|
...f,
|
|
301
|
-
...
|
|
302
|
-
...
|
|
303
|
-
abi:
|
|
301
|
+
...d.address ? { address: d.address } : {},
|
|
302
|
+
...d.functionName ? { functionName: d.functionName } : {},
|
|
303
|
+
abi: d.abi
|
|
304
304
|
});
|
|
305
305
|
}
|
|
306
|
-
const
|
|
306
|
+
const A = 10000n, P = {
|
|
307
307
|
31337: void 0,
|
|
308
|
-
...
|
|
309
|
-
},
|
|
310
|
-
function
|
|
311
|
-
return
|
|
308
|
+
...h0
|
|
309
|
+
}, O1 = P[11155111] || m;
|
|
310
|
+
function t1(d) {
|
|
311
|
+
return d.address;
|
|
312
312
|
}
|
|
313
|
-
function
|
|
314
|
-
return
|
|
313
|
+
function c1(d) {
|
|
314
|
+
return d.registryAddress && d.protocolFeeReceiver && d.owner;
|
|
315
315
|
}
|
|
316
|
-
const _ = class _ extends
|
|
316
|
+
const _ = class _ extends _0 {
|
|
317
317
|
/**
|
|
318
318
|
* A getter that will return Boost core's static addresses by numerical chain ID
|
|
319
319
|
*
|
|
@@ -334,9 +334,9 @@ const _ = class _ extends Af {
|
|
|
334
334
|
* @param {({ address?: Address; } | { registryAddress: Address; protocolFeeReceiver: Address; owner: Address; })} param0....options
|
|
335
335
|
*/
|
|
336
336
|
constructor({ config: e, account: f, ...b }) {
|
|
337
|
-
if (
|
|
337
|
+
if (t1(b) && b.address)
|
|
338
338
|
super({ account: f, config: e }, b.address);
|
|
339
|
-
else if (
|
|
339
|
+
else if (c1(b))
|
|
340
340
|
super({ account: f, config: e }, [
|
|
341
341
|
b.registryAddress,
|
|
342
342
|
b.protocolFeeReceiver,
|
|
@@ -345,7 +345,7 @@ const _ = class _ extends Af {
|
|
|
345
345
|
else {
|
|
346
346
|
const { address: a } = u(
|
|
347
347
|
e,
|
|
348
|
-
|
|
348
|
+
P
|
|
349
349
|
);
|
|
350
350
|
super({ account: f, config: e }, a);
|
|
351
351
|
}
|
|
@@ -362,51 +362,51 @@ const _ = class _ extends Af {
|
|
|
362
362
|
* @returns {Promise<Boost>}
|
|
363
363
|
*/
|
|
364
364
|
async createBoost(e, f) {
|
|
365
|
-
const [b, a] = this.validateDeploymentConfig(e),
|
|
365
|
+
const [b, a] = this.validateDeploymentConfig(e), t = f == null ? void 0 : f.chainId, { chainId: c, address: n } = u(
|
|
366
366
|
a.config,
|
|
367
367
|
this.addresses,
|
|
368
|
-
|
|
369
|
-
),
|
|
368
|
+
t
|
|
369
|
+
), s = a1({
|
|
370
370
|
abi: C,
|
|
371
371
|
functionName: "createBoost",
|
|
372
372
|
address: n
|
|
373
|
-
}),
|
|
373
|
+
}), i = await this.prepareCreateBoostPayload(
|
|
374
374
|
n,
|
|
375
|
-
|
|
375
|
+
c,
|
|
376
376
|
b,
|
|
377
377
|
a
|
|
378
|
-
), w = await
|
|
378
|
+
), w = await s(a.config, {
|
|
379
379
|
...this.optionallyAttachAccount(a.account),
|
|
380
380
|
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
381
381
|
...f,
|
|
382
|
-
chainId:
|
|
383
|
-
args: [
|
|
384
|
-
}), g = await
|
|
382
|
+
chainId: c,
|
|
383
|
+
args: [E(i)]
|
|
384
|
+
}), g = await c0(a.config, {
|
|
385
385
|
hash: w
|
|
386
|
-
}), o =
|
|
386
|
+
}), o = B({
|
|
387
387
|
abi: C,
|
|
388
388
|
eventName: "BoostCreated",
|
|
389
389
|
logs: g.logs
|
|
390
390
|
}).at(0);
|
|
391
391
|
let r = 0n;
|
|
392
|
-
if (!o) throw new
|
|
392
|
+
if (!o) throw new V0();
|
|
393
393
|
r = o == null ? void 0 : o.args.boostId;
|
|
394
|
-
const
|
|
395
|
-
return new
|
|
394
|
+
const h = await this.readBoost(r);
|
|
395
|
+
return new F({
|
|
396
396
|
id: r,
|
|
397
|
-
budget: b.budget.at(
|
|
398
|
-
action: b.action.at(
|
|
399
|
-
validator: b.validator.at(
|
|
400
|
-
allowList: b.allowList.at(
|
|
397
|
+
budget: b.budget.at(h.budget),
|
|
398
|
+
action: b.action.at(h.action),
|
|
399
|
+
validator: b.validator.at(h.validator),
|
|
400
|
+
allowList: b.allowList.at(h.allowList),
|
|
401
401
|
incentives: b.incentives.map(
|
|
402
|
-
(
|
|
402
|
+
(I, $) => (
|
|
403
403
|
// biome-ignore lint/style/noNonNullAssertion: this will never be undefined
|
|
404
|
-
|
|
404
|
+
I.at(h.incentives.at($))
|
|
405
405
|
)
|
|
406
406
|
),
|
|
407
|
-
protocolFee:
|
|
408
|
-
maxParticipants:
|
|
409
|
-
owner:
|
|
407
|
+
protocolFee: h.protocolFee,
|
|
408
|
+
maxParticipants: h.maxParticipants,
|
|
409
|
+
owner: h.owner
|
|
410
410
|
});
|
|
411
411
|
}
|
|
412
412
|
/**
|
|
@@ -423,7 +423,7 @@ const _ = class _ extends Af {
|
|
|
423
423
|
e,
|
|
424
424
|
f
|
|
425
425
|
);
|
|
426
|
-
return { hash: await
|
|
426
|
+
return { hash: await M(this._config, b), result: a };
|
|
427
427
|
}
|
|
428
428
|
/**
|
|
429
429
|
* Returns a simulated Boost creation.
|
|
@@ -435,135 +435,135 @@ const _ = class _ extends Af {
|
|
|
435
435
|
* @returns {Promise<SimulateContractReturnType>}
|
|
436
436
|
*/
|
|
437
437
|
async simulateCreateBoost(e, f) {
|
|
438
|
-
const [b, a] = this.validateDeploymentConfig(e),
|
|
438
|
+
const [b, a] = this.validateDeploymentConfig(e), t = f == null ? void 0 : f.chainId, { chainId: c, address: n } = u(
|
|
439
439
|
a.config,
|
|
440
440
|
this.addresses,
|
|
441
|
-
|
|
442
|
-
),
|
|
441
|
+
t
|
|
442
|
+
), s = await this.prepareCreateBoostPayload(
|
|
443
443
|
n,
|
|
444
|
-
|
|
444
|
+
c,
|
|
445
445
|
b,
|
|
446
446
|
a
|
|
447
447
|
);
|
|
448
|
-
return await
|
|
448
|
+
return await j(this._config, {
|
|
449
449
|
...this.optionallyAttachAccount(),
|
|
450
450
|
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
451
451
|
...f,
|
|
452
452
|
address: n,
|
|
453
|
-
chainId:
|
|
454
|
-
args: [
|
|
453
|
+
chainId: c,
|
|
454
|
+
args: [E(s)]
|
|
455
455
|
});
|
|
456
456
|
}
|
|
457
457
|
// This function mutates payload, which isn't awesome but it's fine
|
|
458
458
|
async prepareCreateBoostPayload(e, f, b, a) {
|
|
459
459
|
var g;
|
|
460
|
-
if (!b.owner && (b.owner = ((g = this._account) == null ? void 0 : g.address) ||
|
|
461
|
-
throw new
|
|
460
|
+
if (!b.owner && (b.owner = ((g = this._account) == null ? void 0 : g.address) || d0(a.config).address || m, b.owner === m))
|
|
461
|
+
throw new $0();
|
|
462
462
|
if (!b.validator) {
|
|
463
|
-
const r =
|
|
464
|
-
(
|
|
463
|
+
const r = n0(a.config).filter(
|
|
464
|
+
(I) => !!this.addresses[I.id] && I.id === f
|
|
465
465
|
).at(0);
|
|
466
466
|
if (!r)
|
|
467
|
-
throw new
|
|
467
|
+
throw new M0(
|
|
468
468
|
f,
|
|
469
469
|
Object.keys(this.addresses).map(Number)
|
|
470
470
|
);
|
|
471
|
-
const
|
|
471
|
+
const h = r.testnet || r.id === 31337;
|
|
472
472
|
b.validator = this.SignerValidator({
|
|
473
473
|
signers: [
|
|
474
|
-
|
|
474
|
+
h ? T.TESTNET : T.MAINNET
|
|
475
475
|
],
|
|
476
476
|
validatorCaller: e
|
|
477
477
|
});
|
|
478
478
|
}
|
|
479
|
-
let
|
|
479
|
+
let t = m;
|
|
480
480
|
if (b.budget.address) {
|
|
481
|
-
if (
|
|
482
|
-
throw new
|
|
481
|
+
if (t = b.budget.address, !await b.budget.isAuthorized(e))
|
|
482
|
+
throw new j0(e);
|
|
483
483
|
} else
|
|
484
|
-
throw new
|
|
485
|
-
let
|
|
486
|
-
instance:
|
|
484
|
+
throw new x0();
|
|
485
|
+
let c = {
|
|
486
|
+
instance: m,
|
|
487
487
|
isBase: !0,
|
|
488
|
-
parameters:
|
|
488
|
+
parameters: l
|
|
489
489
|
};
|
|
490
490
|
if (b.action.address) {
|
|
491
491
|
const o = b.action.isBase;
|
|
492
|
-
|
|
492
|
+
c = {
|
|
493
493
|
isBase: o,
|
|
494
494
|
instance: b.action.address,
|
|
495
|
-
parameters: o ? b.action.buildParameters(void 0, a).args.at(0) ||
|
|
495
|
+
parameters: o ? b.action.buildParameters(void 0, a).args.at(0) || l : l
|
|
496
496
|
};
|
|
497
497
|
} else
|
|
498
|
-
|
|
498
|
+
c.parameters = b.action.buildParameters(void 0, a).args.at(0) || l, c.instance = u(
|
|
499
499
|
a.config,
|
|
500
500
|
b.action.bases,
|
|
501
501
|
f
|
|
502
502
|
).address;
|
|
503
503
|
let n = {
|
|
504
|
-
instance:
|
|
504
|
+
instance: m,
|
|
505
505
|
isBase: !0,
|
|
506
|
-
parameters:
|
|
506
|
+
parameters: l
|
|
507
507
|
};
|
|
508
508
|
if (b.validator.address) {
|
|
509
509
|
const o = b.validator.isBase;
|
|
510
510
|
n = {
|
|
511
511
|
isBase: o,
|
|
512
512
|
instance: b.validator.address,
|
|
513
|
-
parameters: o ? b.validator.buildParameters(void 0, a).args.at(0) ||
|
|
513
|
+
parameters: o ? b.validator.buildParameters(void 0, a).args.at(0) || l : l
|
|
514
514
|
};
|
|
515
515
|
} else
|
|
516
|
-
n.parameters = b.validator.buildParameters(void 0, a).args.at(0) ||
|
|
516
|
+
n.parameters = b.validator.buildParameters(void 0, a).args.at(0) || l, n.instance = u(
|
|
517
517
|
a.config,
|
|
518
518
|
b.validator.bases,
|
|
519
519
|
f
|
|
520
520
|
).address;
|
|
521
|
-
let
|
|
522
|
-
instance:
|
|
521
|
+
let s = {
|
|
522
|
+
instance: m,
|
|
523
523
|
isBase: !0,
|
|
524
|
-
parameters:
|
|
524
|
+
parameters: l
|
|
525
525
|
};
|
|
526
526
|
if (b.allowList || (b.allowList = this.OpenAllowList()), b.allowList.address) {
|
|
527
527
|
const o = b.allowList.isBase;
|
|
528
|
-
|
|
528
|
+
s = {
|
|
529
529
|
isBase: o,
|
|
530
530
|
instance: b.allowList.address,
|
|
531
|
-
parameters: o ?
|
|
531
|
+
parameters: o ? l : l
|
|
532
532
|
};
|
|
533
533
|
} else
|
|
534
|
-
|
|
534
|
+
s.parameters = b.allowList.buildParameters(void 0, a).args.at(0) || l, s.instance = u(
|
|
535
535
|
a.config,
|
|
536
536
|
b.allowList.bases,
|
|
537
537
|
f
|
|
538
538
|
).address;
|
|
539
|
-
const
|
|
540
|
-
instance:
|
|
539
|
+
const i = b.incentives.map(() => ({
|
|
540
|
+
instance: m,
|
|
541
541
|
isBase: !0,
|
|
542
|
-
parameters:
|
|
542
|
+
parameters: l
|
|
543
543
|
}));
|
|
544
544
|
for (let o = 0; o < b.incentives.length; o++) {
|
|
545
545
|
const r = b.incentives.at(o);
|
|
546
546
|
if (r.address) {
|
|
547
|
-
const
|
|
548
|
-
if (!
|
|
549
|
-
|
|
550
|
-
isBase:
|
|
547
|
+
const h = r.isBase;
|
|
548
|
+
if (!h) throw new z0(r);
|
|
549
|
+
i[o] = {
|
|
550
|
+
isBase: h,
|
|
551
551
|
instance: r.address,
|
|
552
|
-
parameters:
|
|
552
|
+
parameters: h ? r.buildParameters(void 0, a).args.at(0) || l : l
|
|
553
553
|
};
|
|
554
554
|
} else
|
|
555
|
-
|
|
555
|
+
i[o].parameters = r.buildParameters(void 0, a).args.at(0) || l, i[o].instance = u(
|
|
556
556
|
a.config,
|
|
557
557
|
r.bases,
|
|
558
558
|
f
|
|
559
559
|
).address;
|
|
560
560
|
}
|
|
561
561
|
return {
|
|
562
|
-
budget:
|
|
563
|
-
action:
|
|
562
|
+
budget: t,
|
|
563
|
+
action: c,
|
|
564
564
|
validator: n,
|
|
565
|
-
allowList:
|
|
566
|
-
incentives:
|
|
565
|
+
allowList: s,
|
|
566
|
+
incentives: i,
|
|
567
567
|
protocolFee: b.protocolFee || 0n,
|
|
568
568
|
maxParticipants: b.maxParticipants || 0n,
|
|
569
569
|
owner: b.owner
|
|
@@ -581,9 +581,9 @@ const _ = class _ extends Af {
|
|
|
581
581
|
* @param {?WriteParams} [params]
|
|
582
582
|
* @returns {Promise<void>}
|
|
583
583
|
*/
|
|
584
|
-
async claimIncentive(e, f, b, a,
|
|
584
|
+
async claimIncentive(e, f, b, a, t) {
|
|
585
585
|
return await this.awaitResult(
|
|
586
|
-
this.claimIncentiveRaw(e, f, b, a,
|
|
586
|
+
this.claimIncentiveRaw(e, f, b, a, t)
|
|
587
587
|
);
|
|
588
588
|
}
|
|
589
589
|
/**
|
|
@@ -598,22 +598,22 @@ const _ = class _ extends Af {
|
|
|
598
598
|
* @param {?WriteParams} [params]
|
|
599
599
|
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
600
600
|
*/
|
|
601
|
-
async claimIncentiveRaw(e, f, b, a,
|
|
602
|
-
const { request:
|
|
601
|
+
async claimIncentiveRaw(e, f, b, a, t) {
|
|
602
|
+
const { request: c, result: n } = await x(
|
|
603
603
|
this._config,
|
|
604
604
|
{
|
|
605
605
|
...u(
|
|
606
606
|
this._config,
|
|
607
607
|
this.addresses,
|
|
608
|
-
|
|
608
|
+
t == null ? void 0 : t.chainId
|
|
609
609
|
),
|
|
610
610
|
args: [e, f, b, a],
|
|
611
611
|
...this.optionallyAttachAccount(),
|
|
612
612
|
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
613
|
-
...
|
|
613
|
+
...t
|
|
614
614
|
}
|
|
615
615
|
);
|
|
616
|
-
return { hash: await z(this._config,
|
|
616
|
+
return { hash: await z(this._config, c), result: n };
|
|
617
617
|
}
|
|
618
618
|
/**
|
|
619
619
|
* Claims one incentive for a given `Boost` on behalf of another user by `boostId` and `incentiveId`
|
|
@@ -628,15 +628,15 @@ const _ = class _ extends Af {
|
|
|
628
628
|
* @param {?WriteParams} [params]
|
|
629
629
|
* @returns {Promise<void>}
|
|
630
630
|
*/
|
|
631
|
-
async claimIncentiveFor(e, f, b, a,
|
|
631
|
+
async claimIncentiveFor(e, f, b, a, t, c) {
|
|
632
632
|
return await this.awaitResult(
|
|
633
633
|
this.claimIncentiveForRaw(
|
|
634
634
|
e,
|
|
635
635
|
f,
|
|
636
636
|
b,
|
|
637
637
|
a,
|
|
638
|
-
|
|
639
|
-
|
|
638
|
+
t,
|
|
639
|
+
c
|
|
640
640
|
)
|
|
641
641
|
);
|
|
642
642
|
}
|
|
@@ -653,22 +653,22 @@ const _ = class _ extends Af {
|
|
|
653
653
|
* @param {?WriteParams} [params]
|
|
654
654
|
* @returns {Promise<{ hash: Hex; result: void; }>}
|
|
655
655
|
*/
|
|
656
|
-
async claimIncentiveForRaw(e, f, b, a,
|
|
657
|
-
const { request: n, result:
|
|
656
|
+
async claimIncentiveForRaw(e, f, b, a, t, c) {
|
|
657
|
+
const { request: n, result: s } = await q(
|
|
658
658
|
this._config,
|
|
659
659
|
{
|
|
660
660
|
...u(
|
|
661
661
|
this._config,
|
|
662
662
|
this.addresses,
|
|
663
|
-
|
|
663
|
+
c == null ? void 0 : c.chainId
|
|
664
664
|
),
|
|
665
|
-
args: [e, f, b, a,
|
|
665
|
+
args: [e, f, b, a, t],
|
|
666
666
|
...this.optionallyAttachAccount(),
|
|
667
667
|
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
668
|
-
...
|
|
668
|
+
...c
|
|
669
669
|
}
|
|
670
670
|
);
|
|
671
|
-
return { hash: await k(this._config, n), result:
|
|
671
|
+
return { hash: await k(this._config, n), result: s };
|
|
672
672
|
}
|
|
673
673
|
/**
|
|
674
674
|
* Get a Boost by index, will return the raw on chain representation of a Boost.
|
|
@@ -696,7 +696,7 @@ const _ = class _ extends Af {
|
|
|
696
696
|
...f
|
|
697
697
|
});
|
|
698
698
|
} catch (a) {
|
|
699
|
-
throw (b = a == null ? void 0 : a.message) != null && b.includes("bounds") ? new
|
|
699
|
+
throw (b = a == null ? void 0 : a.message) != null && b.includes("bounds") ? new q0(String(e)) : a;
|
|
700
700
|
}
|
|
701
701
|
}
|
|
702
702
|
/**
|
|
@@ -712,30 +712,30 @@ const _ = class _ extends Af {
|
|
|
712
712
|
async getBoost(e, f) {
|
|
713
713
|
let b;
|
|
714
714
|
typeof e == "string" ? b = BigInt(e) : b = e;
|
|
715
|
-
const { protocolFee: a, maxParticipants:
|
|
715
|
+
const { protocolFee: a, maxParticipants: t, owner: c, ...n } = await this.readBoost(b, f), s = {
|
|
716
716
|
config: this._config,
|
|
717
717
|
account: this._account
|
|
718
|
-
}, [
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
718
|
+
}, [i, w, g, o, r] = await Promise.all([
|
|
719
|
+
l0(s, n.action, f),
|
|
720
|
+
I0(s, n.budget, f),
|
|
721
|
+
O0(s, n.validator, f),
|
|
722
|
+
w0(s, n.allowList, f),
|
|
723
723
|
Promise.all(
|
|
724
724
|
n.incentives.map(
|
|
725
|
-
(
|
|
725
|
+
(h) => R0(s, h, f)
|
|
726
726
|
)
|
|
727
727
|
)
|
|
728
728
|
]);
|
|
729
|
-
return new
|
|
729
|
+
return new F({
|
|
730
730
|
id: b,
|
|
731
|
-
action:
|
|
731
|
+
action: i,
|
|
732
732
|
budget: w,
|
|
733
733
|
validator: g,
|
|
734
734
|
allowList: o,
|
|
735
735
|
incentives: r,
|
|
736
736
|
protocolFee: a,
|
|
737
|
-
maxParticipants:
|
|
738
|
-
owner:
|
|
737
|
+
maxParticipants: t,
|
|
738
|
+
owner: c
|
|
739
739
|
});
|
|
740
740
|
}
|
|
741
741
|
/**
|
|
@@ -747,7 +747,7 @@ const _ = class _ extends Af {
|
|
|
747
747
|
* @returns {Promise<bigint>}
|
|
748
748
|
*/
|
|
749
749
|
async getBoostCount(e) {
|
|
750
|
-
return await
|
|
750
|
+
return await W(this._config, {
|
|
751
751
|
...u(
|
|
752
752
|
this._config,
|
|
753
753
|
this.addresses,
|
|
@@ -771,7 +771,7 @@ const _ = class _ extends Af {
|
|
|
771
771
|
*/
|
|
772
772
|
async isAuthorized(e, f) {
|
|
773
773
|
const b = await this.createBoostAuth(f);
|
|
774
|
-
return
|
|
774
|
+
return U(this._config, {
|
|
775
775
|
address: b,
|
|
776
776
|
args: [e],
|
|
777
777
|
...this.optionallyAttachAccount(),
|
|
@@ -826,7 +826,7 @@ const _ = class _ extends Af {
|
|
|
826
826
|
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
827
827
|
*/
|
|
828
828
|
async setCreateBoostAuthRaw(e, f) {
|
|
829
|
-
const { request: b, result: a } = await
|
|
829
|
+
const { request: b, result: a } = await Q(
|
|
830
830
|
this._config,
|
|
831
831
|
{
|
|
832
832
|
...u(
|
|
@@ -840,7 +840,7 @@ const _ = class _ extends Af {
|
|
|
840
840
|
...f
|
|
841
841
|
}
|
|
842
842
|
);
|
|
843
|
-
return { hash: await
|
|
843
|
+
return { hash: await X(this._config, b), result: a };
|
|
844
844
|
}
|
|
845
845
|
/**
|
|
846
846
|
* Get the protocol fee.
|
|
@@ -851,7 +851,7 @@ const _ = class _ extends Af {
|
|
|
851
851
|
* @returns {unknown}
|
|
852
852
|
*/
|
|
853
853
|
async protocolFee(e) {
|
|
854
|
-
return await
|
|
854
|
+
return await J(this._config, {
|
|
855
855
|
...u(
|
|
856
856
|
this._config,
|
|
857
857
|
this.addresses,
|
|
@@ -872,7 +872,7 @@ const _ = class _ extends Af {
|
|
|
872
872
|
* @returns {Promise<Address>}
|
|
873
873
|
*/
|
|
874
874
|
async protocolFeeReceiver(e) {
|
|
875
|
-
return await
|
|
875
|
+
return await K(this._config, {
|
|
876
876
|
...u(
|
|
877
877
|
this._config,
|
|
878
878
|
this.addresses,
|
|
@@ -910,7 +910,7 @@ const _ = class _ extends Af {
|
|
|
910
910
|
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
911
911
|
*/
|
|
912
912
|
async setProcolFeeReceiverRaw(e, f) {
|
|
913
|
-
const { request: b, result: a } = await
|
|
913
|
+
const { request: b, result: a } = await Y(
|
|
914
914
|
this._config,
|
|
915
915
|
{
|
|
916
916
|
...u(
|
|
@@ -924,7 +924,7 @@ const _ = class _ extends Af {
|
|
|
924
924
|
...f
|
|
925
925
|
}
|
|
926
926
|
);
|
|
927
|
-
return { hash: await
|
|
927
|
+
return { hash: await Z(
|
|
928
928
|
this._config,
|
|
929
929
|
b
|
|
930
930
|
), result: a };
|
|
@@ -940,10 +940,10 @@ const _ = class _ extends Af {
|
|
|
940
940
|
* @returns {Promise<IncentiveDisbursalInfo>}
|
|
941
941
|
*/
|
|
942
942
|
async getIncentiveFeesInfo(e, f, b) {
|
|
943
|
-
const a =
|
|
944
|
-
|
|
943
|
+
const a = r0(
|
|
944
|
+
u0(["uint256", "uint256"], [e, f])
|
|
945
945
|
);
|
|
946
|
-
return await
|
|
946
|
+
return await f0(this._config, {
|
|
947
947
|
...u(
|
|
948
948
|
this._config,
|
|
949
949
|
this.addresses,
|
|
@@ -980,8 +980,8 @@ const _ = class _ extends Af {
|
|
|
980
980
|
*/
|
|
981
981
|
async getClaimFromTransaction(e) {
|
|
982
982
|
var a;
|
|
983
|
-
const f = await
|
|
984
|
-
return (a =
|
|
983
|
+
const f = await s0(this._config, e);
|
|
984
|
+
return (a = B({
|
|
985
985
|
abi: C,
|
|
986
986
|
eventName: "BoostClaimed",
|
|
987
987
|
logs: f.logs
|
|
@@ -1012,7 +1012,7 @@ const _ = class _ extends Af {
|
|
|
1012
1012
|
*/
|
|
1013
1013
|
async calculateProtocolFee(e, f) {
|
|
1014
1014
|
const b = await this.protocolFee(f);
|
|
1015
|
-
return e * b /
|
|
1015
|
+
return e * b / A;
|
|
1016
1016
|
}
|
|
1017
1017
|
/**
|
|
1018
1018
|
* Bound {@link PassthroughAuth} constructor that reuses the same configuration as the Boost Core instance.
|
|
@@ -1026,7 +1026,7 @@ const _ = class _ extends Af {
|
|
|
1026
1026
|
* @returns {PassthroughAuth}
|
|
1027
1027
|
*/
|
|
1028
1028
|
PassthroughAuth(e) {
|
|
1029
|
-
return new
|
|
1029
|
+
return new A0(
|
|
1030
1030
|
{ config: this._config, account: this._account },
|
|
1031
1031
|
e
|
|
1032
1032
|
);
|
|
@@ -1062,7 +1062,7 @@ const _ = class _ extends Af {
|
|
|
1062
1062
|
* const action = new EventAction({ config: core._config, account: core._account }, '0x')
|
|
1063
1063
|
*/
|
|
1064
1064
|
EventAction(e, f) {
|
|
1065
|
-
return new
|
|
1065
|
+
return new g0(
|
|
1066
1066
|
{ config: this._config, account: this._account },
|
|
1067
1067
|
e,
|
|
1068
1068
|
f
|
|
@@ -1102,7 +1102,7 @@ const _ = class _ extends Af {
|
|
|
1102
1102
|
* @returns {OpenAllowList}
|
|
1103
1103
|
*/
|
|
1104
1104
|
OpenAllowList(e) {
|
|
1105
|
-
return new
|
|
1105
|
+
return new m0(
|
|
1106
1106
|
{ config: this._config, account: this._account },
|
|
1107
1107
|
void 0,
|
|
1108
1108
|
e
|
|
@@ -1121,7 +1121,7 @@ const _ = class _ extends Af {
|
|
|
1121
1121
|
* @returns {SimpleAllowList}
|
|
1122
1122
|
*/
|
|
1123
1123
|
SimpleAllowList(e, f) {
|
|
1124
|
-
return new
|
|
1124
|
+
return new v0(
|
|
1125
1125
|
{ config: this._config, account: this._account },
|
|
1126
1126
|
e,
|
|
1127
1127
|
f
|
|
@@ -1140,7 +1140,7 @@ const _ = class _ extends Af {
|
|
|
1140
1140
|
* @returns {SimpleDenyList}
|
|
1141
1141
|
*/
|
|
1142
1142
|
SimpleDenyList(e, f) {
|
|
1143
|
-
return new
|
|
1143
|
+
return new C0(
|
|
1144
1144
|
{ config: this._config, account: this._account },
|
|
1145
1145
|
e,
|
|
1146
1146
|
f
|
|
@@ -1175,7 +1175,7 @@ const _ = class _ extends Af {
|
|
|
1175
1175
|
* @returns {ManagedBudget}
|
|
1176
1176
|
*/
|
|
1177
1177
|
ManagedBudget(e) {
|
|
1178
|
-
return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new
|
|
1178
|
+
return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new P0(
|
|
1179
1179
|
{ config: this._config, account: this._account },
|
|
1180
1180
|
e
|
|
1181
1181
|
);
|
|
@@ -1193,7 +1193,7 @@ const _ = class _ extends Af {
|
|
|
1193
1193
|
* @returns {ManagedBudgetWithFees}
|
|
1194
1194
|
*/
|
|
1195
1195
|
ManagedBudgetWithFees(e) {
|
|
1196
|
-
return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new
|
|
1196
|
+
return typeof e != "string" && !e.authorized.includes(this.assertValidAddress()) && (e.authorized = [this.assertValidAddress(), ...e.authorized], e.roles = [R.MANAGER, ...e.roles]), new y0(
|
|
1197
1197
|
{ config: this._config, account: this._account },
|
|
1198
1198
|
e
|
|
1199
1199
|
);
|
|
@@ -1227,7 +1227,7 @@ const _ = class _ extends Af {
|
|
|
1227
1227
|
* @returns {VestingBudget}
|
|
1228
1228
|
*/
|
|
1229
1229
|
AllowListIncentive(e) {
|
|
1230
|
-
return new
|
|
1230
|
+
return new B0(
|
|
1231
1231
|
{ config: this._config, account: this._account },
|
|
1232
1232
|
e
|
|
1233
1233
|
);
|
|
@@ -1244,7 +1244,7 @@ const _ = class _ extends Af {
|
|
|
1244
1244
|
* @returns {CGDAIncentive}
|
|
1245
1245
|
*/
|
|
1246
1246
|
CGDAIncentive(e) {
|
|
1247
|
-
return new
|
|
1247
|
+
return new E0(
|
|
1248
1248
|
{ config: this._config, account: this._account },
|
|
1249
1249
|
e
|
|
1250
1250
|
);
|
|
@@ -1261,7 +1261,7 @@ const _ = class _ extends Af {
|
|
|
1261
1261
|
* @returns {ERC20Incentive}
|
|
1262
1262
|
*/
|
|
1263
1263
|
ERC20Incentive(e) {
|
|
1264
|
-
return new
|
|
1264
|
+
return new F0(
|
|
1265
1265
|
{ config: this._config, account: this._account },
|
|
1266
1266
|
e
|
|
1267
1267
|
);
|
|
@@ -1278,7 +1278,7 @@ const _ = class _ extends Af {
|
|
|
1278
1278
|
* @returns {ERC20PeggedIncentive}
|
|
1279
1279
|
*/
|
|
1280
1280
|
ERC20PeggedIncentive(e) {
|
|
1281
|
-
return new
|
|
1281
|
+
return new T0(
|
|
1282
1282
|
{ config: this._config, account: this._account },
|
|
1283
1283
|
e
|
|
1284
1284
|
);
|
|
@@ -1314,7 +1314,7 @@ const _ = class _ extends Af {
|
|
|
1314
1314
|
* @returns {PointsIncentive}
|
|
1315
1315
|
*/
|
|
1316
1316
|
PointsIncentive(e) {
|
|
1317
|
-
return new
|
|
1317
|
+
return new L0(
|
|
1318
1318
|
{ config: this._config, account: this._account },
|
|
1319
1319
|
e
|
|
1320
1320
|
);
|
|
@@ -1332,7 +1332,7 @@ const _ = class _ extends Af {
|
|
|
1332
1332
|
* @returns {SignerValidator}
|
|
1333
1333
|
*/
|
|
1334
1334
|
SignerValidator(e, f) {
|
|
1335
|
-
return new
|
|
1335
|
+
return new N0(
|
|
1336
1336
|
{ config: this._config, account: this._account },
|
|
1337
1337
|
e,
|
|
1338
1338
|
f
|
|
@@ -1351,7 +1351,7 @@ const _ = class _ extends Af {
|
|
|
1351
1351
|
* @returns {LimitedSignerValidator}
|
|
1352
1352
|
*/
|
|
1353
1353
|
LimitedSignerValidator(e, f) {
|
|
1354
|
-
return new
|
|
1354
|
+
return new S0(
|
|
1355
1355
|
{ config: this._config, account: this._account },
|
|
1356
1356
|
e,
|
|
1357
1357
|
f
|
|
@@ -1370,7 +1370,7 @@ const _ = class _ extends Af {
|
|
|
1370
1370
|
* @returns {ERC20VariableCrtieriaIncentive}
|
|
1371
1371
|
* */
|
|
1372
1372
|
ERC20VariableCriteriaIncentive(e, f) {
|
|
1373
|
-
return new
|
|
1373
|
+
return new D0(
|
|
1374
1374
|
{ config: this._config, account: this._account },
|
|
1375
1375
|
e,
|
|
1376
1376
|
f
|
|
@@ -1389,7 +1389,7 @@ const _ = class _ extends Af {
|
|
|
1389
1389
|
* @returns {ERC20PeggedVariableCriteriaIncentive}
|
|
1390
1390
|
* */
|
|
1391
1391
|
ERC20PeggedVariableCriteriaIncentive(e, f) {
|
|
1392
|
-
return new
|
|
1392
|
+
return new p0(
|
|
1393
1393
|
{ config: this._config, account: this._account },
|
|
1394
1394
|
e,
|
|
1395
1395
|
f
|
|
@@ -1408,7 +1408,7 @@ const _ = class _ extends Af {
|
|
|
1408
1408
|
* @returns {ERC20VariableIncentive}
|
|
1409
1409
|
*/
|
|
1410
1410
|
ERC20VariableIncentive(e, f) {
|
|
1411
|
-
return new
|
|
1411
|
+
return new k0(
|
|
1412
1412
|
{ config: this._config, account: this._account },
|
|
1413
1413
|
e,
|
|
1414
1414
|
f
|
|
@@ -1429,19 +1429,181 @@ const _ = class _ extends Af {
|
|
|
1429
1429
|
);
|
|
1430
1430
|
return {
|
|
1431
1431
|
abi: C,
|
|
1432
|
-
bytecode:
|
|
1432
|
+
bytecode: Q0,
|
|
1433
1433
|
args: b,
|
|
1434
1434
|
...this.optionallyAttachAccount(a.account)
|
|
1435
1435
|
};
|
|
1436
1436
|
}
|
|
1437
|
+
/**
|
|
1438
|
+
* Prepares and executes a top-up from a Budget, specifying the net top-up amount
|
|
1439
|
+
* that should land in the incentive (the protocol fee is added automatically).
|
|
1440
|
+
*
|
|
1441
|
+
* @public
|
|
1442
|
+
* @async
|
|
1443
|
+
* @param {bigint} boostId The ID of the Boost
|
|
1444
|
+
* @param {bigint} incentiveId The ID of the incentive within that Boost
|
|
1445
|
+
* @param {any} topupPayload A typed struct for the incentive’s top-up parameters
|
|
1446
|
+
* @param {Address} [budget] Optional override budget address (otherwise uses the Boost’s budget)
|
|
1447
|
+
* @param {?WriteParams} [params] Additional transaction overrides
|
|
1448
|
+
* @returns {Promise<{ hash: Hex; result: void }>} The transaction hash and simulation result
|
|
1449
|
+
*/
|
|
1450
|
+
async topupIncentiveFromBudgetPreFee(e, f, b, a, t) {
|
|
1451
|
+
const c = await this.getBoost(e, t);
|
|
1452
|
+
if (f >= c.incentives.length)
|
|
1453
|
+
throw new Error(`Incentive ID ${f} out of range`);
|
|
1454
|
+
const n = c.incentives[Number(f)];
|
|
1455
|
+
if (!n)
|
|
1456
|
+
throw new Error(`Incentive with ID ${f} not found`);
|
|
1457
|
+
const s = await n.getTopupPayload(b);
|
|
1458
|
+
if (!(b > 0))
|
|
1459
|
+
throw new Error("Top-up amount must be greater than zero");
|
|
1460
|
+
return await this.topupIncentiveFromBudgetRaw(
|
|
1461
|
+
e,
|
|
1462
|
+
f,
|
|
1463
|
+
s,
|
|
1464
|
+
a,
|
|
1465
|
+
t
|
|
1466
|
+
);
|
|
1467
|
+
}
|
|
1468
|
+
/**
|
|
1469
|
+
* Prepares and executes a top-up from a Budget, specifying the entire total tokens
|
|
1470
|
+
* (incentive + fee) you want to disburse. We'll back-calculate how many tokens land
|
|
1471
|
+
* in the incentive.
|
|
1472
|
+
*
|
|
1473
|
+
* @public
|
|
1474
|
+
* @async
|
|
1475
|
+
* @param {bigint} boostId The ID of the Boost
|
|
1476
|
+
* @param {bigint} incentiveId The ID of the incentive within that Boost
|
|
1477
|
+
* @param {any} topupPayload A typed struct for the incentive’s top-up parameters
|
|
1478
|
+
* @param {bigint} totalAmount The total tokens to disburse
|
|
1479
|
+
* @param {Address} [budget] Optional override budget address
|
|
1480
|
+
* @param {?WriteParams} [params] Additional transaction overrides
|
|
1481
|
+
* @returns {Promise<{ hash: Hex; result: void }>}
|
|
1482
|
+
*/
|
|
1483
|
+
async topupIncentiveFromBudgetPostFee(e, f, b, a, t) {
|
|
1484
|
+
const c = await this.protocolFee(t), n = b * A / (A + c);
|
|
1485
|
+
return this.topupIncentiveFromBudgetPreFee(
|
|
1486
|
+
e,
|
|
1487
|
+
f,
|
|
1488
|
+
n,
|
|
1489
|
+
a,
|
|
1490
|
+
t
|
|
1491
|
+
);
|
|
1492
|
+
}
|
|
1493
|
+
/**
|
|
1494
|
+
* Prepares and executes a top-up from the caller (msg.sender), specifying the net top-up
|
|
1495
|
+
* to land in the incentive. We'll add the protocol fee on top automatically.
|
|
1496
|
+
*
|
|
1497
|
+
* @public
|
|
1498
|
+
* @async
|
|
1499
|
+
* @param {bigint} boostId The ID of the Boost
|
|
1500
|
+
* @param {bigint} incentiveId The ID of the incentive within that Boost
|
|
1501
|
+
* @param {any} topupPayload A typed struct for the incentive’s top-up parameters
|
|
1502
|
+
* @param {?WriteParams} [params]
|
|
1503
|
+
* @returns {Promise<{ hash: Hex; result: void }>}
|
|
1504
|
+
*/
|
|
1505
|
+
async topupIncentiveFromSenderPreFee(e, f, b, a) {
|
|
1506
|
+
const t = await this.getBoost(e, a);
|
|
1507
|
+
if (f >= t.incentives.length)
|
|
1508
|
+
throw new Error(`Incentive ID ${f} out of range`);
|
|
1509
|
+
const c = t.incentives[Number(f)];
|
|
1510
|
+
if (!c)
|
|
1511
|
+
throw new Error(`Incentive with ID ${f} not found`);
|
|
1512
|
+
if (!(b > 0))
|
|
1513
|
+
throw new Error("Top-up amount must be greater than zero");
|
|
1514
|
+
const n = await c.getTopupPayload(b);
|
|
1515
|
+
return await this.topupIncentiveFromSenderRaw(
|
|
1516
|
+
e,
|
|
1517
|
+
f,
|
|
1518
|
+
n,
|
|
1519
|
+
a
|
|
1520
|
+
);
|
|
1521
|
+
}
|
|
1522
|
+
/**
|
|
1523
|
+
* Prepares and executes a top-up from the caller (msg.sender), specifying the total
|
|
1524
|
+
* tokens you’re willing to provide (including fee). We'll back-calculate the net
|
|
1525
|
+
* top-up for the incentive.
|
|
1526
|
+
*
|
|
1527
|
+
* @public
|
|
1528
|
+
* @async
|
|
1529
|
+
* @param {bigint} boostId The ID of the Boost
|
|
1530
|
+
* @param {bigint} incentiveId The ID of the incentive within that Boost
|
|
1531
|
+
* @param {any} topupPayload A typed struct for the incentive’s top-up parameters
|
|
1532
|
+
* @param {bigint} totalAmount The entire tokens (top-up + fee)
|
|
1533
|
+
* @param {?WriteParams} [params]
|
|
1534
|
+
* @returns {Promise<{ hash: Hex; result: void }>}
|
|
1535
|
+
*/
|
|
1536
|
+
async topupIncentiveFromSenderPostFee(e, f, b, a) {
|
|
1537
|
+
const t = await this.protocolFee(a), c = b * A / (A + t);
|
|
1538
|
+
return this.topupIncentiveFromSenderPreFee(
|
|
1539
|
+
e,
|
|
1540
|
+
f,
|
|
1541
|
+
c,
|
|
1542
|
+
a
|
|
1543
|
+
);
|
|
1544
|
+
}
|
|
1545
|
+
/**
|
|
1546
|
+
* A lower-level function that actually calls `topupIncentiveFromSender` on-chain,
|
|
1547
|
+
* passing the final total. The contract modifies its internal logic to split net top-up vs. fee.
|
|
1548
|
+
*
|
|
1549
|
+
* @private
|
|
1550
|
+
* @param {bigint} boostId
|
|
1551
|
+
* @param {bigint} incentiveId
|
|
1552
|
+
* @param {Hex} preflightData The raw ABudget.Transfer data from preflight
|
|
1553
|
+
* @param {?WriteParams} [params]
|
|
1554
|
+
* @returns {Promise<{ hash: Hex; result: void }>}
|
|
1555
|
+
*/
|
|
1556
|
+
async topupIncentiveFromSenderRaw(e, f, b, a) {
|
|
1557
|
+
const { request: t, result: c } = await e0(
|
|
1558
|
+
this._config,
|
|
1559
|
+
{
|
|
1560
|
+
...this.optionallyAttachAccount(),
|
|
1561
|
+
...a,
|
|
1562
|
+
address: this.assertValidAddress(),
|
|
1563
|
+
args: [e, f, b]
|
|
1564
|
+
}
|
|
1565
|
+
);
|
|
1566
|
+
return { hash: await b0(
|
|
1567
|
+
this._config,
|
|
1568
|
+
t
|
|
1569
|
+
), result: c };
|
|
1570
|
+
}
|
|
1571
|
+
/**
|
|
1572
|
+
* A lower-level function that actually calls `topupIncentiveFromBudget` on-chain,
|
|
1573
|
+
* passing the preflight data plus the final total. The contract itself modifies
|
|
1574
|
+
* the amount to (topup + fee).
|
|
1575
|
+
*
|
|
1576
|
+
* @private
|
|
1577
|
+
* @param {bigint} boostId
|
|
1578
|
+
* @param {bigint} incentiveId
|
|
1579
|
+
* @param {Hex} preflightData The raw ABudget.Transfer (encoded) from preflight
|
|
1580
|
+
* @param {Address} [budget] Optional override for the budget
|
|
1581
|
+
* @param {?WriteParams} [params]
|
|
1582
|
+
* @returns {Promise<{ hash: Hex; result: void }>}
|
|
1583
|
+
*/
|
|
1584
|
+
async topupIncentiveFromBudgetRaw(e, f, b, a, t) {
|
|
1585
|
+
const { request: c, result: n } = await a0(
|
|
1586
|
+
this._config,
|
|
1587
|
+
{
|
|
1588
|
+
...this.optionallyAttachAccount(),
|
|
1589
|
+
...t,
|
|
1590
|
+
address: this.assertValidAddress(),
|
|
1591
|
+
args: [e, f, b, a ?? m]
|
|
1592
|
+
}
|
|
1593
|
+
);
|
|
1594
|
+
return { hash: await t0(
|
|
1595
|
+
this._config,
|
|
1596
|
+
c
|
|
1597
|
+
), result: n };
|
|
1598
|
+
}
|
|
1437
1599
|
};
|
|
1438
|
-
_.addresses =
|
|
1600
|
+
_.addresses = P;
|
|
1439
1601
|
let D = _;
|
|
1440
1602
|
export {
|
|
1441
|
-
|
|
1442
|
-
|
|
1603
|
+
O1 as BOOST_CORE_ADDRESS,
|
|
1604
|
+
P as BOOST_CORE_ADDRESSES,
|
|
1443
1605
|
D as BoostCore,
|
|
1444
|
-
|
|
1606
|
+
A as FEE_DENOMINATOR,
|
|
1445
1607
|
C as boostCoreAbi
|
|
1446
1608
|
};
|
|
1447
1609
|
//# sourceMappingURL=BoostCore.js.map
|