@boostxyz/sdk 0.0.0-alpha.16 → 0.0.0-alpha.18
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 +9 -9
- package/dist/Actions/ContractAction.d.ts.map +1 -1
- package/dist/Actions/ERC721MintAction.d.ts +12 -12
- 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 +32 -49
- package/dist/Actions/EventAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.js +13 -779
- 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.js +3 -3
- package/dist/AllowLists/OpenAllowList.d.ts +183 -0
- package/dist/AllowLists/OpenAllowList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.cjs.map +1 -1
- package/dist/AllowLists/SimpleAllowList.d.ts +82 -36
- package/dist/AllowLists/SimpleAllowList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleAllowList.js +44 -80
- package/dist/AllowLists/SimpleAllowList.js.map +1 -1
- package/dist/AllowLists/SimpleDenyList.cjs +1 -1
- package/dist/AllowLists/SimpleDenyList.d.ts +192 -9
- package/dist/AllowLists/SimpleDenyList.d.ts.map +1 -1
- package/dist/AllowLists/SimpleDenyList.js +5 -5
- package/dist/Auth/PassthroughAuth.cjs +1 -1
- package/dist/Auth/PassthroughAuth.js +1 -1
- package/dist/Boost.cjs.map +1 -1
- package/dist/Boost.d.ts +18 -0
- package/dist/Boost.d.ts.map +1 -1
- package/dist/Boost.js.map +1 -1
- package/dist/BoostCore-BiPwp6SR.cjs +3 -0
- package/dist/BoostCore-BiPwp6SR.cjs.map +1 -0
- package/dist/BoostCore-C00iqvks.js +1477 -0
- package/dist/BoostCore-C00iqvks.js.map +1 -0
- package/dist/BoostCore.cjs +1 -2
- package/dist/BoostCore.cjs.map +1 -1
- package/dist/BoostCore.d.ts +80 -35
- package/dist/BoostCore.d.ts.map +1 -1
- package/dist/BoostCore.js +29 -1273
- 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 +18 -18
- package/dist/BoostRegistry.js +36 -36
- 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 +24 -174
- package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
- package/dist/Budgets/ManagedBudget.js +76 -298
- package/dist/Budgets/ManagedBudget.js.map +1 -1
- package/dist/Budgets/VestingBudget.d.ts +181 -77
- 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 +4 -5
- 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.js +1 -1
- 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 +5 -5
- package/dist/Deployable/DeployableTarget.js +10 -10
- 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-BO5WI_5s.js +1355 -0
- package/dist/EventAction-BO5WI_5s.js.map +1 -0
- package/dist/EventAction-DBDRaG4A.cjs +2 -0
- package/dist/EventAction-DBDRaG4A.cjs.map +1 -0
- package/dist/{Incentive-CtuAJAjG.js → Incentive-CF7kaz_9.js} +67 -68
- package/dist/Incentive-CF7kaz_9.js.map +1 -0
- package/dist/{Incentive-CqX3fYEd.cjs → Incentive-Djnzseoj.cjs} +2 -2
- package/dist/Incentive-Djnzseoj.cjs.map +1 -0
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.d.ts +12 -12
- package/dist/Incentives/AllowListIncentive.js +26 -26
- 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 +15 -15
- package/dist/Incentives/CGDAIncentive.js +25 -25
- package/dist/Incentives/CGDAIncentive.js.map +1 -1
- package/dist/Incentives/ERC1155Incentive.d.ts +30 -30
- package/dist/Incentives/ERC20Incentive.cjs +1 -1
- package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
- package/dist/Incentives/ERC20Incentive.d.ts +23 -23
- package/dist/Incentives/ERC20Incentive.js +45 -45
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +523 -0
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -0
- package/dist/Incentives/ERC20VariableIncentive.d.ts +19 -19
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.d.ts +3 -3
- package/dist/Incentives/Incentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.js +3 -3
- package/dist/Incentives/PointsIncentive.cjs +1 -1
- package/dist/Incentives/PointsIncentive.cjs.map +1 -1
- package/dist/Incentives/PointsIncentive.d.ts +14 -14
- package/dist/Incentives/PointsIncentive.js +20 -20
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/SimpleDenyList-BwfNjRsg.cjs +2 -0
- package/dist/SimpleDenyList-BwfNjRsg.cjs.map +1 -0
- package/dist/SimpleDenyList-D9i4rw_F.js +132 -0
- package/dist/SimpleDenyList-D9i4rw_F.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 +14 -14
- package/dist/Validators/SignerValidator.js +25 -25
- 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 +6 -6
- package/dist/Validators/Validator.js.map +1 -1
- package/dist/claiming.cjs.map +1 -1
- package/dist/claiming.d.ts +1 -1
- package/dist/claiming.js.map +1 -1
- package/dist/componentInterfaces-D09mhzxO.cjs +2 -0
- package/dist/componentInterfaces-D09mhzxO.cjs.map +1 -0
- package/dist/componentInterfaces-RXBMI5yH.js +14 -0
- package/dist/componentInterfaces-RXBMI5yH.js.map +1 -0
- package/dist/deployments-BM42vImE.js +43 -0
- package/dist/deployments-BM42vImE.js.map +1 -0
- package/dist/deployments-CMdF5uEC.cjs +2 -0
- package/dist/deployments-CMdF5uEC.cjs.map +1 -0
- package/dist/deployments.json +15 -12
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +132 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +122 -36
- package/dist/errors.js.map +1 -1
- package/dist/generated-B0tk-c9b.cjs +3 -0
- package/dist/generated-B0tk-c9b.cjs.map +1 -0
- package/dist/{generated-DLMdMwD1.js → generated-B8VWObPa.js} +2350 -1290
- package/dist/generated-B8VWObPa.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +134 -122
- package/dist/index.js.map +1 -1
- package/dist/transfers.cjs.map +1 -1
- package/dist/transfers.d.ts +1 -1
- package/dist/transfers.js.map +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +12 -5
- package/src/Actions/ContractAction.ts +9 -10
- package/src/Actions/ERC721MintAction.ts +12 -13
- package/src/Actions/EventAction.test.ts +182 -53
- package/src/Actions/EventAction.ts +128 -107
- package/src/AllowLists/SimpleAllowList.ts +14 -59
- package/src/AllowLists/SimpleDenyList.ts +12 -9
- package/src/Boost.ts +19 -0
- package/src/BoostCore.test.ts +117 -1
- package/src/BoostCore.ts +113 -54
- package/src/BoostRegistry.ts +18 -18
- package/src/Budgets/Budget.ts +1 -2
- package/src/Budgets/ManagedBudget.ts +21 -295
- package/src/Budgets/VestingBudget.ts +26 -97
- package/src/Deployable/Contract.ts +4 -5
- package/src/Deployable/Deployable.ts +1 -1
- package/src/Deployable/DeployableTarget.ts +5 -5
- package/src/Deployable/DeployableTargetWithRBAC.ts +323 -0
- package/src/Incentives/AllowListIncentive.ts +12 -12
- package/src/Incentives/CGDAIncentive.ts +15 -15
- package/src/Incentives/ERC1155Incentive.ts +26 -26
- package/src/Incentives/ERC20Incentive.ts +23 -23
- package/src/Incentives/ERC20VariableCriteriaIncentive.test.ts +184 -0
- package/src/Incentives/ERC20VariableCriteriaIncentive.ts +309 -0
- package/src/Incentives/ERC20VariableIncentive.ts +19 -19
- package/src/Incentives/Incentive.ts +6 -5
- package/src/Incentives/PointsIncentive.test.ts +21 -21
- package/src/Incentives/PointsIncentive.ts +14 -14
- package/src/Validators/SignerValidator.ts +14 -14
- package/src/Validators/Validator.ts +1 -1
- package/src/claiming.ts +1 -1
- package/src/errors.ts +165 -0
- package/src/index.test.ts +3 -4
- package/src/index.ts +2 -0
- package/src/transfers.ts +1 -1
- package/src/utils.ts +1 -1
- package/dist/Budgets/SimpleBudget.d.ts +0 -824
- package/dist/Budgets/SimpleBudget.d.ts.map +0 -1
- package/dist/Incentive-CqX3fYEd.cjs.map +0 -1
- package/dist/Incentive-CtuAJAjG.js.map +0 -1
- package/dist/SimpleDenyList-9UIxZZKP.cjs +0 -2
- package/dist/SimpleDenyList-9UIxZZKP.cjs.map +0 -1
- package/dist/SimpleDenyList-DGPNc7ov.js +0 -132
- package/dist/SimpleDenyList-DGPNc7ov.js.map +0 -1
- package/dist/componentInterfaces-CKCBwG16.cjs +0 -2
- package/dist/componentInterfaces-CKCBwG16.cjs.map +0 -1
- package/dist/componentInterfaces-Cmg8tUxq.js +0 -13
- package/dist/componentInterfaces-Cmg8tUxq.js.map +0 -1
- package/dist/deployments-BvFcK_eR.js +0 -40
- package/dist/deployments-BvFcK_eR.js.map +0 -1
- package/dist/deployments-Ho4PnGCS.cjs +0 -2
- package/dist/deployments-Ho4PnGCS.cjs.map +0 -1
- package/dist/generated-BLg7yPgI.cjs +0 -3
- package/dist/generated-BLg7yPgI.cjs.map +0 -1
- package/dist/generated-DLMdMwD1.js.map +0 -1
- package/src/Budgets/SimpleBudget.test.ts +0 -152
- package/src/Budgets/SimpleBudget.ts +0 -563
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedBudget.cjs","sources":["../../src/Budgets/ManagedBudget.ts"],"sourcesContent":["import {\n managedBudgetAbi,\n readManagedBudgetAvailable,\n readManagedBudgetDistributed,\n readManagedBudgetHasAllRoles,\n readManagedBudgetHasAnyRole,\n readManagedBudgetIsAuthorized,\n readManagedBudgetOwner,\n readManagedBudgetRolesOf,\n readManagedBudgetTotal,\n simulateManagedBudgetAllocate,\n simulateManagedBudgetClawback,\n simulateManagedBudgetDisburse,\n simulateManagedBudgetDisburseBatch,\n simulateManagedBudgetGrantRoles,\n simulateManagedBudgetRevokeRoles,\n simulateManagedBudgetSetAuthorized,\n writeManagedBudgetAllocate,\n writeManagedBudgetClawback,\n writeManagedBudgetDisburse,\n writeManagedBudgetDisburseBatch,\n writeManagedBudgetGrantRoles,\n writeManagedBudgetRevokeRoles,\n writeManagedBudgetSetAuthorized,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/budgets/ManagedBudget.sol/ManagedBudget.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ManagedBudget as ManagedBudgetBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport {\n DeployableUnknownOwnerProvidedError,\n UnknownTransferPayloadSupplied,\n} from '../errors';\nimport {\n type ERC1155TransferPayload,\n type FungibleTransferPayload,\n prepareERC1155Transfer,\n prepareFungibleTransfer,\n} from '../transfers';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nexport { managedBudgetAbi };\nexport type { ERC1155TransferPayload, FungibleTransferPayload };\n\n/**\n * The object representation of a `ManagedBudgetPayload.InitPayload`\n *\n * @export\n * @interface ManagedBudgetPayload\n * @typedef {ManagedBudgetPayload}\n */\nexport interface ManagedBudgetPayload {\n /**\n * The budget's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n *\n * @type {Address[]}\n */\n authorized: Address[];\n /**\n * List of roles to assign to the corresponding account by index.\n *\n * @type {ManagedBudgetRoles[]}\n */\n roles: ManagedBudgetRoles[];\n}\n\n/**\n * Enum representing available roles for use in the `ManagedBudget`.\n * `MANAGER` can disburse funds.\n * `ADMIN` can additionally manage authorized users on the budget.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum ManagedBudgetRoles {\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 `ManagedBudget` event types.\n *\n * @export\n * @typedef {ManagedBudgetLog}\n * @template {ContractEventName<typeof managedBudgetAbi>} [event=ContractEventName<\n * typeof managedBudgetAbi\n * >]\n */\nexport type ManagedBudgetLog<\n event extends ContractEventName<typeof managedBudgetAbi> = ContractEventName<\n typeof managedBudgetAbi\n >,\n> = GenericLog<typeof managedBudgetAbi, event>;\n\n/**\n * Typeguard to determine if a transfer payload is a Fungible Transfer\n *\n * @export\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @returns {transfer is FungibleTransferPayload}\n */\nexport function isFungibleTransfer(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n): transfer is FungibleTransferPayload {\n return (transfer as ERC1155TransferPayload).tokenId === undefined;\n}\n\n/**\n * Typeguard to determine if a transfer payload is an ERC1155 Transfer\n *\n * @export\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @returns {transfer is ERC1155TransferPayload}\n */\nexport function isERC1155TransferPayload(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n): transfer is ERC1155TransferPayload {\n return (transfer as ERC1155TransferPayload).tokenId !== undefined;\n}\n\n/**\n * Given either a Fungible transfer, or ERC1155 transfer, will properly encode parameters for transfers, claims, disbursements, allocations, etc.\n *\n * @export\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @returns {*}\n * @throws {@link UnknownTransferPayloadSupplied}\n */\nexport function prepareTransfer(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n) {\n if (isFungibleTransfer(transfer)) {\n return prepareFungibleTransfer(transfer);\n }\n if (isERC1155TransferPayload(transfer)) {\n return prepareERC1155Transfer(transfer);\n }\n throw new UnknownTransferPayloadSupplied(transfer);\n}\n\n/**\n * A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n * This type of budget supports ETH, ERC20, and ERC1155 assets only\n *\n * @export\n * @class ManagedBudget\n * @typedef {ManagedBudget}\n * @extends {DeployableTarget<ManagedBudgetPayload>}\n */\nexport class ManagedBudget extends DeployableTarget<\n ManagedBudgetPayload,\n typeof managedBudgetAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = managedBudgetAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(ManagedBudgetBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.BUDGET;\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams<typeof managedBudgetAbi, 'allocate'>} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocate(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'allocate'>,\n ) {\n return await this.awaitResult(this.allocateRaw(transfer, params));\n }\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams<typeof managedBudgetAbi, 'allocate'>} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocateRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'allocate'>,\n ) {\n const { request, result } = await simulateManagedBudgetAllocate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetAllocate(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams<typeof managedBudgetAbi, 'clawback'>} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawback(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'clawback'>,\n ) {\n return await this.awaitResult(this.clawbackRaw(transfer, params));\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams<typeof managedBudgetAbi, 'clawback'>} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawbackRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'clawback'>,\n ) {\n const { request, result } = await simulateManagedBudgetClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams<typeof managedBudgetAbi, 'disburse'>} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburse(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'disburse'>,\n ) {\n return await this.awaitResult(this.disburseRaw(transfer, params));\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams<typeof managedBudgetAbi, 'disburse'>} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburseRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'disburse'>,\n ) {\n const { request, result } = await simulateManagedBudgetDisburse(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetDisburse(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams<typeof managedBudgetAbi, 'disburseBatch'>} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatch(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams<typeof managedBudgetAbi, 'disburseBatch'>,\n ) {\n return await this.awaitResult(this.disburseBatchRaw(transfers, params));\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams<typeof managedBudgetAbi, 'disburseBatch'>} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatchRaw(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams<typeof managedBudgetAbi, 'disburseBatch'>,\n ) {\n const { request, result } = await simulateManagedBudgetDisburseBatch(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [transfers.map(prepareTransfer)],\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 writeManagedBudgetDisburseBatch(this._config, request);\n return { hash, result };\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<typeof managedBudgetAbi, 'setAuthorized'>} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorized(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof managedBudgetAbi, 'setAuthorized'>,\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<typeof managedBudgetAbi, 'setAuthorized'>} [params]\n * @returns {Promise<void>}\n */\n public async setAuthorizedRaw(\n addresses: Address[],\n allowed: boolean[],\n params?: WriteParams<typeof managedBudgetAbi, 'setAuthorized'>,\n ) {\n const { request, result } = await simulateManagedBudgetSetAuthorized(\n this._config,\n {\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 );\n const hash = await writeManagedBudgetSetAuthorized(this._config, request);\n return { hash, result };\n }\n\n /**\n * Grant many accounts permissions on the budget.\n *\n * @example\n * ```ts\n * await budget.grantRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])\n * ```\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {ManagedBudgetRoles[]} roles\n * @param {?WriteParams<typeof managedBudgetAbi, 'grantRoles'>} [params]\n * @returns {unknown}\n */\n public async grantRoles(\n addresses: Address[],\n roles: ManagedBudgetRoles[],\n params?: WriteParams<typeof managedBudgetAbi, 'grantRoles'>,\n ) {\n return await this.awaitResult(this.grantRolesRaw(addresses, roles, params));\n }\n\n /**\n * Grant many accounts permissions on the budget.\n *\n * @example\n * ```ts\n * await budget.grantRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])\n *\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {ManagedBudgetRoles[]} roles\n * @param {?WriteParams<typeof managedBudgetAbi, 'grantRoles'>} [params]\n * @returns {unknown}\n */\n public async grantRolesRaw(\n addresses: Address[],\n roles: ManagedBudgetRoles[],\n params?: WriteParams<typeof managedBudgetAbi, 'grantRoles'>,\n ) {\n const { request, result } = await simulateManagedBudgetGrantRoles(\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 writeManagedBudgetGrantRoles(\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 budget.\n *\n * @example\n * ```ts\n * await budget.revokeRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])\n *\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {ManagedBudgetRoles[]} roles\n * @param {?WriteParams<typeof managedBudgetAbi, 'revokeRoles'>} [params]\n * @returns {unknown}\n */\n public async revokeRoles(\n addresses: Address[],\n roles: ManagedBudgetRoles[],\n params?: WriteParams<typeof managedBudgetAbi, 'revokeRoles'>,\n ) {\n return await this.awaitResult(\n this.revokeRolesRaw(addresses, roles, params),\n );\n }\n\n /**\n * Revoke many accounts' permissions on the budget.\n *\n * @example\n * ```ts\n * await budget.revokeRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])\n * @public\n * @async\n * @param {Address[]} addresses\n * @param {ManagedBudgetRoles[]} roles\n * @param {?WriteParams<typeof managedBudgetAbi, 'revokeRoles'>} [params]\n * @returns {unknown}\n */\n public async revokeRolesRaw(\n addresses: Address[],\n roles: ManagedBudgetRoles[],\n params?: WriteParams<typeof managedBudgetAbi, 'revokeRoles'>,\n ) {\n const { request, result } = await simulateManagedBudgetRevokeRoles(\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 writeManagedBudgetRevokeRoles(\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 budget.rolesOf(0xfoo)).includes(ManagedBudgetRoles.ADMIN)\n * @public\n * @param {Address} account\n * @param {?ReadParams<typeof managedBudgetAbi, 'rolesOf'>} [params]\n * @returns {Promise<Array<ManagedBudgetRoles>>}\n */\n public async rolesOf(\n account: Address,\n params?: ReadParams<typeof managedBudgetAbi, 'rolesOf'>,\n ) {\n const roles = await readManagedBudgetRolesOf(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 (\n [\n ManagedBudgetRoles.MANAGER,\n ManagedBudgetRoles.ADMIN,\n ] as unknown as Array<bigint>\n ).filter(\n (role) => (roles & role) === role,\n ) as unknown as ManagedBudgetRoles[];\n }\n\n /**\n * Returns whether given account has any of the provided roles bitmap.\n *\n * @example\n * ```ts\n * await budget.hasAnyRole(0xfoo, ManagedBudgetRoles.ADMIN | ManagedBudgetRoles.MANAGER)\n * @public\n * @param {Address} account\n * @param {ManagedBudgetRoles} roles\n * @param {?ReadParams<typeof managedBudgetAbi, 'hasAnyRole'>} [params]\n * @returns {Promise<boolean>}\n */\n public hasAnyRole(\n account: Address,\n roles: ManagedBudgetRoles,\n params?: ReadParams<typeof managedBudgetAbi, 'hasAnyRole'>,\n ) {\n return readManagedBudgetHasAnyRole(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 budget.hasAllRoles(0xfoo, ManagedBudgetRoles.ADMIN & ManagedBudgetRoles.MANAGER)\n *\n * @public\n * @param {Address} account\n * @param {ManagedBudgetRoles} roles\n * @param {?ReadParams<typeof managedBudgetAbi, 'hasAllRoles'>} [params]\n * @returns {*}\n */\n public hasAllRoles(\n account: Address,\n roles: ManagedBudgetRoles,\n params?: ReadParams<typeof managedBudgetAbi, 'hasAllRoles'>,\n ) {\n return readManagedBudgetHasAllRoles(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 budget\n *\n * @public\n * @param {Address} account\n * @param {?ReadParams<typeof managedBudgetAbi, 'isAuthorized'>} [params]\n * @returns {Promise<boolean>} - True if the account is authorized\n */\n public isAuthorized(\n account: Address,\n params?: ReadParams<typeof managedBudgetAbi, 'isAuthorized'>,\n ) {\n return readManagedBudgetIsAuthorized(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 * Get the owner of the budget\n *\n * @public\n * @param {?ReadParams<typeof managedBudgetAbi, 'owner'>} [params]\n * @returns {Promise<Address>}\n */\n public owner(params?: ReadParams<typeof managedBudgetAbi, 'owner'>) {\n return readManagedBudgetOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\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 * Get the total amount of assets allocated to the budget, including any that have been distributed\n * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"] - The address of the asset\n * @param {?(bigint | undefined)} [tokenId] - The ID of the token\n * @param {?ReadParams<typeof managedBudgetAbi, 'total'>} [params]\n * @returns {Promise<bigint>} - The total amount of assets\n */\n public total(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams<typeof managedBudgetAbi, 'total'>,\n ) {\n return readManagedBudgetTotal(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\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 * Get the amount of assets available for distribution from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams<typeof managedBudgetAbi, 'available'>} [params]\n * @returns {Promise<bigint>} - The amount of assets available\n */\n public available(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams<typeof managedBudgetAbi, 'available'>,\n ) {\n return readManagedBudgetAvailable(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\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 * Get the amount of assets that have been distributed from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams<typeof managedBudgetAbi, 'distributed'>} [params]\n * @returns {Promise<bigint>} - The amount of assets distributed\n */\n public distributed(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams<typeof managedBudgetAbi, 'distributed'>,\n ) {\n return readManagedBudgetDistributed(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\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 * @inheritdoc\n *\n * @public\n * @param {?ManagedBudgetPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ManagedBudgetPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: managedBudgetAbi,\n bytecode: bytecode as Hex,\n args: [prepareManagedBudgetPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ManagedBudgetPayload}, properly encode a `ManagedBudget.InitPayload` for use with {@link ManagedBudget} initialization.\n *\n * @param {ManagedBudgetPayload} param0\n * @param {Address} param0.owner - The budget's owner\n * @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n * @param {{}} param0.roles - List of roles to assign to the corresponding account by index.\n * @returns {*}\n */\nexport const prepareManagedBudgetPayload = ({\n owner,\n authorized,\n roles,\n}: ManagedBudgetPayload) => {\n return encodeAbiParameters(\n parseAbiParameters([\n 'ManagedBudgetPayload payload',\n 'struct ManagedBudgetPayload { address owner; address[] authorized; uint256[] roles; }',\n ]),\n [{ owner, authorized, roles: roles as unknown as Array<bigint> }],\n );\n};\n"],"names":["ManagedBudgetRoles","isFungibleTransfer","transfer","isERC1155TransferPayload","prepareTransfer","prepareFungibleTransfer","prepareERC1155Transfer","UnknownTransferPayloadSupplied","_ManagedBudget","DeployableTarget","managedBudgetAbi","params","request","result","simulateManagedBudgetAllocate","writeManagedBudgetAllocate","simulateManagedBudgetClawback","writeManagedBudgetClawback","simulateManagedBudgetDisburse","writeManagedBudgetDisburse","transfers","simulateManagedBudgetDisburseBatch","writeManagedBudgetDisburseBatch","addresses","allowed","simulateManagedBudgetSetAuthorized","writeManagedBudgetSetAuthorized","roles","simulateManagedBudgetGrantRoles","writeManagedBudgetGrantRoles","simulateManagedBudgetRevokeRoles","writeManagedBudgetRevokeRoles","account","readManagedBudgetRolesOf","role","readManagedBudgetHasAnyRole","readManagedBudgetHasAllRoles","readManagedBudgetIsAuthorized","readManagedBudgetOwner","asset","zeroAddress","tokenId","readManagedBudgetTotal","readManagedBudgetAvailable","readManagedBudgetDistributed","_payload","_options","payload","options","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareManagedBudgetPayload","ManagedBudgetBases","RegistryType","ManagedBudget","authorized","encodeAbiParameters","parseAbiParameters"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ManagedBudget.cjs","sources":["../../src/Budgets/ManagedBudget.ts"],"sourcesContent":["import {\n managedBudgetAbi,\n readManagedBudgetAvailable,\n readManagedBudgetDistributed,\n readManagedBudgetHasAllRoles,\n readManagedBudgetHasAnyRole,\n readManagedBudgetIsAuthorized,\n readManagedBudgetOwner,\n readManagedBudgetRolesOf,\n readManagedBudgetTotal,\n simulateManagedBudgetAllocate,\n simulateManagedBudgetClawback,\n simulateManagedBudgetDisburse,\n simulateManagedBudgetDisburseBatch,\n simulateManagedBudgetGrantRoles,\n simulateManagedBudgetRevokeRoles,\n simulateManagedBudgetSetAuthorized,\n writeManagedBudgetAllocate,\n writeManagedBudgetClawback,\n writeManagedBudgetDisburse,\n writeManagedBudgetDisburseBatch,\n writeManagedBudgetGrantRoles,\n writeManagedBudgetRevokeRoles,\n writeManagedBudgetSetAuthorized,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/budgets/ManagedBudget.sol/ManagedBudget.json';\nimport { getAccount } from '@wagmi/core';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ManagedBudget as ManagedBudgetBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';\nimport {\n DeployableUnknownOwnerProvidedError,\n UnknownTransferPayloadSupplied,\n} from '../errors';\nimport {\n type ERC1155TransferPayload,\n type FungibleTransferPayload,\n prepareERC1155Transfer,\n prepareFungibleTransfer,\n} from '../transfers';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nexport { managedBudgetAbi };\nexport type { ERC1155TransferPayload, FungibleTransferPayload };\n\n/**\n * The object representation of a `ManagedBudgetPayload.InitPayload`\n *\n * @export\n * @interface ManagedBudgetPayload\n * @typedef {ManagedBudgetPayload}\n */\nexport interface ManagedBudgetPayload {\n /**\n * The budget's owner\n *\n * @type {Address}\n */\n owner: Address;\n /**\n * List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n *\n * @type {Address[]}\n */\n authorized: Address[];\n /**\n * List of roles to assign to the corresponding account by index.\n *\n * @type {ManagedBudgetRoles[]}\n */\n roles: ManagedBudgetRoles[];\n}\n\n/**\n * Enum representing available roles for use in the `ManagedBudget`.\n * `MANAGER` can disburse funds.\n * `ADMIN` can additionally manage authorized users on the budget.\n *\n * @export\n * @type {{ readonly MANAGER: 1n; readonly ADMIN_ROLE: 2n; }}\n * @enum {bigint}\n */\nexport enum ManagedBudgetRoles {\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 `ManagedBudget` event types.\n *\n * @export\n * @typedef {ManagedBudgetLog}\n * @template {ContractEventName<typeof managedBudgetAbi>} [event=ContractEventName<\n * typeof managedBudgetAbi\n * >]\n */\nexport type ManagedBudgetLog<\n event extends ContractEventName<typeof managedBudgetAbi> = ContractEventName<\n typeof managedBudgetAbi\n >,\n> = GenericLog<typeof managedBudgetAbi, event>;\n\n/**\n * Typeguard to determine if a transfer payload is a Fungible Transfer\n *\n * @export\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @returns {transfer is FungibleTransferPayload}\n */\nexport function isFungibleTransfer(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n): transfer is FungibleTransferPayload {\n return (transfer as ERC1155TransferPayload).tokenId === undefined;\n}\n\n/**\n * Typeguard to determine if a transfer payload is an ERC1155 Transfer\n *\n * @export\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @returns {transfer is ERC1155TransferPayload}\n */\nexport function isERC1155TransferPayload(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n): transfer is ERC1155TransferPayload {\n return (transfer as ERC1155TransferPayload).tokenId !== undefined;\n}\n\n/**\n * Given either a Fungible transfer, or ERC1155 transfer, will properly encode parameters for transfers, claims, disbursements, allocations, etc.\n *\n * @export\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @returns {Hex}\n * @throws {@link UnknownTransferPayloadSupplied}\n */\nexport function prepareTransfer(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n) {\n if (isFungibleTransfer(transfer)) {\n return prepareFungibleTransfer(transfer);\n }\n if (isERC1155TransferPayload(transfer)) {\n return prepareERC1155Transfer(transfer);\n }\n throw new UnknownTransferPayloadSupplied(transfer);\n}\n\n/**\n * A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n * This type of budget supports ETH, ERC20, and ERC1155 assets only\n *\n * @export\n * @class ManagedBudget\n * @typedef {ManagedBudget}\n * @extends {DeployableTargetWithRBAC<ManagedBudgetPayload>}\n */\nexport class ManagedBudget extends DeployableTargetWithRBAC<\n ManagedBudgetPayload,\n typeof managedBudgetAbi\n> {\n /**\n * @inheritdoc\n *\n * @public\n * @readonly\n * @type {*}\n */\n public override readonly abi = managedBudgetAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n ...(ManagedBudgetBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.BUDGET;\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the allocation was successful\n */\n public async allocate(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'allocate'>,\n ) {\n return await this.awaitResult(this.allocateRaw(transfer, params));\n }\n\n /**\n * Allocates assets to the budget.\n * The caller must have already approved the contract to transfer the asset\n * If the asset transfer fails, the allocation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful\n */\n public async allocateRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'allocate'>,\n ) {\n const { request, result } = await simulateManagedBudgetAllocate(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetAllocate(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the request was successful\n */\n public async clawback(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'clawback'>,\n ) {\n return await this.awaitResult(this.clawbackRaw(transfer, params));\n }\n\n /**\n * Clawbacks assets from the budget.\n * Only the owner can directly clawback assets from the budget\n * If the amount is zero, the entire balance of the asset will be transferred to the receiver\n * If the asset transfer fails, the reclamation will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful\n */\n public async clawbackRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'clawback'>,\n ) {\n const { request, result } = await simulateManagedBudgetClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the disbursement was successful\n */\n public async disburse(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'disburse'>,\n ) {\n return await this.awaitResult(this.disburseRaw(transfer, params));\n }\n\n /**\n * Disburses assets from the budget to a single recipient\n * If the asset transfer fails, the disbursement will revert\n *\n * @public\n * @async\n * @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful\n */\n public async disburseRaw(\n transfer: FungibleTransferPayload | ERC1155TransferPayload,\n params?: WriteParams<typeof managedBudgetAbi, 'disburse'>,\n ) {\n const { request, result } = await simulateManagedBudgetDisburse(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareTransfer(transfer)],\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 writeManagedBudgetDisburse(this._config, request);\n return { hash, result };\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if all disbursements were successful\n */\n public async disburseBatch(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams<typeof managedBudgetAbi, 'disburseBatch'>,\n ) {\n return await this.awaitResult(this.disburseBatchRaw(transfers, params));\n }\n\n /**\n * Disburses assets from the budget to multiple recipients\n *\n * @public\n * @async\n * @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful\n */\n public async disburseBatchRaw(\n transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>,\n params?: WriteParams<typeof managedBudgetAbi, 'disburseBatch'>,\n ) {\n const { request, result } = await simulateManagedBudgetDisburseBatch(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [transfers.map(prepareTransfer)],\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 writeManagedBudgetDisburseBatch(this._config, request);\n return { hash, result };\n }\n\n /**\n * Get the owner of the budget\n *\n * @public\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public owner(params?: ReadParams<typeof managedBudgetAbi, 'owner'>) {\n return readManagedBudgetOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\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 * Get the total amount of assets allocated to the budget, including any that have been distributed\n * If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"] - The address of the asset\n * @param {?(bigint | undefined)} [tokenId] - The ID of the token\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The total amount of assets\n */\n public total(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams<typeof managedBudgetAbi, 'total'>,\n ) {\n return readManagedBudgetTotal(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\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 * Get the amount of assets available for distribution from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets available\n */\n public available(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams<typeof managedBudgetAbi, 'available'>,\n ) {\n return readManagedBudgetAvailable(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\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 * Get the amount of assets that have been distributed from the budget.\n * If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget\n *\n * @public\n * @param {Address} [asset=\"0x0000000000000000000000000000000000000000\"]\n * @param {?(bigint | undefined)} [tokenId]\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The amount of assets distributed\n */\n public distributed(\n asset: Address = zeroAddress,\n tokenId?: bigint | undefined,\n params?: ReadParams<typeof managedBudgetAbi, 'distributed'>,\n ) {\n return readManagedBudgetDistributed(this._config, {\n address: this.assertValidAddress(),\n args: tokenId ? [asset, tokenId] : [asset],\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 * @inheritdoc\n *\n * @public\n * @param {?ManagedBudgetPayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ManagedBudgetPayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n if (!payload.owner || payload.owner === zeroAddress) {\n const owner = options.account\n ? options.account.address\n : options.config\n ? getAccount(options.config).address\n : this._account?.address;\n if (owner) {\n payload.owner = owner;\n } else {\n throw new DeployableUnknownOwnerProvidedError();\n }\n }\n return {\n abi: managedBudgetAbi,\n bytecode: bytecode as Hex,\n args: [prepareManagedBudgetPayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n}\n\n/**\n * Given a {@link ManagedBudgetPayload}, properly encode a `ManagedBudget.InitPayload` for use with {@link ManagedBudget} initialization.\n *\n * @param {ManagedBudgetPayload} param0\n * @param {Address} param0.owner - The budget's owner\n * @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.\n * @param {{}} param0.roles - List of roles to assign to the corresponding account by index.\n * @returns {Hex}\n */\nexport const prepareManagedBudgetPayload = ({\n owner,\n authorized,\n roles,\n}: ManagedBudgetPayload) => {\n return encodeAbiParameters(\n parseAbiParameters([\n 'ManagedBudgetPayload payload',\n 'struct ManagedBudgetPayload { address owner; address[] authorized; uint256[] roles; }',\n ]),\n [{ owner, authorized, roles: roles as unknown as Array<bigint> }],\n );\n};\n"],"names":["ManagedBudgetRoles","isFungibleTransfer","transfer","isERC1155TransferPayload","prepareTransfer","prepareFungibleTransfer","prepareERC1155Transfer","UnknownTransferPayloadSupplied","_ManagedBudget","DeployableTargetWithRBAC","managedBudgetAbi","params","request","result","simulateManagedBudgetAllocate","writeManagedBudgetAllocate","simulateManagedBudgetClawback","writeManagedBudgetClawback","simulateManagedBudgetDisburse","writeManagedBudgetDisburse","transfers","simulateManagedBudgetDisburseBatch","writeManagedBudgetDisburseBatch","readManagedBudgetOwner","asset","zeroAddress","tokenId","readManagedBudgetTotal","readManagedBudgetAvailable","readManagedBudgetDistributed","_payload","_options","payload","options","owner","getAccount","_a","DeployableUnknownOwnerProvidedError","bytecode","prepareManagedBudgetPayload","ManagedBudgetBases","RegistryType","ManagedBudget","authorized","roles","encodeAbiParameters","parseAbiParameters"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { managedBudgetAbi } from '@boostxyz/evm';
|
|
2
2
|
import { type Address, type ContractEventName } from 'viem';
|
|
3
3
|
import type { DeployableOptions, GenericDeployableParams } from '../Deployable/Deployable';
|
|
4
|
-
import {
|
|
4
|
+
import { DeployableTargetWithRBAC } from '../Deployable/DeployableTargetWithRBAC';
|
|
5
5
|
import { type ERC1155TransferPayload, type FungibleTransferPayload } from '../transfers';
|
|
6
6
|
import { type GenericLog, type ReadParams, RegistryType, type WriteParams } from '../utils';
|
|
7
7
|
export { managedBudgetAbi };
|
|
@@ -77,7 +77,7 @@ export declare function isERC1155TransferPayload(transfer: FungibleTransferPaylo
|
|
|
77
77
|
*
|
|
78
78
|
* @export
|
|
79
79
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
80
|
-
* @returns {
|
|
80
|
+
* @returns {Hex}
|
|
81
81
|
* @throws {@link UnknownTransferPayloadSupplied}
|
|
82
82
|
*/
|
|
83
83
|
export declare function prepareTransfer(transfer: FungibleTransferPayload | ERC1155TransferPayload): `0x${string}`;
|
|
@@ -88,9 +88,9 @@ export declare function prepareTransfer(transfer: FungibleTransferPayload | ERC1
|
|
|
88
88
|
* @export
|
|
89
89
|
* @class ManagedBudget
|
|
90
90
|
* @typedef {ManagedBudget}
|
|
91
|
-
* @extends {
|
|
91
|
+
* @extends {DeployableTargetWithRBAC<ManagedBudgetPayload>}
|
|
92
92
|
*/
|
|
93
|
-
export declare class ManagedBudget extends
|
|
93
|
+
export declare class ManagedBudget extends DeployableTargetWithRBAC<ManagedBudgetPayload, typeof managedBudgetAbi> {
|
|
94
94
|
/**
|
|
95
95
|
* @inheritdoc
|
|
96
96
|
*
|
|
@@ -195,20 +195,9 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
195
195
|
readonly inputs: readonly [];
|
|
196
196
|
readonly name: "Unauthorized";
|
|
197
197
|
}, {
|
|
198
|
-
readonly type: "
|
|
199
|
-
readonly
|
|
200
|
-
readonly
|
|
201
|
-
readonly name: "account";
|
|
202
|
-
readonly internalType: "address";
|
|
203
|
-
readonly type: "address";
|
|
204
|
-
readonly indexed: true;
|
|
205
|
-
}, {
|
|
206
|
-
readonly name: "isAuthorized";
|
|
207
|
-
readonly internalType: "bool";
|
|
208
|
-
readonly type: "bool";
|
|
209
|
-
readonly indexed: false;
|
|
210
|
-
}];
|
|
211
|
-
readonly name: "Authorized";
|
|
198
|
+
readonly type: "error";
|
|
199
|
+
readonly inputs: readonly [];
|
|
200
|
+
readonly name: "Unauthorized";
|
|
212
201
|
}, {
|
|
213
202
|
readonly type: "event";
|
|
214
203
|
readonly anonymous: false;
|
|
@@ -806,7 +795,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
806
795
|
* @public
|
|
807
796
|
* @async
|
|
808
797
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
809
|
-
* @param {?WriteParams
|
|
798
|
+
* @param {?WriteParams} [params]
|
|
810
799
|
* @returns {Promise<boolean>} - True if the allocation was successful
|
|
811
800
|
*/
|
|
812
801
|
allocate(transfer: FungibleTransferPayload | ERC1155TransferPayload, params?: WriteParams<typeof managedBudgetAbi, 'allocate'>): Promise<boolean>;
|
|
@@ -818,8 +807,8 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
818
807
|
* @public
|
|
819
808
|
* @async
|
|
820
809
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
821
|
-
* @param {?WriteParams
|
|
822
|
-
* @returns {Promise<boolean>} - True if the allocation was successful
|
|
810
|
+
* @param {?WriteParams} [params]
|
|
811
|
+
* @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the allocation was successful
|
|
823
812
|
*/
|
|
824
813
|
allocateRaw(transfer: FungibleTransferPayload | ERC1155TransferPayload, params?: WriteParams<typeof managedBudgetAbi, 'allocate'>): Promise<{
|
|
825
814
|
hash: `0x${string}`;
|
|
@@ -834,7 +823,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
834
823
|
* @public
|
|
835
824
|
* @async
|
|
836
825
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
837
|
-
* @param {?WriteParams
|
|
826
|
+
* @param {?WriteParams} [params]
|
|
838
827
|
* @returns {Promise<boolean>} - True if the request was successful
|
|
839
828
|
*/
|
|
840
829
|
clawback(transfer: FungibleTransferPayload | ERC1155TransferPayload, params?: WriteParams<typeof managedBudgetAbi, 'clawback'>): Promise<boolean>;
|
|
@@ -847,8 +836,8 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
847
836
|
* @public
|
|
848
837
|
* @async
|
|
849
838
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
850
|
-
* @param {?WriteParams
|
|
851
|
-
* @returns {Promise<boolean>} - True if the request was successful
|
|
839
|
+
* @param {?WriteParams} [params]
|
|
840
|
+
* @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the request was successful
|
|
852
841
|
*/
|
|
853
842
|
clawbackRaw(transfer: FungibleTransferPayload | ERC1155TransferPayload, params?: WriteParams<typeof managedBudgetAbi, 'clawback'>): Promise<{
|
|
854
843
|
hash: `0x${string}`;
|
|
@@ -861,7 +850,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
861
850
|
* @public
|
|
862
851
|
* @async
|
|
863
852
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
864
|
-
* @param {?WriteParams
|
|
853
|
+
* @param {?WriteParams} [params]
|
|
865
854
|
* @returns {Promise<boolean>} - True if the disbursement was successful
|
|
866
855
|
*/
|
|
867
856
|
disburse(transfer: FungibleTransferPayload | ERC1155TransferPayload, params?: WriteParams<typeof managedBudgetAbi, 'disburse'>): Promise<boolean>;
|
|
@@ -872,8 +861,8 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
872
861
|
* @public
|
|
873
862
|
* @async
|
|
874
863
|
* @param {(FungibleTransferPayload | ERC1155TransferPayload)} transfer
|
|
875
|
-
* @param {?WriteParams
|
|
876
|
-
* @returns {Promise<boolean>} - True if the disbursement was successful
|
|
864
|
+
* @param {?WriteParams} [params]
|
|
865
|
+
* @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the disbursement was successful
|
|
877
866
|
*/
|
|
878
867
|
disburseRaw(transfer: FungibleTransferPayload | ERC1155TransferPayload, params?: WriteParams<typeof managedBudgetAbi, 'disburse'>): Promise<{
|
|
879
868
|
hash: `0x${string}`;
|
|
@@ -885,7 +874,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
885
874
|
* @public
|
|
886
875
|
* @async
|
|
887
876
|
* @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
|
|
888
|
-
* @param {?WriteParams
|
|
877
|
+
* @param {?WriteParams} [params]
|
|
889
878
|
* @returns {Promise<boolean>} - True if all disbursements were successful
|
|
890
879
|
*/
|
|
891
880
|
disburseBatch(transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>, params?: WriteParams<typeof managedBudgetAbi, 'disburseBatch'>): Promise<boolean>;
|
|
@@ -895,157 +884,18 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
895
884
|
* @public
|
|
896
885
|
* @async
|
|
897
886
|
* @param {Array<FungibleTransferPayload | ERC1155TransferPayload>} transfers
|
|
898
|
-
* @param {?WriteParams
|
|
899
|
-
* @returns {Promise<boolean>} - True if all disbursements were successful
|
|
887
|
+
* @param {?WriteParams} [params]
|
|
888
|
+
* @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if all disbursements were successful
|
|
900
889
|
*/
|
|
901
890
|
disburseBatchRaw(transfers: Array<FungibleTransferPayload | ERC1155TransferPayload>, params?: WriteParams<typeof managedBudgetAbi, 'disburseBatch'>): Promise<{
|
|
902
891
|
hash: `0x${string}`;
|
|
903
892
|
result: boolean;
|
|
904
893
|
}>;
|
|
905
|
-
/**
|
|
906
|
-
* Set the authorized status of the given accounts
|
|
907
|
-
* The mechanism for managing authorization is left to the implementing contract
|
|
908
|
-
*
|
|
909
|
-
* @public
|
|
910
|
-
* @async
|
|
911
|
-
* @param {Address[]} addresses - The accounts to authorize or deauthorize
|
|
912
|
-
* @param {boolean[]} allowed - The authorization status for the given accounts
|
|
913
|
-
* @param {?WriteParams<typeof managedBudgetAbi, 'setAuthorized'>} [params]
|
|
914
|
-
* @returns {Promise<void>}
|
|
915
|
-
*/
|
|
916
|
-
setAuthorized(addresses: Address[], allowed: boolean[], params?: WriteParams<typeof managedBudgetAbi, 'setAuthorized'>): Promise<void>;
|
|
917
|
-
/**
|
|
918
|
-
* Set the authorized status of the given accounts
|
|
919
|
-
* The mechanism for managing authorization is left to the implementing contract
|
|
920
|
-
*
|
|
921
|
-
* @public
|
|
922
|
-
* @async
|
|
923
|
-
* @param {Address[]} addresses - The accounts to authorize or deauthorize
|
|
924
|
-
* @param {boolean[]} allowed - The authorization status for the given accounts
|
|
925
|
-
* @param {?WriteParams<typeof managedBudgetAbi, 'setAuthorized'>} [params]
|
|
926
|
-
* @returns {Promise<void>}
|
|
927
|
-
*/
|
|
928
|
-
setAuthorizedRaw(addresses: Address[], allowed: boolean[], params?: WriteParams<typeof managedBudgetAbi, 'setAuthorized'>): Promise<{
|
|
929
|
-
hash: `0x${string}`;
|
|
930
|
-
result: void;
|
|
931
|
-
}>;
|
|
932
|
-
/**
|
|
933
|
-
* Grant many accounts permissions on the budget.
|
|
934
|
-
*
|
|
935
|
-
* @example
|
|
936
|
-
* ```ts
|
|
937
|
-
* await budget.grantRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])
|
|
938
|
-
* ```
|
|
939
|
-
* @public
|
|
940
|
-
* @async
|
|
941
|
-
* @param {Address[]} addresses
|
|
942
|
-
* @param {ManagedBudgetRoles[]} roles
|
|
943
|
-
* @param {?WriteParams<typeof managedBudgetAbi, 'grantRoles'>} [params]
|
|
944
|
-
* @returns {unknown}
|
|
945
|
-
*/
|
|
946
|
-
grantRoles(addresses: Address[], roles: ManagedBudgetRoles[], params?: WriteParams<typeof managedBudgetAbi, 'grantRoles'>): Promise<never>;
|
|
947
|
-
/**
|
|
948
|
-
* Grant many accounts permissions on the budget.
|
|
949
|
-
*
|
|
950
|
-
* @example
|
|
951
|
-
* ```ts
|
|
952
|
-
* await budget.grantRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])
|
|
953
|
-
*
|
|
954
|
-
* @public
|
|
955
|
-
* @async
|
|
956
|
-
* @param {Address[]} addresses
|
|
957
|
-
* @param {ManagedBudgetRoles[]} roles
|
|
958
|
-
* @param {?WriteParams<typeof managedBudgetAbi, 'grantRoles'>} [params]
|
|
959
|
-
* @returns {unknown}
|
|
960
|
-
*/
|
|
961
|
-
grantRolesRaw(addresses: Address[], roles: ManagedBudgetRoles[], params?: WriteParams<typeof managedBudgetAbi, 'grantRoles'>): Promise<{
|
|
962
|
-
hash: `0x${string}`;
|
|
963
|
-
result: never;
|
|
964
|
-
}>;
|
|
965
|
-
/**
|
|
966
|
-
* Revoke many accounts' permissions on the budget.
|
|
967
|
-
*
|
|
968
|
-
* @example
|
|
969
|
-
* ```ts
|
|
970
|
-
* await budget.revokeRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])
|
|
971
|
-
*
|
|
972
|
-
* @public
|
|
973
|
-
* @async
|
|
974
|
-
* @param {Address[]} addresses
|
|
975
|
-
* @param {ManagedBudgetRoles[]} roles
|
|
976
|
-
* @param {?WriteParams<typeof managedBudgetAbi, 'revokeRoles'>} [params]
|
|
977
|
-
* @returns {unknown}
|
|
978
|
-
*/
|
|
979
|
-
revokeRoles(addresses: Address[], roles: ManagedBudgetRoles[], params?: WriteParams<typeof managedBudgetAbi, 'revokeRoles'>): Promise<never>;
|
|
980
|
-
/**
|
|
981
|
-
* Revoke many accounts' permissions on the budget.
|
|
982
|
-
*
|
|
983
|
-
* @example
|
|
984
|
-
* ```ts
|
|
985
|
-
* await budget.revokeRoles(['0xfoo', '0xbar], [ManagedBudgetRoles.MANAGER, ManagedBudgetRoles.ADMIN])
|
|
986
|
-
* @public
|
|
987
|
-
* @async
|
|
988
|
-
* @param {Address[]} addresses
|
|
989
|
-
* @param {ManagedBudgetRoles[]} roles
|
|
990
|
-
* @param {?WriteParams<typeof managedBudgetAbi, 'revokeRoles'>} [params]
|
|
991
|
-
* @returns {unknown}
|
|
992
|
-
*/
|
|
993
|
-
revokeRolesRaw(addresses: Address[], roles: ManagedBudgetRoles[], params?: WriteParams<typeof managedBudgetAbi, 'revokeRoles'>): Promise<{
|
|
994
|
-
hash: `0x${string}`;
|
|
995
|
-
result: never;
|
|
996
|
-
}>;
|
|
997
|
-
/**
|
|
998
|
-
* Return an array of the roles assigned to the given account.
|
|
999
|
-
* @example
|
|
1000
|
-
* ```ts
|
|
1001
|
-
* (await budget.rolesOf(0xfoo)).includes(ManagedBudgetRoles.ADMIN)
|
|
1002
|
-
* @public
|
|
1003
|
-
* @param {Address} account
|
|
1004
|
-
* @param {?ReadParams<typeof managedBudgetAbi, 'rolesOf'>} [params]
|
|
1005
|
-
* @returns {Promise<Array<ManagedBudgetRoles>>}
|
|
1006
|
-
*/
|
|
1007
|
-
rolesOf(account: Address, params?: ReadParams<typeof managedBudgetAbi, 'rolesOf'>): Promise<ManagedBudgetRoles[]>;
|
|
1008
|
-
/**
|
|
1009
|
-
* Returns whether given account has any of the provided roles bitmap.
|
|
1010
|
-
*
|
|
1011
|
-
* @example
|
|
1012
|
-
* ```ts
|
|
1013
|
-
* await budget.hasAnyRole(0xfoo, ManagedBudgetRoles.ADMIN | ManagedBudgetRoles.MANAGER)
|
|
1014
|
-
* @public
|
|
1015
|
-
* @param {Address} account
|
|
1016
|
-
* @param {ManagedBudgetRoles} roles
|
|
1017
|
-
* @param {?ReadParams<typeof managedBudgetAbi, 'hasAnyRole'>} [params]
|
|
1018
|
-
* @returns {Promise<boolean>}
|
|
1019
|
-
*/
|
|
1020
|
-
hasAnyRole(account: Address, roles: ManagedBudgetRoles, params?: ReadParams<typeof managedBudgetAbi, 'hasAnyRole'>): Promise<boolean>;
|
|
1021
|
-
/**
|
|
1022
|
-
* Returns whether given account has all of the provided roles bitmap.
|
|
1023
|
-
*
|
|
1024
|
-
* @example
|
|
1025
|
-
* ```ts
|
|
1026
|
-
* await budget.hasAllRoles(0xfoo, ManagedBudgetRoles.ADMIN & ManagedBudgetRoles.MANAGER)
|
|
1027
|
-
*
|
|
1028
|
-
* @public
|
|
1029
|
-
* @param {Address} account
|
|
1030
|
-
* @param {ManagedBudgetRoles} roles
|
|
1031
|
-
* @param {?ReadParams<typeof managedBudgetAbi, 'hasAllRoles'>} [params]
|
|
1032
|
-
* @returns {*}
|
|
1033
|
-
*/
|
|
1034
|
-
hasAllRoles(account: Address, roles: ManagedBudgetRoles, params?: ReadParams<typeof managedBudgetAbi, 'hasAllRoles'>): Promise<boolean>;
|
|
1035
|
-
/**
|
|
1036
|
-
* Check if the given account is authorized to use the budget
|
|
1037
|
-
*
|
|
1038
|
-
* @public
|
|
1039
|
-
* @param {Address} account
|
|
1040
|
-
* @param {?ReadParams<typeof managedBudgetAbi, 'isAuthorized'>} [params]
|
|
1041
|
-
* @returns {Promise<boolean>} - True if the account is authorized
|
|
1042
|
-
*/
|
|
1043
|
-
isAuthorized(account: Address, params?: ReadParams<typeof managedBudgetAbi, 'isAuthorized'>): Promise<boolean>;
|
|
1044
894
|
/**
|
|
1045
895
|
* Get the owner of the budget
|
|
1046
896
|
*
|
|
1047
897
|
* @public
|
|
1048
|
-
* @param {?ReadParams
|
|
898
|
+
* @param {?ReadParams} [params]
|
|
1049
899
|
* @returns {Promise<Address>}
|
|
1050
900
|
*/
|
|
1051
901
|
owner(params?: ReadParams<typeof managedBudgetAbi, 'owner'>): Promise<`0x${string}`>;
|
|
@@ -1056,7 +906,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
1056
906
|
* @public
|
|
1057
907
|
* @param {Address} [asset="0x0000000000000000000000000000000000000000"] - The address of the asset
|
|
1058
908
|
* @param {?(bigint | undefined)} [tokenId] - The ID of the token
|
|
1059
|
-
* @param {?ReadParams
|
|
909
|
+
* @param {?ReadParams} [params]
|
|
1060
910
|
* @returns {Promise<bigint>} - The total amount of assets
|
|
1061
911
|
*/
|
|
1062
912
|
total(asset?: Address, tokenId?: bigint | undefined, params?: ReadParams<typeof managedBudgetAbi, 'total'>): Promise<never>;
|
|
@@ -1067,7 +917,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
1067
917
|
* @public
|
|
1068
918
|
* @param {Address} [asset="0x0000000000000000000000000000000000000000"]
|
|
1069
919
|
* @param {?(bigint | undefined)} [tokenId]
|
|
1070
|
-
* @param {?ReadParams
|
|
920
|
+
* @param {?ReadParams} [params]
|
|
1071
921
|
* @returns {Promise<bigint>} - The amount of assets available
|
|
1072
922
|
*/
|
|
1073
923
|
available(asset?: Address, tokenId?: bigint | undefined, params?: ReadParams<typeof managedBudgetAbi, 'available'>): Promise<never>;
|
|
@@ -1078,7 +928,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
1078
928
|
* @public
|
|
1079
929
|
* @param {Address} [asset="0x0000000000000000000000000000000000000000"]
|
|
1080
930
|
* @param {?(bigint | undefined)} [tokenId]
|
|
1081
|
-
* @param {?ReadParams
|
|
931
|
+
* @param {?ReadParams} [params]
|
|
1082
932
|
* @returns {Promise<bigint>} - The amount of assets distributed
|
|
1083
933
|
*/
|
|
1084
934
|
distributed(asset?: Address, tokenId?: bigint | undefined, params?: ReadParams<typeof managedBudgetAbi, 'distributed'>): Promise<never>;
|
|
@@ -1099,7 +949,7 @@ export declare class ManagedBudget extends DeployableTarget<ManagedBudgetPayload
|
|
|
1099
949
|
* @param {Address} param0.owner - The budget's owner
|
|
1100
950
|
* @param {{}} param0.authorized - List of accounts authorized to use the budget. This list should include a Boost core address to interact with the protocol.
|
|
1101
951
|
* @param {{}} param0.roles - List of roles to assign to the corresponding account by index.
|
|
1102
|
-
* @returns {
|
|
952
|
+
* @returns {Hex}
|
|
1103
953
|
*/
|
|
1104
954
|
export declare const prepareManagedBudgetPayload: ({ owner, authorized, roles, }: ManagedBudgetPayload) => `0x${string}`;
|
|
1105
955
|
//# sourceMappingURL=ManagedBudget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedBudget.d.ts","sourceRoot":"","sources":["../../src/Budgets/ManagedBudget.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAuBjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAKvB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ManagedBudget.d.ts","sourceRoot":"","sources":["../../src/Budgets/ManagedBudget.ts"],"names":[],"mappings":"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"}
|