soy-contracts
v1.1.0
Published
ENS resolvers for soy
Downloads
5
Readme
Soy Contracts is the source code for Soy's public ENS resolver and a low level JS interface to the contracts.
Usage
Install
# Yarn
$ yarn add soy-contracts
# npm
$ npm install --save soy-contracts
API
soy-contracts
exports two smart contracts wrapped by truffle-contract.
If you're familiar with the Truffle console, then the api should feel natural.
The two contract's are named exports and are:
ENS
: The main ENS registry contract, source.SoyPublicResolver
: Soy's public resolver implementation, source
For more details about API for each contract, refer to Truffle's documentation and the source above.
Examples
Deploying and Configuring Test Contracts
const { SoyPublicResolver, ENS } = require('soy-contracts');
const rootNode = web3.utils.asciiToHex(0);
const provider = web3.currentProvider;
const accounts = await web3.eth.getAccounts();
const txOps = { from: accounts[0] };
ENS.setProvider(provider);
ENS.defaults(txOps);
SoyPublicResolver.setProvider(provider);
SoyPublicResolver.defaults(txOps);
const registryContract = await ENS.new(txOps);
const resolverContract = await SoyPublicResolver.new(
registryContract.address,
txOps
);
await registryContract.setSubnodeOwner(
rootNode,
web3.utils.sha3(tld),
txOps.from,
txOps
);
Contributing
Please read through our contributing guidelines. Included are directions for coding standards, and notes on development.
Deploying a new Public Resolver
NB: For maintainers only
Create a .env
file in packages/soy-contracts
and add INFURA_API_KEY
and WALLET_MNEMONIC
.
INFURA_API_KEY="Some api key"
WALLET_MNEMONIC="Team's wallet mnemonic"
Then follow below:
# Build a fresh set of contract assets
$ yarn build
# Test local deployment for issues, you'll need ganache running on the computer
$ yarn truffle deploy
# If everything goes well, run for each network
$ yarn truffle deploy --network ropsten
$ yarn truffle deploy --network rinkeby
# Check current [gas prices](https://ethgasstation.info/) and update
# `truffle-config.js`'s mainnet configuration
$ yarn truffle deploy --network mainnet
# When done, update the network locations in `src/SoyPublicResolver.js` with new addresses