@ethsub/sol
Version:
ethsub contracts
1,306 lines (1,167 loc) • 87.8 kB
text/typescript
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import {
BaseContract,
BigNumber,
BigNumberish,
BytesLike,
CallOverrides,
ContractTransaction,
Overrides,
PayableOverrides,
PopulatedTransaction,
Signer,
utils,
} from "ethers";
import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import { Listener, Provider } from "@ethersproject/providers";
import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
export type ProposalStruct = {
_status: BigNumberish;
_yesVotes: BigNumberish;
_yesVotesTotal: BigNumberish;
_proposedBlock: BigNumberish;
};
export type ProposalStructOutput = [number, BigNumber, number, number] & {
_status: number;
_yesVotes: BigNumber;
_yesVotesTotal: number;
_proposedBlock: number;
};
export interface BridgeInterface extends utils.Interface {
functions: {
"DEFAULT_ADMIN_ROLE()": FunctionFragment;
"MAX_RELAYERS()": FunctionFragment;
"RELAYER_ROLE()": FunctionFragment;
"_depositCounts(uint8)": FunctionFragment;
"_domainID()": FunctionFragment;
"_expiry()": FunctionFragment;
"_fee()": FunctionFragment;
"_relayerThreshold()": FunctionFragment;
"_resourceIDToHandlerAddress(bytes32)": FunctionFragment;
"getRoleAdmin(bytes32)": FunctionFragment;
"getRoleMember(bytes32,uint256)": FunctionFragment;
"getRoleMemberCount(bytes32)": FunctionFragment;
"getRoleMemberIndex(bytes32,address)": FunctionFragment;
"grantRole(bytes32,address)": FunctionFragment;
"hasRole(bytes32,address)": FunctionFragment;
"paused()": FunctionFragment;
"renounceRole(bytes32,address)": FunctionFragment;
"revokeRole(bytes32,address)": FunctionFragment;
"_hasVotedOnProposal(uint72,bytes32,address)": FunctionFragment;
"isRelayer(address)": FunctionFragment;
"renounceAdmin(address)": FunctionFragment;
"adminPauseTransfers()": FunctionFragment;
"adminUnpauseTransfers()": FunctionFragment;
"adminChangeRelayerThreshold(uint256)": FunctionFragment;
"adminAddRelayer(address)": FunctionFragment;
"adminRemoveRelayer(address)": FunctionFragment;
"adminSetResource(address,bytes32,address)": FunctionFragment;
"adminSetGenericResource(address,bytes32,address,bytes4,uint256,bytes4)": FunctionFragment;
"adminSetBurnable(address,address)": FunctionFragment;
"adminSetDepositNonce(uint8,uint64)": FunctionFragment;
"getProposal(uint8,uint64,bytes32)": FunctionFragment;
"_totalRelayers()": FunctionFragment;
"adminChangeFee(uint256)": FunctionFragment;
"adminWithdraw(address,bytes)": FunctionFragment;
"deposit(uint8,bytes32,bytes)": FunctionFragment;
"voteProposal(uint8,uint64,bytes32,bytes)": FunctionFragment;
"cancelProposal(uint8,uint64,bytes32)": FunctionFragment;
"executeProposal(uint8,uint64,bytes,bytes32,bool)": FunctionFragment;
"transferFunds(address[],uint256[])": FunctionFragment;
};
encodeFunctionData(
functionFragment: "DEFAULT_ADMIN_ROLE",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "MAX_RELAYERS",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "RELAYER_ROLE",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "_depositCounts",
values: [BigNumberish]
): string;
encodeFunctionData(functionFragment: "_domainID", values?: undefined): string;
encodeFunctionData(functionFragment: "_expiry", values?: undefined): string;
encodeFunctionData(functionFragment: "_fee", values?: undefined): string;
encodeFunctionData(
functionFragment: "_relayerThreshold",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "_resourceIDToHandlerAddress",
values: [BytesLike]
): string;
encodeFunctionData(
functionFragment: "getRoleAdmin",
values: [BytesLike]
): string;
encodeFunctionData(
functionFragment: "getRoleMember",
values: [BytesLike, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "getRoleMemberCount",
values: [BytesLike]
): string;
encodeFunctionData(
functionFragment: "getRoleMemberIndex",
values: [BytesLike, string]
): string;
encodeFunctionData(
functionFragment: "grantRole",
values: [BytesLike, string]
): string;
encodeFunctionData(
functionFragment: "hasRole",
values: [BytesLike, string]
): string;
encodeFunctionData(functionFragment: "paused", values?: undefined): string;
encodeFunctionData(
functionFragment: "renounceRole",
values: [BytesLike, string]
): string;
encodeFunctionData(
functionFragment: "revokeRole",
values: [BytesLike, string]
): string;
encodeFunctionData(
functionFragment: "_hasVotedOnProposal",
values: [BigNumberish, BytesLike, string]
): string;
encodeFunctionData(functionFragment: "isRelayer", values: [string]): string;
encodeFunctionData(
functionFragment: "renounceAdmin",
values: [string]
): string;
encodeFunctionData(
functionFragment: "adminPauseTransfers",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "adminUnpauseTransfers",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "adminChangeRelayerThreshold",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "adminAddRelayer",
values: [string]
): string;
encodeFunctionData(
functionFragment: "adminRemoveRelayer",
values: [string]
): string;
encodeFunctionData(
functionFragment: "adminSetResource",
values: [string, BytesLike, string]
): string;
encodeFunctionData(
functionFragment: "adminSetGenericResource",
values: [string, BytesLike, string, BytesLike, BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "adminSetBurnable",
values: [string, string]
): string;
encodeFunctionData(
functionFragment: "adminSetDepositNonce",
values: [BigNumberish, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "getProposal",
values: [BigNumberish, BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "_totalRelayers",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "adminChangeFee",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "adminWithdraw",
values: [string, BytesLike]
): string;
encodeFunctionData(
functionFragment: "deposit",
values: [BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "voteProposal",
values: [BigNumberish, BigNumberish, BytesLike, BytesLike]
): string;
encodeFunctionData(
functionFragment: "cancelProposal",
values: [BigNumberish, BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "executeProposal",
values: [BigNumberish, BigNumberish, BytesLike, BytesLike, boolean]
): string;
encodeFunctionData(
functionFragment: "transferFunds",
values: [string[], BigNumberish[]]
): string;
decodeFunctionResult(
functionFragment: "DEFAULT_ADMIN_ROLE",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "MAX_RELAYERS",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "RELAYER_ROLE",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "_depositCounts",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "_domainID", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "_expiry", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "_fee", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "_relayerThreshold",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "_resourceIDToHandlerAddress",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getRoleAdmin",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getRoleMember",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getRoleMemberCount",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getRoleMemberIndex",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceRole",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "_hasVotedOnProposal",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "isRelayer", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceAdmin",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminPauseTransfers",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminUnpauseTransfers",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminChangeRelayerThreshold",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminAddRelayer",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminRemoveRelayer",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminSetResource",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminSetGenericResource",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminSetBurnable",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminSetDepositNonce",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getProposal",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "_totalRelayers",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminChangeFee",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "adminWithdraw",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "voteProposal",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "cancelProposal",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "executeProposal",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "transferFunds",
data: BytesLike
): Result;
events: {
"Deposit(uint8,bytes32,uint64,address,bytes,bytes)": EventFragment;
"FailedHandlerExecution(bytes)": EventFragment;
"Paused(address)": EventFragment;
"ProposalEvent(uint8,uint64,uint8,bytes32)": EventFragment;
"ProposalVote(uint8,uint64,uint8,bytes32)": EventFragment;
"RelayerAdded(address)": EventFragment;
"RelayerRemoved(address)": EventFragment;
"RelayerThresholdChanged(uint256)": EventFragment;
"RoleGranted(bytes32,address,address)": EventFragment;
"RoleRevoked(bytes32,address,address)": EventFragment;
"Unpaused(address)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "Deposit"): EventFragment;
getEvent(nameOrSignatureOrTopic: "FailedHandlerExecution"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ProposalEvent"): EventFragment;
getEvent(nameOrSignatureOrTopic: "ProposalVote"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RelayerAdded"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RelayerRemoved"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RelayerThresholdChanged"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;
}
export type DepositEvent = TypedEvent<
[number, string, BigNumber, string, string, string],
{
destinationDomainID: number;
resourceID: string;
depositNonce: BigNumber;
user: string;
data: string;
handlerResponse: string;
}
>;
export type DepositEventFilter = TypedEventFilter<DepositEvent>;
export type FailedHandlerExecutionEvent = TypedEvent<
[string],
{ lowLevelData: string }
>;
export type FailedHandlerExecutionEventFilter =
TypedEventFilter<FailedHandlerExecutionEvent>;
export type PausedEvent = TypedEvent<[string], { account: string }>;
export type PausedEventFilter = TypedEventFilter<PausedEvent>;
export type ProposalEventEvent = TypedEvent<
[number, BigNumber, number, string],
{
originDomainID: number;
depositNonce: BigNumber;
status: number;
dataHash: string;
}
>;
export type ProposalEventEventFilter = TypedEventFilter<ProposalEventEvent>;
export type ProposalVoteEvent = TypedEvent<
[number, BigNumber, number, string],
{
originDomainID: number;
depositNonce: BigNumber;
status: number;
dataHash: string;
}
>;
export type ProposalVoteEventFilter = TypedEventFilter<ProposalVoteEvent>;
export type RelayerAddedEvent = TypedEvent<[string], { relayer: string }>;
export type RelayerAddedEventFilter = TypedEventFilter<RelayerAddedEvent>;
export type RelayerRemovedEvent = TypedEvent<[string], { relayer: string }>;
export type RelayerRemovedEventFilter = TypedEventFilter<RelayerRemovedEvent>;
export type RelayerThresholdChangedEvent = TypedEvent<
[BigNumber],
{ newThreshold: BigNumber }
>;
export type RelayerThresholdChangedEventFilter =
TypedEventFilter<RelayerThresholdChangedEvent>;
export type RoleGrantedEvent = TypedEvent<
[string, string, string],
{ role: string; account: string; sender: string }
>;
export type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
export type RoleRevokedEvent = TypedEvent<
[string, string, string],
{ role: string; account: string; sender: string }
>;
export type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
export type UnpausedEvent = TypedEvent<[string], { account: string }>;
export type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface Bridge extends BaseContract {
connect(signerOrProvider: Signer | Provider | string): this;
attach(addressOrName: string): this;
deployed(): Promise<this>;
interface: BridgeInterface;
queryFilter<TEvent extends TypedEvent>(
event: TypedEventFilter<TEvent>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TEvent>>;
listeners<TEvent extends TypedEvent>(
eventFilter?: TypedEventFilter<TEvent>
): Array<TypedListener<TEvent>>;
listeners(eventName?: string): Array<Listener>;
removeAllListeners<TEvent extends TypedEvent>(
eventFilter: TypedEventFilter<TEvent>
): this;
removeAllListeners(eventName?: string): this;
off: OnEvent<this>;
on: OnEvent<this>;
once: OnEvent<this>;
removeListener: OnEvent<this>;
functions: {
DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
MAX_RELAYERS(overrides?: CallOverrides): Promise<[BigNumber]>;
RELAYER_ROLE(overrides?: CallOverrides): Promise<[string]>;
_depositCounts(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<[BigNumber]>;
_domainID(overrides?: CallOverrides): Promise<[number]>;
_expiry(overrides?: CallOverrides): Promise<[number]>;
_fee(overrides?: CallOverrides): Promise<[BigNumber]>;
_relayerThreshold(overrides?: CallOverrides): Promise<[number]>;
_resourceIDToHandlerAddress(
arg0: BytesLike,
overrides?: CallOverrides
): Promise<[string]>;
/**
* Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
*/
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<[string]>;
/**
* Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
*/
getRoleMember(
role: BytesLike,
index: BigNumberish,
overrides?: CallOverrides
): Promise<[string]>;
/**
* Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.
*/
getRoleMemberCount(
role: BytesLike,
overrides?: CallOverrides
): Promise<[BigNumber]>;
/**
* Returns the index of the account that have `role`.
*/
getRoleMemberIndex(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<[BigNumber]>;
/**
* Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.
*/
grantRole(
role: BytesLike,
account: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Returns `true` if `account` has been granted `role`.
*/
hasRole(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<[boolean]>;
/**
* Returns true if the contract is paused, and false otherwise.
*/
paused(overrides?: CallOverrides): Promise<[boolean]>;
/**
* Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.
*/
renounceRole(
role: BytesLike,
account: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.
*/
revokeRole(
role: BytesLike,
account: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Returns true if {relayer} has voted on {destNonce} {dataHash} proposal.Naming left unchanged for backward compatibility.
* @param dataHash Hash of data to be provided when deposit proposal is executed.
* @param destNonce destinationDomainID + depositNonce of the proposal.
* @param relayer Address to check.
*/
_hasVotedOnProposal(
destNonce: BigNumberish,
dataHash: BytesLike,
relayer: string,
overrides?: CallOverrides
): Promise<[boolean]>;
/**
* Returns true if {relayer} has the relayer role.
* @param relayer Address to check.
*/
isRelayer(relayer: string, overrides?: CallOverrides): Promise<[boolean]>;
/**
* Removes admin role from {msg.sender} and grants it to {newAdmin}.Only callable by an address that currently has the admin role.
* @param newAdmin Address that admin role will be granted to.
*/
renounceAdmin(
newAdmin: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Pauses deposits, proposal creation and voting, and deposit executions.Only callable by an address that currently has the admin role.
*/
adminPauseTransfers(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Unpauses deposits, proposal creation and voting, and deposit executions.Only callable by an address that currently has the admin role.
*/
adminUnpauseTransfers(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Modifies the number of votes required for a proposal to be considered passed.Only callable by an address that currently has the admin role.Emits {RelayerThresholdChanged} event.
* @param newThreshold Value {_relayerThreshold} will be changed to.
*/
adminChangeRelayerThreshold(
newThreshold: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Grants {relayerAddress} the relayer role.Only callable by an address that currently has the admin role, which is checked in grantRole().Emits {RelayerAdded} event.
* @param relayerAddress Address of relayer to be added.
*/
adminAddRelayer(
relayerAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Removes relayer role for {relayerAddress}.Only callable by an address that currently has the admin role, which is checked in revokeRole().Emits {RelayerRemoved} event.
* @param relayerAddress Address of relayer to be removed.
*/
adminRemoveRelayer(
relayerAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets a new resource for handler contracts that use the IERCHandler interface, and maps the {handlerAddress} to {resourceID} in {_resourceIDToHandlerAddress}.Only callable by an address that currently has the admin role.
* @param handlerAddress Address of handler resource will be set for.
* @param resourceID ResourceID to be used when making deposits.
* @param tokenAddress Address of contract to be called when a deposit is made and a deposited is executed.
*/
adminSetResource(
handlerAddress: string,
resourceID: BytesLike,
tokenAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets a new resource for handler contracts that use the IGenericHandler interface, and maps the {handlerAddress} to {resourceID} in {_resourceIDToHandlerAddress}.Only callable by an address that currently has the admin role.
* @param contractAddress Address of contract to be called when a deposit is made and a deposited is executed.
* @param handlerAddress Address of handler resource will be set for.
* @param resourceID ResourceID to be used when making deposits.
*/
adminSetGenericResource(
handlerAddress: string,
resourceID: BytesLike,
contractAddress: string,
depositFunctionSig: BytesLike,
depositFunctionDepositerOffset: BigNumberish,
executeFunctionSig: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets a resource as burnable for handler contracts that use the IERCHandler interface.Only callable by an address that currently has the admin role.
* @param handlerAddress Address of handler resource will be set for.
* @param tokenAddress Address of contract to be called when a deposit is made and a deposited is executed.
*/
adminSetBurnable(
handlerAddress: string,
tokenAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets the nonce for the specific domainID.Only callable by an address that currently has the admin role.
* @param domainID Domain ID for increasing nonce.
* @param nonce The nonce value to be set.
*/
adminSetDepositNonce(
domainID: BigNumberish,
nonce: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Returns a proposal.
* @param dataHash Hash of data to be provided when deposit proposal is executed.
* @param depositNonce ID of proposal generated by proposal's origin Bridge contract.
* @param originDomainID Chain ID deposit originated from.
*/
getProposal(
originDomainID: BigNumberish,
depositNonce: BigNumberish,
dataHash: BytesLike,
overrides?: CallOverrides
): Promise<[ProposalStructOutput]>;
/**
* Returns total relayers number.Added for backwards compatibility.
*/
_totalRelayers(overrides?: CallOverrides): Promise<[BigNumber]>;
/**
* Changes deposit fee.Only callable by admin.
* @param newFee Value {_fee} will be updated to.
*/
adminChangeFee(
newFee: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Used to manually withdraw funds from ERC safes.
* @param data ABI-encoded withdrawal params relevant to the specified handler.
* @param handlerAddress Address of handler to withdraw from.
*/
adminWithdraw(
handlerAddress: string,
data: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Initiates a transfer using a specified handler contract.Only callable when Bridge is not paused.Emits {Deposit} event with all necessary parameters and a handler response. - ERC20Handler: responds with an empty data. - ERC721Handler: responds with the deposited token metadata acquired by calling a tokenURI method in the token contract. - GenericHandler: responds with the raw bytes returned from the call to the target contract.
* @param data Additional data to be passed to specified handler.
* @param destinationDomainID ID of chain deposit will be bridged to.
* @param resourceID ResourceID used to find address of handler to be used for deposit.
*/
deposit(
destinationDomainID: BigNumberish,
resourceID: BytesLike,
data: BytesLike,
overrides?: PayableOverrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* When called, {msg.sender} will be marked as voting in favor of proposal.Only callable by relayers when Bridge is not paused.Proposal must not have already been passed or executed.{msg.sender} must not have already voted on proposal.Emits {ProposalEvent} event with status indicating the proposal status.Emits {ProposalVote} event.
* @param data Data originally provided when deposit was made.
* @param depositNonce ID of deposited generated by origin Bridge contract.
* @param domainID ID of chain deposit originated from.
*/
voteProposal(
domainID: BigNumberish,
depositNonce: BigNumberish,
resourceID: BytesLike,
data: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Cancels a deposit proposal that has not been executed yet.Only callable by relayers when Bridge is not paused.Proposal must be past expiry threshold.Emits {ProposalEvent} event with status {Cancelled}.
* @param dataHash Hash of data originally provided when deposit was made.
* @param depositNonce ID of deposited generated by origin Bridge contract.
* @param domainID ID of chain deposit originated from.
*/
cancelProposal(
domainID: BigNumberish,
depositNonce: BigNumberish,
dataHash: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Executes a deposit proposal that is considered passed using a specified handler contract.Only callable by relayers when Bridge is not paused.Proposal must have Passed status.Hash of {data} must equal proposal's {dataHash}.Emits {ProposalEvent} event with status {Executed}.Emits {FailedExecution} event with the failed reason.
* @param data Data originally provided when deposit was made.
* @param depositNonce ID of deposited generated by origin Bridge contract.
* @param domainID ID of chain deposit originated from.
* @param resourceID ResourceID to be used when making deposits.
* @param revertOnFail Decision if the transaction should be reverted in case of handler's executeProposal is reverted or not.
*/
executeProposal(
domainID: BigNumberish,
depositNonce: BigNumberish,
data: BytesLike,
resourceID: BytesLike,
revertOnFail: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Transfers eth in the contract to the specified addresses. The parameters addrs and amounts are mapped 1-1. This means that the address at index 0 for addrs will receive the amount (in WEI) from amounts at index 0.
* @param addrs Array of addresses to transfer {amounts} to.
* @param amounts Array of amonuts to transfer to {addrs}.
*/
transferFunds(
addrs: string[],
amounts: BigNumberish[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
};
DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
MAX_RELAYERS(overrides?: CallOverrides): Promise<BigNumber>;
RELAYER_ROLE(overrides?: CallOverrides): Promise<string>;
_depositCounts(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
_domainID(overrides?: CallOverrides): Promise<number>;
_expiry(overrides?: CallOverrides): Promise<number>;
_fee(overrides?: CallOverrides): Promise<BigNumber>;
_relayerThreshold(overrides?: CallOverrides): Promise<number>;
_resourceIDToHandlerAddress(
arg0: BytesLike,
overrides?: CallOverrides
): Promise<string>;
/**
* Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
*/
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;
/**
* Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
*/
getRoleMember(
role: BytesLike,
index: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
/**
* Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.
*/
getRoleMemberCount(
role: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
/**
* Returns the index of the account that have `role`.
*/
getRoleMemberIndex(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<BigNumber>;
/**
* Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.
*/
grantRole(
role: BytesLike,
account: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Returns `true` if `account` has been granted `role`.
*/
hasRole(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<boolean>;
/**
* Returns true if the contract is paused, and false otherwise.
*/
paused(overrides?: CallOverrides): Promise<boolean>;
/**
* Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.
*/
renounceRole(
role: BytesLike,
account: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.
*/
revokeRole(
role: BytesLike,
account: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Returns true if {relayer} has voted on {destNonce} {dataHash} proposal.Naming left unchanged for backward compatibility.
* @param dataHash Hash of data to be provided when deposit proposal is executed.
* @param destNonce destinationDomainID + depositNonce of the proposal.
* @param relayer Address to check.
*/
_hasVotedOnProposal(
destNonce: BigNumberish,
dataHash: BytesLike,
relayer: string,
overrides?: CallOverrides
): Promise<boolean>;
/**
* Returns true if {relayer} has the relayer role.
* @param relayer Address to check.
*/
isRelayer(relayer: string, overrides?: CallOverrides): Promise<boolean>;
/**
* Removes admin role from {msg.sender} and grants it to {newAdmin}.Only callable by an address that currently has the admin role.
* @param newAdmin Address that admin role will be granted to.
*/
renounceAdmin(
newAdmin: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Pauses deposits, proposal creation and voting, and deposit executions.Only callable by an address that currently has the admin role.
*/
adminPauseTransfers(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Unpauses deposits, proposal creation and voting, and deposit executions.Only callable by an address that currently has the admin role.
*/
adminUnpauseTransfers(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Modifies the number of votes required for a proposal to be considered passed.Only callable by an address that currently has the admin role.Emits {RelayerThresholdChanged} event.
* @param newThreshold Value {_relayerThreshold} will be changed to.
*/
adminChangeRelayerThreshold(
newThreshold: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Grants {relayerAddress} the relayer role.Only callable by an address that currently has the admin role, which is checked in grantRole().Emits {RelayerAdded} event.
* @param relayerAddress Address of relayer to be added.
*/
adminAddRelayer(
relayerAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Removes relayer role for {relayerAddress}.Only callable by an address that currently has the admin role, which is checked in revokeRole().Emits {RelayerRemoved} event.
* @param relayerAddress Address of relayer to be removed.
*/
adminRemoveRelayer(
relayerAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets a new resource for handler contracts that use the IERCHandler interface, and maps the {handlerAddress} to {resourceID} in {_resourceIDToHandlerAddress}.Only callable by an address that currently has the admin role.
* @param handlerAddress Address of handler resource will be set for.
* @param resourceID ResourceID to be used when making deposits.
* @param tokenAddress Address of contract to be called when a deposit is made and a deposited is executed.
*/
adminSetResource(
handlerAddress: string,
resourceID: BytesLike,
tokenAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets a new resource for handler contracts that use the IGenericHandler interface, and maps the {handlerAddress} to {resourceID} in {_resourceIDToHandlerAddress}.Only callable by an address that currently has the admin role.
* @param contractAddress Address of contract to be called when a deposit is made and a deposited is executed.
* @param handlerAddress Address of handler resource will be set for.
* @param resourceID ResourceID to be used when making deposits.
*/
adminSetGenericResource(
handlerAddress: string,
resourceID: BytesLike,
contractAddress: string,
depositFunctionSig: BytesLike,
depositFunctionDepositerOffset: BigNumberish,
executeFunctionSig: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets a resource as burnable for handler contracts that use the IERCHandler interface.Only callable by an address that currently has the admin role.
* @param handlerAddress Address of handler resource will be set for.
* @param tokenAddress Address of contract to be called when a deposit is made and a deposited is executed.
*/
adminSetBurnable(
handlerAddress: string,
tokenAddress: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Sets the nonce for the specific domainID.Only callable by an address that currently has the admin role.
* @param domainID Domain ID for increasing nonce.
* @param nonce The nonce value to be set.
*/
adminSetDepositNonce(
domainID: BigNumberish,
nonce: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Returns a proposal.
* @param dataHash Hash of data to be provided when deposit proposal is executed.
* @param depositNonce ID of proposal generated by proposal's origin Bridge contract.
* @param originDomainID Chain ID deposit originated from.
*/
getProposal(
originDomainID: BigNumberish,
depositNonce: BigNumberish,
dataHash: BytesLike,
overrides?: CallOverrides
): Promise<ProposalStructOutput>;
/**
* Returns total relayers number.Added for backwards compatibility.
*/
_totalRelayers(overrides?: CallOverrides): Promise<BigNumber>;
/**
* Changes deposit fee.Only callable by admin.
* @param newFee Value {_fee} will be updated to.
*/
adminChangeFee(
newFee: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Used to manually withdraw funds from ERC safes.
* @param data ABI-encoded withdrawal params relevant to the specified handler.
* @param handlerAddress Address of handler to withdraw from.
*/
adminWithdraw(
handlerAddress: string,
data: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Initiates a transfer using a specified handler contract.Only callable when Bridge is not paused.Emits {Deposit} event with all necessary parameters and a handler response. - ERC20Handler: responds with an empty data. - ERC721Handler: responds with the deposited token metadata acquired by calling a tokenURI method in the token contract. - GenericHandler: responds with the raw bytes returned from the call to the target contract.
* @param data Additional data to be passed to specified handler.
* @param destinationDomainID ID of chain deposit will be bridged to.
* @param resourceID ResourceID used to find address of handler to be used for deposit.
*/
deposit(
destinationDomainID: BigNumberish,
resourceID: BytesLike,
data: BytesLike,
overrides?: PayableOverrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* When called, {msg.sender} will be marked as voting in favor of proposal.Only callable by relayers when Bridge is not paused.Proposal must not have already been passed or executed.{msg.sender} must not have already voted on proposal.Emits {ProposalEvent} event with status indicating the proposal status.Emits {ProposalVote} event.
* @param data Data originally provided when deposit was made.
* @param depositNonce ID of deposited generated by origin Bridge contract.
* @param domainID ID of chain deposit originated from.
*/
voteProposal(
domainID: BigNumberish,
depositNonce: BigNumberish,
resourceID: BytesLike,
data: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Cancels a deposit proposal that has not been executed yet.Only callable by relayers when Bridge is not paused.Proposal must be past expiry threshold.Emits {ProposalEvent} event with status {Cancelled}.
* @param dataHash Hash of data originally provided when deposit was made.
* @param depositNonce ID of deposited generated by origin Bridge contract.
* @param domainID ID of chain deposit originated from.
*/
cancelProposal(
domainID: BigNumberish,
depositNonce: BigNumberish,
dataHash: BytesLike,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Executes a deposit proposal that is considered passed using a specified handler contract.Only callable by relayers when Bridge is not paused.Proposal must have Passed status.Hash of {data} must equal proposal's {dataHash}.Emits {ProposalEvent} event with status {Executed}.Emits {FailedExecution} event with the failed reason.
* @param data Data originally provided when deposit was made.
* @param depositNonce ID of deposited generated by origin Bridge contract.
* @param domainID ID of chain deposit originated from.
* @param resourceID ResourceID to be used when making deposits.
* @param revertOnFail Decision if the transaction should be reverted in case of handler's executeProposal is reverted or not.
*/
executeProposal(
domainID: BigNumberish,
depositNonce: BigNumberish,
data: BytesLike,
resourceID: BytesLike,
revertOnFail: boolean,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
/**
* Transfers eth in the contract to the specified addresses. The parameters addrs and amounts are mapped 1-1. This means that the address at index 0 for addrs will receive the amount (in WEI) from amounts at index 0.
* @param addrs Array of addresses to transfer {amounts} to.
* @param amounts Array of amonuts to transfer to {addrs}.
*/
transferFunds(
addrs: string[],
amounts: BigNumberish[],
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
callStatic: {
DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
MAX_RELAYERS(overrides?: CallOverrides): Promise<BigNumber>;
RELAYER_ROLE(overrides?: CallOverrides): Promise<string>;
_depositCounts(
arg0: BigNumberish,
overrides?: CallOverrides
): Promise<BigNumber>;
_domainID(overrides?: CallOverrides): Promise<number>;
_expiry(overrides?: CallOverrides): Promise<number>;
_fee(overrides?: CallOverrides): Promise<BigNumber>;
_relayerThreshold(overrides?: CallOverrides): Promise<number>;
_resourceIDToHandlerAddress(
arg0: BytesLike,
overrides?: CallOverrides
): Promise<string>;
/**
* Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
*/
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;
/**
* Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.
*/
getRoleMember(
role: BytesLike,
index: BigNumberish,
overrides?: CallOverrides
): Promise<string>;
/**
* Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.
*/
getRoleMemberCount(
role: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
/**
* Returns the index of the account that have `role`.
*/
getRoleMemberIndex(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<BigNumber>;
/**
* Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.
*/
grantRole(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<void>;
/**
* Returns `true` if `account` has been granted `role`.
*/
hasRole(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<boolean>;
/**
* Returns true if the contract is paused, and false otherwise.
*/
paused(overrides?: CallOverrides): Promise<boolean>;
/**
* Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.
*/
renounceRole(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<void>;
/**
* Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.
*/
revokeRole(
role: BytesLike,
account: string,
overrides?: CallOverrides
): Promise<void>;
/**
* Returns true if {relayer} has voted on {destNonce} {dataHash} proposal.Naming left unchanged for backward compatibility.
* @param dataHash Hash of data to be provided when deposit proposal is executed.
* @param destNonce destinationDomainID + depositNonce of the proposal.
* @param relayer Address to check.
*/
_hasVotedOnProposal(
destNonce: BigNumberish,
dataHash: BytesLike,
relayer: string,
overrides?: CallOverrides
): Promise<boolean>;
/**
* Returns true if {relayer} has the relayer role.
* @param relayer Address to check.
*/
isRelayer(relayer: string, overrides?: CallOverrides): Promise<boolean>;
/**
* Removes admin role from {msg.sender} and grants it to {newAdmin}.Only callable by an address that currently has the admin role.
* @param newAdmin Address that admin role will be granted to.
*/
renounceAdmin(newAdmin: string, overrides?: CallOverrides): Promise<void>;
/**
* Pauses deposits, proposal creation and voting, and deposit executions.Only callable by an address that currently has the admin role.
*/
adminPauseTransfers(overrides?: CallOverrides): Promise<void>;
/**
* Unpauses deposits, proposal creation and voting, and deposit executions.Only callable by an address that currently has the admin role.
*/
adminUnpauseTransfers(overrides?: CallOverrides): Promise<void>;
/**
* Modifies the number of votes required for a proposal to be considered passed.Only callable by an address that currently has the admin role.Emits {RelayerThresholdChanged} event.
* @param newThreshold Value {_relayerThreshold} will be changed to.
*/
adminChangeRelayerThreshold(
newThreshold: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
/**
* Grants {relayerAddress} the relayer role.Only callable by an address that currently has the admin role, which is checked in grantRole().Emits {RelayerAdded} event.
* @param relayerAddress Address of relayer to be added.
*/
adminAddRelayer(
relayerAddress: string,
overrides?: CallOverrides
): Promise<void>;
/**
* Removes relayer role for {relayerAddress}.Only callable by an address that currently has the admin role, which is checked in revokeRole().Emits {RelayerRemoved} event.
* @param relayerAddress Address of relayer to be removed.
*/
adminRemoveRelayer(
relayerAddress: string,
overrides?: CallOverrides
): Promise<void>;
/**
* Sets a new resource for handler contracts that use the IERCHandler interface, and maps the {handlerAddress} to {resourceID} in {_resourceIDToHandlerAddress}.Only callable by an address that currently has the admin role.
* @param handlerAddress Address of handler resource will be set for.
* @param resourceID ResourceID to be used when making deposits.
* @param tokenAddress Address of contract to be called when a deposit is made and a deposited is executed.
*/
adminSetResource(
handlerAddress: string,
resourceID: BytesLike,
tokenAddress: string,
overrides?: CallOverrides
): Promise<void>;
/**
* Sets a new resource for handler contracts that use