import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export type PermitStruct = { enabled: boolean; deadline: BigNumberish; v: BigNumberish; r: BytesLike; s: BytesLike; }; export type PermitStructOutput = [ boolean, BigNumber, number, string, string ] & { enabled: boolean; deadline: BigNumber; v: number; r: string; s: string; }; export interface SyrupBitcoinRouterAbiInterface extends utils.Interface { functions: { "assetController(address)": FunctionFragment; "deposit(address,uint256,bytes32,(bool,uint256,uint8,bytes32,bytes32))": FunctionFragment; "globals()": FunctionFragment; "implementation()": FunctionFragment; "locked()": FunctionFragment; "mintFee(address)": FunctionFragment; "pool()": FunctionFragment; "poolManager()": FunctionFragment; "processRedemptions(uint256[])": FunctionFragment; "redeemRequests(uint256)": FunctionFragment; "redemptionFee(address)": FunctionFragment; "removeRequests(address,uint256[])": FunctionFragment; "removeSharesById(uint256,uint256)": FunctionFragment; "requestRedeem(address,uint256,bytes32,(bool,uint256,uint8,bytes32,bytes32))": FunctionFragment; "setAssetController(address,address)": FunctionFragment; "setFees(address,uint256,uint256)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "assetController" | "deposit" | "globals" | "implementation" | "locked" | "mintFee" | "pool" | "poolManager" | "processRedemptions" | "redeemRequests" | "redemptionFee" | "removeRequests" | "removeSharesById" | "requestRedeem" | "setAssetController" | "setFees"): FunctionFragment; encodeFunctionData(functionFragment: "assetController", values: [string]): string; encodeFunctionData(functionFragment: "deposit", values: [string, BigNumberish, BytesLike, PermitStruct]): string; encodeFunctionData(functionFragment: "globals", values?: undefined): string; encodeFunctionData(functionFragment: "implementation", values?: undefined): string; encodeFunctionData(functionFragment: "locked", values?: undefined): string; encodeFunctionData(functionFragment: "mintFee", values: [string]): string; encodeFunctionData(functionFragment: "pool", values?: undefined): string; encodeFunctionData(functionFragment: "poolManager", values?: undefined): string; encodeFunctionData(functionFragment: "processRedemptions", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "redeemRequests", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "redemptionFee", values: [string]): string; encodeFunctionData(functionFragment: "removeRequests", values: [string, BigNumberish[]]): string; encodeFunctionData(functionFragment: "removeSharesById", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "requestRedeem", values: [string, BigNumberish, BytesLike, PermitStruct]): string; encodeFunctionData(functionFragment: "setAssetController", values: [string, string]): string; encodeFunctionData(functionFragment: "setFees", values: [string, BigNumberish, BigNumberish]): string; decodeFunctionResult(functionFragment: "assetController", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "globals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "implementation", data: BytesLike): Result; decodeFunctionResult(functionFragment: "locked", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mintFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "poolManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "processRedemptions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "redeemRequests", data: BytesLike): Result; decodeFunctionResult(functionFragment: "redemptionFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeRequests", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeSharesById", data: BytesLike): Result; decodeFunctionResult(functionFragment: "requestRedeem", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setAssetController", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFees", data: BytesLike): Result; events: { "Initialized(address,address,address)": EventFragment; "AssetControllerSet(address,address)": EventFragment; "Deposit(address,address,uint256,uint256,uint256,uint256,bytes32)": EventFragment; "FeesSet(address,uint256,uint256)": EventFragment; "RedeemRequestSharesRemoved(uint256,uint256)": EventFragment; "RedeemRequestUpdated(uint256,uint256)": EventFragment; "RedemptionProcessed(uint256,address,address,uint256,uint256,uint256,uint256)": EventFragment; "RequestRedeem(address,uint256,address,uint256,bytes32)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; getEvent(nameOrSignatureOrTopic: "AssetControllerSet"): EventFragment; getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment; getEvent(nameOrSignatureOrTopic: "FeesSet"): EventFragment; getEvent(nameOrSignatureOrTopic: "RedeemRequestSharesRemoved"): EventFragment; getEvent(nameOrSignatureOrTopic: "RedeemRequestUpdated"): EventFragment; getEvent(nameOrSignatureOrTopic: "RedemptionProcessed"): EventFragment; getEvent(nameOrSignatureOrTopic: "RequestRedeem"): EventFragment; } export interface InitializedEventObject { implementation: string; globals: string; pool: string; } export type InitializedEvent = TypedEvent<[ string, string, string ], InitializedEventObject>; export type InitializedEventFilter = TypedEventFilter; export interface AssetControllerSetEventObject { asset: string; controller: string; } export type AssetControllerSetEvent = TypedEvent<[ string, string ], AssetControllerSetEventObject>; export type AssetControllerSetEventFilter = TypedEventFilter; export interface DepositEventObject { receiver: string; assetIn: string; amountIn: BigNumber; feeAmount: BigNumber; poolAssetAmount: BigNumber; shareAmount: BigNumber; metadata: string; } export type DepositEvent = TypedEvent<[ string, string, BigNumber, BigNumber, BigNumber, BigNumber, string ], DepositEventObject>; export type DepositEventFilter = TypedEventFilter; export interface FeesSetEventObject { asset: string; mintFee: BigNumber; redemptionFee: BigNumber; } export type FeesSetEvent = TypedEvent<[ string, BigNumber, BigNumber ], FeesSetEventObject>; export type FeesSetEventFilter = TypedEventFilter; export interface RedeemRequestSharesRemovedEventObject { requestId: BigNumber; sharesRemoved: BigNumber; } export type RedeemRequestSharesRemovedEvent = TypedEvent<[ BigNumber, BigNumber ], RedeemRequestSharesRemovedEventObject>; export type RedeemRequestSharesRemovedEventFilter = TypedEventFilter; export interface RedeemRequestUpdatedEventObject { requestId: BigNumber; newShares: BigNumber; } export type RedeemRequestUpdatedEvent = TypedEvent<[ BigNumber, BigNumber ], RedeemRequestUpdatedEventObject>; export type RedeemRequestUpdatedEventFilter = TypedEventFilter; export interface RedemptionProcessedEventObject { requestId: BigNumber; owner: string; assetOut: string; shareAmount: BigNumber; poolAssetAmount: BigNumber; amountOut: BigNumber; feeAmount: BigNumber; } export type RedemptionProcessedEvent = TypedEvent<[ BigNumber, string, string, BigNumber, BigNumber, BigNumber, BigNumber ], RedemptionProcessedEventObject>; export type RedemptionProcessedEventFilter = TypedEventFilter; export interface RequestRedeemEventObject { owner: string; requestId: BigNumber; assetOut: string; shareAmount: BigNumber; metadata: string; } export type RequestRedeemEvent = TypedEvent<[ string, BigNumber, string, BigNumber, string ], RequestRedeemEventObject>; export type RequestRedeemEventFilter = TypedEventFilter; export interface SyrupBitcoinRouterAbi extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: SyrupBitcoinRouterAbiInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { assetController(arg0: string, overrides?: CallOverrides): Promise<[string]>; deposit(assetIn_: string, amountIn_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; globals(overrides?: CallOverrides): Promise<[string] & { globals_: string; }>; implementation(overrides?: CallOverrides): Promise<[string] & { implementation_: string; }>; locked(overrides?: CallOverrides): Promise<[BigNumber]>; mintFee(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; pool(overrides?: CallOverrides): Promise<[string]>; poolManager(overrides?: CallOverrides): Promise<[string]>; processRedemptions(requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; redeemRequests(arg0: BigNumberish, overrides?: CallOverrides): Promise<[ string, string, BigNumber ] & { asset: string; owner: string; shares: BigNumber; }>; redemptionFee(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>; removeRequests(owner_: string, requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; removeSharesById(requestId_: BigNumberish, sharesToRemove_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; requestRedeem(assetOut_: string, shareAmount_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; setAssetController(asset_: string, newController_: string, overrides?: Overrides & { from?: string; }): Promise; setFees(asset_: string, mintFee_: BigNumberish, redemptionFee_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; }; assetController(arg0: string, overrides?: CallOverrides): Promise; deposit(assetIn_: string, amountIn_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; globals(overrides?: CallOverrides): Promise; implementation(overrides?: CallOverrides): Promise; locked(overrides?: CallOverrides): Promise; mintFee(arg0: string, overrides?: CallOverrides): Promise; pool(overrides?: CallOverrides): Promise; poolManager(overrides?: CallOverrides): Promise; processRedemptions(requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; redeemRequests(arg0: BigNumberish, overrides?: CallOverrides): Promise<[ string, string, BigNumber ] & { asset: string; owner: string; shares: BigNumber; }>; redemptionFee(arg0: string, overrides?: CallOverrides): Promise; removeRequests(owner_: string, requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; removeSharesById(requestId_: BigNumberish, sharesToRemove_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; requestRedeem(assetOut_: string, shareAmount_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; setAssetController(asset_: string, newController_: string, overrides?: Overrides & { from?: string; }): Promise; setFees(asset_: string, mintFee_: BigNumberish, redemptionFee_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; callStatic: { assetController(arg0: string, overrides?: CallOverrides): Promise; deposit(assetIn_: string, amountIn_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: CallOverrides): Promise; globals(overrides?: CallOverrides): Promise; implementation(overrides?: CallOverrides): Promise; locked(overrides?: CallOverrides): Promise; mintFee(arg0: string, overrides?: CallOverrides): Promise; pool(overrides?: CallOverrides): Promise; poolManager(overrides?: CallOverrides): Promise; processRedemptions(requestIds_: BigNumberish[], overrides?: CallOverrides): Promise; redeemRequests(arg0: BigNumberish, overrides?: CallOverrides): Promise<[ string, string, BigNumber ] & { asset: string; owner: string; shares: BigNumber; }>; redemptionFee(arg0: string, overrides?: CallOverrides): Promise; removeRequests(owner_: string, requestIds_: BigNumberish[], overrides?: CallOverrides): Promise; removeSharesById(requestId_: BigNumberish, sharesToRemove_: BigNumberish, overrides?: CallOverrides): Promise; requestRedeem(assetOut_: string, shareAmount_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber ] & { sharesLocked_: BigNumber; requestId_: BigNumber; }>; setAssetController(asset_: string, newController_: string, overrides?: CallOverrides): Promise; setFees(asset_: string, mintFee_: BigNumberish, redemptionFee_: BigNumberish, overrides?: CallOverrides): Promise; }; filters: { "Initialized(address,address,address)"(implementation?: string | null, globals?: string | null, pool?: string | null): InitializedEventFilter; Initialized(implementation?: string | null, globals?: string | null, pool?: string | null): InitializedEventFilter; "AssetControllerSet(address,address)"(asset?: string | null, controller?: string | null): AssetControllerSetEventFilter; AssetControllerSet(asset?: string | null, controller?: string | null): AssetControllerSetEventFilter; "Deposit(address,address,uint256,uint256,uint256,uint256,bytes32)"(receiver?: string | null, assetIn?: string | null, amountIn?: null, feeAmount?: null, poolAssetAmount?: null, shareAmount?: null, metadata?: null): DepositEventFilter; Deposit(receiver?: string | null, assetIn?: string | null, amountIn?: null, feeAmount?: null, poolAssetAmount?: null, shareAmount?: null, metadata?: null): DepositEventFilter; "FeesSet(address,uint256,uint256)"(asset?: string | null, mintFee?: null, redemptionFee?: null): FeesSetEventFilter; FeesSet(asset?: string | null, mintFee?: null, redemptionFee?: null): FeesSetEventFilter; "RedeemRequestSharesRemoved(uint256,uint256)"(requestId?: BigNumberish | null, sharesRemoved?: null): RedeemRequestSharesRemovedEventFilter; RedeemRequestSharesRemoved(requestId?: BigNumberish | null, sharesRemoved?: null): RedeemRequestSharesRemovedEventFilter; "RedeemRequestUpdated(uint256,uint256)"(requestId?: BigNumberish | null, newShares?: null): RedeemRequestUpdatedEventFilter; RedeemRequestUpdated(requestId?: BigNumberish | null, newShares?: null): RedeemRequestUpdatedEventFilter; "RedemptionProcessed(uint256,address,address,uint256,uint256,uint256,uint256)"(requestId?: BigNumberish | null, owner?: null, assetOut?: null, shareAmount?: null, poolAssetAmount?: null, amountOut?: null, feeAmount?: null): RedemptionProcessedEventFilter; RedemptionProcessed(requestId?: BigNumberish | null, owner?: null, assetOut?: null, shareAmount?: null, poolAssetAmount?: null, amountOut?: null, feeAmount?: null): RedemptionProcessedEventFilter; "RequestRedeem(address,uint256,address,uint256,bytes32)"(owner?: string | null, requestId?: BigNumberish | null, assetOut?: string | null, shareAmount?: null, metadata?: null): RequestRedeemEventFilter; RequestRedeem(owner?: string | null, requestId?: BigNumberish | null, assetOut?: string | null, shareAmount?: null, metadata?: null): RequestRedeemEventFilter; }; estimateGas: { assetController(arg0: string, overrides?: CallOverrides): Promise; deposit(assetIn_: string, amountIn_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; globals(overrides?: CallOverrides): Promise; implementation(overrides?: CallOverrides): Promise; locked(overrides?: CallOverrides): Promise; mintFee(arg0: string, overrides?: CallOverrides): Promise; pool(overrides?: CallOverrides): Promise; poolManager(overrides?: CallOverrides): Promise; processRedemptions(requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; redeemRequests(arg0: BigNumberish, overrides?: CallOverrides): Promise; redemptionFee(arg0: string, overrides?: CallOverrides): Promise; removeRequests(owner_: string, requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; removeSharesById(requestId_: BigNumberish, sharesToRemove_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; requestRedeem(assetOut_: string, shareAmount_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; setAssetController(asset_: string, newController_: string, overrides?: Overrides & { from?: string; }): Promise; setFees(asset_: string, mintFee_: BigNumberish, redemptionFee_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; }; populateTransaction: { assetController(arg0: string, overrides?: CallOverrides): Promise; deposit(assetIn_: string, amountIn_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; globals(overrides?: CallOverrides): Promise; implementation(overrides?: CallOverrides): Promise; locked(overrides?: CallOverrides): Promise; mintFee(arg0: string, overrides?: CallOverrides): Promise; pool(overrides?: CallOverrides): Promise; poolManager(overrides?: CallOverrides): Promise; processRedemptions(requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; redeemRequests(arg0: BigNumberish, overrides?: CallOverrides): Promise; redemptionFee(arg0: string, overrides?: CallOverrides): Promise; removeRequests(owner_: string, requestIds_: BigNumberish[], overrides?: Overrides & { from?: string; }): Promise; removeSharesById(requestId_: BigNumberish, sharesToRemove_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; requestRedeem(assetOut_: string, shareAmount_: BigNumberish, metadata_: BytesLike, permit_: PermitStruct, overrides?: Overrides & { from?: string; }): Promise; setAssetController(asset_: string, newController_: string, overrides?: Overrides & { from?: string; }): Promise; setFees(asset_: string, mintFee_: BigNumberish, redemptionFee_: BigNumberish, overrides?: Overrides & { from?: string; }): Promise; }; }