3.1.0-beta01 • Published 4 years ago

eth-hooks v3.1.0-beta01

Weekly downloads
184
License
MIT
Repository
github
Last release
4 years ago

🖇 Eth-Hooks Overview

Commonly used Ethereum hooks.

Used by 🏗 scaffold-eth Used by ⚙ eth-components

Created by 🏰 BuidlGuidl.eth

Install

yarn add eth-hooks

Authors

@austinGriffith @shravansunder @calvinbores

Peer Dependencies

  • react & general
    • react
    • react-dom
  • web3
    • @uniswap/sdk

API

Hooks & Helpers

useExchangeEthPrice ⇒

Get the Exchange price of ETH/USD (extrapolated from WETH/DAI)

Kind: global constant
Returns: (number) :: price

ParamDescription
targetNetwork(TNetwork)
mainnetProvider(TEthersProvider)
pollTime(number) :: if >0 use polling, else use instead of onBlock event

useTokenList ⇒

Gets a tokenlist (see more at https://tokenlists.org/), returning the .tokens only

~ How can I use? ~ const tokenList = useTokenList(); <- default returns the Unsiwap tokens const tokenList = useTokenList("https://gateway.ipfs.io/ipns/tokens.uniswap.org");

Kind: global constant
Returns: (TokenInfo[])

ParamDescription
tokenListUri(string)
chainId(number)

useLookupAddress ⇒

Gets ENS name from given address and provider

Kind: global constant
Returns: (string) ens name

ParamDescription
provider(TEthersProvider)
address(string)

useResolveEnsName ⇒

Gets the address from an ENS name and provider

Kind: global constant
Returns: (string) :: address

ParamDescription
provider(TEthersProvider)
ensName(string)

useTokenBalance ⇒

Get the balance of an ERC20 token in an address

~ Features ~

  • Provide address and get balance corresponding to given address
  • Change provider to access balance on different chains (ex. mainnetProvider)
  • If no pollTime is passed, the balance will update on every new block

Kind: global constant
Returns: (BigNumber) :: balance

ParamDescription
contract(ethers->Contract) contract object for the ERC20 token
address(string)
pollTime(number) :: if >0 use polling, else use instead of onBlock event

useEventListener ⇒

Enables you to keep track of events

~ Features ~

  • Provide readContracts by loading contracts (see more on ContractLoader.js)
  • Specify the name of the contract, in this case it is "YourContract"
  • Specify the name of the event in the contract, in this case we keep track of "SetPurpose" event
  • Specify the provider

Kind: global constant
Returns: (ethers->Event)

ParamDescription
contracts(Record<string, Contract>) :: record of current contractname/contract
contractName(string) :: name of the contract you are interested in
eventName(string) :: name of the event
provider(TEthersProvider)
startBlock(number) string block of events

parseProviderOrSigner ⇒

Parse TEthersProviderOrSigner to TProviderAndSigner

Kind: global constant
Returns: TProviderAndSigner

ParamDescription
providerOrSignerTEthersProviderOrSigner

useBalance ⇒

Gets your balance in ETH from given address and provider

~ Features ~

  • Provide address and get balance corresponding to given address
  • Change provider to access balance on different chains (ex. mainnetProvider)
  • If no pollTime is passed, the balance will update on every new block

Kind: global constant
Returns: (Bignumber) :: current balance

ParamDescription
provider(ethers->Provider)
address(string)
pollTime(number) :: if >0 use polling, else use instead of onBlock event

useBlockNumber ⇒

Get the current block number of the network

Kind: global constant
Returns: (number) :: block number

ParamDescription
provider(TEthersProvider)
pollTime(number) :: if >0 use polling, else use instead of onBlock event

useBurnerSigner ⇒

A hook that creates a buner address and returns a Signer

Kind: global constant
Returns: (ethers.signer) :: signer of the wallet

ParamDescription
provider(TEthersProvider)

useContractExistsAtAddress ⇒

Checks whether a contract exists on the blockchain, returns true if it exists, otherwise false

~ Features ~

  • Provide contractAddress to check if the contract is deployed
  • Change provider to check contract address on different chains (ex. mainnetProvider)

Kind: global constant
Returns: (boolean)

ParamDescription
provider(TEthersProvider)
contractAddress(string)

useContractLoader ⇒

Loads your local contracts and gives options to read values from contracts or write transactions into them

~ Features ~

  • localProvider enables reading values from contracts
  • userProvider enables writing transactions into contracts
  • Example of keeping track of "purpose" variable by loading contracts into readContracts and using ContractReader.js hook: const purpose = useContractReader(readContracts,"YourContract", "purpose")
  • Example of using setPurpose function from our contract and writing transactions by Transactor.js helper: tx( writeContracts.YourContract.setPurpose(newPurpose) )

config can include:

  • chainId - to hardcode the chainId, irrespective of the providerOrSigner chainId
  • hardhatNetworkName - to hardcode the hardhat network of interest
  • customAddresses: { contractName: 0xCustomAddress } to hardcode the address for a given named contract
  • hardhatContracts: object following the hardhat deploy export format (Json with chainIds as keys, which have hardhat network names as keys, which contain arrays of contracts for each)
  • externalContracts: object with chainIds as keys, with an array of contracts for each

Kind: global constant
Returns: (Record<string, Contract>) :: a record of contractName:contract

ParamDescription
providerOrSigner(TEthersProviderOrSigner)
config(TContractConfig) :: configuration for loader

useContractReader ⇒

Enables you to call functions in contracts and read their values. It helps keep track of them in the local React states

~ Features ~

  • Provide readContracts by loading contracts (see more on ContractLoader.js)
  • Specify the name of the contract, in this case it is "YourContract"
  • Specify the name of the variable in the contract, in this case we keep track of "purpose" variable
  • Pass an args array if the function requires
  • Pass pollTime - if no pollTime is specified, the function will update on every new block

Kind: global constant
Returns: () :: generic return type

ParamDescription
contracts(Record<string, Contract>) :: a record of contractName/contract
contractName(string) :: The contract name
functionName(string) :: The function name in the contract
functionArgs(any[]) :: arguments to functions
pollTime(number) :: optional :: if >0 use polling, else use instead of onBlock event
formatter((_value: T) => T) :: optional :: function to format the result
onChange(string) :: optional :: callback to call with the function

useGasPrice ⇒

Gets the gas price from Eth Gas Station

Kind: global constant
Returns: (number) gas price in gwei

ParamDescription
targetNetwork(TNetwork)
speed(TGasStationSpeed) 'fast', 'fastest', 'safeLow', 'average'
pollTime(number) :: if > 0 use polling, else use instead of onBlock event

useNonce ⇒

Get the current nonce of the address provided

Kind: global constant
Returns: (number) nonce

ParamDescription
provider(TEthersProvider)
address(string)
pollTime(number) :: if >0 use polling, else use instead of onBlock event

useOnBlock

Kind: global constant
See: useOnRepetition for a newer implementation helper hook to call a function regularly at time intervals when the block changes.

ParamDescription
providerethers/web3 provider
callbackFnany function
argsfunction parameters

useOnRepetition

A hook will invoke a callback regularly on the "block" event. Alternatively, If a pollTime is provided, it will use that instead. The minumum polling time is 10s

  • the hook will invoke the callback when the leadTrigger changes state to true as a leading invokation

Kind: global constant

ParamDescription
callback(func) :: callback funciton, can have variable args
options(TOptions)
argsvarargs callback function arguments

usePoller

Kind: global constant
See: useOnRepetition for a newer implementation helper hook to call a function regularly in time intervals

Param
callbackFn
delay
extraWatch

useTimestamp ⇒

Get the current timestamp from the latest block

Kind: global constant
Returns: (number) :: timestamp

ParamDescription
provider(TEthersProvider)
pollTime(number) :: if >0 use polling, else use instead of onBlock event

useUserAddress ⇒

Get the address from the current signer or provider

Kind: global constant
Returns: (string) :: address

ParamDescription
providerOrSigner(TEthersProviderOrSigner)

useUserProviderAndSigner ⇒

Gets user provider/signer from injected provider or local provider Use your injected provider from 🦊 Metamask If you don't have it then instantly generate a 🔥 burner wallet from a local provider

~ Features ~

  • Specify the injected provider from Metamask
  • Specify the local provider
  • Usage examples: const tx = Transactor(userSigner, gasPrice)

Kind: global constant
Returns: (TProviderAndSigner)

ParamDescription
injectedProviderOrSigner(TEthersProviderOrSigner) :: injected provider/signer from metamask etc..
localProvider(TEthersProvider) local provider to generate a burner wallet from
2.3.19

3 years ago

5.0.2-beta23

3 years ago

5.0.2-beta22

3 years ago

5.0.2-beta21

3 years ago

5.0.2-beta20

3 years ago

5.0.2-beta27

3 years ago

5.0.2-beta26

3 years ago

5.0.2-beta25

3 years ago

5.0.2-beta24

3 years ago

5.0.2-beta19

3 years ago

2.3.18

3 years ago

5.0.2-beta5

3 years ago

5.0.2-beta4

3 years ago

5.0.2-beta3

3 years ago

5.0.2-beta2

3 years ago

5.0.2-beta9

3 years ago

5.0.2-beta8

3 years ago

5.0.2-beta7

3 years ago

5.0.2-beta6

3 years ago

5.0.2-beta18

3 years ago

5.0.2-beta17

3 years ago

5.0.2-beta12

3 years ago

5.0.2-beta11

3 years ago

5.0.2-beta10

3 years ago

5.0.2-beta16

3 years ago

5.0.2-beta15

3 years ago

5.0.2-beta14

3 years ago

5.0.2-beta13

3 years ago

4.2.22

4 years ago

4.2.23

4 years ago

4.2.28

4 years ago

4.2.29

4 years ago

4.2.24

4 years ago

4.2.25

4 years ago

4.2.26

4 years ago

4.2.27

4 years ago

5.0.2-beta1

3 years ago

5.0.2-beta0

3 years ago

4.6.1

3 years ago

5.0.0-beta1

4 years ago

4.6.0

4 years ago

4.6.2

3 years ago

5.0.0-beta02

4 years ago

5.0.0-beta01

4 years ago

4.5.1

4 years ago

5.0.1-beta09

4 years ago

5.0.1-beta06

4 years ago

5.0.1-beta05

4 years ago

5.0.1-beta08

4 years ago

5.0.1-beta07

4 years ago

5.0.1-beta02

4 years ago

5.0.1-beta04

4 years ago

5.0.1-beta03

4 years ago

4.3.2-beta01

4 years ago

4.4.0

4 years ago

4.2.34-beta10

4 years ago

4.2.34-beta12

4 years ago

4.2.34-beta11

4 years ago

4.2.34-beta14

4 years ago

4.2.34-beta13

4 years ago

4.2.34-beta16

4 years ago

4.2.34-beta15

4 years ago

4.2.34-beta17

4 years ago

4.2.34-beta19

4 years ago

4.2.21-beta01

4 years ago

4.2.34-beta21

4 years ago

4.2.34-beta20

4 years ago

4.2.34-beta23

4 years ago

4.2.34-beta22

4 years ago

4.2.34-beta25

4 years ago

4.2.34-beta24

4 years ago

4.2.34-beta27

4 years ago

4.2.34-beta26

4 years ago

4.2.34-beta28

4 years ago

4.3.1

4 years ago

4.3.0

4 years ago

4.2.34-beta01

4 years ago

4.2.34-beta03

4 years ago

4.2.34-beta02

4 years ago

4.2.34-beta05

4 years ago

4.2.34-beta04

4 years ago

4.2.34-beta07

4 years ago

4.2.34-beta06

4 years ago

4.2.34-beta09

4 years ago

4.2.34-beta08

4 years ago

4.6.1-beta1

3 years ago

4.3.0-beta01

4 years ago

4.2.31

4 years ago

4.6.1-beta0

3 years ago

4.2.32

4 years ago

4.2.33

4 years ago

4.2.30

4 years ago

4.2.39

4 years ago

4.2.35

4 years ago

4.2.36

4 years ago

4.2.37

4 years ago

4.2.38

4 years ago

2.3.17

4 years ago

5.0.1-beta11

4 years ago

5.0.1-beta10

4 years ago

4.2.20

4 years ago

4.2.21

4 years ago

4.2.10

4 years ago

4.2.11

4 years ago

4.2.12

4 years ago

4.2.17

4 years ago

4.2.18

4 years ago

4.2.19

4 years ago

4.2.13

4 years ago

4.2.14

4 years ago

4.2.15

4 years ago

4.2.16

4 years ago

4.2.3

4 years ago

4.2.2

4 years ago

4.2.5

4 years ago

4.2.4

4 years ago

4.2.1

4 years ago

4.2.0

4 years ago

4.2.7

4 years ago

4.2.6

4 years ago

4.2.9

4 years ago

4.2.8

4 years ago

4.0.48

4 years ago

4.0.47

4 years ago

4.0.46

4 years ago

4.1.0

4 years ago

4.0.45

4 years ago

4.0.1-beta08

4 years ago

4.0.1-beta09

4 years ago

4.0.1-beta06

4 years ago

4.0.1-beta07

4 years ago

4.0.1-beta04

4 years ago

4.0.1-beta05

4 years ago

4.0.1-beta02

4 years ago

4.0.1-beta03

4 years ago

4.0.1-beta01

4 years ago

4.0.5

4 years ago

4.0.4

4 years ago

4.0.7

4 years ago

4.0.6

4 years ago

4.0.3

4 years ago

4.0.9

4 years ago

4.0.8

4 years ago

4.0.19

4 years ago

4.0.21

4 years ago

4.0.20

4 years ago

4.0.27

4 years ago

4.0.26

4 years ago

4.0.29

4 years ago

4.0.28

4 years ago

4.0.23

4 years ago

4.0.22

4 years ago

4.0.25

4 years ago

4.0.24

4 years ago

4.0.2-beta09

4 years ago

4.0.2-beta06

4 years ago

4.0.2-beta05

4 years ago

4.0.2-beta08

4 years ago

4.0.2-beta07

4 years ago

4.0.2-beta02

4 years ago

4.0.2-beta01

4 years ago

4.0.2-beta04

4 years ago

4.0.2-beta03

4 years ago

4.0.10

4 years ago

4.0.16

4 years ago

4.0.15

4 years ago

4.0.18

4 years ago

4.0.17

4 years ago

4.0.12

4 years ago

4.0.11

4 years ago

4.0.14

4 years ago

4.0.13

4 years ago

4.0.41

4 years ago

4.0.40

4 years ago

4.0.43

4 years ago

4.0.42

4 years ago

4.0.44

4 years ago

4.0.30

4 years ago

4.0.32

4 years ago

4.0.31

4 years ago

4.0.38

4 years ago

4.0.37

4 years ago

4.0.39

4 years ago

4.0.34

4 years ago

4.0.33

4 years ago

4.0.36

4 years ago

4.0.35

4 years ago

4.0.0-beta05

4 years ago

4.0.19-beta01

4 years ago

3.4.1

4 years ago

2.3.16

4 years ago

2.3.15

4 years ago

3.3.1-beta02

4 years ago

3.3.1-beta03

4 years ago

3.3.1-beta04

4 years ago

3.3.1-beta05

4 years ago

3.3.1-beta01

4 years ago

3.3.1-beta06

4 years ago

3.3.1-beta07

4 years ago

3.3.1-beta08

4 years ago

3.3.9

4 years ago

3.3.8

4 years ago

3.3.7

4 years ago

3.3.6

4 years ago

3.3.10-beta11

4 years ago

4.0.0-beta04

4 years ago

4.0.0-beta03

4 years ago

3.3.10-beta10

4 years ago

3.3.10-beta04

4 years ago

3.3.10-beta07

4 years ago

3.3.10-beta06

4 years ago

3.3.10-beta01

4 years ago

3.3.10-beta03

4 years ago

3.3.10-beta02

4 years ago

3.3.10-beta09

4 years ago

3.3.10-beta08

4 years ago

3.4.0

4 years ago

3.3.2-beta01

4 years ago

3.3.4

4 years ago

3.3.3

4 years ago

3.3.2

4 years ago

3.3.0-beta02

4 years ago

3.3.0-beta01

4 years ago

2.3.14

4 years ago

3.2.0-beta19

4 years ago

3.2.0-beta17

4 years ago

3.2.0-beta18

4 years ago

3.2.0-beta15

4 years ago

3.2.0-beta16

4 years ago

3.2.0-beta13

4 years ago

3.2.0-beta12

4 years ago

3.2.0-beta10

4 years ago

3.2.0-beta08

4 years ago

3.2.0-beta09

4 years ago

3.2.0-beta06

4 years ago

3.2.0-beta07

4 years ago

3.2.0-beta31

4 years ago

3.2.0-beta30

4 years ago

3.2.0-beta28

4 years ago

3.2.0-beta29

4 years ago

3.2.0-beta26

4 years ago

3.2.0-beta27

4 years ago

3.2.0-beta24

4 years ago

3.2.0-beta25

4 years ago

3.2.0-beta22

4 years ago

3.2.0-beta23

4 years ago

3.2.0-beta20

4 years ago

3.2.0-beta21

4 years ago

2.3.13

4 years ago

2.3.12

4 years ago

3.1.0-beta03

4 years ago

3.1.0-beta04

4 years ago

3.1.0-beta05

4 years ago

3.1.0-beta06

4 years ago

3.1.0-beta02

4 years ago

3.2.0-beta04

4 years ago

3.2.0-beta02

4 years ago

3.2.0-beta03

4 years ago

3.2.0-beta01

4 years ago

2.3.11

4 years ago

2.3.10

4 years ago

3.0.0-beta05

4 years ago

3.0.0-beta04

4 years ago

3.0.0-beta06

4 years ago

3.1.0-beta01

4 years ago

3.0.1

4 years ago

3.0.0-beta03

4 years ago

3.0.0-beta02

4 years ago

3.0.0-beta01

4 years ago

2.4.0-beta17

4 years ago

2.4.0-beta19

4 years ago

2.4.0-beta18

4 years ago

2.4.0-beta16

4 years ago

2.4.0-beta13

4 years ago

2.4.0-beta12

4 years ago

2.4.0-beta15

4 years ago

2.4.0-beta14

4 years ago

2.4.0-beta11

4 years ago

2.4.0-beta10

4 years ago

2.4.0-beta09

4 years ago

2.4.0-beta06

4 years ago

2.4.0-beta08

4 years ago

2.4.0-beta07

4 years ago

2.4.0-beta05

4 years ago

2.4.0-beta04

4 years ago

2.4.0-beta03

4 years ago

2.3.9

4 years ago

2.3.3-beta01

4 years ago

2.3.4

4 years ago

2.3.3

4 years ago

2.3.6

4 years ago

2.3.5

4 years ago

2.3.8

4 years ago

2.3.7

4 years ago

2.3.2

4 years ago

2.3.1

4 years ago

2.3.0-beta06

4 years ago

2.3.0-beta07

4 years ago

2.2.8

4 years ago

2.3.0-beta02

4 years ago

2.3.0-beta03

4 years ago

2.3.0-beta01

4 years ago

2.2.7

4 years ago

2.2.6

4 years ago

2.3.0-beta04

4 years ago

2.3.0-beta05

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.5

4 years ago

2.2.4

4 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago