0.2.22 • Published 2 days ago

@gooddollar/web3sdk-v2 v0.2.22

Weekly downloads
-
License
MIT
Repository
github
Last release
2 days 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.2.22

16 days ago

0.2.21

17 days ago

0.2.20

25 days ago

0.2.19

25 days ago

0.2.18

1 month ago

0.2.17

1 month ago

0.2.16

2 months ago

0.2.15

3 months ago

0.2.14

3 months ago

0.2.13

4 months ago

0.2.12

4 months ago

0.2.11

5 months ago

0.2.10

5 months ago

0.2.9

5 months ago

0.1.118

8 months ago

0.1.117

8 months ago

0.1.119

7 months ago

0.1.114

9 months ago

0.1.113

9 months ago

0.1.116

8 months ago

0.1.115

8 months ago

0.1.110

9 months ago

0.1.112

9 months ago

0.1.111

9 months ago

0.2.4-beta.cca0090

6 months ago

0.2.4-beta.cfb84f0

6 months ago

0.1.121

7 months ago

0.1.120

7 months ago

0.2.4-beta.31cca00

6 months ago

0.2.1-beta.717b186

7 months ago

0.2.4-beta.a50290d

6 months ago

0.2.4-beta.9ae3227

6 months ago

0.2.4-beta.4e0fc5d

6 months ago

0.1.107

10 months ago

0.2.1

6 months ago

0.1.109

10 months ago

0.1.108

10 months ago

0.2.1-beta.45b540c

6 months ago

0.2.7

6 months ago

0.2.4-beta.27b2ce3

6 months ago

0.2.6

6 months ago

0.2.8

5 months ago

0.2.3

6 months ago

0.2.2

6 months ago

0.2.5

6 months ago

0.2.1-beta.5420890

7 months ago

0.2.4

6 months ago

0.1.106

10 months ago

0.1.99-beta.d9a11a0

11 months ago

0.1.99-beta.eaddafb

11 months ago

0.1.99-beta.478768e

11 months ago

0.1.98

11 months ago

0.1.99

11 months ago

0.1.99-beta.e0a3482

11 months ago

0.1.99-beta.c38fc8d

11 months ago

0.1.99-beta.835f81c

11 months ago

0.1.103

10 months ago

0.1.102

10 months ago

0.1.105

10 months ago

0.1.104

10 months ago

0.1.101

11 months ago

0.1.100

11 months ago

0.1.99-beta.d558110

11 months ago

0.1.96

11 months ago

0.1.97

11 months ago

0.1.91-beta.c3457a6

12 months ago

0.1.90

1 year ago

0.1.91

1 year ago

0.1.92

12 months ago

0.1.95-beta.e1d2b5f

12 months ago

0.1.93

12 months ago

0.1.94

12 months ago

0.1.95

11 months ago

0.1.91-beta.76d816c

12 months ago

0.1.95-beta.9e0866e

12 months ago

0.1.92-beta.5748adb

12 months ago

0.1.85

1 year ago

0.1.86

1 year ago

0.1.87

1 year ago

0.1.88

1 year ago

0.1.89

1 year ago

0.1.82

1 year ago

0.1.83

1 year ago

0.1.84

1 year ago

0.1.80

1 year ago

0.1.81

1 year ago

0.1.77

1 year ago

0.1.78

1 year ago

0.1.79

1 year ago

0.1.75

1 year ago

0.1.76

1 year ago

0.1.74

1 year ago

0.1.71

1 year ago

0.1.73

1 year ago

0.1.65

1 year ago

0.1.66

1 year ago

0.1.67

1 year ago

0.1.68

1 year ago

0.1.69

1 year ago

0.1.59

1 year ago

0.1.63

1 year ago

0.1.64

1 year ago

0.1.60

1 year ago

0.1.61

1 year ago

0.1.62

1 year ago

0.1.52

1 year ago

0.1.53

1 year ago

0.1.54

1 year ago

0.1.55

1 year ago

0.1.56

1 year ago

0.1.57

1 year ago

0.1.58

1 year ago

0.1.50

1 year ago

0.1.51

1 year ago

0.1.49

1 year ago

0.1.41

1 year ago

0.1.42

1 year ago

0.1.43

1 year ago

0.1.44

1 year ago

0.1.45

1 year ago

0.1.46

1 year ago

0.1.47

1 year ago

0.1.48

1 year ago

0.1.40

1 year ago

0.1.38

1 year ago

0.1.30

2 years ago

0.1.31

2 years ago

0.1.32

2 years ago

0.1.33

2 years ago

0.1.34

2 years ago

0.1.35

1 year ago

0.1.36

1 year ago

0.1.37

1 year ago

0.1.27

2 years ago

0.1.28

2 years ago

0.1.29

2 years ago

0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.1.23

2 years ago

0.1.24

2 years ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.17

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.1.16

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago