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

    Install

    npm i soy-contracts

    DownloadsWeekly Downloads

    7

    Version

    1.1.0

    License

    Apache-2.0

    Unpacked Size

    53.3 kB

    Total Files

    14

    Last publish

    Collaborators

    • web3studio-bot
    • hadasz
    • barlock
    • breakpointer