Web3 wrapper for ERC721, 725, 735 and governance
npm i wemix-web3
- Registry
- AttestationAgencyRegistry
- Identity
- IdentityManager
- TopicRegistry
- AchievementManager
- BallotStorage
- EnvStorage
- Governance
- Staking
import React, { Component } from "react";
// Web3
import Web3 from "web3";
import web3config from "./web3-config.json";
// Contracts
import {
constants,
contracts,
getContractsAddresses,
initContracts,
TopicRegistry,
} from "wemix-web3";
class Example extends Component {
state = {
initDone: false,
};
async init() {
initContracts({
web3: new Web3(new Web3.providers.HttpProvider(web3config.url)),
branch: constants.branch.TESTNET,
identity: web3config.identity,
privkey: web3config.privkey,
}).then(async () => {
// All contracts are initialized
this.result = {
getLengthOfAchievements:
await contracts.achievementManager.getLengthOfAchievements(),
getAttestationAgencyNum:
await contracts.aaRegistry.getAttestationAgencyNum(),
getTotal: await contracts.topicRegistry.getTotal(),
};
this.setState({ initDone: true });
});
}
async initDirectly() {
// If you want to initialize each contract directly
getContractsAddresses().then(async () => {
let topicRegistry = new TopicRegistry();
topicRegistry
.init({
web3: new Web3(new Web3.providers.HttpProvider(web3config.url)),
})
.then(async () => {
let total = await topicRegistry.getTotal();
console.log("total", total);
});
});
}
componentWillMount() {
this.init();
}
render() {
return (
<div>
{this.state.initDone &&
Object.keys(this.result).map((k) => (
<p key={k}>{k + ": " + this.result[k]}</p>
))}
</div>
);
}
}
cd wemix-web3
npm start
[Ctrl+C]
cd example
npm start