@boostxyz/sdk 0.0.0-alpha.8 → 1.1.0-alpha.22
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.js +7 -7
- package/dist/Actions/ContractAction.d.ts +57 -14
- package/dist/Actions/ContractAction.d.ts.map +1 -1
- package/dist/Actions/ERC721MintAction.d.ts +50 -23
- package/dist/Actions/ERC721MintAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.cjs +1 -1
- package/dist/Actions/EventAction.cjs.map +1 -1
- package/dist/Actions/EventAction.d.ts +420 -45
- package/dist/Actions/EventAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.js +15 -225
- 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 +6 -4
- package/dist/AllowLists/AllowList.d.ts.map +1 -1
- package/dist/AllowLists/AllowList.js +45 -23
- package/dist/AllowLists/AllowList.js.map +1 -1
- package/dist/AllowLists/OpenAllowList.d.ts +423 -0
- package/dist/AllowLists/OpenAllowList.d.ts.map +1 -0
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
- package/dist/AllowLists/SimpleAllowList.d.ts +123 -39
- package/dist/AllowLists/SimpleAllowList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleAllowList.js +75 -76
- package/dist/AllowLists/SimpleAllowList.js.map +1 -1
- package/dist/AllowLists/SimpleDenyList.cjs +1 -1
- package/dist/AllowLists/SimpleDenyList.cjs.map +1 -1
- package/dist/AllowLists/SimpleDenyList.d.ts +234 -13
- package/dist/AllowLists/SimpleDenyList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleDenyList.js +11 -200
- package/dist/AllowLists/SimpleDenyList.js.map +1 -1
- package/dist/Auth/PassthroughAuth.cjs +1 -1
- package/dist/Auth/PassthroughAuth.cjs.map +1 -1
- package/dist/Auth/PassthroughAuth.js +4 -4
- package/dist/Auth/PassthroughAuth.js.map +1 -1
- package/dist/Boost.cjs +1 -1
- package/dist/Boost.cjs.map +1 -1
- package/dist/Boost.d.ts +105 -14
- package/dist/Boost.d.ts.map +1 -1
- package/dist/Boost.js +137 -5
- package/dist/Boost.js.map +1 -1
- package/dist/BoostCore-BVZExPPu.js +1462 -0
- package/dist/BoostCore-BVZExPPu.js.map +1 -0
- package/dist/BoostCore-D-E-cnGI.cjs +3 -0
- package/dist/BoostCore-D-E-cnGI.cjs.map +1 -0
- package/dist/BoostCore.cjs +1 -2
- package/dist/BoostCore.cjs.map +1 -1
- package/dist/BoostCore.d.ts +759 -82
- package/dist/BoostCore.d.ts.map +1 -1
- package/dist/BoostCore.js +29 -1148
- package/dist/BoostCore.js.map +1 -1
- package/dist/BoostRegistry.cjs +1 -1
- package/dist/BoostRegistry.cjs.map +1 -1
- package/dist/BoostRegistry.d.ts +83 -28
- package/dist/BoostRegistry.d.ts.map +1 -1
- package/dist/BoostRegistry.js +170 -93
- package/dist/BoostRegistry.js.map +1 -1
- package/dist/Budgets/Budget.cjs +1 -1
- package/dist/Budgets/Budget.cjs.map +1 -1
- package/dist/Budgets/Budget.d.ts.map +1 -1
- package/dist/Budgets/Budget.js +2 -2
- package/dist/Budgets/Budget.js.map +1 -1
- package/dist/Budgets/ManagedBudget.cjs +1 -1
- package/dist/Budgets/ManagedBudget.cjs.map +1 -1
- package/dist/Budgets/ManagedBudget.d.ts +112 -192
- package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
- package/dist/Budgets/ManagedBudget.js +89 -290
- package/dist/Budgets/ManagedBudget.js.map +1 -1
- package/dist/Budgets/VestingBudget.d.ts +277 -91
- package/dist/Budgets/VestingBudget.d.ts.map +1 -1
- package/dist/Deployable/Contract.cjs +1 -1
- package/dist/Deployable/Contract.cjs.map +1 -1
- package/dist/Deployable/Contract.d.ts +4 -5
- package/dist/Deployable/Contract.d.ts.map +1 -1
- package/dist/Deployable/Contract.js +6 -8
- package/dist/Deployable/Contract.js.map +1 -1
- package/dist/Deployable/Deployable.cjs.map +1 -1
- package/dist/Deployable/Deployable.d.ts +1 -1
- package/dist/Deployable/Deployable.d.ts.map +1 -1
- package/dist/Deployable/Deployable.js +3 -5
- package/dist/Deployable/Deployable.js.map +1 -1
- package/dist/Deployable/DeployableTarget.cjs +1 -1
- package/dist/Deployable/DeployableTarget.cjs.map +1 -1
- package/dist/Deployable/DeployableTarget.d.ts +13 -13
- package/dist/Deployable/DeployableTarget.d.ts.map +1 -1
- package/dist/Deployable/DeployableTarget.js +30 -27
- package/dist/Deployable/DeployableTarget.js.map +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.cjs +2 -0
- package/dist/Deployable/DeployableTargetWithRBAC.cjs.map +1 -0
- package/dist/Deployable/DeployableTargetWithRBAC.d.ts +179 -0
- package/dist/Deployable/DeployableTargetWithRBAC.d.ts.map +1 -0
- package/dist/Deployable/DeployableTargetWithRBAC.js +222 -0
- package/dist/Deployable/DeployableTargetWithRBAC.js.map +1 -0
- package/dist/EventAction-BZt5cjbe.cjs +2 -0
- package/dist/EventAction-BZt5cjbe.cjs.map +1 -0
- package/dist/EventAction-C_-hJXWm.js +1541 -0
- package/dist/EventAction-C_-hJXWm.js.map +1 -0
- package/dist/Incentive-BhHaK3PZ.cjs +2 -0
- package/dist/Incentive-BhHaK3PZ.cjs.map +1 -0
- package/dist/Incentive-Cqg1w6wD.js +312 -0
- package/dist/Incentive-Cqg1w6wD.js.map +1 -0
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.d.ts +73 -21
- package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
- package/dist/Incentives/AllowListIncentive.js +61 -36
- package/dist/Incentives/AllowListIncentive.js.map +1 -1
- package/dist/Incentives/CGDAIncentive.cjs +1 -1
- package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
- package/dist/Incentives/CGDAIncentive.d.ts +323 -26
- package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
- package/dist/Incentives/CGDAIncentive.js +73 -39
- package/dist/Incentives/CGDAIncentive.js.map +1 -1
- package/dist/Incentives/ERC1155Incentive.d.ts +291 -43
- package/dist/Incentives/ERC1155Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.cjs +1 -1
- package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
- package/dist/Incentives/ERC20Incentive.d.ts +278 -33
- package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.js +79 -47
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/{Budgets/SimpleBudget.d.ts → Incentives/ERC20VariableCriteriaIncentive.d.ts} +346 -420
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -0
- package/dist/Incentives/ERC20VariableIncentive.d.ts +271 -32
- package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.cjs.map +1 -1
- package/dist/Incentives/Incentive.d.ts +4 -4
- package/dist/Incentives/Incentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.js +16 -280
- 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.d.ts +89 -23
- package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
- package/dist/Incentives/PointsIncentive.js +66 -36
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/SimpleDenyList-BUR17Tt1.cjs +2 -0
- package/dist/SimpleDenyList-BUR17Tt1.cjs.map +1 -0
- package/dist/SimpleDenyList-CGaWjuld.js +132 -0
- package/dist/SimpleDenyList-CGaWjuld.js.map +1 -0
- package/dist/Validators/SignerValidator.cjs +1 -1
- package/dist/Validators/SignerValidator.cjs.map +1 -1
- package/dist/Validators/SignerValidator.d.ts +310 -17
- package/dist/Validators/SignerValidator.d.ts.map +1 -1
- package/dist/Validators/SignerValidator.js +164 -36
- package/dist/Validators/SignerValidator.js.map +1 -1
- package/dist/Validators/Validator.cjs +1 -1
- package/dist/Validators/Validator.cjs.map +1 -1
- package/dist/Validators/Validator.d.ts +1 -1
- package/dist/Validators/Validator.js +2 -2
- package/dist/Validators/Validator.js.map +1 -1
- package/dist/claiming.cjs +2 -0
- package/dist/claiming.cjs.map +1 -0
- package/dist/claiming.d.ts +43 -0
- package/dist/claiming.d.ts.map +1 -0
- package/dist/claiming.js +17 -0
- package/dist/claiming.js.map +1 -0
- package/dist/componentInterfaces-BBCFkrZv.js +14 -0
- package/dist/componentInterfaces-BBCFkrZv.js.map +1 -0
- package/dist/componentInterfaces-DRI_dQ-P.cjs +2 -0
- package/dist/componentInterfaces-DRI_dQ-P.cjs.map +1 -0
- package/dist/deployments-DVXioW2i.cjs +2 -0
- package/dist/deployments-DVXioW2i.cjs.map +1 -0
- package/dist/deployments-oykLv3_Z.js +43 -0
- package/dist/deployments-oykLv3_Z.js.map +1 -0
- package/dist/deployments.json +44 -0
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +257 -21
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +183 -26
- package/dist/errors.js.map +1 -1
- package/dist/{generated-Cbv8zFkf.js → generated-CKt2yCQd.js} +3615 -1868
- package/dist/generated-CKt2yCQd.js.map +1 -0
- package/dist/generated-CyTNlOwM.cjs +3 -0
- package/dist/generated-CyTNlOwM.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +143 -126
- package/dist/index.js.map +1 -1
- package/dist/transfers.cjs +2 -0
- package/dist/transfers.cjs.map +1 -0
- package/dist/transfers.d.ts +198 -0
- package/dist/transfers.d.ts.map +1 -0
- package/dist/transfers.js +84 -0
- package/dist/transfers.js.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +25 -1380
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +36 -648
- package/dist/utils.js.map +1 -1
- package/package.json +34 -10
- package/src/Actions/Action.test.ts +19 -17
- package/src/Actions/ContractAction.test.ts +14 -16
- package/src/Actions/ContractAction.ts +84 -22
- package/src/Actions/ERC721MintAction.test.ts +8 -8
- package/src/Actions/ERC721MintAction.ts +83 -30
- package/src/Actions/EventAction.test.ts +759 -113
- package/src/Actions/EventAction.ts +991 -116
- package/src/AllowLists/AllowList.test.ts +7 -7
- package/src/AllowLists/AllowList.ts +5 -3
- package/src/AllowLists/OpenAllowList.test.ts +40 -0
- package/src/AllowLists/OpenAllowList.ts +45 -0
- package/src/AllowLists/SimpleAllowList.test.ts +4 -4
- package/src/AllowLists/SimpleAllowList.ts +86 -65
- package/src/AllowLists/SimpleDenyList.test.ts +4 -4
- package/src/AllowLists/SimpleDenyList.ts +87 -126
- package/src/Auth/PassthroughAuth.test.ts +1 -1
- package/src/Auth/PassthroughAuth.ts +1 -1
- package/src/Boost.ts +147 -15
- package/src/BoostCore.test.ts +326 -278
- package/src/BoostCore.ts +425 -242
- package/src/BoostRegistry.test.ts +53 -0
- package/src/BoostRegistry.ts +168 -50
- package/src/Budgets/Budget.test.ts +2 -2
- package/src/Budgets/Budget.ts +1 -2
- package/src/Budgets/ManagedBudget.test.ts +82 -19
- package/src/Budgets/ManagedBudget.ts +106 -315
- package/src/Budgets/VestingBudget.test.ts +7 -7
- package/src/Budgets/VestingBudget.ts +110 -112
- package/src/Deployable/Contract.ts +5 -6
- package/src/Deployable/Deployable.ts +1 -1
- package/src/Deployable/DeployableTarget.ts +32 -21
- package/src/Deployable/DeployableTargetWithRBAC.ts +323 -0
- package/src/Incentives/AllowListIncentive.test.ts +7 -10
- package/src/Incentives/AllowListIncentive.ts +88 -30
- package/src/Incentives/CGDAIncentive.test.ts +11 -12
- package/src/Incentives/CGDAIncentive.ts +161 -37
- package/src/Incentives/ERC1155Incentive.test.ts +5 -16
- package/src/Incentives/ERC1155Incentive.ts +132 -51
- package/src/Incentives/ERC20Incentive.test.ts +15 -23
- package/src/Incentives/ERC20Incentive.ts +131 -46
- package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +184 -0
- package/src/Incentives/ERC20VariableCriteriaIncentive.ts +324 -0
- package/src/Incentives/ERC20VariableIncentive.test.ts +12 -35
- package/src/Incentives/ERC20VariableIncentive.ts +118 -43
- package/src/Incentives/Incentive.test.ts +5 -2
- package/src/Incentives/Incentive.ts +7 -6
- package/src/Incentives/PointsIncentive.test.ts +26 -30
- package/src/Incentives/PointsIncentive.ts +110 -34
- package/src/Validators/SignerValidator.test.ts +9 -13
- package/src/Validators/SignerValidator.ts +437 -26
- package/src/Validators/Validator.test.ts +2 -2
- package/src/Validators/Validator.ts +1 -1
- package/src/claiming.ts +56 -0
- package/src/errors.ts +346 -22
- package/src/index.test.ts +118 -36
- package/src/index.ts +15 -7
- package/src/transfers.ts +284 -0
- package/src/utils.test.ts +2 -2
- package/src/utils.ts +61 -2061
- package/dist/Budgets/SimpleBudget.d.ts.map +0 -1
- package/dist/componentInterfaces-CKCBwG16.cjs +0 -2
- package/dist/componentInterfaces-CKCBwG16.cjs.map +0 -1
- package/dist/componentInterfaces-DYkaxBda.js +0 -13
- package/dist/componentInterfaces-DYkaxBda.js.map +0 -1
- package/dist/generated-BzszviNp.cjs +0 -3
- package/dist/generated-BzszviNp.cjs.map +0 -1
- package/dist/generated-Cbv8zFkf.js.map +0 -1
- package/src/Budgets/SimpleBudget.test.ts +0 -152
- package/src/Budgets/SimpleBudget.ts +0 -521
|
@@ -1,228 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
const R = "0x60a0604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b60805161239f6100c85f395f61034a015261239f5ff3fe608060405260043610610090575f3560e01c80639bc1cf81116100585780639bc1cf811461017d578063c26624e8146101a7578063d7768c47146101e3578063dbdf21101461021f578063ddd6ab081461024957610090565b806301ffc9a71461009457806309c5eabe146100d057806328d6183b14610101578063393df8cb1461012b578063439fab9114610155575b5f80fd5b34801561009f575f80fd5b506100ba60048036038101906100b5919061145c565b610273565b6040516100c791906114a1565b60405180910390f35b6100ea60048036038101906100e5919061151b565b6102ec565b6040516100f89291906115d6565b60405180910390f35b34801561010c575f80fd5b50610115610321565b6040516101229190611613565b60405180910390f35b348015610136575f80fd5b5061013f610348565b60405161014c91906116a6565b60405180910390f35b348015610160575f80fd5b5061017b6004803603810190610176919061151b565b61036c565b005b348015610188575f80fd5b506101916103f9565b60405161019e91906119de565b60405180910390f35b3480156101b2575f80fd5b506101cd60048036038101906101c89190611a31565b610686565b6040516101da9190611acf565b60405180910390f35b3480156101ee575f80fd5b506102096004803603810190610204919061151b565b6108f1565b6040516102169190611aef565b60405180910390f35b34801561022a575f80fd5b50610233610925565b6040516102409190611b62565b60405180910390f35b348015610254575f80fd5b5061025d610a3c565b60405161026a9190611b8a565b60405180910390f35b5f7f7687b0ed000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102e557506102e482610a48565b5b9050919050565b5f60606040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f7687b0ed00000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610375610ac1565b905080546003825580156103a75760018160011c14303b1061039e5763f92ee8a95f526004601cfd5b818160ff1b1b91505b506103bf83838101906103ba9190612035565b610aea565b80156103f4576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60606001805480602002602001604051908101604052809291908181526020015f905b8282101561067d578382905f5260205f2090600302016040518060a00160405290815f82015f9054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020015f820160049054906101000a900460ff1660018111156104b4576104b36116f7565b5b60018111156104c6576104c56116f7565b5b81526020015f820160059054906101000a900460ff1660ff1660ff1681526020015f820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182016040518060800160405290815f82015f9054906101000a900460ff16600481111561056e5761056d6116f7565b5b60048111156105805761057f6116f7565b5b81526020015f820160019054906101000a900460ff1660038111156105a8576105a76116f7565b5b60038111156105ba576105b96116f7565b5b81526020015f820160029054906101000a900460ff1660ff1660ff1681526020016001820180546105ea906120a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610616906120a9565b80156106615780601f1061063857610100808354040283529160200191610661565b820191905f5260205f20905b81548152906001019060200180831161064457829003601f168201915b505050505081525050815250508152602001906001019061041c565b50505050905090565b61068e6112c1565b600182815481106106a2576106a16120d9565b5b905f5260205f2090600302016040518060a00160405290815f82015f9054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020015f820160049054906101000a900460ff1660018111156107305761072f6116f7565b5b6001811115610742576107416116f7565b5b81526020015f820160059054906101000a900460ff1660ff1660ff1681526020015f820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182016040518060800160405290815f82015f9054906101000a900460ff1660048111156107ea576107e96116f7565b5b60048111156107fc576107fb6116f7565b5b81526020015f820160019054906101000a900460ff166003811115610824576108236116f7565b5b6003811115610836576108356116f7565b5b81526020015f820160029054906101000a900460ff1660ff1660ff168152602001600182018054610866906120a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610892906120a9565b80156108dd5780601f106108b4576101008083540402835291602001916108dd565b820191905f5260205f20905b8154815290600101906020018083116108c057829003601f168201915b505050505081525050815250509050919050565b60606040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61092d61133c565b5f6040518060800160405290815f82015f9054906101000a900460ff16600181111561095c5761095b6116f7565b5b600181111561096e5761096d6116f7565b5b81526020015f820160019054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020015f820160059054906101000a900460ff1660ff1660ff1681526020015f820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f600180549050905090565b5f7fe6715795000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610aba5750610ab9826111bb565b5b9050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610af2611234565b805f01515f80820151815f015f6101000a81548160ff02191690836001811115610b1f57610b1e6116f7565b5b02179055506020820151815f0160016101000a81548163ffffffff021916908360e01c02179055506040820151815f0160056101000a81548160ff021916908360ff1602179055506060820151815f0160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060018160200151908060018154018082558091505060019003905f5260205f2090600302015f909190919091505f820151815f015f6101000a81548163ffffffff021916908360e01c02179055506020820151815f0160046101000a81548160ff02191690836001811115610c2857610c276116f7565b5b02179055506040820151815f0160056101000a81548160ff021916908360ff1602179055506060820151815f0160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816001015f820151815f015f6101000a81548160ff02191690836004811115610cc457610cc36116f7565b5b02179055506020820151815f0160016101000a81548160ff02191690836003811115610cf357610cf26116f7565b5b02179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151816001019081610d2d919061229a565b505050505060018160400151908060018154018082558091505060019003905f5260205f2090600302015f909190919091505f820151815f015f6101000a81548163ffffffff021916908360e01c02179055506020820151815f0160046101000a81548160ff02191690836001811115610daa57610da96116f7565b5b02179055506040820151815f0160056101000a81548160ff021916908360ff1602179055506060820151815f0160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816001015f820151815f015f6101000a81548160ff02191690836004811115610e4657610e456116f7565b5b02179055506020820151815f0160016101000a81548160ff02191690836003811115610e7557610e746116f7565b5b02179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151816001019081610eaf919061229a565b505050505060018160600151908060018154018082558091505060019003905f5260205f2090600302015f909190919091505f820151815f015f6101000a81548163ffffffff021916908360e01c02179055506020820151815f0160046101000a81548160ff02191690836001811115610f2c57610f2b6116f7565b5b02179055506040820151815f0160056101000a81548160ff021916908360ff1602179055506060820151815f0160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816001015f820151815f015f6101000a81548160ff02191690836004811115610fc857610fc76116f7565b5b02179055506020820151815f0160016101000a81548160ff02191690836003811115610ff757610ff66116f7565b5b02179055506040820151815f0160026101000a81548160ff021916908360ff1602179055506060820151816001019081611031919061229a565b505050505060018160800151908060018154018082558091505060019003905f5260205f2090600302015f909190919091505f820151815f015f6101000a81548163ffffffff021916908360e01c02179055506020820151815f0160046101000a81548160ff021916908360018111156110ae576110ad6116f7565b5b02179055506040820151815f0160056101000a81548160ff021916908360ff1602179055506060820151815f0160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816001015f820151815f015f6101000a81548160ff0219169083600481111561114a576111496116f7565b5b02179055506020820151815f0160016101000a81548160ff02191690836003811115611179576111786116f7565b5b02179055506040820151815f0160026101000a81548160ff021916908360ff16021790555060608201518160010190816111b3919061229a565b505050505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061122d575061122c82611258565b5b9050919050565b5f61123d610ac1565b905080546001166112555763d7e6bcf85f526004601cfd5b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6040518060a001604052805f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020015f6001811115611304576113036116f7565b5b81526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020016113366113aa565b81525090565b60405180608001604052805f600181111561135a576113596116f7565b5b81526020015f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180608001604052805f60048111156113c8576113c76116f7565b5b81526020015f60038111156113e0576113df6116f7565b5b81526020015f60ff168152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61143b81611407565b8114611445575f80fd5b50565b5f8135905061145681611432565b92915050565b5f60208284031215611471576114706113ff565b5b5f61147e84828501611448565b91505092915050565b5f8115159050919050565b61149b81611487565b82525050565b5f6020820190506114b45f830184611492565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126114db576114da6114ba565b5b8235905067ffffffffffffffff8111156114f8576114f76114be565b5b602083019150836001820283011115611514576115136114c2565b5b9250929050565b5f8060208385031215611531576115306113ff565b5b5f83013567ffffffffffffffff81111561154e5761154d611403565b5b61155a858286016114c6565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6115a882611566565b6115b28185611570565b93506115c2818560208601611580565b6115cb8161158e565b840191505092915050565b5f6040820190506115e95f830185611492565b81810360208301526115fb818461159e565b90509392505050565b61160d81611407565b82525050565b5f6020820190506116265f830184611604565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61166e6116696116648461162c565b61164b565b61162c565b9050919050565b5f61167f82611654565b9050919050565b5f61169082611675565b9050919050565b6116a081611686565b82525050565b5f6020820190506116b95f830184611697565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116f181611407565b82525050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611735576117346116f7565b5b50565b5f81905061174582611724565b919050565b5f61175482611738565b9050919050565b6117648161174a565b82525050565b5f60ff82169050919050565b61177f8161176a565b82525050565b5f61178f8261162c565b9050919050565b61179f81611785565b82525050565b600581106117b6576117b56116f7565b5b50565b5f8190506117c6826117a5565b919050565b5f6117d5826117b9565b9050919050565b6117e5816117cb565b82525050565b600481106117fc576117fb6116f7565b5b50565b5f81905061180c826117eb565b919050565b5f61181b826117ff565b9050919050565b61182b81611811565b82525050565b5f82825260208201905092915050565b5f61184b82611566565b6118558185611831565b9350611865818560208601611580565b61186e8161158e565b840191505092915050565b5f608083015f83015161188e5f8601826117dc565b5060208301516118a16020860182611822565b5060408301516118b46040860182611776565b50606083015184820360608601526118cc8282611841565b9150508091505092915050565b5f60a083015f8301516118ee5f8601826116e8565b506020830151611901602086018261175b565b5060408301516119146040860182611776565b5060608301516119276060860182611796565b506080830151848203608086015261193f8282611879565b9150508091505092915050565b5f61195783836118d9565b905092915050565b5f602082019050919050565b5f611975826116bf565b61197f81856116c9565b935083602082028501611991856116d9565b805f5b858110156119cc57848403895281516119ad858261194c565b94506119b88361195f565b925060208a01995050600181019050611994565b50829750879550505050505092915050565b5f6020820190508181035f8301526119f6818461196b565b905092915050565b5f819050919050565b611a10816119fe565b8114611a1a575f80fd5b50565b5f81359050611a2b81611a07565b92915050565b5f60208284031215611a4657611a456113ff565b5b5f611a5384828501611a1d565b91505092915050565b5f60a083015f830151611a715f8601826116e8565b506020830151611a84602086018261175b565b506040830151611a976040860182611776565b506060830151611aaa6060860182611796565b5060808301518482036080860152611ac28282611879565b9150508091505092915050565b5f6020820190508181035f830152611ae78184611a5c565b905092915050565b5f6020820190508181035f830152611b07818461159e565b905092915050565b608082015f820151611b235f85018261175b565b506020820151611b3660208501826116e8565b506040820151611b496040850182611776565b506060820151611b5c6060850182611796565b50505050565b5f608082019050611b755f830184611b0f565b92915050565b611b84816119fe565b82525050565b5f602082019050611b9d5f830184611b7b565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611bdd8261158e565b810181811067ffffffffffffffff82111715611bfc57611bfb611ba7565b5b80604052505050565b5f611c0e6113f6565b9050611c1a8282611bd4565b919050565b5f80fd5b60028110611c2f575f80fd5b50565b5f81359050611c4081611c23565b92915050565b611c4f8161176a565b8114611c59575f80fd5b50565b5f81359050611c6a81611c46565b92915050565b611c7981611785565b8114611c83575f80fd5b50565b5f81359050611c9481611c70565b92915050565b5f60808284031215611caf57611cae611ba3565b5b611cb96080611c05565b90505f611cc884828501611c32565b5f830152506020611cdb84828501611448565b6020830152506040611cef84828501611c5c565b6040830152506060611d0384828501611c86565b60608301525092915050565b60058110611d1b575f80fd5b50565b5f81359050611d2c81611d0f565b92915050565b60048110611d3e575f80fd5b50565b5f81359050611d4f81611d32565b92915050565b5f80fd5b5f67ffffffffffffffff821115611d7357611d72611ba7565b5b611d7c8261158e565b9050602081019050919050565b828183375f83830152505050565b5f611da9611da484611d59565b611c05565b905082815260208101848484011115611dc557611dc4611d55565b5b611dd0848285611d89565b509392505050565b5f82601f830112611dec57611deb6114ba565b5b8135611dfc848260208601611d97565b91505092915050565b5f60808284031215611e1a57611e19611ba3565b5b611e246080611c05565b90505f611e3384828501611d1e565b5f830152506020611e4684828501611d41565b6020830152506040611e5a84828501611c5c565b604083015250606082013567ffffffffffffffff811115611e7e57611e7d611c1f565b5b611e8a84828501611dd8565b60608301525092915050565b5f60a08284031215611eab57611eaa611ba3565b5b611eb560a0611c05565b90505f611ec484828501611448565b5f830152506020611ed784828501611c32565b6020830152506040611eeb84828501611c5c565b6040830152506060611eff84828501611c86565b606083015250608082013567ffffffffffffffff811115611f2357611f22611c1f565b5b611f2f84828501611e05565b60808301525092915050565b5f6101008284031215611f5157611f50611ba3565b5b611f5b60a0611c05565b90505f611f6a84828501611c9a565b5f83015250608082013567ffffffffffffffff811115611f8d57611f8c611c1f565b5b611f9984828501611e96565b60208301525060a082013567ffffffffffffffff811115611fbd57611fbc611c1f565b5b611fc984828501611e96565b60408301525060c082013567ffffffffffffffff811115611fed57611fec611c1f565b5b611ff984828501611e96565b60608301525060e082013567ffffffffffffffff81111561201d5761201c611c1f565b5b61202984828501611e96565b60808301525092915050565b5f6020828403121561204a576120496113ff565b5b5f82013567ffffffffffffffff81111561206757612066611403565b5b61207384828501611f3b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806120c057607f821691505b6020821081036120d3576120d261207c565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026121627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612127565b61216c8683612127565b95508019841693508086168417925050509392505050565b5f61219e612199612194846119fe565b61164b565b6119fe565b9050919050565b5f819050919050565b6121b783612184565b6121cb6121c3826121a5565b848454612133565b825550505050565b5f90565b6121df6121d3565b6121ea8184846121ae565b505050565b5b8181101561220d576122025f826121d7565b6001810190506121f0565b5050565b601f8211156122525761222381612106565b61222c84612118565b8101602085101561223b578190505b61224f61224785612118565b8301826121ef565b50505b505050565b5f82821c905092915050565b5f6122725f1984600802612257565b1980831691505092915050565b5f61228a8383612263565b9150826002028217905092915050565b6122a382611566565b67ffffffffffffffff8111156122bc576122bb611ba7565b5b6122c682546120a9565b6122d1828285612211565b5f60209050601f831160018114612302575f84156122f0578287015190505b6122fa858261227f565b865550612361565b601f19841661231086612106565b5f5b8281101561233757848901518255600182019150602085019450602081019050612312565b868310156123545784890151612350601f891682612263565b8355505b6001600288020188555050505b50505050505056fea2646970667358221220232ad425d6a3fa9ff7de7b59ca0cdff9b09b560e5493bdfd8320e53da80c045964736f6c634300081a0033", o = class o extends E {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments), this.abi = l;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Gets a specific action event by index
|
|
14
|
-
*
|
|
15
|
-
* @public
|
|
16
|
-
* @async
|
|
17
|
-
* @param {number} index The index of the action event to retrieve
|
|
18
|
-
* @param {?ReadParams<typeof eventActionAbi, 'getActionStep'>} [params]
|
|
19
|
-
* @returns {Promise<ActionStep>}
|
|
20
|
-
*/
|
|
21
|
-
async getActionStep(f, b) {
|
|
22
|
-
return (await this.getActionSteps(b)).at(f);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Gets all action events
|
|
26
|
-
*
|
|
27
|
-
* @public
|
|
28
|
-
* @async
|
|
29
|
-
* @param {?ReadParams<typeof eventActionAbi, 'getActionSteps'>} [params]
|
|
30
|
-
* @returns {Promise<ActionStep[]>}
|
|
31
|
-
*/
|
|
32
|
-
async getActionSteps(f) {
|
|
33
|
-
const b = await p(this._config, {
|
|
34
|
-
address: this.assertValidAddress(),
|
|
35
|
-
...this.optionallyAttachAccount(),
|
|
36
|
-
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
37
|
-
...f
|
|
38
|
-
});
|
|
39
|
-
return x(b);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Gets the count of action events
|
|
43
|
-
*
|
|
44
|
-
* @public
|
|
45
|
-
* @async
|
|
46
|
-
* @param {?ReadParams<typeof eventActionAbi, 'getActionStepsCount'>} [params]
|
|
47
|
-
* @returns {Promise<bigint>}
|
|
48
|
-
*/
|
|
49
|
-
async getActionStepsCount(f) {
|
|
50
|
-
return (await this.getActionSteps(f)).length;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Retrieves the payload describing how claimants can be identified from logs or function calls.
|
|
54
|
-
*
|
|
55
|
-
* @public
|
|
56
|
-
* @async
|
|
57
|
-
* @param {?ReadParams<typeof eventActionAbi, 'getActionClaimant'>} [params]
|
|
58
|
-
* @returns {Promise<ActionClaimant>}
|
|
59
|
-
*/
|
|
60
|
-
async getActionClaimant(f) {
|
|
61
|
-
return g(this._config, {
|
|
62
|
-
address: this.assertValidAddress(),
|
|
63
|
-
...this.optionallyAttachAccount(),
|
|
64
|
-
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
65
|
-
...f
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Executes a prepared event action
|
|
70
|
-
*
|
|
71
|
-
* @public
|
|
72
|
-
* @async
|
|
73
|
-
* @param {Hex} data
|
|
74
|
-
* @param {?WriteParams<typeof eventActionAbi, 'execute'>} [params]
|
|
75
|
-
* @returns {Promise<readonly [boolean, `0x${string}`]>}
|
|
76
|
-
*/
|
|
77
|
-
async execute(f, b) {
|
|
78
|
-
return this.awaitResult(this.executeRaw(f, b));
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Executes a prepared event action
|
|
82
|
-
*
|
|
83
|
-
* @public
|
|
84
|
-
* @async
|
|
85
|
-
* @param {Hex} data
|
|
86
|
-
* @param {?WriteParams<typeof eventActionAbi, 'execute'>} [params]
|
|
87
|
-
* @returns {unknown}
|
|
88
|
-
*/
|
|
89
|
-
async executeRaw(f, b) {
|
|
90
|
-
const { request: e, result: t } = await A(this._config, {
|
|
91
|
-
address: this.assertValidAddress(),
|
|
92
|
-
...this.optionallyAttachAccount(),
|
|
93
|
-
// biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
|
|
94
|
-
...b,
|
|
95
|
-
args: [f]
|
|
96
|
-
});
|
|
97
|
-
return { hash: await y(this._config, e), result: t };
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Retrieves action steps, and uses them to validate against, and optionally fetch logs that match the step's signature.
|
|
101
|
-
* If logs are provided in the optional `params` argument, then those logs will be used instead of fetched with the configured client.
|
|
102
|
-
*
|
|
103
|
-
* @public
|
|
104
|
-
* @async
|
|
105
|
-
* @param {?ReadParams<typeof eventActionAbi, 'getActionSteps'> &
|
|
106
|
-
* GetLogsParams<Abi, ContractEventName<Abi>> & {
|
|
107
|
-
* knownEvents?: Record<Hex, AbiEvent>;
|
|
108
|
-
* logs?: Log[];
|
|
109
|
-
* }} [params]
|
|
110
|
-
* @returns {Promise<boolean>}
|
|
111
|
-
*/
|
|
112
|
-
async validateActionSteps(f) {
|
|
113
|
-
const b = await this.getActionSteps(f);
|
|
114
|
-
for (const e of b)
|
|
115
|
-
if (!await this.isActionStepValid(e, f))
|
|
116
|
-
return !1;
|
|
117
|
-
return !0;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Validates a single action step with a given criteria against logs.
|
|
121
|
-
* If logs are provided in the optional `params` argument, then those logs will be used instead of fetched with the configured client.
|
|
122
|
-
*
|
|
123
|
-
* @public
|
|
124
|
-
* @async
|
|
125
|
-
* @param {ActionStep} actionStep
|
|
126
|
-
* @param {?GetLogsParams<Abi, ContractEventName<Abi>> & {
|
|
127
|
-
* knownEvents?: Record<Hex, AbiEvent>;
|
|
128
|
-
* logs?: Log[];
|
|
129
|
-
* }} [params]
|
|
130
|
-
* @returns {Promise<boolean>}
|
|
131
|
-
*/
|
|
132
|
-
async isActionStepValid(f, b) {
|
|
133
|
-
const e = f.actionParameter, t = f.signature;
|
|
134
|
-
let a;
|
|
135
|
-
if (b != null && b.knownEvents ? a = b.knownEvents[t] : a = w.abi[t], !a)
|
|
136
|
-
throw new Error(`No known ABI for given event signature: ${t}`);
|
|
137
|
-
const d = f.targetContract, c = (b == null ? void 0 : b.logs) || await T(this._config.getClient({ chainId: b == null ? void 0 : b.chainId }), {
|
|
138
|
-
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
139
|
-
...b,
|
|
140
|
-
address: d,
|
|
141
|
-
event: a
|
|
142
|
-
});
|
|
143
|
-
if (!c.length)
|
|
144
|
-
return !1;
|
|
145
|
-
for (let s of c)
|
|
146
|
-
if (!await this.validateLogAgainstCriteria(e, s))
|
|
147
|
-
return !1;
|
|
148
|
-
return !0;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Validates a {@link Log} against a given criteria.
|
|
152
|
-
*
|
|
153
|
-
* @param {Criteria} criteria - The criteria to validate against.
|
|
154
|
-
* @param {Log} log - The Viem event log.
|
|
155
|
-
* @returns {Promise<boolean>} - Returns true if the log passes the criteria, false otherwise.
|
|
156
|
-
*/
|
|
157
|
-
async validateLogAgainstCriteria(f, b) {
|
|
158
|
-
const e = b.topics.at(f.fieldIndex);
|
|
159
|
-
if (e === void 0)
|
|
160
|
-
throw new v({ log: b, criteria: f, fieldValue: e });
|
|
161
|
-
switch (f.filterType) {
|
|
162
|
-
case n.EQUAL:
|
|
163
|
-
return f.fieldType === i.ADDRESS ? S(
|
|
164
|
-
f.filterData,
|
|
165
|
-
`0x${e.slice(-40)}`
|
|
166
|
-
) : e === f.filterData;
|
|
167
|
-
case n.NOT_EQUAL:
|
|
168
|
-
return e !== f.filterData;
|
|
169
|
-
case n.GREATER_THAN:
|
|
170
|
-
if (f.fieldType === i.UINT)
|
|
171
|
-
return BigInt(e) > BigInt(f.filterData);
|
|
172
|
-
throw new u({ log: b, criteria: f, fieldValue: e });
|
|
173
|
-
case n.LESS_THAN:
|
|
174
|
-
if (f.fieldType === i.UINT)
|
|
175
|
-
return BigInt(e) < BigInt(f.filterData);
|
|
176
|
-
throw new u({ log: b, criteria: f, fieldValue: e });
|
|
177
|
-
case n.CONTAINS:
|
|
178
|
-
if (f.fieldType === i.BYTES || f.fieldType === i.STRING)
|
|
179
|
-
return e.includes(f.filterData);
|
|
180
|
-
throw new I({ log: b, criteria: f, fieldValue: e });
|
|
181
|
-
default:
|
|
182
|
-
throw new C({ log: b, criteria: f, fieldValue: e });
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* @inheritdoc
|
|
187
|
-
*
|
|
188
|
-
* @public
|
|
189
|
-
* @param {?EventActionPayload} [_payload]
|
|
190
|
-
* @param {?DeployableOptions} [_options]
|
|
191
|
-
* @returns {GenericDeployableParams}
|
|
192
|
-
*/
|
|
193
|
-
buildParameters(f, b) {
|
|
194
|
-
const [e, t] = this.validateDeploymentConfig(
|
|
195
|
-
f,
|
|
196
|
-
b
|
|
197
|
-
);
|
|
198
|
-
let a;
|
|
199
|
-
if (B(e)) {
|
|
200
|
-
let d = e.actionSteps.filter((s) => !!s);
|
|
201
|
-
if (d.length === 0)
|
|
202
|
-
throw new N();
|
|
203
|
-
if (d.length > 4)
|
|
204
|
-
throw new D();
|
|
205
|
-
let c = Array.from({ length: 4 }, (s, r) => d.at(r) || d.slice(0, r).at(-1));
|
|
206
|
-
a = {
|
|
207
|
-
actionClaimant: e.actionClaimant,
|
|
208
|
-
actionStepOne: c.at(0),
|
|
209
|
-
actionStepTwo: c.at(1),
|
|
210
|
-
actionStepThree: c.at(2),
|
|
211
|
-
actionStepFour: c.at(3)
|
|
212
|
-
};
|
|
213
|
-
} else
|
|
214
|
-
a = e;
|
|
215
|
-
return {
|
|
216
|
-
abi: l,
|
|
217
|
-
bytecode: R,
|
|
218
|
-
args: [P(a)],
|
|
219
|
-
...this.optionallyAttachAccount(t.account)
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
o.base = "0x1dC0C2B7D910a3D053cab3c5aB8a131d04332Cde", o.registryType = m.ACTION;
|
|
224
|
-
let h = o;
|
|
1
|
+
import "../generated-CKt2yCQd.js";
|
|
2
|
+
import { E as s, F as y, P, S as c, a as l, i as v, p as A } from "../EventAction-C_-hJXWm.js";
|
|
3
|
+
import "@wagmi/core";
|
|
4
|
+
import "viem";
|
|
5
|
+
import "../deployments-oykLv3_Z.js";
|
|
6
|
+
import "../Deployable/DeployableTarget.js";
|
|
7
|
+
import "../errors.js";
|
|
8
|
+
import "../utils.js";
|
|
225
9
|
export {
|
|
226
|
-
|
|
10
|
+
s as EventAction,
|
|
11
|
+
y as FilterType,
|
|
12
|
+
P as PrimitiveType,
|
|
13
|
+
c as SignatureType,
|
|
14
|
+
l as anyActionParameter,
|
|
15
|
+
v as isEventActionPayloadSimple,
|
|
16
|
+
A as prepareEventActionPayload
|
|
227
17
|
};
|
|
228
18
|
//# sourceMappingURL=EventAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventAction.js","sources":["../../src/Actions/EventAction.ts"],"sourcesContent":["import {\n eventActionAbi,\n readEventActionGetActionClaimant,\n readEventActionGetActionSteps,\n simulateEventActionExecute,\n writeEventActionExecute,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/actions/EventAction.sol/EventAction.json';\nimport events from '@boostxyz/signatures/events';\nimport {\n type Abi,\n type AbiEvent,\n type Address,\n type ContractEventName,\n type Hex,\n type Log,\n isAddressEqual,\n} from 'viem';\nimport { getLogs } from 'viem/actions';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport {\n FieldValueNotComparableError,\n FieldValueUndefinedError,\n InvalidNumericalCriteriaError,\n NoEventActionStepsProvidedError,\n TooManyEventActionStepsProvidedError,\n UnrecognizedFilterTypeError,\n} from '../errors';\nimport {\n type ActionClaimant,\n type ActionStep,\n type Criteria,\n type EventActionPayload,\n type EventActionPayloadRaw,\n FilterType,\n type GetLogsParams,\n PrimitiveType,\n type ReadParams,\n RegistryType,\n type WriteParams,\n dedupeActionSteps,\n isEventActionPayloadSimple,\n prepareEventActionPayload,\n} from '../utils';\nimport type { SignatureType } from './../utils';\n\nexport type {\n EventActionPayload,\n ActionStep,\n ActionClaimant,\n SignatureType,\n FilterType,\n PrimitiveType,\n};\n\n/**\n * A generic event action\n *\n * @export\n * @class EventAction\n * @typedef {EventAction}\n * @extends {DeployableTarget<EventActionPayload>}\n */\nexport class EventAction extends DeployableTarget<\n EventActionPayload,\n typeof eventActionAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = eventActionAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Address}\n */\n public static override base: Address = import.meta.env.VITE_EVENT_ACTION_BASE;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.ACTION;\n\n /**\n * Gets a specific action event by index\n *\n * @public\n * @async\n * @param {number} index The index of the action event to retrieve\n * @param {?ReadParams<typeof eventActionAbi, 'getActionStep'>} [params]\n * @returns {Promise<ActionStep>}\n */\n public async getActionStep(\n index: number,\n params?: ReadParams<typeof eventActionAbi, 'getActionStep'>,\n ) {\n const steps = await this.getActionSteps(params);\n return steps.at(index);\n }\n\n /**\n * Gets all action events\n *\n * @public\n * @async\n * @param {?ReadParams<typeof eventActionAbi, 'getActionSteps'>} [params]\n * @returns {Promise<ActionStep[]>}\n */\n public async getActionSteps(\n params?: ReadParams<typeof eventActionAbi, 'getActionSteps'>,\n ) {\n const steps = (await readEventActionGetActionSteps(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 })) as ActionStep[];\n return dedupeActionSteps(steps);\n }\n\n /**\n * Gets the count of action events\n *\n * @public\n * @async\n * @param {?ReadParams<typeof eventActionAbi, 'getActionStepsCount'>} [params]\n * @returns {Promise<bigint>}\n */\n public async getActionStepsCount(\n params?: ReadParams<typeof eventActionAbi, 'getActionStepsCount'>,\n ) {\n const steps = await this.getActionSteps(params);\n return steps.length;\n }\n\n /**\n * Retrieves the payload describing how claimants can be identified from logs or function calls.\n *\n * @public\n * @async\n * @param {?ReadParams<typeof eventActionAbi, 'getActionClaimant'>} [params]\n * @returns {Promise<ActionClaimant>}\n */\n public async getActionClaimant(\n params?: ReadParams<typeof eventActionAbi, 'getActionClaimant'>,\n ) {\n return readEventActionGetActionClaimant(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 }) as Promise<ActionClaimant>;\n }\n\n /**\n * Executes a prepared event action\n *\n * @public\n * @async\n * @param {Hex} data\n * @param {?WriteParams<typeof eventActionAbi, 'execute'>} [params]\n * @returns {Promise<readonly [boolean, `0x${string}`]>}\n */\n public async execute(\n data: Hex,\n params?: WriteParams<typeof eventActionAbi, 'execute'>,\n ) {\n return this.awaitResult(this.executeRaw(data, params));\n }\n\n /**\n * Executes a prepared event action\n *\n * @public\n * @async\n * @param {Hex} data\n * @param {?WriteParams<typeof eventActionAbi, 'execute'>} [params]\n * @returns {unknown}\n */\n public async executeRaw(\n data: Hex,\n params?: WriteParams<typeof eventActionAbi, 'execute'>,\n ) {\n const { request, result } = await simulateEventActionExecute(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 args: [data],\n });\n const hash = await writeEventActionExecute(this._config, request);\n return { hash, result };\n }\n\n /**\n * Retrieves action steps, and uses them to validate against, and optionally fetch logs that match the step's signature.\n * If logs are provided in the optional `params` argument, then those logs will be used instead of fetched with the configured client.\n *\n * @public\n * @async\n * @param {?ReadParams<typeof eventActionAbi, 'getActionSteps'> &\n * GetLogsParams<Abi, ContractEventName<Abi>> & {\n * knownEvents?: Record<Hex, AbiEvent>;\n * logs?: Log[];\n * }} [params]\n * @returns {Promise<boolean>}\n */\n public async validateActionSteps(\n params?: ReadParams<typeof eventActionAbi, 'getActionSteps'> &\n GetLogsParams<Abi, ContractEventName<Abi>> & {\n knownEvents?: Record<Hex, AbiEvent>;\n logs?: Log[];\n },\n ) {\n const actionSteps = await this.getActionSteps(params);\n for (const actionStep of actionSteps) {\n if (!(await this.isActionStepValid(actionStep, params))) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Validates a single action step with a given criteria against logs.\n * If logs are provided in the optional `params` argument, then those logs will be used instead of fetched with the configured client.\n *\n * @public\n * @async\n * @param {ActionStep} actionStep\n * @param {?GetLogsParams<Abi, ContractEventName<Abi>> & {\n * knownEvents?: Record<Hex, AbiEvent>;\n * logs?: Log[];\n * }} [params]\n * @returns {Promise<boolean>}\n */\n public async isActionStepValid(\n actionStep: ActionStep,\n params?: GetLogsParams<Abi, ContractEventName<Abi>> & {\n knownEvents?: Record<Hex, AbiEvent>;\n logs?: Log[];\n },\n ) {\n const criteria = actionStep.actionParameter;\n const signature = actionStep.signature;\n let event: AbiEvent;\n // Lookup ABI based on event signature\n if (params?.knownEvents) {\n event = params.knownEvents[signature] as AbiEvent;\n } else {\n event = (events.abi as Record<Hex, AbiEvent>)[signature] as AbiEvent;\n }\n if (!event) {\n throw new Error(`No known ABI for given event signature: ${signature}`);\n }\n const targetContract = actionStep.targetContract;\n // Get all logs matching the event signature from the target contract\n const logs =\n params?.logs ||\n (await getLogs(this._config.getClient({ chainId: params?.chainId }), {\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n ...(params as any),\n address: targetContract,\n event,\n }));\n if (!logs.length) return false;\n for (let log of logs) {\n if (!(await this.validateLogAgainstCriteria(criteria, log))) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Validates a {@link Log} against a given criteria.\n *\n * @param {Criteria} criteria - The criteria to validate against.\n * @param {Log} log - The Viem event log.\n * @returns {Promise<boolean>} - Returns true if the log passes the criteria, false otherwise.\n */\n public async validateLogAgainstCriteria(criteria: Criteria, log: Log) {\n const fieldValue = log.topics.at(criteria.fieldIndex);\n if (fieldValue === undefined) {\n throw new FieldValueUndefinedError({ log, criteria, fieldValue });\n }\n // Type narrow based on criteria.filterType\n switch (criteria.filterType) {\n case FilterType.EQUAL:\n if (criteria.fieldType === PrimitiveType.ADDRESS) {\n return isAddressEqual(\n criteria.filterData,\n `0x${fieldValue.slice(-40)}`,\n );\n }\n return fieldValue === criteria.filterData;\n\n case FilterType.NOT_EQUAL:\n return fieldValue !== criteria.filterData;\n\n case FilterType.GREATER_THAN:\n if (criteria.fieldType === PrimitiveType.UINT) {\n return BigInt(fieldValue) > BigInt(criteria.filterData);\n }\n throw new InvalidNumericalCriteriaError({ log, criteria, fieldValue });\n\n case FilterType.LESS_THAN:\n if (criteria.fieldType === PrimitiveType.UINT) {\n return BigInt(fieldValue) < BigInt(criteria.filterData);\n }\n throw new InvalidNumericalCriteriaError({ log, criteria, fieldValue });\n\n case FilterType.CONTAINS:\n if (\n criteria.fieldType === PrimitiveType.BYTES ||\n criteria.fieldType === PrimitiveType.STRING\n ) {\n return fieldValue.includes(criteria.filterData);\n }\n throw new FieldValueNotComparableError({ log, criteria, fieldValue });\n\n default:\n throw new UnrecognizedFilterTypeError({ log, criteria, fieldValue });\n }\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?EventActionPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: EventActionPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n let rawPayload: EventActionPayloadRaw;\n if (isEventActionPayloadSimple(payload)) {\n // filter out any falsy potential values\n let tmpSteps = payload.actionSteps.filter((step) => !!step);\n if (tmpSteps.length === 0) {\n throw new NoEventActionStepsProvidedError();\n }\n if (tmpSteps.length > 4) {\n throw new TooManyEventActionStepsProvidedError();\n }\n let steps: ActionStep[] = Array.from({ length: 4 }, (_, i) => {\n // use either the provided step at the given index, or reuse the previous step\n // should aways exist\n return tmpSteps.at(i)! || tmpSteps.slice(0, i).at(-1)!;\n });\n rawPayload = {\n actionClaimant: payload.actionClaimant,\n actionStepOne: steps.at(0)!,\n actionStepTwo: steps.at(1)!,\n actionStepThree: steps.at(2)!,\n actionStepFour: steps.at(3)!,\n };\n } else {\n rawPayload = payload;\n }\n return {\n abi: eventActionAbi,\n bytecode: bytecode as Hex,\n args: [prepareEventActionPayload(rawPayload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n"],"names":["_EventAction","DeployableTarget","eventActionAbi","index","params","steps","readEventActionGetActionSteps","dedupeActionSteps","readEventActionGetActionClaimant","data","request","result","simulateEventActionExecute","writeEventActionExecute","actionSteps","actionStep","criteria","signature","event","events","targetContract","logs","getLogs","log","fieldValue","FieldValueUndefinedError","FilterType","PrimitiveType","isAddressEqual","InvalidNumericalCriteriaError","FieldValueNotComparableError","UnrecognizedFilterTypeError","_payload","_options","payload","options","rawPayload","isEventActionPayloadSimple","tmpSteps","step","NoEventActionStepsProvidedError","TooManyEventActionStepsProvidedError","_","i","bytecode","prepareEventActionPayload","RegistryType","EventAction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventAction.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../generated-CyTNlOwM.cjs"),l=require("../componentInterfaces-DRI_dQ-P.cjs"),p=require("@wagmi/core"),m=require("../errors.cjs"),e=require("../SimpleDenyList-BUR17Tt1.cjs"),d=require("viem"),c=require("./SimpleAllowList.cjs"),y=s.g;class L extends e.SimpleDenyList{buildParameters(n,t){const[i,a]=this.validateDeploymentConfig({},t);return{abi:y,bytecode:e.bytecode,args:[e.prepareSimpleDenyListPayload({owner:d.zeroAddress,denied:[]})],...this.optionallyAttachAccount(a.account)}}}const r={[l.ASimpleAllowList]:c.SimpleAllowList,[l.ASimpleDenyList]:e.SimpleDenyList};async function A(o,n){const t=await p.readContract(o.config,{abi:s.M,functionName:"getComponentInterface",address:n}),i=r[t];if(!i)throw new m.InvalidComponentInterfaceError(Object.keys(r),t);return new i(o,n)}exports.SimpleDenyList=e.SimpleDenyList;exports.SimpleAllowList=c.SimpleAllowList;exports.AllowListByComponentInterface=r;exports.OpenAllowList=L;exports.allowListFromAddress=A;
|
|
2
2
|
//# sourceMappingURL=AllowList.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllowList.cjs","sources":["../../src/AllowLists/AllowList.ts"],"sourcesContent":["import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList = SimpleAllowList | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x2bc9016b\": SimpleAllowList; \"0x9d585f63\": SimpleDenyList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"AllowList.cjs","sources":["../../src/AllowLists/OpenAllowList.ts","../../src/AllowLists/AllowList.ts"],"sourcesContent":["import { simpleDenyListAbi } from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.json';\nimport { type Hex, zeroAddress } from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n prepareSimpleDenyListPayload,\n} from './SimpleDenyList';\n\nexport const openAllowListAbi = simpleDenyListAbi;\n\n/**\n * A simple AllowList, extending {@link DenyList}, that is ownerless and allows anyone to claim.\n *\n * @export\n * @class OpenAllowList\n * @typedef {OpenAllowList}\n * @extends {DeployableTarget<OpenAllowListPayload>}\n */\nexport class OpenAllowList extends SimpleDenyList<undefined> {\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleDenyListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [_, options] = this.validateDeploymentConfig({}, _options);\n return {\n abi: openAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload({ owner: zeroAddress, denied: [] })],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n","import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport { OpenAllowList } from './OpenAllowList';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { OpenAllowList, SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList = OpenAllowList | SimpleAllowList | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x2bc9016b\": SimpleAllowList; \"0x9d585f63\": SimpleDenyList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n * This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address) as SimpleDenyList | SimpleAllowList;\n}\n"],"names":["openAllowListAbi","simpleDenyListAbi","OpenAllowList","SimpleDenyList","_payload","_options","_","options","bytecode","prepareSimpleDenyListPayload","zeroAddress","AllowListByComponentInterface","ASimpleAllowList","SimpleAllowList","ASimpleDenyList","allowListFromAddress","address","interfaceId","readContract","aAllowListAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"mUAaaA,EAAmBC,EAAAA,EAUzB,MAAMC,UAAsBC,EAAAA,cAA0B,CAS3C,gBACdC,EACAC,EACyB,CACnB,KAAA,CAACC,EAAGC,CAAO,EAAI,KAAK,yBAAyB,CAAA,EAAIF,CAAQ,EACxD,MAAA,CACL,IAAKL,EAAA,SACLQ,EAAA,SACA,KAAM,CAACC,EAAAA,6BAA6B,CAAE,MAAOC,EAAAA,YAAa,OAAQ,CAAG,CAAA,CAAC,CAAC,EACvE,GAAG,KAAK,wBAAwBH,EAAQ,OAAO,CAAA,CAEnD,CACF,CChBO,MAAMI,EAAgC,CAC3C,CAACC,EAAuB,gBAAA,EAAGC,EAAA,gBAC3B,CAACC,EAAsB,eAAA,EAAGX,EAAA,cAC5B,EAasB,eAAAY,EACpBR,EACAS,EACA,CACA,MAAMC,EAAe,MAAMC,eAAaX,EAAQ,OAAQ,CACtD,IAAKY,EAAA,EACL,aAAc,wBACd,QAAAH,CAAA,CACD,EACKI,EAAOT,EAA8BM,CAAW,EACtD,GAAI,CAACG,EACH,MAAM,IAAIC,EAAA,+BACR,OAAO,KAAKV,CAA6B,EACzCM,CAAA,EAGG,OAAA,IAAIG,EAAKb,EAASS,CAAO,CAClC"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import type { Address } from 'viem';
|
|
2
2
|
import type { DeployableOptions } from '../Deployable/Deployable';
|
|
3
|
+
import { OpenAllowList } from './OpenAllowList';
|
|
3
4
|
import { SimpleAllowList } from './SimpleAllowList';
|
|
4
5
|
import { SimpleDenyList } from './SimpleDenyList';
|
|
5
|
-
export { SimpleAllowList, SimpleDenyList };
|
|
6
|
+
export { OpenAllowList, SimpleAllowList, SimpleDenyList };
|
|
6
7
|
/**
|
|
7
8
|
* A union type representing all valid protocol AllowList implementations
|
|
8
9
|
*
|
|
9
10
|
* @export
|
|
10
11
|
* @typedef {AllowList}
|
|
11
12
|
*/
|
|
12
|
-
export type AllowList = SimpleAllowList | SimpleDenyList;
|
|
13
|
+
export type AllowList = OpenAllowList | SimpleAllowList | SimpleDenyList;
|
|
13
14
|
/**
|
|
14
15
|
* A map of AllowList component interfaces to their constructors.
|
|
15
16
|
*
|
|
16
17
|
* @type {{ "0x2bc9016b": SimpleAllowList; "0x9d585f63": SimpleDenyList; }}
|
|
17
18
|
*/
|
|
18
19
|
export declare const AllowListByComponentInterface: {
|
|
19
|
-
[x: string]: typeof
|
|
20
|
+
[x: string]: typeof SimpleDenyList | typeof SimpleAllowList;
|
|
20
21
|
};
|
|
21
22
|
/**
|
|
22
23
|
* A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.
|
|
24
|
+
* This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}
|
|
23
25
|
*
|
|
24
26
|
* @export
|
|
25
27
|
* @async
|
|
@@ -28,5 +30,5 @@ export declare const AllowListByComponentInterface: {
|
|
|
28
30
|
* @returns {Promise<SimpleAllowList | SimpleDenyList>}
|
|
29
31
|
* @throws {@link InvalidComponentInterfaceError}
|
|
30
32
|
*/
|
|
31
|
-
export declare function allowListFromAddress(options: DeployableOptions, address: Address): Promise<SimpleAllowList | SimpleDenyList
|
|
33
|
+
export declare function allowListFromAddress(options: DeployableOptions, address: Address): Promise<SimpleAllowList | SimpleDenyList<import("./SimpleDenyList").SimpleDenyListPayload>>;
|
|
32
34
|
//# sourceMappingURL=AllowList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllowList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/AllowList.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AllowList.d.ts","sourceRoot":"","sources":["../../src/AllowLists/AllowList.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,6BAA6B;;CAGzC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,OAAO,+FAejB"}
|
|
@@ -1,30 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { readContract as
|
|
4
|
-
import { InvalidComponentInterfaceError as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { g as s, M as l } from "../generated-CKt2yCQd.js";
|
|
2
|
+
import { c as m, d as p } from "../componentInterfaces-BBCFkrZv.js";
|
|
3
|
+
import { readContract as c } from "@wagmi/core";
|
|
4
|
+
import { InvalidComponentInterfaceError as f } from "../errors.js";
|
|
5
|
+
import { S as i, b as d, p as A } from "../SimpleDenyList-CGaWjuld.js";
|
|
6
|
+
import { zeroAddress as w } from "viem";
|
|
7
|
+
import { SimpleAllowList as y } from "./SimpleAllowList.js";
|
|
8
|
+
const L = s;
|
|
9
|
+
class D extends i {
|
|
10
|
+
/**
|
|
11
|
+
* @inheritdoc
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
* @param {?SimpleDenyListPayload} [_payload]
|
|
15
|
+
* @param {?DeployableOptions} [_options]
|
|
16
|
+
* @returns {GenericDeployableParams}
|
|
17
|
+
*/
|
|
18
|
+
buildParameters(e, o) {
|
|
19
|
+
const [n, a] = this.validateDeploymentConfig({}, o);
|
|
20
|
+
return {
|
|
21
|
+
abi: L,
|
|
22
|
+
bytecode: d,
|
|
23
|
+
args: [A({ owner: w, denied: [] })],
|
|
24
|
+
...this.optionallyAttachAccount(a.account)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const r = {
|
|
29
|
+
[m]: y,
|
|
30
|
+
[p]: i
|
|
10
31
|
};
|
|
11
|
-
async function
|
|
12
|
-
const
|
|
13
|
-
abi:
|
|
32
|
+
async function v(t, e) {
|
|
33
|
+
const o = await c(t.config, {
|
|
34
|
+
abi: l,
|
|
14
35
|
functionName: "getComponentInterface",
|
|
15
|
-
address:
|
|
16
|
-
}),
|
|
17
|
-
if (!
|
|
18
|
-
throw new
|
|
19
|
-
Object.keys(
|
|
20
|
-
|
|
36
|
+
address: e
|
|
37
|
+
}), n = r[o];
|
|
38
|
+
if (!n)
|
|
39
|
+
throw new f(
|
|
40
|
+
Object.keys(r),
|
|
41
|
+
o
|
|
21
42
|
);
|
|
22
|
-
return new
|
|
43
|
+
return new n(t, e);
|
|
23
44
|
}
|
|
24
45
|
export {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
46
|
+
r as AllowListByComponentInterface,
|
|
47
|
+
D as OpenAllowList,
|
|
48
|
+
y as SimpleAllowList,
|
|
49
|
+
i as SimpleDenyList,
|
|
50
|
+
v as allowListFromAddress
|
|
29
51
|
};
|
|
30
52
|
//# sourceMappingURL=AllowList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllowList.js","sources":["../../src/AllowLists/AllowList.ts"],"sourcesContent":["import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList = SimpleAllowList | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x2bc9016b\": SimpleAllowList; \"0x9d585f63\": SimpleDenyList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"AllowList.js","sources":["../../src/AllowLists/OpenAllowList.ts","../../src/AllowLists/AllowList.ts"],"sourcesContent":["import { simpleDenyListAbi } from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/allowlists/SimpleDenyList.sol/SimpleDenyList.json';\nimport { type Hex, zeroAddress } from 'viem';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport {\n SimpleDenyList,\n type SimpleDenyListPayload,\n prepareSimpleDenyListPayload,\n} from './SimpleDenyList';\n\nexport const openAllowListAbi = simpleDenyListAbi;\n\n/**\n * A simple AllowList, extending {@link DenyList}, that is ownerless and allows anyone to claim.\n *\n * @export\n * @class OpenAllowList\n * @typedef {OpenAllowList}\n * @extends {DeployableTarget<OpenAllowListPayload>}\n */\nexport class OpenAllowList extends SimpleDenyList<undefined> {\n /**\n * @inheritdoc\n *\n * @public\n * @param {?SimpleDenyListPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: SimpleDenyListPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [_, options] = this.validateDeploymentConfig({}, _options);\n return {\n abi: openAllowListAbi,\n bytecode: bytecode as Hex,\n args: [prepareSimpleDenyListPayload({ owner: zeroAddress, denied: [] })],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n","import { aAllowListAbi } from '@boostxyz/evm';\nimport {\n ASimpleAllowList,\n ASimpleDenyList,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport { OpenAllowList } from './OpenAllowList';\nimport { SimpleAllowList } from './SimpleAllowList';\nimport { SimpleDenyList } from './SimpleDenyList';\n\nexport { OpenAllowList, SimpleAllowList, SimpleDenyList };\n\n/**\n * A union type representing all valid protocol AllowList implementations\n *\n * @export\n * @typedef {AllowList}\n */\nexport type AllowList = OpenAllowList | SimpleAllowList | SimpleDenyList;\n\n/**\n * A map of AllowList component interfaces to their constructors.\n *\n * @type {{ \"0x2bc9016b\": SimpleAllowList; \"0x9d585f63\": SimpleDenyList; }}\n */\nexport const AllowListByComponentInterface = {\n [ASimpleAllowList as Hex]: SimpleAllowList,\n [ASimpleDenyList as Hex]: SimpleDenyList,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n * This function will never return an instance of {@link OpenAllowList} because it has the same component interface as {@link SimpleDenyList}\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Promise<SimpleAllowList | SimpleDenyList>}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function allowListFromAddress(\n options: DeployableOptions,\n address: Address,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aAllowListAbi,\n functionName: 'getComponentInterface',\n address,\n })) as keyof typeof AllowListByComponentInterface;\n const Ctor = AllowListByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(AllowListByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address) as SimpleDenyList | SimpleAllowList;\n}\n"],"names":["openAllowListAbi","simpleDenyListAbi","OpenAllowList","SimpleDenyList","_payload","_options","_","options","bytecode","prepareSimpleDenyListPayload","zeroAddress","AllowListByComponentInterface","ASimpleAllowList","SimpleAllowList","ASimpleDenyList","allowListFromAddress","address","interfaceId","readContract","aAllowListAbi","Ctor","InvalidComponentInterfaceError"],"mappings":";;;;;;;AAaO,MAAMA,IAAmBC;AAUzB,MAAMC,UAAsBC,EAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS3C,gBACdC,GACAC,GACyB;AACnB,UAAA,CAACC,GAAGC,CAAO,IAAI,KAAK,yBAAyB,CAAA,GAAIF,CAAQ;AACxD,WAAA;AAAA,MACL,KAAKL;AAAA,MACL,UAAAQ;AAAA,MACA,MAAM,CAACC,EAA6B,EAAE,OAAOC,GAAa,QAAQ,CAAG,EAAA,CAAC,CAAC;AAAA,MACvE,GAAG,KAAK,wBAAwBH,EAAQ,OAAO;AAAA,IAAA;AAAA,EAEnD;AACF;AChBO,MAAMI,IAAgC;AAAA,EAC3C,CAACC,CAAuB,GAAGC;AAAA,EAC3B,CAACC,CAAsB,GAAGX;AAC5B;AAasB,eAAAY,EACpBR,GACAS,GACA;AACA,QAAMC,IAAe,MAAMC,EAAaX,EAAQ,QAAQ;AAAA,IACtD,KAAKY;AAAAA,IACL,cAAc;AAAA,IACd,SAAAH;AAAA,EAAA,CACD,GACKI,IAAOT,EAA8BM,CAAW;AACtD,MAAI,CAACG;AACH,UAAM,IAAIC;AAAA,MACR,OAAO,KAAKV,CAA6B;AAAA,MACzCM;AAAA,IAAA;AAGG,SAAA,IAAIG,EAAKb,GAASS,CAAO;AAClC;"}
|