Creates an instance of DeployableTarget.
Optional
payload: DeployablePayloadOrAddress<ManagedBudgetPayload>Either a given implementation's initialization payload, or an address to an existing on chain target.
Optional
isBase: booleanA property asserting that the protocol should eiher clone and initialize a new target from the base implementation, or re-use an existing contract without initializing.
Static
basesA static property representing a map of stringified chain ID's to the address of the base implementation on chain, used when cloning base contracts.
Static
registryThe target's registry type.
Readonly
abiReadonly
_isA property asserting that the protocol should eiher clone and initialize a new target from the base implementation, or re-use an existing contract without initializing.
Protected
_payloadThe deployable payload used either for contract construction or initialization
Protected
_configProtected
_addressThe internally managed address for this contract
Protected
Optional
_accountIf it exists, Viem Local Account, if in a Node environment
A getter that will return the base implementation's static addresses by numerical chain ID
A getter that returns the registry type of the base implementation
A getter returning this contract's deployed address, if it exists.
Allocates assets to the budget. The caller must have already approved the contract to transfer the asset If the asset transfer fails, the allocation will revert
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Allocates assets to the budget. The caller must have already approved the contract to transfer the asset If the asset transfer fails, the allocation will revert
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Clawbacks assets from the budget. Only the owner can directly clawback assets from the budget If the amount is zero, the entire balance of the asset will be transferred to the receiver If the asset transfer fails, the reclamation will revert
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Clawbacks assets from the budget. Only the owner can directly clawback assets from the budget If the amount is zero, the entire balance of the asset will be transferred to the receiver If the asset transfer fails, the reclamation will revert
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Disburses assets from the budget to a single recipient If the asset transfer fails, the disbursement will revert
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Disburses assets from the budget to a single recipient If the asset transfer fails, the disbursement will revert
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Disburses assets from the budget to multiple recipients
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Disburses assets from the budget to multiple recipients
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Get the owner of the budget
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Get the total amount of assets allocated to the budget, including any that have been distributed If a tokenId is provided, get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed
Optional
asset: `0x${string}` = zeroAddressThe address of the asset
Optional
tokenId: bigintThe ID of the token
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Get the amount of assets available for distribution from the budget. If a tokenId is provided, get the amount of ERC1155 assets available for distribution from the budget
Optional
asset: `0x${string}` = zeroAddressOptional
tokenId: bigintOptional
params: Partial<Omit<ReadContractParameters<readonly [{ Get the amount of assets that have been distributed from the budget. If a tokenId is provided, get the amount of ERC1155 assets that have been distributed from the budget
Optional
asset: `0x${string}` = zeroAddressOptional
tokenId: bigintOptional
params: Partial<Omit<ReadContractParameters<readonly [{ Base parameter constructor, should return a partial viem.deployContract
parameters shape including abi, bytecode, and arguments, if any.
Expected to be overridden by protocol contracts.
Optional
_payload: ManagedBudgetPayloadOptional
_options: DeployableOptionsSet the authorized status of the given accounts The mechanism for managing authorization is left to the implementing contract
The accounts to authorize or deauthorize
The authorization status for the given accounts
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Set the authorized status of the given accounts The mechanism for managing authorization is left to the implementing contract
The accounts to authorize or deauthorize
The authorization status for the given accounts
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Grant permissions for a user on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Grant permissions for a user on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Revoke permissions for a user on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Revoke permissions for a user on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Grant many accounts permissions on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Grant many accounts permissions on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Revoke many accounts' permissions on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Revoke many accounts' permissions on the rbac.
Optional
params: Partial<Omit<WriteContractParameters<readonly [{ Return an array of the roles assigned to the given account.
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Returns whether given account has any of the provided roles bitmap.
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Returns whether given account has all of the provided roles bitmap.
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Check if the given account is authorized to use the rbac
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ High level deployment function to deploy and await the contract address.
This is mainly a convenience method to easily deploy a contract, but will not initialize a Cloneable
,
which makes it useless for Boost components.
Obviously you can ignore the TS warnings and use this, but you shouldn't in most all cases.
Optional
payload: ManagedBudgetPayloadOptional
options: DeployableOptionsOptional
waitParams: Omit<WaitForTransactionReceiptParameters, "hash">The lower level contract deployment function that does not await for the transaction receipt.
This is mainly a convenience method to easily deploy a contract, but will not initialize a Cloneable
,
which makes it useless for Boost components.
Obviously you can ignore the TS warnings and use this, but you shouldn't in most all cases.
Optional
_payload: ManagedBudgetPayloadOptional
_options: DeployableOptionsCheck if the contract supports the given interface
The interface identifier
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Return a cloneable's unique identifier for downstream consumers to differentiate various targets All implementations must override this function
Optional
params: Partial<Omit<ReadContractParameters<readonly [{ Attaches a new payload for use with this deployable's initialization
Will set this contract's address and return the instance for chaining. Does not verify that provided address is valid.
Will set this contract's internal Wagmi Configuration and return the instance for chaining.
Utility function to validate the existence of an address on this Contract.
ContractAddressRequiredError if no address exists on this Contract instance
A typed wrapper for (viem.getLogs)[https://viem.sh/docs/actions/public/getLogs#getlogs].
Accepts eventName
and eventNames
as optional parameters to narrow the returned log types.
Optional
params: Omit<GetLogsParams<readonly [{ const logs = contract.getLogs({ eventName: 'EventName' })
const logs = contract.getLogs({ eventNames: ['EventName'] })
@public
@async
@template {ContractEvent} event
@template {ExtractAbiEvent<
ContractAbi,
event
>} [abiEvent=ExtractAbiEvent<ContractAbi, event>]
@param {?Omit<
GetLogsParams<ContractAbi, event, abiEvent, abiEvent[]>,
'event' | 'events'
> & {
eventName?: event;
eventNames?: event[];
}} [params]
@returns {Promise<GetLogsReturnType<abiEvent, abiEvent
A typed wrapper for wagmi.watchContractEvent
Optional
params: Partial<Omit<UnionCompute<WatchContractEventParameters<readonly [{ Protected
validateProtected
Internal method used to ensure that a Wagmi configuration and payload are always present when deploying.
Optional
_payload: POptional
_options: DeployableOptionsProtected
optionallyProtected
awaitProtected
Optional
waitParams: Omit<WaitForTransactionReceiptParameters, "hash">
A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native) This type of budget supports ETH, ERC20, and ERC1155 assets only
Export
ManagedBudget