Module: Models
Types and constants to make it easier to interact with ethers.
Interfaces
EthersAppContext
TCreateEthersModalConnector
Ƭ TCreateEthersModalConnector: (id?: string) => TEthersModalConnector | undefined
Type declaration
▸ (id?): TEthersModalConnector | undefined
Summary
A callback type that returns a EthersModalConnector
✏️ Notes
- can be used by components that need to give a connector to openModal
- id is the identifier of the provider: See docs
Parameters
| Name | Type |
|---|---|
id? | string |
Returns
TEthersModalConnector | undefined
Defined in
src/models/ethersAppContextTypes.ts:17
Models
TBasicContract
Ƭ TBasicContract: Object
Summary
Describes the basic structure of each contract
Type declaration
| Name | Type |
|---|---|
contractName | string |
address | string |
abi? | Readonly<Record<string, any>[]> |
Defined in
src/models/contractTypes.ts:18
TBasicContractDeployment
Ƭ TBasicContractDeployment: Object
Summary
Describes a basic contract data record. A record of key:chainId. value:{address, chainId}
Index signature
▪ [chainId: number]: { chainId: number ; address: string }
Defined in
src/models/contractTypes.ts:30
TExternalContractsAddressMap
Ƭ TExternalContractsAddressMap: z.infer<typeof externalContractAddressMap>
{chainId: {contract: address}}, contains an record of contracts
Summary
A type for external contracts
- it is a record of contract names and their deployed address
- this data type is used by ContractsAppContext to connect to external contracts
Defined in
src/models/contractTypes.ts:118
TDeployedHardhatContractsJson
Ƭ TDeployedHardhatContractsJson: z.infer<typeof deployedHardhatContractsJsonSchema>
Summary
Describes the structure of hardhat_contracts.json
- {chainIds: { networkNames: {contracts} }}, contains an record of contracts
- Used by useContractLoader
Defined in
src/models/contractTypesHardhat.ts:11
TNetworkInfo
Ƭ TNetworkInfo: Object
Summary
A type that describes the basics of a network for applications. e.g. mainnet, ropsten, rinkeby, etc.
Type declaration
| Name | Type |
|---|---|
name | string |
chainId | number |
rpcUrl | string |
faucet? | string |
blockExplorer | string |
price? | number |
gasPrice? | number |
Defined in
TEthersProvider
Ƭ TEthersProvider: JsonRpcProvider | Web3Provider | StaticJsonRpcProvider
Summary
A union of various ethers providers for ease of use and maximum flexiblity
✏️ Notes
Used by eth-hooks, eth-components and scaffold-eth-typescript
Defined in
src/models/providerTypes.ts:19
TEthersProviderOrSigner
Ƭ TEthersProviderOrSigner: JsonRpcProvider | Web3Provider | StaticJsonRpcProvider | Signer | JsonRpcSigner | Wallet | VoidSigner
Summary
A union of various providers and signers in ethers to give maximum flexibility
Defined in
src/models/providerTypes.ts:27
TEthersSigner
Ƭ TEthersSigner: Signer | JsonRpcSigner | Wallet | VoidSigner
Summary
A union of various providers in ethers to give maximum flexibility
Defined in
src/models/providerTypes.ts:42
TAbstractProvider
Ƭ TAbstractProvider: Provider
Summary
A union of abstract, non initalizable providers, used by some functions
Defined in
src/models/providerTypes.ts:50
TypedEventFilter
Ƭ TypedEventFilter<_EventArgsArray, _EventArgsObject>: EventFilter
Summary
An generic extension of EventFilter that is used by TypedEvent. It allows for typed events to be returned
Type parameters
| Name | Type |
|---|---|
_EventArgsArray | extends any[] |
_EventArgsObject | extends Record<string, any> |
Defined in
src/models/providerTypes.ts:58
TypedEvent
Ƭ TypedEvent<EventArgs>: Event & { args: EventArgs }
Summary
An generic extension of Event. It types the the arguments and return values of the contract event to be used in typescript.
Type parameters
| Name | Type |
|---|---|
EventArgs | extends Result |
Defined in
src/models/providerTypes.ts:69
DeepPartial
Ƭ DeepPartial<T>: { [P in keyof T]?: DeepPartial<T[P]> }
Summary
Similar to partial int typescript but allows deep partial types.
Type parameters
| Name |
|---|
T |
Defined in
Misc
const_web3DialogClosedByUser
• Const const_web3DialogClosedByUser: "Modal closed by user"
Defined in
src/models/constants/common.ts:1
const_web3DialogUserRejected
• Const const_web3DialogUserRejected: "Error: User Rejected"
Defined in
src/models/constants/common.ts:2
keyNamespace
• Const keyNamespace: Object
Type declaration
| Name | Type |
|---|---|
network | "network" |
signer | "signer" |
contracts | "contracts" |
state | "state" |
Defined in
src/models/constants/keyNamespace.ts:1
TBaseContractExtended
Ƭ TBaseContractExtended<GContractNames>: BaseContract & { contractName: GContractNames }
Summary
ethers.BaseContract extension. This is the exactly the same as ethers.BaseContract, but with a type guard for the contract name: BaseContract & { contractName: 'nameofContract' };
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
Defined in
src/models/contractAppContextTypes.ts:10
TContractConnectFunc
Ƭ TContractConnectFunc<GContract>: (address: string, signerOrProvider: Signer | Provider) => GContract
Type parameters
| Name | Type |
|---|---|
GContract | extends BaseContract |
Type declaration
▸ (address, signerOrProvider): GContract
A function that connects to a contract. Used by TContractConnectorBase. This is usually something generated by typechain and is used to connect to contract on the blockchain.
Parameters
| Name | Type |
|---|---|
address | string |
signerOrProvider | Signer | Provider |
Returns
GContract
Defined in
src/models/contractAppContextTypes.ts:15
TContractConnectorBase
Ƭ TContractConnectorBase<GContract>: Readonly<{ connect: TContractConnectFunc<GContract> ; abi: Readonly<Record<string, any>[]> }>
Summary
This types describes a base for a connnector. A contract connector would be a a conception that is the minimum required to connect to a contract. It has a connector function that returns a typed contract and abi that has contract information.
Type parameters
| Name | Type |
|---|---|
GContract | extends BaseContract |
Defined in
src/models/contractAppContextTypes.ts:24
TContractConnector
Ƭ TContractConnector<GContractNames, GContract>: Readonly<{ contractName: GContractNames ; config: TBasicContractDeployment } & TContractConnectorBase<GContract>>
Summary
This type descripts a connector that has enough information to create a contract in a chain. The contractName is required to use a group of connectors to create a connection of available contracts for the app.
✏️ Notes
- The config would be a record of chain information that helps the factory create contracts for the app.
- based on TContractConnectorBase and uses TBasicContractDeployment
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
GContract | extends TBaseContractExtended<GContractNames> |
Defined in
src/models/contractAppContextTypes.ts:37
TConnectorList
Ƭ TConnectorList<GContractNames, GContracts>: { [contractName in GContractNames]: TContractConnector<GContractNames, GContracts> }
Summary
A Record of typed connectors that can be used to create a contract.
✏️ Notes
- used by TAppContractsContext
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
GContracts | extends TBaseContractExtended<GContractNames> |
Defined in
src/models/contractAppContextTypes.ts:55
TTypedContract
Ƭ TTypedContract<GContractNames, GAppContractConnectorList>: GAppContractConnectorList extends { [key in GContractNames]: Object } ? TypedContract : never
Summary
A type that infers contract type (extended from BaseContract) based on connectors and contractName. For example DAI from { DAI: { connect: ... } }. If the contractName is not found, it will return a BaseContract
✏️ Notes
- used by contractsConextFactory
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
GAppContractConnectorList | GAppContractConnectorList |
Defined in
src/models/contractAppContextTypes.ts:66
TContractsByName
Ƭ TContractsByName<GContractNames, GContracts>: { [contractName in GContractNames]: { [chainId in number]: GContracts | undefined } }
Summary
A utility type for typed contracts by name and then by chain
✏️ Notes
- used by TAppContractsContext
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
GContracts | extends TBaseContractExtended<GContractNames> |
Defined in
src/models/contractAppContextTypes.ts:82
TContractsByChainId
Ƭ TContractsByChainId<GContractNames, GContracts>: { [chainId in number]: { [contractName in GContractNames]: GContracts | undefined } }
Summary
A utility type for typed contracts by chain and then by name
✏️ Notes
- used by TAppContractsContext
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
GContracts | extends TBaseContractExtended<GContractNames> |
Defined in
src/models/contractAppContextTypes.ts:94
TAppContractsContext
Ƭ TAppContractsContext<GContractNames, GContracts>: Object
Describes the current ContractsContext for the app used by the context created by contractContextFactory
Type parameters
| Name | Type |
|---|---|
GContractNames | extends string |
GContracts | extends TBaseContractExtended<GContractNames> |
Type declaration
| Name | Type |
|---|---|
contractConnectors | TConnectorList<GContractNames, GContracts> |
contractsByName | TContractsByName<GContractNames, GContracts> |
contractsByChainId | TContractsByChainId<GContractNames, GContracts> |
Defined in
src/models/contractAppContextTypes.ts:106
TContractDeploymentMap
Ƭ TContractDeploymentMap: Object
Summary
Contracts by contract name
- A record key: contractNames, values: TBasicContractDeployment
Index signature
▪ [contractName: string]: { config: TBasicContractDeployment }
Defined in
src/models/contractTypes.ts:54
contractDeploymentMapSchema
• Const contractDeploymentMapSchema: ZodType<TContractDeploymentMap>
Summary
Zod Schema for TContractDeploymentMap
Defined in
src/models/contractTypes.ts:63
TContractMapWithAbi
Ƭ TContractMapWithAbi: Object
Summary
Contracts by contract name, used by eth-hooks to connect and load contracts
- A record of key:{contract names}, values: Hardhat contract json
- includes chain id
Index signature
▪ [contractName: string]: { config: TBasicContractDeployment ; abi: Readonly<Record<string, any>[]> }
Defined in
src/models/contractTypes.ts:83
contractMapWithAbiSchema
• Const contractMapWithAbiSchema: ZodType<TContractMapWithAbi>
Summary
Zod Schema for TContractMapWithAbi
Defined in
src/models/contractTypes.ts:95
externalContractAddressMap
• Const externalContractAddressMap: ZodRecord<ZodEffects<ZodUnion<[ZodString, ZodNumber]>, number, string | number>, ZodRecord<ZodString, ZodString>>
Summary
Zod Schema for TExternalContractsAddressMap
Defined in
src/models/contractTypes.ts:124
TForgeTransactionData
Ƭ TForgeTransactionData: z.infer<typeof forgeTransactionDataSchema>
Defined in
src/models/contractTypesForge.ts:3
forgeTransactionDataSchema
• Const forgeTransactionDataSchema: ZodObject<{ type: ZodString ; from: ZodString ; gas: ZodString ; value: ZodString ; data: ZodString ; nonce: ZodString ; accessList: ZodArray<ZodString, "many"> }, "strip", ZodTypeAny, { type: string ; from: string ; gas: string ; value: string ; data: string ; nonce: string ; accessList: string[] }, { type: string ; from: string ; gas: string ; value: string ; data: string ; nonce: string ; accessList: string[] }>
Defined in
src/models/contractTypesForge.ts:4
TForgeTransaction
Ƭ TForgeTransaction: Object
Type declaration
| Name | Type |
|---|---|
hash | string | null |
transactionType | "CREATE" | Omit<string, "CREATE"> |
contractName | string |
contractAddress | string |
function | string | null |
arguments | string | null |
transaction | TForgeTransactionData |
Defined in
src/models/contractTypesForge.ts:14
forgeTransactionSchema
• Const forgeTransactionSchema: ZodType<TForgeTransaction>
Defined in
src/models/contractTypesForge.ts:24
TForgeBroadcastJson
Ƭ TForgeBroadcastJson: Object
Type declaration
| Name | Type |
|---|---|
transactions | TForgeTransaction[] |
Defined in
src/models/contractTypesForge.ts:34
TForgeDeploymentBroadcastCollection
Ƭ TForgeDeploymentBroadcastCollection: Object
Index signature
▪ [chainId: number]: TForgeBroadcastJson
Defined in
src/models/contractTypesForge.ts:38
forgeDeploymentBroadcastCollectionSchema
• Const forgeDeploymentBroadcastCollectionSchema: ZodType<TForgeDeploymentBroadcastCollection>
Defined in
src/models/contractTypesForge.ts:42
deployedHardhatContractsJsonSchema
• Const deployedHardhatContractsJsonSchema: ZodRecord<ZodEffects<ZodUnion<[ZodString, ZodNumber]>, number, string | number>, ZodArray<ZodObject<{ name: ZodString ; chainId: ZodString ; contracts: ZodRecord<ZodString, ZodObject<{ address: ZodString ; abi: ZodOptional<ZodArray<ZodAny, "many">> }, "strip", ZodTypeAny, { address: string ; abi: undefined | any[] }, { address: string ; abi: undefined | any[] }>> }, "strip", ZodTypeAny, { name: string ; chainId: string ; contracts: Record<string, { abi?: any[] | undefined; address: string; }> }, { name: string ; chainId: string ; contracts: Record<string, { abi?: any[] | undefined; address: string; }> }>, "many">>
Summary
Zod Schema for TBasicContractMap
Defined in
src/models/contractTypesHardhat.ts:17
const_blockNumberIntervalShort
• Const const_blockNumberIntervalShort: DeepPartial<TUpdateOptions>
Summary
An constant for block number interval of 10 blocks
Defined in
const_blockNumberIntervalMedium
• Const const_blockNumberIntervalMedium: DeepPartial<TUpdateOptions>
Summary
An constant for block number interval of 50 blocks
Defined in
const_blockNumberIntervalLong
• Const const_blockNumberIntervalLong: DeepPartial<TUpdateOptions>
Summary
An constant for block number interval of 250 blocks
Defined in
TQueryOptions
Ƭ TQueryOptions<GResult>: Omit<QueryObserverOptions<GResult, any>, "refetchInterval" | "notifyOnChangeProps" | "notifyOnChangePropsExclusions" | "useErrorBoundary" | "refetchOnWindowFocus" | "refetchOnMount" | "refetchOnReconnect"> & { refetchOnWindowFocus?: boolean | "always" ; refetchOnMount?: boolean | "always" ; refetchOnReconnect?: boolean | "always" }
Type parameters
| Name |
|---|
GResult |
Defined in
TUpdateOptions
Ƭ TUpdateOptions<GResult>: Object
Summary
Options for hooks that describe the behviour of updates. By default, depending on the hook, it will update every block.
✏️ Notes
The following options are available:
- interval: interval in blocknumber to update in (default 1) see TUpdateOptions.blockNumberInterval
- polling: in ms, should be over 10000ms. This is set by TUpdateOptions.query.refetchInterval
Type parameters
| Name | Type |
|---|---|
GResult | any |
Type declaration
| Name | Type | Description |
|---|---|---|
blockNumberInterval | number | undefined | The interval in blocknumber for the hook to update in (default 1) |
refetchInterval? | number | - |
query? | TQueryOptions<GResult> | - |
Defined in
TOverride
Ƭ TOverride: Object
Summary
Ethers Provider options. By default, the context provider is used by the hook. If you want to use a different provider, you can:
- pass in an TEthersAdaptor to override the provider
- give the alternateContextKey for a secondary context provider.
✏️ Notes
Adaptor
- To create a adaptor from a provider/signer see useGetEthersAdaptorFromSignerOrProvider
- You need to set adaptorEnabled to true
Alternate Context Key
- For more info on alternateContextKey, see TEthersAppContextProps and web3-react docs.
Type declaration
| Name | Type | Description |
|---|---|---|
adaptorEnabled | boolean | An enable override adaptor (ethers provider) for this hook |
adaptor | TEthersAdaptor | undefined | The alternate adaptor to use. See TEthersAdaptor |
alternateContextKey? | string | The alternate context key to use. See TEthersAppContextProps |
Defined in
defaultOverride
▸ defaultOverride(): TOverride
An helper to create the default override settings for hooks
Returns
Defined in
defaultUpdateOptions
▸ defaultUpdateOptions<GResult>(): TUpdateOptions<GResult>
A helper to create default update options for hooks
Type parameters
| Name | Type |
|---|---|
GResult | any |
Returns
TUpdateOptions<GResult>
Defined in
THookResult
Ƭ THookResult<T>: [result: T, update: Function, status: QueryStatus]
Summary
This type describes the tuple that is returned by most hooks
- result: the result of the hook
- update: a callback will refresh the results of hook manually
- status: the status of the query. From react-query: 'idle' | 'loading' | 'error' | 'success'. You can use this for UX purposes, see QueryStatus.
Type parameters
| Name |
|---|
T |
Defined in
Type Definition
TEthersAdaptor
Ƭ TEthersAdaptor: Object
Summary
Essentially a object that allows interaction with the network:
- provider signer,
Type declaration
| Name | Type |
|---|---|
signer? | TEthersSigner |
provider? | TEthersProvider |
chainId? | number |
account? | string |