0.4.16 • Published 6 months ago

@gooddollar/web3sdk-v2 v0.4.16

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

GoodUI Web3Context

A Wrapper around usedapp, providing a context for using web3. All of usedapp is available, plus usefull utilities for:

  • multicall specific chain
  • request top app for network switch
  • emit TXs events

How to use

Web3Context

Supply usedapp config as usuall.

import { Web3Provider, Fuse } from "../contexts/Web3Context";
import { useMulticallAtChain, CallsResult } from './useMulticallAtChain'
import { Mainnet, Call } from "@usedapp/core";
...

<Web3Provider config={{ multicallVersion: 1, networks: [Fuse, Mainnet], readOnlyUrls: { 122: 'https://rpc.fuse.io' } }}>
  <YourAPP />
</Web3Provider>

emit TX

Notify listeners about TX your compoent has done Listen to TXs by other components

import { Web3Context, TxDetails } from "../contexts/Web3Context";

const { txEmitter } = useContext(Web3Context)

txEmitter.emit({title: 'test tx',txhash:'0x0', from:'0x1', to:'0x2'}: TxDetails)
txEmitter.on((tx:TxDetails) = > console.log(tx))

Hooks

useNetworkSwitch

If you are using GoodUI components, they need to be able to request a network switch. You can supply that function by calling setSwitchNetwork(() => (chainId) => Promise<Boolean | undefined> with your function. Your app needs to implement the logic for network switching once your funciton is being called. your function should return false if switch did not complete or true if switch was completed.

import { useSwitchNetowrk } from "@gooddollar/web3context";
...
const { switchNetwork, setSwitchNetwork } = useSwitchNetowrk()
const switchit = useCallback(async (id: number) => {
        console.log("setting network:", id)
        return true
},[])
setSwitchNetwork(() => switchit) //this is required, you need to pass a function that returns your functions

If you are building a component, then the component can signal the enclosing app it needs network switch by calling switchNetwork(chainId):Promise<Boolean | undefined>

useMultiCallAtChain

Performs multicall to a specific chain using the rpc defined for that chain in usedapp config readOnlyUrls

import { ERC20Interface } from "@usedapp/core";
import { Contract } from "ethers"
import { useMulticallAtChain, CallsResult } from './useMulticallAtChain'

...
const callMulti = useMulticallAtChain(122)
const [results, setResults] = useState<CallsResult>()
const calls: Call[] = [
  {
      contract: new Contract("0x495d133B938596C9984d462F007B676bDc57eCEC", ERC20Interface),
      method: 'balanceOf',
      args: ['0x66582D24FEaD72555adaC681Cc621caCbB208324']
  },
  {
      contract: new Contract("0x495d133B938596C9984d462F007B676bDc57eCEC", ERC20Interface),
      method: 'totalSupply',
      args: []
  }]

const results = await callMulti(calls)
0.4.1-beta.0a0a74a0

12 months ago

0.4.1-beta.ee30c9a4

12 months ago

0.4.1-beta.13859d62

11 months ago

0.4.1-beta.f54caf6a

10 months ago

0.4.1-beta.afca9e2c

12 months ago

0.4.1-beta.7adae806

12 months ago

0.4.1-beta.e0bc3f1b

12 months ago

0.4.1-beta.5965f4d2

12 months ago

0.4.1-beta.ae965792

11 months ago

0.4.1-beta.7b75f418

11 months ago

0.4.1-beta.85c16f51

12 months ago

0.4.1-beta.0be3b9e7

11 months ago

0.4.1-beta.da83eeb5

12 months ago

0.4.1-beta.ded4393f

12 months ago

0.4.1-beta.398200b3

10 months ago

0.4.1-beta.d4f9af90

10 months ago

0.4.1-beta.89fc1c94

12 months ago

0.4.1-beta.9ee17e39

12 months ago

0.4.1-beta.8e44b86d

10 months ago

0.4.10

7 months ago

0.4.15

6 months ago

0.4.16

6 months ago

0.4.13

7 months ago

0.4.14

6 months ago

0.4.11

7 months ago

0.4.12

7 months ago

0.4.1-beta.5d99a18f

12 months ago

0.4.1-beta.a4fdd345

11 months ago

0.4.1-beta.3fd778a5

10 months ago

0.4.1-beta.aff03c69

11 months ago

0.4.1-beta.523b9c2b

11 months ago

0.4.1-beta.ea3f4e6c

10 months ago

0.4.9

8 months ago

0.4.8

8 months ago

0.4.1-beta.aee5e623

12 months ago

0.3.2

1 year ago

0.3.1

1 year ago

0.3.3

12 months ago

0.4.1-beta.d2294fe5

12 months ago

0.4.1-beta.05aac8bb

12 months ago

0.4.5

9 months ago

0.4.4

9 months ago

0.4.7

8 months ago

0.4.6

8 months ago

0.4.1

10 months ago

0.4.0

1 year ago

0.4.3

9 months ago

0.4.2

10 months ago

0.4.1-beta.71770eda

11 months ago

0.4.1-beta.bb3aae92

10 months ago

0.2.34

1 year ago

0.2.33

1 year ago

0.2.32

1 year ago

0.2.27

1 year ago

0.2.26

1 year ago

0.2.25

1 year ago

0.2.24

1 year ago

0.2.23

1 year ago

0.2.30

1 year ago

0.2.31

1 year ago

0.2.29

1 year ago

0.2.28

1 year ago

0.2.22

2 years ago

0.2.21

2 years ago

0.2.20

2 years ago

0.2.19

2 years ago

0.2.18

2 years ago

0.2.17

2 years ago

0.2.16

2 years ago

0.2.15

2 years ago

0.2.14

2 years ago

0.2.13

2 years ago

0.2.12

2 years ago

0.2.11

2 years ago

0.2.10

2 years ago

0.2.9

2 years ago

0.1.118

2 years ago

0.1.117

2 years ago

0.1.119

2 years ago

0.1.114

2 years ago

0.1.113

2 years ago

0.1.116

2 years ago

0.1.115

2 years ago

0.1.110

2 years ago

0.1.112

2 years ago

0.1.111

2 years ago

0.1.121

2 years ago

0.1.120

2 years ago

0.1.107

2 years ago

0.2.1

2 years ago

0.1.109

2 years ago

0.1.108

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.8

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.1.106

2 years ago

0.1.98

3 years ago

0.1.99

2 years ago

0.1.103

2 years ago

0.1.102

2 years ago

0.1.105

2 years ago

0.1.104

2 years ago

0.1.101

2 years ago

0.1.100

2 years ago

0.1.96

3 years ago

0.1.97

3 years ago

0.1.90

3 years ago

0.1.91

3 years ago

0.1.92

3 years ago

0.1.93

3 years ago

0.1.94

3 years ago

0.1.95

3 years ago

0.1.85

3 years ago

0.1.86

3 years ago

0.1.87

3 years ago

0.1.88

3 years ago

0.1.89

3 years ago

0.1.82

3 years ago

0.1.83

3 years ago

0.1.84

3 years ago

0.1.80

3 years ago

0.1.81

3 years ago

0.1.77

3 years ago

0.1.78

3 years ago

0.1.79

3 years ago

0.1.75

3 years ago

0.1.76

3 years ago

0.1.74

3 years ago

0.1.71

3 years ago

0.1.73

3 years ago

0.1.65

3 years ago

0.1.66

3 years ago

0.1.67

3 years ago

0.1.68

3 years ago

0.1.69

3 years ago

0.1.59

3 years ago

0.1.63

3 years ago

0.1.64

3 years ago

0.1.60

3 years ago

0.1.61

3 years ago

0.1.62

3 years ago

0.1.52

3 years ago

0.1.53

3 years ago

0.1.54

3 years ago

0.1.55

3 years ago

0.1.56

3 years ago

0.1.57

3 years ago

0.1.58

3 years ago

0.1.50

3 years ago

0.1.51

3 years ago

0.1.49

3 years ago

0.1.41

3 years ago

0.1.42

3 years ago

0.1.43

3 years ago

0.1.44

3 years ago

0.1.45

3 years ago

0.1.46

3 years ago

0.1.47

3 years ago

0.1.48

3 years ago

0.1.40

3 years ago

0.1.38

3 years ago

0.1.30

3 years ago

0.1.31

3 years ago

0.1.32

3 years ago

0.1.33

3 years ago

0.1.34

3 years ago

0.1.35

3 years ago

0.1.36

3 years ago

0.1.37

3 years ago

0.1.27

3 years ago

0.1.28

3 years ago

0.1.29

3 years ago

0.1.20

3 years ago

0.1.21

3 years ago

0.1.22

3 years ago

0.1.23

3 years ago

0.1.24

3 years ago

0.1.25

3 years ago

0.1.26

3 years ago

0.1.17

3 years ago

0.1.18

3 years ago

0.1.19

3 years ago

0.1.16

3 years ago

0.1.12

3 years ago

0.1.11

3 years ago

0.1.10

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago