JSPM

soy-contracts

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q40568F
  • License Apache-2.0

ENS resolvers for soy

Package Exports

  • soy-contracts

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (soy-contracts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme



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