Creates an instance of BoostCore.
Static ReadonlyaddressesA static property representing a map of stringified chain ID's to the address of the deployed implementation on chain
ReadonlyabiProtected_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 Boost core's static addresses by numerical chain ID
Returns the attached account, if it exists
A getter returning this contract's deployed address, if it exists.
A getter returning this contract's Wagmi configuration.
Create a new Boost.
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Create a new Boost.
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Returns a simulated Boost creation.
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Creates a new Boost with a given TransparentBudget, which transfers assets to the budget on Boost creation.
Either an instance of a transparent budget, or the address of a transparent budget
An array of transfers to be allocated to the budget prior to Boost creation
The core Boost configuration sans budget
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Returns a transaction hash and simulated Boost creation using a transparent budget
Either an instance of a transparent budget, or the address of a transparent budget
An array of transfers to be allocated to the budget prior to Boost creation
The core Boost configuration sans budget
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Returns a simulated Boost creation using a transparent budget
Either an instance of a transparent budget, or the address of a transparent budget
An array of transfers to be allocated to the budget prior to Boost creation
The core Boost configuration sans budget
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Creates a new Boost with a given a TransparentBudget and Permit2, which transfers assets to the budget on Boost creation.
Either an instance of a transparent budget, or the address of a transparent budget
An array of transfers to be allocated to the budget prior to Boost creation
The core Boost configuration sans budget
The packed signature that was the result of signing the EIP712 hash of permit.
The nonce for the permit2 batch transfer
The deadline for the permit2 batch transfer
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Returns a transaction hash and simulated Boost creation using a TransparentBudget and Permit2
Either an instance of a transparent budget, or the address of a transparent budget
An array of transfers to be allocated to the budget prior to Boost creation
The core Boost configuration sans budget
The packed signature that was the result of signing the EIP712 hash of permit.
The nonce for the permit2 batch transfer
The deadline for the permit2 batch transfer
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Returns a simulated Boost creation using a TransparentBudget and Permit2
Either an instance of a transparent budget, or the address of a transparent budget
An array of transfers to be allocated to the budget prior to Boost creation
The core Boost configuration sans budget
The packed signature that was the result of signing the EIP712 hash of permit.
The nonce for the permit2 batch transfer
The deadline for the permit2 batch transfer
Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Claims one incentive from a given Boost by boostId and incentiveId
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Claim an incentive for a Boost
The ID of the Boost
The ID of the Incentive
The address of the referrer (if any)
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Claims one incentive for a given Boost on behalf of another user by boostId and incentiveId
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Claim an incentive for a Boost on behalf of another user
The ID of the Boost
The ID of the Incentive
The address of the referrer (if any)
The data for the claim
The address of the user eligible for the incentive payout
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Get a Boost by index, will return a new Boost with correct target implementations instantiated, ie (await core.getBoost(0n)).allowList instanceof SimpleAllowList vs SimpleDenyList
Optionalparams: Partial<Omit<ReadContractParameters, Replace the current auth scheme.
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Set the createBoostAuth address
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Set the protocol fee receiver address. This function is only callable by the owner.
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Set the protocol fee receiver address. This function is only callable by the owner.
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Set the referral fee. This function is only callable by the owner.
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Set the referral fee. This function is only callable by the owner.
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Get the incentives fees information for a given Boost ID and Incentive ID.
The ID of the Boost
The ID of the Incentive
Optionalparams: Partial<Omit<ReadContractParameters, Retrieves the claim information from a transaction receipt.
The parameters required to get the transaction receipt.
The hash of the transaction.
OptionalchainThe claim information if found, undefined otherwise.
Calculate the protocol fee for ERC20 or ETH assets for a given amount. Fees are collected when initializing new incentives, or clawing back from incentives.
Optionalamount: bigintOptionalparams: Partial<Omit<ReadContractParameters, const fee = await core.calculateProtocolFee(
await incentive.getTotalBudget()
)
const totalIncentiveFundAmount = desiredAmount + fee
await erc20.approve(budget.assertValidAddress(), totalIncentiveFundAmount);
await budget.allocate({
amount: totalIncentiveFundAmount,
asset: erc20.assertValidAddress(),
target: '0xME',
});
Bound PassthroughAuth constructor that reuses the same configuration as the Boost Core instance.
Optionaladdress: `0x${string}`Bound EventAction constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound OpenAllowList constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound SimpleAllowList constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound SimpleDenyList constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound OffchainAccessList constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound ManagedBudget constructor that reuses the same configuration as the Boost Core instance.
Bound ManagedBudgetWithFees constructor that reuses the same configuration as the Boost Core instance. Prepends the BoostCore address to the authorized list because it's structurally critical to calculating payouts.
Bound ManagedBudgetWithFeesV2 constructor that reuses the same configuration as the Boost Core instance. Prepends the BoostCore address to the authorized list because it's structurally critical to calculating payouts.
Bound TransparentBudget constructor that reuses the same configuration as the Boost Core instance.
Bound AllowListIncentive constructor that reuses the same configuration as the Boost Core instance.
Bound CGDAIncentive constructor that reuses the same configuration as the Boost Core instance.
Bound ERC20Incentive constructor that reuses the same configuration as the Boost Core instance.
Bound ERC20PeggedIncentive constructor that reuses the same configuration as the Boost Core instance.
Bound PointsIncentive constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanUse SignerValidatorV2 instead.
Bound SignerValidator constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanUse LimitedSignerValidatorV2 instead.
Bound LimitedSignerValidator constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanUse PayableLimitedSignerValidatorV2 instead.
Bound PayableLimitedSignerValidator constructor that reuses the same configuration as the Boost Core instance.
Bound SignerValidatorV2 constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound LimitedSignerValidatorV2 constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound PayableLimitedSignerValidatorV2 constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound ERC20VariableCriteriaIncentiveV2 constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound ERC20PeggedVariableCriteriaIncentiveV2 constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBound ERC20VariableIncentive constructor that reuses the same configuration as the Boost Core instance.
OptionalisBase: booleanBase 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: BoostCoreOptionsWithPayloadOptional_options: DeployableOptionsPrepares and executes a top-up from a Budget, specifying the net top-up amount that should land in the incentive (the protocol fee is added automatically).
The ID of the Boost
The ID of the incentive within that Boost
Optionalbudget: `0x${string}`Optional override budget address (otherwise uses the Boost’s budget)
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Additional transaction overrides
The transaction hash and simulation result
Prepares and executes a top-up from a Budget, specifying the entire total tokens (incentive + fee) you want to disburse. We'll back-calculate how many tokens land in the incentive.
The ID of the Boost
The ID of the incentive within that Boost
The total tokens to disburse
Optionalbudget: `0x${string}`Optional override budget address
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Additional transaction overrides
Prepares and executes a top-up from the caller (msg.sender), specifying the net top-up to land in the incentive. We'll add the protocol fee on top automatically.
The ID of the Boost
The ID of the incentive within that Boost
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Prepares and executes a top-up from the caller (msg.sender), specifying the total tokens you’re willing to provide (including fee). We'll back-calculate the net top-up for the incentive.
The ID of the Boost
The ID of the incentive within that Boost
The entire tokens (top-up + fee)
Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter, Attaches a new payload for use with this deployable's initialization
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: BoostCoreOptionsWithPayloadOptional_options: DeployableOptionsWill 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.
Optionalparams: 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
Optionalparams: Partial<Omit<UnionCompute<WatchContractEventParameters<readonly [{ ProtecteddeployProtectedOverride the deploy method to handle UUPS proxy deployment with initialization
Optional_payload: BoostCoreOptionsWithPayloadOptional_options: DeployableOptionsOptionalwaitParams: Omit<{ ProtectedoptionallyProtectedvalidateProtectedInternal method used to ensure that a Wagmi configuration and payload are always present when deploying.
Optional_payload: POptional_options: DeployableOptionsProtectedawaitProtectedOptionalwaitParams: Omit<WaitForTransactionReceiptParameters, "hash">
The core contract for the Boost protocol. Used to create and retrieve deployed Boosts.
Export
BoostCore