Class BoostCore

The core contract for the Boost protocol. Used to create and retrieve deployed Boosts.

BoostCore

Hierarchy (view full)

Constructors

Properties

addresses: Record<number, `0x${string}`> = BOOST_CORE_ADDRESSES

A static property representing a map of stringified chain ID's to the address of the deployed implementation on chain

abi: readonly [{
    type: "constructor";
    inputs: readonly [{
        name: "registry_";
        internalType: "contract BoostRegistry";
        type: "address";
    }, {
        name: "protocolFeeReceiver_";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "nonpayable";
}, {
    type: "error";
    inputs: readonly [];
    name: "AlreadyInitialized";
}, {
    type: "error";
    inputs: readonly [{
        name: "caller";
        internalType: "address";
        type: "address";
    }, {
        name: "data";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "ClaimFailed";
}, {
    type: "error";
    inputs: readonly [{
        name: "caller";
        internalType: "address";
        type: "address";
    }, {
        name: "data";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "ClawbackFailed";
}, {
    type: "error";
    inputs: readonly [];
    name: "InvalidInitialization";
}, {
    type: "error";
    inputs: readonly [{
        name: "expectedInterface";
        internalType: "bytes4";
        type: "bytes4";
    }, {
        name: "instance";
        internalType: "address";
        type: "address";
    }];
    name: "InvalidInstance";
}, {
    type: "error";
    inputs: readonly [];
    name: "NewOwnerIsZeroAddress";
}, {
    type: "error";
    inputs: readonly [];
    name: "NoHandoverRequest";
}, {
    type: "error";
    inputs: readonly [];
    name: "NotImplemented";
}, {
    type: "error";
    inputs: readonly [];
    name: "Reentrancy";
}, {
    type: "error";
    inputs: readonly [];
    name: "Unauthorized";
}, {
    type: "error";
    inputs: readonly [];
    name: "Unauthorized";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "boostId";
        internalType: "uint256";
        type: "uint256";
        indexed: true;
    }, {
        name: "incentiveId";
        internalType: "uint256";
        type: "uint256";
        indexed: true;
    }, {
        name: "claimant";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "referrer";
        internalType: "address";
        type: "address";
        indexed: false;
    }, {
        name: "data";
        internalType: "bytes";
        type: "bytes";
        indexed: false;
    }];
    name: "BoostClaimed";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "boostId";
        internalType: "uint256";
        type: "uint256";
        indexed: true;
    }, {
        name: "owner";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "action";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "incentiveCount";
        internalType: "uint256";
        type: "uint256";
        indexed: false;
    }, {
        name: "validator";
        internalType: "address";
        type: "address";
        indexed: false;
    }, {
        name: "allowList";
        internalType: "address";
        type: "address";
        indexed: false;
    }, {
        name: "budget";
        internalType: "address";
        type: "address";
        indexed: false;
    }];
    name: "BoostCreated";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "OwnershipHandoverCanceled";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "OwnershipHandoverRequested";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "oldOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "newOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "OwnershipTransferred";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "boostId";
        internalType: "uint256";
        type: "uint256";
        indexed: true;
    }, {
        name: "incentiveId";
        internalType: "uint256";
        type: "uint256";
        indexed: true;
    }, {
        name: "amount";
        internalType: "uint256";
        type: "uint256";
        indexed: false;
    }, {
        name: "recipient";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "ProtocolFeesCollected";
}, {
    type: "function";
    inputs: readonly [];
    name: "FEE_DENOMINATOR";
    outputs: readonly [{
        name: "";
        internalType: "uint64";
        type: "uint64";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "cancelOwnershipHandover";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "boostId_";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "incentiveId_";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "referrer_";
        internalType: "address";
        type: "address";
    }, {
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "claimIncentive";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "boostId_";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "incentiveId_";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "referrer_";
        internalType: "address";
        type: "address";
    }, {
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }, {
        name: "claimant";
        internalType: "address";
        type: "address";
    }];
    name: "claimIncentiveFor";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }, {
        name: "boostId";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "incentiveId";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "clawback";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
    }];
    name: "completeOwnershipHandover";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "createBoost";
    outputs: readonly [{
        name: "";
        internalType: "struct BoostLib.Boost";
        type: "tuple";
        components: readonly [{
            name: "action";
            internalType: "contract AAction";
            type: "address";
        }, {
            name: "validator";
            internalType: "contract AValidator";
            type: "address";
        }, {
            name: "allowList";
            internalType: "contract AAllowList";
            type: "address";
        }, {
            name: "budget";
            internalType: "contract ABudget";
            type: "address";
        }, {
            name: "incentives";
            internalType: "contract AIncentive[]";
            type: "address[]";
        }, {
            name: "protocolFee";
            internalType: "uint64";
            type: "uint64";
        }, {
            name: "maxParticipants";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "owner";
            internalType: "address";
            type: "address";
        }];
    }];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [];
    name: "createBoostAuth";
    outputs: readonly [{
        name: "";
        internalType: "contract IAuth";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "index";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "getBoost";
    outputs: readonly [{
        name: "";
        internalType: "struct BoostLib.Boost";
        type: "tuple";
        components: readonly [{
            name: "action";
            internalType: "contract AAction";
            type: "address";
        }, {
            name: "validator";
            internalType: "contract AValidator";
            type: "address";
        }, {
            name: "allowList";
            internalType: "contract AAllowList";
            type: "address";
        }, {
            name: "budget";
            internalType: "contract ABudget";
            type: "address";
        }, {
            name: "incentives";
            internalType: "contract AIncentive[]";
            type: "address[]";
        }, {
            name: "protocolFee";
            internalType: "uint64";
            type: "uint64";
        }, {
            name: "maxParticipants";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "owner";
            internalType: "address";
            type: "address";
        }];
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "getBoostCount";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "key";
        internalType: "bytes32";
        type: "bytes32";
    }];
    name: "getIncentiveFeesInfo";
    outputs: readonly [{
        name: "";
        internalType: "struct BoostCore.IncentiveDisbursalInfo";
        type: "tuple";
        components: readonly [{
            name: "assetType";
            internalType: "enum ABudget.AssetType";
            type: "uint8";
        }, {
            name: "asset";
            internalType: "address";
            type: "address";
        }, {
            name: "protocolFeesRemaining";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "protocolFee";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "tokenId";
            internalType: "uint256";
            type: "uint256";
        }];
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "";
        internalType: "bytes32";
        type: "bytes32";
    }];
    name: "incentivesFeeInfo";
    outputs: readonly [{
        name: "assetType";
        internalType: "enum ABudget.AssetType";
        type: "uint8";
    }, {
        name: "asset";
        internalType: "address";
        type: "address";
    }, {
        name: "protocolFeesRemaining";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "protocolFee";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "tokenId";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "owner";
    outputs: readonly [{
        name: "result";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
    }];
    name: "ownershipHandoverExpiresAt";
    outputs: readonly [{
        name: "result";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "protocolFee";
    outputs: readonly [{
        name: "";
        internalType: "uint64";
        type: "uint64";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "protocolFeeReceiver";
    outputs: readonly [{
        name: "";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "registry";
    outputs: readonly [{
        name: "";
        internalType: "contract BoostRegistry";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "renounceOwnership";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [];
    name: "requestOwnershipHandover";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "auth_";
        internalType: "address";
        type: "address";
    }];
    name: "setCreateBoostAuth";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "protocolFee_";
        internalType: "uint64";
        type: "uint64";
    }];
    name: "setProtocolFee";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "protocolFeeReceiver_";
        internalType: "address";
        type: "address";
    }];
    name: "setProtocolFeeReceiver";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "boostId";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "incentiveId";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "settleProtocolFees";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "newOwner";
        internalType: "address";
        type: "address";
    }];
    name: "transferOwnership";
    outputs: readonly [];
    stateMutability: "payable";
}]
_payload: undefined | [`0x${string}`, `0x${string}`]

The deployable payload used either for contract construction or initialization

_config: Config
_address: undefined | `0x${string}`

The internally managed address for this contract

_account?: Account

If it exists, Viem Local Account, if in a Node environment

Accessors

  • get addresses(): Record<number, `0x${string}`>
  • A getter that will return Boost core's static addresses by numerical chain ID

    Returns Record<number, `0x${string}`>

  • get address(): undefined | `0x${string}`
  • A getter returning this contract's deployed address, if it exists.

    Returns undefined | `0x${string}`

Methods

  • Create a new Boost.

    Parameters

    • _boostPayload: CreateBoostPayload
    • Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<Boost>

  • Returns a simulated Boost creation.

    Parameters

    • _boostPayload: CreateBoostPayload
    • Optional_params: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<SimulateContractReturnType<readonly [{
        type: "constructor";
        inputs: readonly [{
            name: "registry_";
            internalType: "contract BoostRegistry";
            type: "address";
        }, {
            name: "protocolFeeReceiver_";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "nonpayable";
    }, {
        type: "error";
        inputs: readonly [];
        name: "AlreadyInitialized";
    }, {
        type: "error";
        inputs: readonly [{
            name: "caller";
            internalType: "address";
            type: "address";
        }, {
            name: "data";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "ClaimFailed";
    }, {
        type: "error";
        inputs: readonly [{
            name: "caller";
            internalType: "address";
            type: "address";
        }, {
            name: "data";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "ClawbackFailed";
    }, {
        type: "error";
        inputs: readonly [];
        name: "InvalidInitialization";
    }, {
        type: "error";
        inputs: readonly [{
            name: "expectedInterface";
            internalType: "bytes4";
            type: "bytes4";
        }, {
            name: "instance";
            internalType: "address";
            type: "address";
        }];
        name: "InvalidInstance";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NewOwnerIsZeroAddress";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NoHandoverRequest";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NotImplemented";
    }, {
        type: "error";
        inputs: readonly [];
        name: "Reentrancy";
    }, {
        type: "error";
        inputs: readonly [];
        name: "Unauthorized";
    }, {
        type: "error";
        inputs: readonly [];
        name: "Unauthorized";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "boostId";
            internalType: "uint256";
            type: "uint256";
            indexed: true;
        }, {
            name: "incentiveId";
            internalType: "uint256";
            type: "uint256";
            indexed: true;
        }, {
            name: "claimant";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "referrer";
            internalType: "address";
            type: "address";
            indexed: false;
        }, {
            name: "data";
            internalType: "bytes";
            type: "bytes";
            indexed: false;
        }];
        name: "BoostClaimed";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "boostId";
            internalType: "uint256";
            type: "uint256";
            indexed: true;
        }, {
            name: "owner";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "action";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "incentiveCount";
            internalType: "uint256";
            type: "uint256";
            indexed: false;
        }, {
            name: "validator";
            internalType: "address";
            type: "address";
            indexed: false;
        }, {
            name: "allowList";
            internalType: "address";
            type: "address";
            indexed: false;
        }, {
            name: "budget";
            internalType: "address";
            type: "address";
            indexed: false;
        }];
        name: "BoostCreated";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "OwnershipHandoverCanceled";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "OwnershipHandoverRequested";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "oldOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "newOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "OwnershipTransferred";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "boostId";
            internalType: "uint256";
            type: "uint256";
            indexed: true;
        }, {
            name: "incentiveId";
            internalType: "uint256";
            type: "uint256";
            indexed: true;
        }, {
            name: "amount";
            internalType: "uint256";
            type: "uint256";
            indexed: false;
        }, {
            name: "recipient";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "ProtocolFeesCollected";
    }, {
        type: "function";
        inputs: readonly [];
        name: "FEE_DENOMINATOR";
        outputs: readonly [{
            name: "";
            internalType: "uint64";
            type: "uint64";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "cancelOwnershipHandover";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "boostId_";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "incentiveId_";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "referrer_";
            internalType: "address";
            type: "address";
        }, {
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "claimIncentive";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "boostId_";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "incentiveId_";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "referrer_";
            internalType: "address";
            type: "address";
        }, {
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }, {
            name: "claimant";
            internalType: "address";
            type: "address";
        }];
        name: "claimIncentiveFor";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }, {
            name: "boostId";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "incentiveId";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "clawback";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
        }];
        name: "completeOwnershipHandover";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "createBoost";
        outputs: readonly [{
            name: "";
            internalType: "struct BoostLib.Boost";
            type: "tuple";
            components: readonly [{
                name: "action";
                internalType: "contract AAction";
                type: "address";
            }, {
                name: "validator";
                internalType: "contract AValidator";
                type: "address";
            }, {
                name: "allowList";
                internalType: "contract AAllowList";
                type: "address";
            }, {
                name: "budget";
                internalType: "contract ABudget";
                type: "address";
            }, {
                name: "incentives";
                internalType: "contract AIncentive[]";
                type: "address[]";
            }, {
                name: "protocolFee";
                internalType: "uint64";
                type: "uint64";
            }, {
                name: "maxParticipants";
                internalType: "uint256";
                type: "uint256";
            }, {
                name: "owner";
                internalType: "address";
                type: "address";
            }];
        }];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [];
        name: "createBoostAuth";
        outputs: readonly [{
            name: "";
            internalType: "contract IAuth";
            type: "address";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "index";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "getBoost";
        outputs: readonly [{
            name: "";
            internalType: "struct BoostLib.Boost";
            type: "tuple";
            components: readonly [{
                name: "action";
                internalType: "contract AAction";
                type: "address";
            }, {
                name: "validator";
                internalType: "contract AValidator";
                type: "address";
            }, {
                name: "allowList";
                internalType: "contract AAllowList";
                type: "address";
            }, {
                name: "budget";
                internalType: "contract ABudget";
                type: "address";
            }, {
                name: "incentives";
                internalType: "contract AIncentive[]";
                type: "address[]";
            }, {
                name: "protocolFee";
                internalType: "uint64";
                type: "uint64";
            }, {
                name: "maxParticipants";
                internalType: "uint256";
                type: "uint256";
            }, {
                name: "owner";
                internalType: "address";
                type: "address";
            }];
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "getBoostCount";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "key";
            internalType: "bytes32";
            type: "bytes32";
        }];
        name: "getIncentiveFeesInfo";
        outputs: readonly [{
            name: "";
            internalType: "struct BoostCore.IncentiveDisbursalInfo";
            type: "tuple";
            components: readonly [{
                name: "assetType";
                internalType: "enum ABudget.AssetType";
                type: "uint8";
            }, {
                name: "asset";
                internalType: "address";
                type: "address";
            }, {
                name: "protocolFeesRemaining";
                internalType: "uint256";
                type: "uint256";
            }, {
                name: "protocolFee";
                internalType: "uint256";
                type: "uint256";
            }, {
                name: "tokenId";
                internalType: "uint256";
                type: "uint256";
            }];
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "";
            internalType: "bytes32";
            type: "bytes32";
        }];
        name: "incentivesFeeInfo";
        outputs: readonly [{
            name: "assetType";
            internalType: "enum ABudget.AssetType";
            type: "uint8";
        }, {
            name: "asset";
            internalType: "address";
            type: "address";
        }, {
            name: "protocolFeesRemaining";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "protocolFee";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "tokenId";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "owner";
        outputs: readonly [{
            name: "result";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
        }];
        name: "ownershipHandoverExpiresAt";
        outputs: readonly [{
            name: "result";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "protocolFee";
        outputs: readonly [{
            name: "";
            internalType: "uint64";
            type: "uint64";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "protocolFeeReceiver";
        outputs: readonly [{
            name: "";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "registry";
        outputs: readonly [{
            name: "";
            internalType: "contract BoostRegistry";
            type: "address";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "renounceOwnership";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [];
        name: "requestOwnershipHandover";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "auth_";
            internalType: "address";
            type: "address";
        }];
        name: "setCreateBoostAuth";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "protocolFee_";
            internalType: "uint64";
            type: "uint64";
        }];
        name: "setProtocolFee";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "protocolFeeReceiver_";
            internalType: "address";
            type: "address";
        }];
        name: "setProtocolFeeReceiver";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "boostId";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "incentiveId";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "settleProtocolFees";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "newOwner";
            internalType: "address";
            type: "address";
        }];
        name: "transferOwnership";
        outputs: readonly [];
        stateMutability: "payable";
    }], "createBoost", readonly [`0x${string}`], Chain, Account, Chain> & {
        chainId: number;
        request: {
            chain: Chain;
            __mode: "prepared";
            chainId?: undefined;
        };
    }>

  • Claims one incentive from a given Boost by boostId and incentiveId

    Parameters

    • boostId: bigint
    • incentiveId: bigint
    • address: `0x${string}`
    • data: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<void>

  • Claim an incentive for a Boost

    Parameters

    • boostId: bigint

      The ID of the Boost

    • incentiveId: bigint

      The ID of the Incentive

    • referrer: `0x${string}`

      The address of the referrer (if any)

    • data: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: void;
    }>

  • Claims one incentive for a given Boost on behalf of another user by boostId and incentiveId

    Parameters

    • boostId: bigint
    • incentiveId: bigint
    • referrer: `0x${string}`
    • data: `0x${string}`
    • claimant: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<void>

  • Claim an incentive for a Boost on behalf of another user

    Parameters

    • boostId: bigint

      The ID of the Boost

    • incentiveId: bigint

      The ID of the Incentive

    • referrer: `0x${string}`

      The address of the referrer (if any)

    • data: `0x${string}`

      The data for the claim

    • claimant: `0x${string}`

      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,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: void;
    }>

  • Get a Boost by index, will return the raw on chain representation of a Boost.

    Parameters

    • _id: string | bigint
    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<RawBoost>

    BoostNotFoundError

  • 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

    Parameters

    • _id: string | bigint
    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<Boost>

    BoostNotFoundError

  • Retrieve the total number of deployed Boosts

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

  • Checks if an address is authorized

    Parameters

    • address: `0x${string}`
    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<boolean>

  • Retrieve the address of the current creation auth provider.

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

  • Replace the current auth scheme.

    Parameters

    • auth: PassthroughAuth
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<void>

  • Set the createBoostAuth address

    Parameters

    • address: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: void;
    }>

  • Get the protocol fee.

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

  • Get the protocol fee receiver.

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

  • Set the protocol fee receiver address. This function is only callable by the owner.

    Parameters

    • address: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<void>

  • Set the protocol fee receiver address. This function is only callable by the owner.

    Parameters

    • address: `0x${string}`
    • Optionalparams: Partial<Omit<UnionCompute<UnionStrictOmit<SimulateContractParameters<Abi, string, readonly unknown[], Chain, Chain, (`0x${string}` | Account)>, "chain">> & ChainIdParameter<Config, number> & ConnectorParameter,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: void;
    }>

  • Retrieves the claim information from a transaction receipt.

    Parameters

    • params: {
          hash: `0x${string}`;
          chainId?: number;
      }

      The parameters required to get the transaction receipt.

      • hash: `0x${string}`

        The hash of the transaction.

      • OptionalchainId?: number

    Returns Promise<undefined | {
        boostId: bigint;
        incentiveId: bigint;
        claimant: `0x${string}`;
        referrer: `0x${string}`;
        data: `0x${string}`;
    }>

    The claim information if found, undefined otherwise.

    This method retrieves the transaction receipt using the provided parameters, then parses the logs to find the 'BoostClaimed' event. If found, it returns the arguments of the event, which include the boost ID, incentive ID, claimer address, and claimed amount.

    const claimInfo = await boostCore.getClaimFromTransaction({
    hash: '0x...',
    chainId: 1
    });
    if (claimInfo) {
    console.log(`Boost ${claimInfo.boostId} claimed by ${claimInfo.claimer}`);
    }
  • 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.

    Parameters

    • Optionalamount: bigint
    • Optionalparams: Partial<Omit<ReadContractParameters,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

    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.

    Parameters

    • Optionaladdress: `0x${string}`

    Returns PassthroughAuth

    const auth = core.PassthroughAuth('0x') // is roughly equivalent to
    const auth = new PassthroughAuth({ config: core._config, account: core._account }, '0x')
  • Bound OpenAllowList constructor that reuses the same configuration as the Boost Core instance.

    Parameters

    • OptionalisBase: boolean

    Returns OpenAllowList

    const list = core.OpenAllowList('0x') // is roughly equivalent to
    const list = new OpenAllowList({ config: core._config, account: core._account }, '0x')
  • Bound ERC20VariableIncentive constructor that reuses the same configuration as the Boost Core instance.

    Parameters

    Returns ERC20VariableIncentive<ERC20VariableIncentivePayload, readonly [{
        type: "constructor";
        inputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "error";
        inputs: readonly [];
        name: "AlreadyInitialized";
    }, {
        type: "error";
        inputs: readonly [];
        name: "ClaimFailed";
    }, {
        type: "error";
        inputs: readonly [];
        name: "CloneAlreadyInitialized";
    }, {
        type: "error";
        inputs: readonly [];
        name: "InitializerNotImplemented";
    }, {
        type: "error";
        inputs: readonly [{
            name: "asset";
            internalType: "address";
            type: "address";
        }, {
            name: "available";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "required";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "InsufficientFunds";
    }, {
        type: "error";
        inputs: readonly [];
        name: "InvalidInitialization";
    }, {
        type: "error";
        inputs: readonly [];
        name: "InvalidInitialization";
    }, {
        type: "error";
        inputs: readonly [];
        name: "InvalidInitializationData";
    }, {
        type: "error";
        inputs: readonly [];
        name: "LengthMismatch";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NewOwnerIsZeroAddress";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NoHandoverRequest";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NotClaimable";
    }, {
        type: "error";
        inputs: readonly [];
        name: "NotInitializing";
    }, {
        type: "error";
        inputs: readonly [];
        name: "Unauthorized";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "recipient";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "data";
            internalType: "bytes";
            type: "bytes";
            indexed: false;
        }];
        name: "Claimed";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "version";
            internalType: "uint64";
            type: "uint64";
            indexed: false;
        }];
        name: "Initialized";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "OwnershipHandoverCanceled";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "OwnershipHandoverRequested";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "oldOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "newOwner";
            internalType: "address";
            type: "address";
            indexed: true;
        }];
        name: "OwnershipTransferred";
    }, {
        type: "event";
        anonymous: false;
        inputs: readonly [{
            name: "user";
            internalType: "address";
            type: "address";
            indexed: true;
        }, {
            name: "roles";
            internalType: "uint256";
            type: "uint256";
            indexed: true;
        }];
        name: "RolesUpdated";
    }, {
        type: "function";
        inputs: readonly [];
        name: "ADMIN_ROLE";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "MANAGER_ROLE";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "asset";
        outputs: readonly [{
            name: "";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "cancelOwnershipHandover";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "claimTarget";
            internalType: "address";
            type: "address";
        }, {
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "claim";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "";
            internalType: "address";
            type: "address";
        }];
        name: "claimed";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "claims";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "clawback";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }, {
            name: "";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
        }];
        name: "completeOwnershipHandover";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [];
        name: "currentReward";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "getComponentInterface";
        outputs: readonly [{
            name: "";
            internalType: "bytes4";
            type: "bytes4";
        }];
        stateMutability: "pure";
    }, {
        type: "function";
        inputs: readonly [{
            name: "accounts_";
            internalType: "address[]";
            type: "address[]";
        }, {
            name: "roles_";
            internalType: "uint256[]";
            type: "uint256[]";
        }];
        name: "grantManyRoles";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "user";
            internalType: "address";
            type: "address";
        }, {
            name: "roles";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "grantRoles";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "user";
            internalType: "address";
            type: "address";
        }, {
            name: "roles";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "hasAllRoles";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "user";
            internalType: "address";
            type: "address";
        }, {
            name: "roles";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "hasAnyRole";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "initialize";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "account_";
            internalType: "address";
            type: "address";
        }];
        name: "isAuthorized";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "claimTarget";
            internalType: "address";
            type: "address";
        }, {
            name: "";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "isClaimable";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "limit";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "owner";
        outputs: readonly [{
            name: "result";
            internalType: "address";
            type: "address";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "pendingOwner";
            internalType: "address";
            type: "address";
        }];
        name: "ownershipHandoverExpiresAt";
        outputs: readonly [{
            name: "result";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "data_";
            internalType: "bytes";
            type: "bytes";
        }];
        name: "preflight";
        outputs: readonly [{
            name: "budgetData";
            internalType: "bytes";
            type: "bytes";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "renounceOwnership";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "roles";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "renounceRoles";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [];
        name: "requestOwnershipHandover";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "accounts_";
            internalType: "address[]";
            type: "address[]";
        }, {
            name: "roles_";
            internalType: "uint256[]";
            type: "uint256[]";
        }];
        name: "revokeManyRoles";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "user";
            internalType: "address";
            type: "address";
        }, {
            name: "roles";
            internalType: "uint256";
            type: "uint256";
        }];
        name: "revokeRoles";
        outputs: readonly [];
        stateMutability: "payable";
    }, {
        type: "function";
        inputs: readonly [];
        name: "reward";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "user";
            internalType: "address";
            type: "address";
        }];
        name: "rolesOf";
        outputs: readonly [{
            name: "roles";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "accounts_";
            internalType: "address[]";
            type: "address[]";
        }, {
            name: "authorized_";
            internalType: "bool[]";
            type: "bool[]";
        }];
        name: "setAuthorized";
        outputs: readonly [];
        stateMutability: "nonpayable";
    }, {
        type: "function";
        inputs: readonly [{
            name: "interfaceId";
            internalType: "bytes4";
            type: "bytes4";
        }];
        name: "supportsInterface";
        outputs: readonly [{
            name: "";
            internalType: "bool";
            type: "bool";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [];
        name: "totalClaimed";
        outputs: readonly [{
            name: "";
            internalType: "uint256";
            type: "uint256";
        }];
        stateMutability: "view";
    }, {
        type: "function";
        inputs: readonly [{
            name: "newOwner";
            internalType: "address";
            type: "address";
        }];
        name: "transferOwnership";
        outputs: readonly [];
        stateMutability: "payable";
    }]>

    const validator = core.ERC20VariableIncentive({ ... }) // is roughly equivalent to
    const validator = new ERC20VariableIncentive({ config: core._config, account: core._account }, { ... })
  • 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.

    Parameters

    Returns Promise<BoostCore>

  • 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.

    Type Parameters

    • event extends
          | "OwnershipHandoverCanceled"
          | "OwnershipHandoverRequested"
          | "OwnershipTransferred"
          | "BoostClaimed"
          | "BoostCreated"
          | "ProtocolFeesCollected"
    • const abiEvent extends
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "incentiveId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "claimant";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "referrer";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "data";
                  internalType: "bytes";
                  type: "bytes";
                  indexed: false;
              }];
              name: "BoostClaimed";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "owner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "action";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "incentiveCount";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: false;
              }, {
                  name: "validator";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "allowList";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "budget";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }];
              name: "BoostCreated";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverCanceled";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverRequested";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "oldOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "newOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipTransferred";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "incentiveId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "amount";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: false;
              }, {
                  name: "recipient";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "ProtocolFeesCollected";
          } =
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "incentiveId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "claimant";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "referrer";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "data";
                  internalType: "bytes";
                  type: "bytes";
                  indexed: false;
              }];
              name: "BoostClaimed";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "owner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "action";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "incentiveCount";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: false;
              }, {
                  name: "validator";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "allowList";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "budget";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }];
              name: "BoostCreated";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverCanceled";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverRequested";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "oldOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "newOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipTransferred";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "incentiveId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "amount";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: false;
              }, {
                  name: "recipient";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "ProtocolFeesCollected";
          }, {
              name: event;
          }>

    Parameters

    • Optionalparams: Omit<GetLogsParams<readonly [{
          type: "constructor";
          inputs: readonly [{
              name: "registry_";
              internalType: "contract BoostRegistry";
              type: "address";
          }, {
              name: "protocolFeeReceiver_";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClawbackFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [{
              name: "expectedInterface";
              internalType: "bytes4";
              type: "bytes4";
          }, {
              name: "instance";
              internalType: "address";
              type: "address";
          }];
          name: "InvalidInstance";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotImplemented";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Reentrancy";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "boostId";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }, {
              name: "incentiveId";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }, {
              name: "claimant";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "referrer";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "BoostClaimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "boostId";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }, {
              name: "owner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "action";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "incentiveCount";
              internalType: "uint256";
              type: "uint256";
              indexed: false;
          }, {
              name: "validator";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "allowList";
              internalType: "address";
              type: "address";
              indexed: false;
          }, {
              name: "budget";
              internalType: "address";
              type: "address";
              indexed: false;
          }];
          name: "BoostCreated";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "boostId";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }, {
              name: "incentiveId";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }, {
              name: "amount";
              internalType: "uint256";
              type: "uint256";
              indexed: false;
          }, {
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "ProtocolFeesCollected";
      }, {
          type: "function";
          inputs: readonly [];
          name: "FEE_DENOMINATOR";
          outputs: readonly [{
              name: "";
              internalType: "uint64";
              type: "uint64";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "boostId_";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "incentiveId_";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "referrer_";
              internalType: "address";
              type: "address";
          }, {
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claimIncentive";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "boostId_";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "incentiveId_";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "referrer_";
              internalType: "address";
              type: "address";
          }, {
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }, {
              name: "claimant";
              internalType: "address";
              type: "address";
          }];
          name: "claimIncentiveFor";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }, {
              name: "boostId";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "incentiveId";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "createBoost";
          outputs: readonly [{
              name: "";
              internalType: "struct BoostLib.Boost";
              type: "tuple";
              components: readonly [{
                  name: "action";
                  internalType: "contract AAction";
                  type: "address";
              }, {
                  name: "validator";
                  internalType: "contract AValidator";
                  type: "address";
              }, {
                  name: "allowList";
                  internalType: "contract AAllowList";
                  type: "address";
              }, {
                  name: "budget";
                  internalType: "contract ABudget";
                  type: "address";
              }, {
                  name: "incentives";
                  internalType: "contract AIncentive[]";
                  type: "address[]";
              }, {
                  name: "protocolFee";
                  internalType: "uint64";
                  type: "uint64";
              }, {
                  name: "maxParticipants";
                  internalType: "uint256";
                  type: "uint256";
              }, {
                  name: "owner";
                  internalType: "address";
                  type: "address";
              }];
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "createBoostAuth";
          outputs: readonly [{
              name: "";
              internalType: "contract IAuth";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "index";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "getBoost";
          outputs: readonly [{
              name: "";
              internalType: "struct BoostLib.Boost";
              type: "tuple";
              components: readonly [{
                  name: "action";
                  internalType: "contract AAction";
                  type: "address";
              }, {
                  name: "validator";
                  internalType: "contract AValidator";
                  type: "address";
              }, {
                  name: "allowList";
                  internalType: "contract AAllowList";
                  type: "address";
              }, {
                  name: "budget";
                  internalType: "contract ABudget";
                  type: "address";
              }, {
                  name: "incentives";
                  internalType: "contract AIncentive[]";
                  type: "address[]";
              }, {
                  name: "protocolFee";
                  internalType: "uint64";
                  type: "uint64";
              }, {
                  name: "maxParticipants";
                  internalType: "uint256";
                  type: "uint256";
              }, {
                  name: "owner";
                  internalType: "address";
                  type: "address";
              }];
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getBoostCount";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "key";
              internalType: "bytes32";
              type: "bytes32";
          }];
          name: "getIncentiveFeesInfo";
          outputs: readonly [{
              name: "";
              internalType: "struct BoostCore.IncentiveDisbursalInfo";
              type: "tuple";
              components: readonly [{
                  name: "assetType";
                  internalType: "enum ABudget.AssetType";
                  type: "uint8";
              }, {
                  name: "asset";
                  internalType: "address";
                  type: "address";
              }, {
                  name: "protocolFeesRemaining";
                  internalType: "uint256";
                  type: "uint256";
              }, {
                  name: "protocolFee";
                  internalType: "uint256";
                  type: "uint256";
              }, {
                  name: "tokenId";
                  internalType: "uint256";
                  type: "uint256";
              }];
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "bytes32";
              type: "bytes32";
          }];
          name: "incentivesFeeInfo";
          outputs: readonly [{
              name: "assetType";
              internalType: "enum ABudget.AssetType";
              type: "uint8";
          }, {
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "protocolFeesRemaining";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "protocolFee";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "tokenId";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "protocolFee";
          outputs: readonly [{
              name: "";
              internalType: "uint64";
              type: "uint64";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "protocolFeeReceiver";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "registry";
          outputs: readonly [{
              name: "";
              internalType: "contract BoostRegistry";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "auth_";
              internalType: "address";
              type: "address";
          }];
          name: "setCreateBoostAuth";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "protocolFee_";
              internalType: "uint64";
              type: "uint64";
          }];
          name: "setProtocolFee";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "protocolFeeReceiver_";
              internalType: "address";
              type: "address";
          }];
          name: "setProtocolFeeReceiver";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "boostId";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "incentiveId";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "settleProtocolFees";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], event, abiEvent, abiEvent[]>, "event" | "events"> & {
          eventName?: event;
          eventNames?: event[];
      }

    Returns Promise<GetLogsReturnType<abiEvent, abiEvent[]>>

    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

    Type Parameters

    • event extends
          | "OwnershipHandoverCanceled"
          | "OwnershipHandoverRequested"
          | "OwnershipTransferred"
          | "BoostClaimed"
          | "BoostCreated"
          | "ProtocolFeesCollected"

    Parameters

    • cb: ((log: Log<bigint, number, false,
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "incentiveId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "claimant";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "referrer";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "data";
                  internalType: "bytes";
                  type: "bytes";
                  indexed: false;
              }];
              name: "BoostClaimed";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "owner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "action";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "incentiveCount";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: false;
              }, {
                  name: "validator";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "allowList";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }, {
                  name: "budget";
                  internalType: "address";
                  type: "address";
                  indexed: false;
              }];
              name: "BoostCreated";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverCanceled";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverRequested";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "oldOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "newOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipTransferred";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "boostId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "incentiveId";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }, {
                  name: "amount";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: false;
              }, {
                  name: "recipient";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "ProtocolFeesCollected";
          }, {
              name: event;
          }>, true>) => unknown)
        • (log): unknown
        • Parameters

          • log: Log<bigint, number, false,
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "boostId";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: true;
                    }, {
                        name: "incentiveId";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: true;
                    }, {
                        name: "claimant";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "referrer";
                        internalType: "address";
                        type: "address";
                        indexed: false;
                    }, {
                        name: "data";
                        internalType: "bytes";
                        type: "bytes";
                        indexed: false;
                    }];
                    name: "BoostClaimed";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "boostId";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: true;
                    }, {
                        name: "owner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "action";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "incentiveCount";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: false;
                    }, {
                        name: "validator";
                        internalType: "address";
                        type: "address";
                        indexed: false;
                    }, {
                        name: "allowList";
                        internalType: "address";
                        type: "address";
                        indexed: false;
                    }, {
                        name: "budget";
                        internalType: "address";
                        type: "address";
                        indexed: false;
                    }];
                    name: "BoostCreated";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "pendingOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "OwnershipHandoverCanceled";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "pendingOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "OwnershipHandoverRequested";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "oldOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "newOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "OwnershipTransferred";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "boostId";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: true;
                    }, {
                        name: "incentiveId";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: true;
                    }, {
                        name: "amount";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: false;
                    }, {
                        name: "recipient";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "ProtocolFeesCollected";
                }, {
                    name: event;
                }>, true>

          Returns unknown

    • Optionalparams: Partial<Omit<UnionCompute<WatchContractEventParameters<readonly [{
          type: "constructor";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "ClawbackFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "InvalidInstance";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotImplemented";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Reentrancy";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "BoostClaimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "BoostCreated";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "ProtocolFeesCollected";
      }, {
          type: "function";
          inputs: readonly [];
          name: "FEE_DENOMINATOR";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "claimIncentive";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "claimIncentiveFor";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "clawback";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "createBoost";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              components: ...;
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "createBoostAuth";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getBoost";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              components: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getBoostCount";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "getIncentiveFeesInfo";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              components: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "incentivesFeeInfo";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "protocolFee";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "protocolFeeReceiver";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "registry";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "setCreateBoostAuth";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "setProtocolFee";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "setProtocolFeeReceiver";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "settleProtocolFees";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], event, undefined, WebSocketTransport> & ChainIdParameter<Config, number> & SyncConnectedChainParameter>, "address" | "abi">> & {
          eventName?: event;
      }

    Returns (() => void)

      • (): void
      • Returns void

  • Protected

    Internal function to attach the connected account to write methods to avoid manually passing in an account each call.

    Parameters

    • Optionalaccount: Account

    Returns {
        account: Account;
    } | {
        account: undefined;
    }