Skip to content

w3glue is a glue layer of web3.js. It is secondarily packaged on the basis of web3.js, providing better usability for the application layer, and also implementing some basic data structures of Ethereum. It can be used in node and browser.

License

Notifications You must be signed in to change notification settings

bagaking/w3glue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

w3glue

init

run one of these command:

  • npm i
  • yarn install

doc gen

the repo using gulp to generate documents.

run gulp doc or gulp

then check them at ./docs/gen/

Usage

Core (glue.w3)

launch

const {Mux} = require("w3glue")
let mux = new Mux("main", "http://127.0.0.1:7545") //or let mux = new Mux("main", "ws://127.0.0.1:7546")

deploy or attach

mux.deployContract(tag, sender, args, {abi, bytecode}, extraGasLimit = 1) // {abi, bytecode} is a BOX
mux.attachContract(tag, address, {abi})

you don't need create contract for each provider. you just need create is once, and mux will load them automatic while calling.

web3

mux.provider
mux.eth

contract api

let myContract = mux.getContract(tag) // glue-contract, not web3 contract
myContract.address
myContract.abi
myContract.provider
myContract.contract -- web3 contract
async myContract.events(eventName, fromBlock = 0, toBlock = 'latest', filter = undefined)
myContract.getMethod(methodName, ...args)

//c.listen // IPC needed

Board

board is the structure used to record deployment information of contracts. it is usually represented as the following structure.

{
    "contractStr": "V1/ERC20",
    "address": "0x0F217cDBbaf75B9b4c5dc1008A5cc5918e672d3d"
}

there is a easy way to create board from existed glue-contract

myContract.toBoard(contractStr)

Mux

you can create mux with code like this

const {Mux} = require("w3glue")
let mux = new Mux("main", {
    urls:{
        http:"http://127.0.0.1:7545",
        ws:"ws://127.0.0.1:7546",
        ipc:"/var/www/test",
    }
})

then you can use code like this to specify a phase before using mux's api

mux.$HTTP.provider...
mux.$WS.provider...

by the way, The phase you choose at the end will be retained. This means that once you have selected a phase, the API after that will call the mux in that phase $HTTP is the default phase of mux, then WS is the default phase when HTTP does not exist, and finally IPC If you using online string to create mux, it must be http

About

w3glue is a glue layer of web3.js. It is secondarily packaged on the basis of web3.js, providing better usability for the application layer, and also implementing some basic data structures of Ethereum. It can be used in node and browser.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published