@boostxyz/sdk 2.1.1 → 2.2.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.cjs.map +1 -1
- package/dist/Actions/Action.d.ts +2 -1
- package/dist/Actions/Action.d.ts.map +1 -1
- package/dist/Actions/Action.js +14 -13
- package/dist/Actions/Action.js.map +1 -1
- package/dist/Actions/EventAction.cjs +1 -1
- package/dist/Actions/EventAction.cjs.map +1 -1
- package/dist/Actions/EventAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.js +33 -33
- package/dist/Actions/EventAction.js.map +1 -1
- package/dist/AllowLists/AllowList.cjs +1 -1
- package/dist/AllowLists/AllowList.cjs.map +1 -1
- package/dist/AllowLists/AllowList.d.ts +2 -1
- package/dist/AllowLists/AllowList.d.ts.map +1 -1
- package/dist/AllowLists/AllowList.js +19 -18
- package/dist/AllowLists/AllowList.js.map +1 -1
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.js +7 -7
- 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.js +1 -1
- package/dist/BoostCore.cjs +2 -2
- package/dist/BoostCore.cjs.map +1 -1
- package/dist/BoostCore.d.ts +13 -4
- package/dist/BoostCore.d.ts.map +1 -1
- package/dist/BoostCore.js +58 -57
- package/dist/BoostCore.js.map +1 -1
- package/dist/BoostRegistry.cjs +1 -1
- package/dist/BoostRegistry.js +11 -11
- package/dist/{Budget-DpQgIZEx.js → Budget-B0q1S08L.js} +33 -32
- package/dist/{Budget-DpQgIZEx.js.map → Budget-B0q1S08L.js.map} +1 -1
- package/dist/{Budget-BxQMnsdx.cjs → Budget-BA_1sa1e.cjs} +2 -2
- package/dist/{Budget-BxQMnsdx.cjs.map → Budget-BA_1sa1e.cjs.map} +1 -1
- package/dist/Budgets/Budget.cjs +1 -1
- package/dist/Budgets/Budget.d.ts +2 -1
- package/dist/Budgets/Budget.d.ts.map +1 -1
- package/dist/Budgets/Budget.js +2 -2
- package/dist/Budgets/ManagedBudget.cjs +1 -1
- package/dist/Budgets/ManagedBudget.js +11 -11
- 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.cjs.map +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.d.ts +158 -0
- package/dist/Deployable/DeployableTargetWithRBAC.d.ts.map +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.js +268 -31
- package/dist/Deployable/DeployableTargetWithRBAC.js.map +1 -1
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.js +27 -27
- 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.js +9 -9
- 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.js +30 -30
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.cjs +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.js +11 -11
- package/dist/Incentives/ERC20VariableIncentive.cjs +1 -1
- package/dist/Incentives/ERC20VariableIncentive.cjs.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.js +12 -12
- package/dist/Incentives/ERC20VariableIncentive.js.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.cjs.map +1 -1
- package/dist/Incentives/Incentive.d.ts +2 -1
- package/dist/Incentives/Incentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.js +29 -28
- package/dist/Incentives/Incentive.js.map +1 -1
- package/dist/Incentives/PointsIncentive.cjs +1 -1
- package/dist/Incentives/PointsIncentive.cjs.map +1 -1
- package/dist/Incentives/PointsIncentive.js +25 -25
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/{SimpleDenyList-CA24drhL.cjs → SimpleDenyList-DrQrJ14i.cjs} +2 -2
- package/dist/{SimpleDenyList-CA24drhL.cjs.map → SimpleDenyList-DrQrJ14i.cjs.map} +1 -1
- package/dist/{SimpleDenyList-UHgnaOb_.js → SimpleDenyList-DuCoaOlG.js} +9 -9
- package/dist/{SimpleDenyList-UHgnaOb_.js.map → SimpleDenyList-DuCoaOlG.js.map} +1 -1
- package/dist/Validators/LimitedSignerValidator.cjs +1 -1
- package/dist/Validators/LimitedSignerValidator.js +7 -7
- package/dist/Validators/SignerValidator.cjs +1 -1
- package/dist/Validators/SignerValidator.js +5 -5
- package/dist/Validators/Validator.cjs +1 -1
- package/dist/Validators/Validator.cjs.map +1 -1
- package/dist/Validators/Validator.d.ts +2 -1
- package/dist/Validators/Validator.d.ts.map +1 -1
- package/dist/Validators/Validator.js +22 -21
- package/dist/Validators/Validator.js.map +1 -1
- package/dist/deployments-BucJ-gwk.cjs +2 -0
- package/dist/deployments-BucJ-gwk.cjs.map +1 -0
- package/dist/deployments-CQu0bLhU.js +102 -0
- package/dist/deployments-CQu0bLhU.js.map +1 -0
- package/dist/deployments.json +77 -74
- package/dist/{generated-B0XfMfoq.js → generated-1ZT_mHJx.js} +673 -450
- package/dist/generated-1ZT_mHJx.js.map +1 -0
- package/dist/generated-CgBgbMNe.cjs +3 -0
- package/dist/generated-CgBgbMNe.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/package.json +2 -2
- package/src/Actions/Action.ts +3 -0
- package/src/Actions/EventAction.test.ts +49 -2
- package/src/Actions/EventAction.ts +12 -4
- package/src/AllowLists/AllowList.ts +3 -0
- package/src/BoostCore.ts +16 -11
- package/src/Budgets/Budget.ts +3 -0
- package/src/Deployable/DeployableTargetWithRBAC.test.ts +175 -0
- package/src/Deployable/DeployableTargetWithRBAC.ts +281 -0
- package/src/Incentives/AllowListIncentive.test.ts +48 -0
- package/src/Incentives/AllowListIncentive.ts +1 -1
- package/src/Incentives/CGDAIncentive.test.ts +50 -0
- package/src/Incentives/CGDAIncentive.ts +1 -1
- package/src/Incentives/ERC1155Incentive.ts +1 -1
- package/src/Incentives/ERC20Incentive.test.ts +49 -0
- package/src/Incentives/ERC20Incentive.ts +1 -1
- package/src/Incentives/ERC20VariableIncentive.test.ts +48 -0
- package/src/Incentives/ERC20VariableIncentive.ts +1 -1
- package/src/Incentives/Incentive.ts +3 -0
- package/src/Incentives/PointsIncentive.test.ts +51 -0
- package/src/Incentives/PointsIncentive.ts +1 -1
- package/src/Validators/Validator.ts +3 -0
- package/dist/deployments-BDumesUK.cjs +0 -2
- package/dist/deployments-BDumesUK.cjs.map +0 -1
- package/dist/deployments-DvYsMioW.js +0 -99
- package/dist/deployments-DvYsMioW.js.map +0 -1
- package/dist/generated-B0XfMfoq.js.map +0 -1
- package/dist/generated-pNKCp_Ez.cjs +0 -3
- package/dist/generated-pNKCp_Ez.cjs.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { f as n,
|
|
1
|
+
import { f as n, a4 as u, a5 as l, a6 as w, a7 as g, a8 as p, a9 as A, aa as y, ab as R, ac as m, ad as T, ae as _, af as P, ag as V, ah as k } from "../generated-1ZT_mHJx.js";
|
|
2
2
|
import { getAccount as v } from "@wagmi/core";
|
|
3
3
|
import { zeroAddress as t, encodeAbiParameters as B, parseAbiParameters as D } from "viem";
|
|
4
|
-
import { M as E } from "../deployments-
|
|
4
|
+
import { M as E } from "../deployments-CQu0bLhU.js";
|
|
5
5
|
import { DeployableTargetWithRBAC as M } from "../Deployable/DeployableTargetWithRBAC.js";
|
|
6
6
|
import { DeployableUnknownOwnerProvidedError as q, UnknownTransferPayloadSupplied as F } from "../errors.js";
|
|
7
7
|
import { prepareFungibleTransfer as N, prepareERC1155Transfer as C } from "../transfers.js";
|
|
8
8
|
import { RegistryType as G } from "../utils.js";
|
|
9
|
-
const U = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";
|
|
10
|
-
var
|
|
11
|
-
function
|
|
9
|
+
const x = "0x6080604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b613931806100bd5f395ff3fe608060405260043610610212575f3560e01c8063715018a611610117578063ec87621c1161009f578063f8724aba1161006e578063f8724aba146107b6578063f9a802c3146107f2578063fa4ca9b11461082e578063fe9fbb801461086a578063fee81cf4146108a657610219565b8063ec87621c14610718578063f04e283e14610742578063f23a6e611461075e578063f2fde38b1461079a57610219565b8063b3005793116100e6578063b300579314610613578063bc197c8114610650578063be4994f81461068c578063d2514e84146106b4578063dcc21361146106f057610219565b8063715018a61461057957806375b238fc14610583578063774c33ab146105ad5780638da5cb5b146105e957610219565b8063439fab911161019a578063514e62fc11610169578063514e62fc1461048b57806354d1f13d146104c7578063578bcf35146104d15780635aef467a1461050d57806361400c991461053d57610219565b8063439fab91146103cf578063451cc191146103f7578063474f5a44146104335780634a4ee7b11461046f57610219565b80631cd64df4116101e15780631cd64df4146102fb578063256929621461033757806328d6183b146103415780632de948071461036b5780634359d28a146103a757610219565b806301ffc9a71461024b57806310098ad514610287578063183a4f6e146102c35780631c10893f146102df57610219565b3661021957005b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b348015610256575f80fd5b50610271600480360381019061026c91906126fd565b6108e2565b60405161027e9190612742565b60405180910390f35b348015610292575f80fd5b506102ad60048036038101906102a891906127b5565b610a2b565b6040516102ba91906127f8565b60405180910390f35b6102dd60048036038101906102d8919061283b565b610a96565b005b6102f960048036038101906102f49190612866565b610aa3565b005b348015610306575f80fd5b50610321600480360381019061031c9190612866565b610ab9565b60405161032e9190612742565b60405180910390f35b61033f610acf565b005b34801561034c575f80fd5b50610355610b20565b60405161036291906128b3565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906127b5565b610b47565b60405161039e91906127f8565b60405180910390f35b3480156103b2575f80fd5b506103cd60048036038101906103c89190612982565b610b60565b005b3480156103da575f80fd5b506103f560048036038101906103f09190612a55565b610c6e565b005b348015610402575f80fd5b5061041d60048036038101906104189190612a55565b610d66565b60405161042a91906127f8565b60405180910390f35b34801561043e575f80fd5b5061045960048036038101906104549190612a55565b610d6d565b60405161046691906127f8565b60405180910390f35b61048960048036038101906104849190612866565b610f66565b005b348015610496575f80fd5b506104b160048036038101906104ac9190612866565b610f7c565b6040516104be9190612742565b60405180910390f35b6104cf610f93565b005b3480156104dc575f80fd5b506104f760048036038101906104f291906127b5565b610fcc565b60405161050491906127f8565b60405180910390f35b61052760048036038101906105229190612a55565b611011565b6040516105349190612742565b60405180910390f35b348015610548575f80fd5b50610563600480360381019061055e9190612af5565b611381565b6040516105709190612742565b60405180910390f35b6105816113e5565b005b34801561058e575f80fd5b506105976113f8565b6040516105a491906127f8565b60405180910390f35b3480156105b8575f80fd5b506105d360048036038101906105ce9190612866565b6113fd565b6040516105e091906127f8565b60405180910390f35b3480156105f4575f80fd5b506105fd611453565b60405161060a9190612b4f565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190612b68565b61147b565b604051610647929190612bec565b60405180910390f35b34801561065b575f80fd5b5061067660048036038101906106719190612c68565b611638565b60405161068391906128b3565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612d3f565b61164f565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906127b5565b611705565b6040516106e791906127f8565b60405180910390f35b3480156106fb575f80fd5b5061071660048036038101906107119190612d3f565b61175d565b005b348015610723575f80fd5b5061072c611813565b60405161073991906127f8565b60405180910390f35b61075c600480360381019061075791906127b5565b611818565b005b348015610769575f80fd5b50610784600480360381019061077f9190612dbd565b611856565b60405161079191906128b3565b60405180910390f35b6107b460048036038101906107af91906127b5565b61186b565b005b3480156107c1575f80fd5b506107dc60048036038101906107d79190612866565b611894565b6040516107e991906127f8565b60405180910390f35b3480156107fd575f80fd5b5061081860048036038101906108139190612866565b611916565b60405161082591906127f8565b60405180910390f35b348015610839575f80fd5b50610854600480360381019061084f9190612a55565b6119ef565b6040516108619190612742565b60405180910390f35b348015610875575f80fd5b50610890600480360381019061088b91906127b5565b611cf4565b60405161089d9190612742565b60405180910390f35b3480156108b1575f80fd5b506108cc60048036038101906108c791906127b5565b611d47565b6040516108d991906127f8565b60405180910390f35b5f7f5fbfaa4e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109ac57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1457507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a245750610a2382611d60565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610a8d57610a88308373ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b610a8f565b475b9050919050565b610aa03382611e0c565b50565b610aab611e1b565b610ab58282611e52565b5050565b5f8182610ac585610b47565b1614905092915050565b5f610ad8611e62565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f5fbfaa4e00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610b6b81611e6c565b828290508585905014610baa576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610c66575f848483818110610bcb57610bca612e53565b5b9050602002016020810190610be09190612eaa565b90506001151581151503610c2557610c20878784818110610c0457610c03612e53565b5b9050602002016020810190610c1991906127b5565b6001611e52565b610c58565b610c57878784818110610c3b57610c3a612e53565b5b9050602002016020810190610c5091906127b5565b6001611e0c565b5b508080600101915050610bac565b505050505050565b5f610c77611ea1565b90508054600382558015610ca95760018160011c14303b10610ca05763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f8383810190610cba919061317e565b9050610cc8815f0151611eca565b5f5b816020015151811015610d2a57610d1d82602001518281518110610cf157610cf0612e53565b5b602002602001015183604001518381518110610d1057610d0f612e53565b5b6020026020010151611fa0565b8080600101915050610cca565b50508015610d61576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b5f6002610d7981611e6c565b5f8484810190610d899190613329565b90505f806002811115610d9f57610d9e613370565b5b825f01516002811115610db557610db4613370565b5b1480610de8575060016002811115610dd057610dcf613370565b5b825f01516002811115610de657610de5613370565b5b145b15610e47575f8260600151806020019051810190610e0691906133ea565b9050610e3b836020015184604001515f845f015114610e2857835f0151610e36565b610e358660200151610a2b565b5b611fe1565b805f0151915050610f59565b600280811115610e5a57610e59613370565b5b825f01516002811115610e7057610e6f613370565b5b03610f4e575f8260600151806020019051810190610e8e919061350e565b9050610f4183602001518460400151835f01515f856020015114610eb6578460200151610f37565b866020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401610ef7929190613555565b602060405180830381865afa158015610f12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f36919061357c565b5b85604001516121a7565b8060200151915050610f58565b8093505050610f5f565b5b80935050505b5092915050565b610f6e611e1b565b610f788282611e0c565b5050565b5f8082610f8885610b47565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8083838101906110229190613329565b90505f600281111561103757611036613370565b5b815f0151600281111561104d5761104c613370565b5b036110c3575f816060015180602001905181019061106b91906133ea565b9050805f015134146110bd578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016110b4929190613555565b60405180910390fd5b50611375565b600160028111156110d7576110d6613370565b5b815f015160028111156110ed576110ec613370565b5b036111c8575f816060015180602001905181019061110b91906133ea565b9050611145826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166123d3909392919063ffffffff16565b805f015161117630846020015173ffffffffffffffffffffffffffffffffffffffff16611dd990919063ffffffff16565b10156111c2578160200151815f01516040517fcece04c50000000000000000000000000000000000000000000000000000000081526004016111b9929190613555565b60405180910390fd5b50611374565b6002808111156111db576111da613370565b5b815f015160028111156111f1576111f0613370565b5b0361136a575f816060015180602001905181019061120f919061350e565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b81526004016112659594939291906135f9565b5f604051808303815f87803b15801561127c575f80fd5b505af115801561128e573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b81526004016112d8929190613555565b602060405180830381865afa1580156112f3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611317919061357c565b101561136457816020015181602001516040517fcece04c500000000000000000000000000000000000000000000000000000000815260040161135b929190613555565b60405180910390fd5b50611373565b5f91505061137b565b5b5b60019150505b92915050565b5f805f90505b838390508110156113d9576113bf8484838181106113a8576113a7612e53565b5b90506020028101906113ba919061365d565b6119ef565b6113cc575f9150506113df565b8080600101915050611387565b50600190505b92915050565b6113ed611e1b565b6113f65f61242d565b565b600281565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f8061148633611cf4565b6114bc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200188888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525090505f8890505f808273ffffffffffffffffffffffffffffffffffffffff1663dd98558c856040516020016115609190613750565b6040516020818303038152906040528a8a6040518463ffffffff1660e01b815260040161158f93929190613770565b60408051808303815f875af11580156115aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ce91906137c0565b91509150815f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461161d919061382b565b92505081905550818195509550505050509550959350505050565b5f63bc197c8160e01b905098975050505050505050565b600261165a81611e6c565b828290508585905014611699576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156116fd576116f08686838181106116bc576116bb612e53565b5b90506020020160208101906116d191906127b5565b8585848181106116e4576116e3612e53565b5b90506020020135611e52565b808060010191505061169b565b505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461174c83610a2b565b611756919061385e565b9050919050565b600261176881611e6c565b8282905085859050146117a7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561180b576117fe8686838181106117ca576117c9612e53565b5b90506020020160208101906117df91906127b5565b8585848181106117f2576117f1612e53565b5b90506020020135611e0c565b80806001019150506117a9565b505050505050565b600181565b611820611e1b565b63389a75e1600c52805f526020600c20805442111561184657636f5e88185f526004601cfd5b5f8155506118538161242d565b50565b5f63f23a6e6160e01b90509695505050505050565b611873611e1b565b8060601b61188857637448fbae5f526004601cfd5b6118918161242d565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b81526004016118cf929190613555565b602060405180830381865afa1580156118ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190e919061357c565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b815260040161199e929190613555565b602060405180830381865afa1580156119b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119dd919061357c565b6119e7919061385e565b905092915050565b5f6119f933611cf4565b611a2f576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190611a3f9190613329565b905060016002811115611a5557611a54613370565b5b815f01516002811115611a6b57611a6a613370565b5b1480611a9d57505f6002811115611a8557611a84613370565b5b815f01516002811115611a9b57611a9a613370565b5b145b15611b96575f8160600151806020019051810190611abb91906133ea565b90505f611acb8360200151610a2b565b905080825f01511115611b2057826020015181835f01516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611b1793929190613891565b60405180910390fd5b815f01515f80856020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b72919061385e565b92505081905550611b8f83602001518460400151845f0151611fe1565b5050611ce8565b600280811115611ba957611ba8613370565b5b815f01516002811115611bbf57611bbe613370565b5b03611cde575f8160600151806020019051810190611bdd919061350e565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401611c21929190613555565b602060405180830381865afa158015611c3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c60919061357c565b90508082602001511115611cb75782602001518183602001516040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cae93929190613891565b60405180910390fd5b611cd783602001518460400151845f0151856020015186604001516121a7565b5050611ce7565b5f915050611cee565b5b60019150505b92915050565b5f8173ffffffffffffffffffffffffffffffffffffffff16611d14611453565b73ffffffffffffffffffffffffffffffffffffffff161480611d405750611d3f826002600117610f7c565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe49cedd7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611dd25750611dd1826124f3565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b611e1782825f61256c565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611e50576382b429005f526004601cfd5b565b611e5e8282600161256c565b5050565b5f6202a300905090565b638b78c6d819543314611e9e57638b78c6d8600c52335f52806020600c205416611e9d576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611ed26125c4565b15611f4a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415611f0c57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611f9d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b3068929eee149b4bd212685403611fff5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401612076939291906138c6565b60405180910390fd5b61208883610a2b565b8111156120d8578261209984610a2b565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016120cf93929190613891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361211a5761211582826125c8565b612146565b61214582828573ffffffffffffffffffffffffffffffffffffffff166125e59092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161218e929190613555565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd2126854036121c55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612245578484836040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161223c939291906138c6565b60405180910390fd5b61224f8584611894565b8211156122a057846122618685611894565b836040517f5c54305e00000000000000000000000000000000000000000000000000000000815260040161229793929190613891565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f8282546122fb919061385e565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b81526004016123439594939291906135f9565b5f604051808303815f87803b15801561235a575f80fd5b505af115801561236c573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd4354285846040516123b8929190613555565b60405180910390a23868929eee149b4bd21268555050505050565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661241e57637939f4245f526004601cfd5b5f606052806040525050505050565b6124356125c4565b1561249a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506124f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061256557506125648261262e565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361258e57848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f385f3884865af16125e15763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716612625576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126dc816126a8565b81146126e6575f80fd5b50565b5f813590506126f7816126d3565b92915050565b5f60208284031215612712576127116126a0565b5b5f61271f848285016126e9565b91505092915050565b5f8115159050919050565b61273c81612728565b82525050565b5f6020820190506127555f830184612733565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127848261275b565b9050919050565b6127948161277a565b811461279e575f80fd5b50565b5f813590506127af8161278b565b92915050565b5f602082840312156127ca576127c96126a0565b5b5f6127d7848285016127a1565b91505092915050565b5f819050919050565b6127f2816127e0565b82525050565b5f60208201905061280b5f8301846127e9565b92915050565b61281a816127e0565b8114612824575f80fd5b50565b5f8135905061283581612811565b92915050565b5f602082840312156128505761284f6126a0565b5b5f61285d84828501612827565b91505092915050565b5f806040838503121561287c5761287b6126a0565b5b5f612889858286016127a1565b925050602061289a85828601612827565b9150509250929050565b6128ad816126a8565b82525050565b5f6020820190506128c65f8301846128a4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126128ed576128ec6128cc565b5b8235905067ffffffffffffffff81111561290a576129096128d0565b5b602083019150836020820283011115612926576129256128d4565b5b9250929050565b5f8083601f840112612942576129416128cc565b5b8235905067ffffffffffffffff81111561295f5761295e6128d0565b5b60208301915083602082028301111561297b5761297a6128d4565b5b9250929050565b5f805f806040858703121561299a576129996126a0565b5b5f85013567ffffffffffffffff8111156129b7576129b66126a4565b5b6129c3878288016128d8565b9450945050602085013567ffffffffffffffff8111156129e6576129e56126a4565b5b6129f28782880161292d565b925092505092959194509250565b5f8083601f840112612a1557612a146128cc565b5b8235905067ffffffffffffffff811115612a3257612a316128d0565b5b602083019150836001820283011115612a4e57612a4d6128d4565b5b9250929050565b5f8060208385031215612a6b57612a6a6126a0565b5b5f83013567ffffffffffffffff811115612a8857612a876126a4565b5b612a9485828601612a00565b92509250509250929050565b5f8083601f840112612ab557612ab46128cc565b5b8235905067ffffffffffffffff811115612ad257612ad16128d0565b5b602083019150836020820283011115612aee57612aed6128d4565b5b9250929050565b5f8060208385031215612b0b57612b0a6126a0565b5b5f83013567ffffffffffffffff811115612b2857612b276126a4565b5b612b3485828601612aa0565b92509250509250929050565b612b498161277a565b82525050565b5f602082019050612b625f830184612b40565b92915050565b5f805f805f60808688031215612b8157612b806126a0565b5b5f612b8e888289016127a1565b955050602086013567ffffffffffffffff811115612baf57612bae6126a4565b5b612bbb88828901612a00565b94509450506040612bce88828901612827565b9250506060612bdf88828901612827565b9150509295509295909350565b5f604082019050612bff5f8301856127e9565b612c0c6020830184612b40565b9392505050565b5f8083601f840112612c2857612c276128cc565b5b8235905067ffffffffffffffff811115612c4557612c446128d0565b5b602083019150836020820283011115612c6157612c606128d4565b5b9250929050565b5f805f805f805f8060a0898b031215612c8457612c836126a0565b5b5f612c918b828c016127a1565b9850506020612ca28b828c016127a1565b975050604089013567ffffffffffffffff811115612cc357612cc26126a4565b5b612ccf8b828c01612c13565b9650965050606089013567ffffffffffffffff811115612cf257612cf16126a4565b5b612cfe8b828c01612c13565b9450945050608089013567ffffffffffffffff811115612d2157612d206126a4565b5b612d2d8b828c01612a00565b92509250509295985092959890939650565b5f805f8060408587031215612d5757612d566126a0565b5b5f85013567ffffffffffffffff811115612d7457612d736126a4565b5b612d80878288016128d8565b9450945050602085013567ffffffffffffffff811115612da357612da26126a4565b5b612daf87828801612c13565b925092505092959194509250565b5f805f805f8060a08789031215612dd757612dd66126a0565b5b5f612de489828a016127a1565b9650506020612df589828a016127a1565b9550506040612e0689828a01612827565b9450506060612e1789828a01612827565b935050608087013567ffffffffffffffff811115612e3857612e376126a4565b5b612e4489828a01612a00565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b612e8981612728565b8114612e93575f80fd5b50565b5f81359050612ea481612e80565b92915050565b5f60208284031215612ebf57612ebe6126a0565b5b5f612ecc84828501612e96565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f1f82612ed9565b810181811067ffffffffffffffff82111715612f3e57612f3d612ee9565b5b80604052505050565b5f612f50612697565b9050612f5c8282612f16565b919050565b5f80fd5b5f67ffffffffffffffff821115612f7f57612f7e612ee9565b5b602082029050602081019050919050565b5f612fa2612f9d84612f65565b612f47565b90508083825260208201905060208402830185811115612fc557612fc46128d4565b5b835b81811015612fee5780612fda88826127a1565b845260208401935050602081019050612fc7565b5050509392505050565b5f82601f83011261300c5761300b6128cc565b5b813561301c848260208601612f90565b91505092915050565b5f67ffffffffffffffff82111561303f5761303e612ee9565b5b602082029050602081019050919050565b5f61306261305d84613025565b612f47565b90508083825260208201905060208402830185811115613085576130846128d4565b5b835b818110156130ae578061309a8882612827565b845260208401935050602081019050613087565b5050509392505050565b5f82601f8301126130cc576130cb6128cc565b5b81356130dc848260208601613050565b91505092915050565b5f606082840312156130fa576130f9612ed5565b5b6131046060612f47565b90505f613113848285016127a1565b5f83015250602082013567ffffffffffffffff81111561313657613135612f61565b5b61314284828501612ff8565b602083015250604082013567ffffffffffffffff81111561316657613165612f61565b5b613172848285016130b8565b60408301525092915050565b5f60208284031215613193576131926126a0565b5b5f82013567ffffffffffffffff8111156131b0576131af6126a4565b5b6131bc848285016130e5565b91505092915050565b600381106131d1575f80fd5b50565b5f813590506131e2816131c5565b92915050565b5f80fd5b5f67ffffffffffffffff82111561320657613205612ee9565b5b61320f82612ed9565b9050602081019050919050565b828183375f83830152505050565b5f61323c613237846131ec565b612f47565b905082815260208101848484011115613258576132576131e8565b5b61326384828561321c565b509392505050565b5f82601f83011261327f5761327e6128cc565b5b813561328f84826020860161322a565b91505092915050565b5f608082840312156132ad576132ac612ed5565b5b6132b76080612f47565b90505f6132c6848285016131d4565b5f8301525060206132d9848285016127a1565b60208301525060406132ed848285016127a1565b604083015250606082013567ffffffffffffffff81111561331157613310612f61565b5b61331d8482850161326b565b60608301525092915050565b5f6020828403121561333e5761333d6126a0565b5b5f82013567ffffffffffffffff81111561335b5761335a6126a4565b5b61336784828501613298565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f815190506133ab81612811565b92915050565b5f602082840312156133c6576133c5612ed5565b5b6133d06020612f47565b90505f6133df8482850161339d565b5f8301525092915050565b5f602082840312156133ff576133fe6126a0565b5b5f61340c848285016133b1565b91505092915050565b8281835e5f83830152505050565b5f613435613430846131ec565b612f47565b905082815260208101848484011115613451576134506131e8565b5b61345c848285613415565b509392505050565b5f82601f830112613478576134776128cc565b5b8151613488848260208601613423565b91505092915050565b5f606082840312156134a6576134a5612ed5565b5b6134b06060612f47565b90505f6134bf8482850161339d565b5f8301525060206134d28482850161339d565b602083015250604082015167ffffffffffffffff8111156134f6576134f5612f61565b5b61350284828501613464565b60408301525092915050565b5f60208284031215613523576135226126a0565b5b5f82015167ffffffffffffffff8111156135405761353f6126a4565b5b61354c84828501613491565b91505092915050565b5f6040820190506135685f830185612b40565b61357560208301846127e9565b9392505050565b5f60208284031215613591576135906126a0565b5b5f61359e8482850161339d565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6135cb826135a7565b6135d581856135b1565b93506135e5818560208601613415565b6135ee81612ed9565b840191505092915050565b5f60a08201905061360c5f830188612b40565b6136196020830187612b40565b61362660408301866127e9565b61363360608301856127e9565b818103608083015261364581846135c1565b90509695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261367957613678613651565b5b80840192508235915067ffffffffffffffff82111561369b5761369a613655565b5b6020830192506001820236038313156136b7576136b6613659565b5b509250929050565b6136c88161277a565b82525050565b5f82825260208201905092915050565b5f6136e8826135a7565b6136f281856136ce565b9350613702818560208601613415565b61370b81612ed9565b840191505092915050565b5f604083015f83015161372b5f8601826136bf565b506020830151848203602086015261374382826136de565b9150508091505092915050565b5f6020820190508181035f8301526137688184613716565b905092915050565b5f6060820190508181035f83015261378881866135c1565b905061379760208301856127e9565b6137a460408301846127e9565b949350505050565b5f815190506137ba8161278b565b92915050565b5f80604083850312156137d6576137d56126a0565b5b5f6137e38582860161339d565b92505060206137f4858286016137ac565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613835826127e0565b9150613840836127e0565b9250828203905081811115613858576138576137fe565b5b92915050565b5f613868826127e0565b9150613873836127e0565b925082820190508082111561388b5761388a6137fe565b5b92915050565b5f6060820190506138a45f830186612b40565b6138b160208301856127e9565b6138be60408301846127e9565b949350505050565b5f6060820190506138d95f830186612b40565b6138e66020830185612b40565b6138f360408301846127e9565b94935050505056fea264697066735822122043386a0ed4af64176291e3c82bd6ee953f22a90e82505ad77b38b8fa2956d75864736f6c634300081a0033";
|
|
10
|
+
var I = /* @__PURE__ */ ((e) => (e[e.MANAGER = 1n] = "MANAGER", e[e.ADMIN = 2n] = "ADMIN", e))(I || {});
|
|
11
|
+
function U(e) {
|
|
12
12
|
return e.tokenId === void 0;
|
|
13
13
|
}
|
|
14
14
|
function z(e) {
|
|
15
15
|
return e.tokenId !== void 0;
|
|
16
16
|
}
|
|
17
17
|
function r(e) {
|
|
18
|
-
if (
|
|
18
|
+
if (U(e))
|
|
19
19
|
return N(e);
|
|
20
20
|
if (z(e))
|
|
21
21
|
return C(e);
|
|
@@ -238,7 +238,7 @@ const i = class i extends M {
|
|
|
238
238
|
...b
|
|
239
239
|
}
|
|
240
240
|
);
|
|
241
|
-
return { hash: await
|
|
241
|
+
return { hash: await T(this._config, a), result: d };
|
|
242
242
|
}
|
|
243
243
|
/**
|
|
244
244
|
* Get the owner of the budget
|
|
@@ -248,7 +248,7 @@ const i = class i extends M {
|
|
|
248
248
|
* @returns {Promise<Address>}
|
|
249
249
|
*/
|
|
250
250
|
owner(f) {
|
|
251
|
-
return
|
|
251
|
+
return _(this._config, {
|
|
252
252
|
address: this.assertValidAddress(),
|
|
253
253
|
args: [],
|
|
254
254
|
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
@@ -332,7 +332,7 @@ const i = class i extends M {
|
|
|
332
332
|
}
|
|
333
333
|
return {
|
|
334
334
|
abi: n,
|
|
335
|
-
bytecode:
|
|
335
|
+
bytecode: x,
|
|
336
336
|
args: [O(a)],
|
|
337
337
|
...this.optionallyAttachAccount(d.account)
|
|
338
338
|
};
|
|
@@ -356,9 +356,9 @@ const O = ({
|
|
|
356
356
|
);
|
|
357
357
|
export {
|
|
358
358
|
o as ManagedBudget,
|
|
359
|
-
|
|
359
|
+
I as ManagedBudgetRoles,
|
|
360
360
|
z as isERC1155TransferPayload,
|
|
361
|
-
|
|
361
|
+
U as isFungibleTransfer,
|
|
362
362
|
n as managedBudgetAbi,
|
|
363
363
|
O as prepareManagedBudgetPayload,
|
|
364
364
|
r as prepareTransfer
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../generated-CgBgbMNe.cjs"),u=require("@wagmi/core"),i=require("viem"),d=require("../errors.cjs"),l=require("../utils.cjs"),h=require("./Deployable.cjs"),a=class a extends h.Deployable{constructor(e,s,t){super(e,s),this._isBase=!0,typeof s=="string"&&i.isAddress(s)&&s!==i.zeroAddress&&!Object.values(this.bases).some(r=>!s||!r?!1:i.isAddressEqual(s,r))&&(t=!1),t!==void 0&&(this._isBase=t)}get isBase(){return this.address&&Object.values(this.bases).some(e=>i.isAddressEqual(this.address,e))?!0:this._isBase}get bases(){return this.constructor.bases}get registryType(){return this.constructor.registryType}async deploy(e,s,t){return await super.deploy(e,s,t),this.assertValidAddress(),this}async deployRaw(e,s){if(this.address)throw new d.DeployableAlreadyDeployedError(this.address);const t=e||this._payload,r=(s==null?void 0:s.config)||this._config,{args:y,...o}=this.buildParameters(t);return await u.deployContract(r,{...o,...this.optionallyAttachAccount(s==null?void 0:s.account),args:[]})}async supportsInterface(e,s){return await c.Li(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s,args:[e]})}async getComponentInterface(e){return await c.Fi(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...e,args:[]})}validateDeploymentConfig(e,s){const t=e||this._payload;if(!t)throw new d.DeployableMissingPayloadError;return super.validateDeploymentConfig(t,s)}};a.bases={},a.registryType=l.RegistryType.ACTION;let n=a;exports.DeployableTarget=n;
|
|
2
2
|
//# sourceMappingURL=DeployableTarget.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { K as d, M as c } from "../generated-1ZT_mHJx.js";
|
|
2
2
|
import { deployContract as h } from "@wagmi/core";
|
|
3
3
|
import { isAddress as u, zeroAddress as l, isAddressEqual as a } from "viem";
|
|
4
4
|
import { DeployableAlreadyDeployedError as y, DeployableMissingPayloadError as f } from "../errors.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../generated-CgBgbMNe.cjs"),c=require("./DeployableTarget.cjs");var o=(n=>(n[n.MANAGER=1n]="MANAGER",n[n.ADMIN=2n]="ADMIN",n))(o||{});class l extends c.DeployableTarget{async setAuthorized(s,t,a){return await this.awaitResult(this.setAuthorizedRaw(s,t,a))}async setAuthorizedRaw(s,t,a){const{request:i,result:r}=await e.SB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.IB(this._config,i),result:r}}async grantRoles(s,t,a){return await this.awaitResult(this.grantRolesRaw(s,t,a))}async grantRolesRaw(s,t,a){const{request:i,result:r}=await e.CB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.fB(this._config,i),result:r}}async revokeRoles(s,t,a){return await this.awaitResult(this.revokeRolesRaw(s,t,a))}async revokeRolesRaw(s,t,a){const{request:i,result:r}=await e.xB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.hB(this._config,i),result:r}}async grantManyRoles(s,t,a){return await this.awaitResult(this.grantManyRolesRaw(s,t,a))}async grantManyRolesRaw(s,t,a){const{request:i,result:r}=await e.OB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.bB(this._config,i),result:r}}async revokeManyRoles(s,t,a){return await this.awaitResult(this.revokeManyRolesRaw(s,t,a))}async revokeManyRolesRaw(s,t,a){const{request:i,result:r}=await e.HB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a});return{hash:await e.AB(this._config,i),result:r}}async rolesOf(s,t){const a=await e.yB(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return[o.MANAGER,o.ADMIN].filter(i=>(a&i)===i)}hasAnyRole(s,t,a){return e.oB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}hasAllRoles(s,t,a){return e.rB(this._config,{address:this.assertValidAddress(),args:[s,t],...this.optionallyAttachAccount(),...a})}isAuthorized(s,t){return e.pB(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async transferOwnership(s,t){return await this.awaitResult(this.transferOwnershipRaw(s,t))}async transferOwnershipRaw(s,t){const{request:a,result:i}=await e.nE(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.jC(this._config,a),result:i}}async renounceOwnership(s){return await this.awaitResult(this.renounceOwnershipRaw(s))}async renounceOwnershipRaw(s){const{request:t,result:a}=await e.XC(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.GC(this._config,t),result:a}}async requestOwnershipHandover(s){return await this.awaitResult(this.requestOwnershipHandoverRaw(s))}async requestOwnershipHandoverRaw(s){const{request:t,result:a}=await e.eE(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.WC(this._config,t),result:a}}async completeOwnershipHandover(s,t){return await this.awaitResult(this.completeOwnershipHandoverRaw(s,t))}async completeOwnershipHandoverRaw(s,t){const{request:a,result:i}=await e.JC(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.qC(this._config,a),result:i}}async cancelOwnershipHandover(s){return await this.awaitResult(this.cancelOwnershipHandoverRaw(s))}async cancelOwnershipHandoverRaw(s){const{request:t,result:a}=await e.QC(this._config,{address:this.assertValidAddress(),...this.optionallyAttachAccount(),...s});return{hash:await e.DC(this._config,t),result:a}}ownershipHandoverExpiresAt(s,t){return e.LC(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t})}async renounceRoles(s,t){return await this.awaitResult(this.renounceRolesRaw(s,t))}async renounceRolesRaw(s,t){const{request:a,result:i}=await e.YC(this._config,{address:this.assertValidAddress(),args:[s],...this.optionallyAttachAccount(),...t});return{hash:await e.UC(this._config,a),result:i}}}exports.rbacAbi=e.E;exports.DeployableTargetWithRBAC=l;exports.Roles=o;
|
|
2
2
|
//# sourceMappingURL=DeployableTargetWithRBAC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeployableTargetWithRBAC.cjs","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"sourcesContent":["import {\n rbacAbi,\n readRbacHasAllRoles,\n readRbacHasAnyRole,\n readRbacIsAuthorized,\n readRbacRolesOf,\n simulateRbacGrantManyRoles,\n simulateRbacGrantRoles,\n simulateRbacRevokeManyRoles,\n simulateRbacRevokeRoles,\n simulateRbacSetAuthorized,\n writeRbacGrantManyRoles,\n writeRbacGrantRoles,\n writeRbacRevokeManyRoles,\n writeRbacRevokeRoles,\n writeRbacSetAuthorized,\n} from '@boostxyz/evm';\nimport type { Abi, Address, ContractEventName } from 'viem';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport type { GenericLog, ReadParams, WriteParams } from '../utils';\nexport { rbacAbi };\n\n/**\n * Enum representing available roles for use with the `RBAC` authorization scheme.\n * `MANAGER` has lowest level of write permissions, for specific implementations, see Budgets and ALlowLists\n * `ADMIN` can additionally manage authorized users on the contract.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum Roles {\n //@ts-expect-error ts doesn't like bigint enum values\n MANAGER = 1n,\n //@ts-expect-error ts doesn't like bigint enum values\n ADMIN = 2n,\n}\n\n/**\n * A generic `viem.Log` event with support for `Rbac` event types.\n *\n * @export\n * @typedef {RBACLog}\n * @template {ContractEventName<typeof rbacAbi>} [event=ContractEventName<\n * typeof rbacAbi\n * >]\n */\nexport type RBACLog<\n event extends ContractEventName<typeof rbacAbi> = ContractEventName<\n typeof rbacAbi\n >,\n> = GenericLog<typeof rbacAbi, event>;\n\n/**\n * A minimal RBAC implementation that offers MANAGER and ADMIN roles, and\n * Budgets and allowlists support this auth scheme\n *\n * @export\n * @class DeployableTargetWithRBAC\n * @typedef {DeployableTargetWithRBAC}\n * @extends {DeployableTarget<RbacPayload>}\n */\nexport class DeployableTargetWithRBAC<\n Payload,\n ABI extends Abi,\n> extends DeployableTarget<Payload, ABI> {\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacSetAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(address: Address, role: Roles, params?: WriteParams) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacGrantRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeRoles(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.revokeRolesRaw(address, role, params));\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacRevokeRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.grantManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantManyRoles(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacGrantManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.revokeManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeManyRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeRbacRevokeManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Return an array of the roles assigned to the given account.\n * @example\n * ```ts\n * (await rbac.rolesOf(0xfoo)).includes(Roles.ADMIN)\n * ```\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<Array<Roles>>}\n */\n public async rolesOf(account: Address, params?: ReadParams) {\n const roles = await readRbacRolesOf(this._config, {\n address: this.assertValidAddress(),\n args: [account],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n return ([Roles.MANAGER, Roles.ADMIN] as unknown as Array<bigint>).filter(\n (role) => (roles & role) === role,\n ) as unknown as Roles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAnyRole(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAnyRole(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Returns whether given account has all of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAllRoles(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAllRoles(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAllRoles(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Check if the given account is authorized to use the rbac\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(account: Address, params?: ReadParams) {\n return readRbacIsAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [account],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n}\n"],"names":["Roles","DeployableTargetWithRBAC","DeployableTarget","addresses","allowed","params","request","result","simulateRbacSetAuthorized","writeRbacSetAuthorized","address","role","simulateRbacGrantRoles","writeRbacGrantRoles","simulateRbacRevokeRoles","writeRbacRevokeRoles","roles","simulateRbacGrantManyRoles","writeRbacGrantManyRoles","simulateRbacRevokeManyRoles","writeRbacRevokeManyRoles","account","readRbacRolesOf","readRbacHasAnyRole","readRbacHasAllRoles","readRbacIsAuthorized"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeployableTargetWithRBAC.cjs","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"sourcesContent":["import {\n rbacAbi,\n readOwnableRolesOwnershipHandoverExpiresAt,\n readRbacHasAllRoles,\n readRbacHasAnyRole,\n readRbacIsAuthorized,\n readRbacRolesOf,\n simulateOwnableRolesCancelOwnershipHandover,\n simulateOwnableRolesCompleteOwnershipHandover,\n simulateOwnableRolesRenounceOwnership,\n simulateOwnableRolesRenounceRoles,\n simulateOwnableRolesRequestOwnershipHandover,\n simulateOwnableRolesTransferOwnership,\n simulateRbacGrantManyRoles,\n simulateRbacGrantRoles,\n simulateRbacRevokeManyRoles,\n simulateRbacRevokeRoles,\n simulateRbacSetAuthorized,\n writeOwnableRolesCancelOwnershipHandover,\n writeOwnableRolesCompleteOwnershipHandover,\n writeOwnableRolesRenounceOwnership,\n writeOwnableRolesRenounceRoles,\n writeOwnableRolesRequestOwnershipHandover,\n writeOwnableRolesTransferOwnership,\n writeRbacGrantManyRoles,\n writeRbacGrantRoles,\n writeRbacRevokeManyRoles,\n writeRbacRevokeRoles,\n writeRbacSetAuthorized,\n} from '@boostxyz/evm';\nimport type { Abi, Address, ContractEventName } from 'viem';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport type { GenericLog, ReadParams, WriteParams } from '../utils';\nexport { rbacAbi };\n\n/**\n * Enum representing available roles for use with the `RBAC` authorization scheme.\n * `MANAGER` has lowest level of write permissions, for specific implementations, see Budgets and ALlowLists\n * `ADMIN` can additionally manage authorized users on the contract.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum Roles {\n //@ts-expect-error ts doesn't like bigint enum values\n MANAGER = 1n,\n //@ts-expect-error ts doesn't like bigint enum values\n ADMIN = 2n,\n}\n\n/**\n * A generic `viem.Log` event with support for `Rbac` event types.\n *\n * @export\n * @typedef {RBACLog}\n * @template {ContractEventName<typeof rbacAbi>} [event=ContractEventName<\n * typeof rbacAbi\n * >]\n */\nexport type RBACLog<\n event extends ContractEventName<typeof rbacAbi> = ContractEventName<\n typeof rbacAbi\n >,\n> = GenericLog<typeof rbacAbi, event>;\n\n/**\n * A minimal RBAC implementation that offers MANAGER and ADMIN roles, and\n * Budgets and allowlists support this auth scheme\n *\n * @export\n * @class DeployableTargetWithRBAC\n * @typedef {DeployableTargetWithRBAC}\n * @extends {DeployableTarget<RbacPayload>}\n */\nexport class DeployableTargetWithRBAC<\n Payload,\n ABI extends Abi,\n> extends DeployableTarget<Payload, ABI> {\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.setAuthorizedRaw(addresses, allowed, params),\n );\n }\n\n /**\n * Set the authorized status of the given accounts\n * The mechanism for managing authorization is left to the implementing contract\n *\n * @public\n * @async\n * @param {Address[]} addresses - The accounts to authorize or deauthorize\n * @param {boolean[]} allowed - The authorization status for the given accounts\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacSetAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, allowed],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantRoles(address: Address, role: Roles, params?: WriteParams) {\n return await this.awaitResult(this.grantRolesRaw(address, role, params));\n }\n\n /**\n * Grant permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacGrantRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeRoles(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n return await this.awaitResult(this.revokeRolesRaw(address, role, params));\n }\n\n /**\n * Revoke permissions for a user on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeRoles('0xfoo', Roles.MANAGER)\n * ```\n * @public\n * @async\n * @param {Address} address\n * @param {Roles} role\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeRolesRaw(\n address: Address,\n role: Roles,\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeRoles(this._config, {\n address: this.assertValidAddress(),\n args: [address, role],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacRevokeRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async grantManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.grantManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Grant many accounts permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.grantManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async grantManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacGrantManyRoles(this._config, {\n address: this.assertValidAddress(),\n args: [addresses, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeRbacGrantManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async revokeManyRoles(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.revokeManyRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the rbac.\n *\n * @example\n * ```ts\n * await rbac.revokeManyRoles(['0xfoo', '0xbar], [Roles.MANAGER, Roles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {Roles[]} roles\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async revokeManyRolesRaw(\n addresses: Address[],\n roles: Roles[],\n params?: WriteParams,\n ) {\n const { request, result } = await simulateRbacRevokeManyRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [addresses, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeRbacRevokeManyRoles(\n this._config,\n // biome-ignore lint/suspicious/noExplicitAny: negligible low level lack of type intersection\n request as any,\n );\n return { hash, result };\n }\n\n /**\n * Return an array of the roles assigned to the given account.\n * @example\n * ```ts\n * (await rbac.rolesOf(0xfoo)).includes(Roles.ADMIN)\n * ```\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<Array<Roles>>}\n */\n public async rolesOf(account: Address, params?: ReadParams) {\n const roles = await readRbacRolesOf(this._config, {\n address: this.assertValidAddress(),\n args: [account],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n return ([Roles.MANAGER, Roles.ADMIN] as unknown as Array<bigint>).filter(\n (role) => (roles & role) === role,\n ) as unknown as Roles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAnyRole(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAnyRole(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Returns whether given account has all of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await rbac.hasAllRoles(0xfoo, Roles.ADMIN | Roles.MANAGER)\n * ```\n * @public\n * @param {Address} account\n * @param {Roles} roles\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public hasAllRoles(account: Address, roles: Roles, params?: ReadParams) {\n return readRbacHasAllRoles(this._config, {\n address: this.assertValidAddress(),\n args: [account, roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Check if the given account is authorized to use the rbac\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(account: Address, params?: ReadParams) {\n return readRbacIsAuthorized(this._config, {\n address: this.assertValidAddress(),\n args: [account],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Transfer ownership of the contract to a new address\n *\n * @public\n * @async\n * @param {Address} newOwner - The address to transfer ownership to\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async transferOwnership(newOwner: Address, params?: WriteParams) {\n return await this.awaitResult(this.transferOwnershipRaw(newOwner, params));\n }\n\n /**\n * Transfer ownership of the contract to a new address\n *\n * @public\n * @async\n * @param {Address} newOwner - The address to transfer ownership to\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async transferOwnershipRaw(newOwner: Address, params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesTransferOwnership(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [newOwner],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOwnableRolesTransferOwnership(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Renounce ownership of the contract\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async renounceOwnership(params?: WriteParams) {\n return await this.awaitResult(this.renounceOwnershipRaw(params));\n }\n\n /**\n * Renounce ownership of the contract\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async renounceOwnershipRaw(params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesRenounceOwnership(\n this._config,\n {\n address: this.assertValidAddress(),\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOwnableRolesRenounceOwnership(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Request a two-step ownership handover to the caller\n * The request will automatically expire in 48 hours\n *\n * Note: This is part of a two-step ownership transfer process:\n * 1. New owner calls requestOwnershipHandover()\n * 2. Current owner calls completeOwnershipHandover(newOwner)\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async requestOwnershipHandover(params?: WriteParams) {\n return await this.awaitResult(this.requestOwnershipHandoverRaw(params));\n }\n\n /**\n * Request a two-step ownership handover to the caller\n * The request will automatically expire in 48 hours\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async requestOwnershipHandoverRaw(params?: WriteParams) {\n const { request, result } =\n await simulateOwnableRolesRequestOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOwnableRolesRequestOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Complete a pending ownership handover to a new owner\n * Must be called by the current owner after the new owner has requested the handover\n *\n * Note: This is part of a two-step ownership transfer process:\n * 1. New owner calls requestOwnershipHandover()\n * 2. Current owner calls completeOwnershipHandover(newOwner)\n *\n * @public\n * @async\n * @param {Address} pendingOwner - The address that requested the ownership handover\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async completeOwnershipHandover(\n pendingOwner: Address,\n params?: WriteParams,\n ) {\n return await this.awaitResult(\n this.completeOwnershipHandoverRaw(pendingOwner, params),\n );\n }\n\n /**\n * Complete a pending ownership handover to a new owner\n * Must be called by the current owner after the new owner has requested the handover\n *\n * @public\n * @async\n * @param {Address} pendingOwner - The address that requested the ownership handover\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async completeOwnershipHandoverRaw(\n pendingOwner: Address,\n params?: WriteParams,\n ) {\n const { request, result } =\n await simulateOwnableRolesCompleteOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\n args: [pendingOwner],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOwnableRolesCompleteOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Cancel a pending ownership handover request\n * Must be called by the account that originally requested the handover\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async cancelOwnershipHandover(params?: WriteParams) {\n return await this.awaitResult(this.cancelOwnershipHandoverRaw(params));\n }\n\n /**\n * Cancel a pending ownership handover request\n * Must be called by the account that originally requested the handover\n *\n * @public\n * @async\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async cancelOwnershipHandoverRaw(params?: WriteParams) {\n const { request, result } =\n await simulateOwnableRolesCancelOwnershipHandover(this._config, {\n address: this.assertValidAddress(),\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeOwnableRolesCancelOwnershipHandover(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Get the expiry timestamp for a pending ownership handover\n * Returns 0 if there is no pending handover request for the given address\n *\n * @public\n * @param {Address} pendingOwner - The address to check for pending handover requests\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The timestamp when the handover request expires, or 0 if no request exists\n */\n public ownershipHandoverExpiresAt(\n pendingOwner: Address,\n params?: ReadParams,\n ): Promise<bigint> {\n return readOwnableRolesOwnershipHandoverExpiresAt(this._config, {\n address: this.assertValidAddress(),\n args: [pendingOwner],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Allow the caller to remove their own roles\n * If the caller does not have a role, then it will be a no-op for that role\n *\n * @public\n * @async\n * @param {Roles} roles - Bitmap of roles to renounce\n * @param {?WriteParams} [params]\n * @returns {Promise<void>}\n */\n public async renounceRoles(roles: Roles, params?: WriteParams) {\n return await this.awaitResult(this.renounceRolesRaw(roles, params));\n }\n\n /**\n * Allow the caller to remove their own roles\n * If the caller does not have a role, then it will be a no-op for that role\n *\n * @public\n * @async\n * @param {Roles} roles - Bitmap of roles to renounce\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: void; }>}\n */\n public async renounceRolesRaw(roles: Roles, params?: WriteParams) {\n const { request, result } = await simulateOwnableRolesRenounceRoles(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [roles],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeOwnableRolesRenounceRoles(this._config, request);\n return { hash, result };\n }\n}\n"],"names":["Roles","DeployableTargetWithRBAC","DeployableTarget","addresses","allowed","params","request","result","simulateRbacSetAuthorized","writeRbacSetAuthorized","address","role","simulateRbacGrantRoles","writeRbacGrantRoles","simulateRbacRevokeRoles","writeRbacRevokeRoles","roles","simulateRbacGrantManyRoles","writeRbacGrantManyRoles","simulateRbacRevokeManyRoles","writeRbacRevokeManyRoles","account","readRbacRolesOf","readRbacHasAnyRole","readRbacHasAllRoles","readRbacIsAuthorized","newOwner","simulateOwnableRolesTransferOwnership","writeOwnableRolesTransferOwnership","simulateOwnableRolesRenounceOwnership","writeOwnableRolesRenounceOwnership","simulateOwnableRolesRequestOwnershipHandover","writeOwnableRolesRequestOwnershipHandover","pendingOwner","simulateOwnableRolesCompleteOwnershipHandover","writeOwnableRolesCompleteOwnershipHandover","simulateOwnableRolesCancelOwnershipHandover","writeOwnableRolesCancelOwnershipHandover","readOwnableRolesOwnershipHandoverExpiresAt","simulateOwnableRolesRenounceRoles","writeOwnableRolesRenounceRoles"],"mappings":"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"}
|
|
@@ -244,5 +244,163 @@ export declare class DeployableTargetWithRBAC<Payload, ABI extends Abi> extends
|
|
|
244
244
|
* @returns {Promise<boolean>} - True if the account is authorized
|
|
245
245
|
*/
|
|
246
246
|
isAuthorized(account: Address, params?: ReadParams): Promise<boolean>;
|
|
247
|
+
/**
|
|
248
|
+
* Transfer ownership of the contract to a new address
|
|
249
|
+
*
|
|
250
|
+
* @public
|
|
251
|
+
* @async
|
|
252
|
+
* @param {Address} newOwner - The address to transfer ownership to
|
|
253
|
+
* @param {?WriteParams} [params]
|
|
254
|
+
* @returns {Promise<void>}
|
|
255
|
+
*/
|
|
256
|
+
transferOwnership(newOwner: Address, params?: WriteParams): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* Transfer ownership of the contract to a new address
|
|
259
|
+
*
|
|
260
|
+
* @public
|
|
261
|
+
* @async
|
|
262
|
+
* @param {Address} newOwner - The address to transfer ownership to
|
|
263
|
+
* @param {?WriteParams} [params]
|
|
264
|
+
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
265
|
+
*/
|
|
266
|
+
transferOwnershipRaw(newOwner: Address, params?: WriteParams): Promise<{
|
|
267
|
+
hash: `0x${string}`;
|
|
268
|
+
result: void;
|
|
269
|
+
}>;
|
|
270
|
+
/**
|
|
271
|
+
* Renounce ownership of the contract
|
|
272
|
+
*
|
|
273
|
+
* @public
|
|
274
|
+
* @async
|
|
275
|
+
* @param {?WriteParams} [params]
|
|
276
|
+
* @returns {Promise<void>}
|
|
277
|
+
*/
|
|
278
|
+
renounceOwnership(params?: WriteParams): Promise<void>;
|
|
279
|
+
/**
|
|
280
|
+
* Renounce ownership of the contract
|
|
281
|
+
*
|
|
282
|
+
* @public
|
|
283
|
+
* @async
|
|
284
|
+
* @param {?WriteParams} [params]
|
|
285
|
+
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
286
|
+
*/
|
|
287
|
+
renounceOwnershipRaw(params?: WriteParams): Promise<{
|
|
288
|
+
hash: `0x${string}`;
|
|
289
|
+
result: void;
|
|
290
|
+
}>;
|
|
291
|
+
/**
|
|
292
|
+
* Request a two-step ownership handover to the caller
|
|
293
|
+
* The request will automatically expire in 48 hours
|
|
294
|
+
*
|
|
295
|
+
* Note: This is part of a two-step ownership transfer process:
|
|
296
|
+
* 1. New owner calls requestOwnershipHandover()
|
|
297
|
+
* 2. Current owner calls completeOwnershipHandover(newOwner)
|
|
298
|
+
*
|
|
299
|
+
* @public
|
|
300
|
+
* @async
|
|
301
|
+
* @param {?WriteParams} [params]
|
|
302
|
+
* @returns {Promise<void>}
|
|
303
|
+
*/
|
|
304
|
+
requestOwnershipHandover(params?: WriteParams): Promise<void>;
|
|
305
|
+
/**
|
|
306
|
+
* Request a two-step ownership handover to the caller
|
|
307
|
+
* The request will automatically expire in 48 hours
|
|
308
|
+
*
|
|
309
|
+
* @public
|
|
310
|
+
* @async
|
|
311
|
+
* @param {?WriteParams} [params]
|
|
312
|
+
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
313
|
+
*/
|
|
314
|
+
requestOwnershipHandoverRaw(params?: WriteParams): Promise<{
|
|
315
|
+
hash: `0x${string}`;
|
|
316
|
+
result: void;
|
|
317
|
+
}>;
|
|
318
|
+
/**
|
|
319
|
+
* Complete a pending ownership handover to a new owner
|
|
320
|
+
* Must be called by the current owner after the new owner has requested the handover
|
|
321
|
+
*
|
|
322
|
+
* Note: This is part of a two-step ownership transfer process:
|
|
323
|
+
* 1. New owner calls requestOwnershipHandover()
|
|
324
|
+
* 2. Current owner calls completeOwnershipHandover(newOwner)
|
|
325
|
+
*
|
|
326
|
+
* @public
|
|
327
|
+
* @async
|
|
328
|
+
* @param {Address} pendingOwner - The address that requested the ownership handover
|
|
329
|
+
* @param {?WriteParams} [params]
|
|
330
|
+
* @returns {Promise<void>}
|
|
331
|
+
*/
|
|
332
|
+
completeOwnershipHandover(pendingOwner: Address, params?: WriteParams): Promise<void>;
|
|
333
|
+
/**
|
|
334
|
+
* Complete a pending ownership handover to a new owner
|
|
335
|
+
* Must be called by the current owner after the new owner has requested the handover
|
|
336
|
+
*
|
|
337
|
+
* @public
|
|
338
|
+
* @async
|
|
339
|
+
* @param {Address} pendingOwner - The address that requested the ownership handover
|
|
340
|
+
* @param {?WriteParams} [params]
|
|
341
|
+
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
342
|
+
*/
|
|
343
|
+
completeOwnershipHandoverRaw(pendingOwner: Address, params?: WriteParams): Promise<{
|
|
344
|
+
hash: `0x${string}`;
|
|
345
|
+
result: void;
|
|
346
|
+
}>;
|
|
347
|
+
/**
|
|
348
|
+
* Cancel a pending ownership handover request
|
|
349
|
+
* Must be called by the account that originally requested the handover
|
|
350
|
+
*
|
|
351
|
+
* @public
|
|
352
|
+
* @async
|
|
353
|
+
* @param {?WriteParams} [params]
|
|
354
|
+
* @returns {Promise<void>}
|
|
355
|
+
*/
|
|
356
|
+
cancelOwnershipHandover(params?: WriteParams): Promise<void>;
|
|
357
|
+
/**
|
|
358
|
+
* Cancel a pending ownership handover request
|
|
359
|
+
* Must be called by the account that originally requested the handover
|
|
360
|
+
*
|
|
361
|
+
* @public
|
|
362
|
+
* @async
|
|
363
|
+
* @param {?WriteParams} [params]
|
|
364
|
+
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
365
|
+
*/
|
|
366
|
+
cancelOwnershipHandoverRaw(params?: WriteParams): Promise<{
|
|
367
|
+
hash: `0x${string}`;
|
|
368
|
+
result: void;
|
|
369
|
+
}>;
|
|
370
|
+
/**
|
|
371
|
+
* Get the expiry timestamp for a pending ownership handover
|
|
372
|
+
* Returns 0 if there is no pending handover request for the given address
|
|
373
|
+
*
|
|
374
|
+
* @public
|
|
375
|
+
* @param {Address} pendingOwner - The address to check for pending handover requests
|
|
376
|
+
* @param {?ReadParams} [params]
|
|
377
|
+
* @returns {Promise<bigint>} - The timestamp when the handover request expires, or 0 if no request exists
|
|
378
|
+
*/
|
|
379
|
+
ownershipHandoverExpiresAt(pendingOwner: Address, params?: ReadParams): Promise<bigint>;
|
|
380
|
+
/**
|
|
381
|
+
* Allow the caller to remove their own roles
|
|
382
|
+
* If the caller does not have a role, then it will be a no-op for that role
|
|
383
|
+
*
|
|
384
|
+
* @public
|
|
385
|
+
* @async
|
|
386
|
+
* @param {Roles} roles - Bitmap of roles to renounce
|
|
387
|
+
* @param {?WriteParams} [params]
|
|
388
|
+
* @returns {Promise<void>}
|
|
389
|
+
*/
|
|
390
|
+
renounceRoles(roles: Roles, params?: WriteParams): Promise<void>;
|
|
391
|
+
/**
|
|
392
|
+
* Allow the caller to remove their own roles
|
|
393
|
+
* If the caller does not have a role, then it will be a no-op for that role
|
|
394
|
+
*
|
|
395
|
+
* @public
|
|
396
|
+
* @async
|
|
397
|
+
* @param {Roles} roles - Bitmap of roles to renounce
|
|
398
|
+
* @param {?WriteParams} [params]
|
|
399
|
+
* @returns {Promise<{ hash: `0x${string}`; result: void; }>}
|
|
400
|
+
*/
|
|
401
|
+
renounceRolesRaw(roles: Roles, params?: WriteParams): Promise<{
|
|
402
|
+
hash: `0x${string}`;
|
|
403
|
+
result: void;
|
|
404
|
+
}>;
|
|
247
405
|
}
|
|
248
406
|
//# sourceMappingURL=DeployableTargetWithRBAC.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeployableTargetWithRBAC.d.ts","sourceRoot":"","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
|
1
|
+
{"version":3,"file":"DeployableTargetWithRBAC.d.ts","sourceRoot":"","sources":["../../src/Deployable/DeployableTargetWithRBAC.ts"],"names":[],"mappings":"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"}
|