soy-contracts

1.1.0 • Public • Published



Contracts

ENS+IPFS ❤ DevOps - Static Websites on the Distributed Web

SetupAPILicense

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 

License

Apache 2.0

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
1.1.00latest
0.0.00canary

Version History

VersionDownloads (Last 7 Days)Published
1.1.00
1.0.10
1.0.00
0.0.10
0.0.00

Package Sidebar

Install

npm i soy-contracts

Weekly Downloads

0

Version

1.1.0

License

Apache-2.0

Unpacked Size

53.3 kB

Total Files

14

Last publish

Collaborators

  • web3studio-bot
  • hadasz
  • barlock
  • breakpointer