Skip to content

Instantly share code, notes, and snippets.

@jessgusclark
Last active May 19, 2020 13:22
Show Gist options
  • Save jessgusclark/08c728d7e5aac1eba7906d3dd8de1679 to your computer and use it in GitHub Desktop.
Save jessgusclark/08c728d7e5aac1eba7906d3dd8de1679 to your computer and use it in GitHub Desktop.
Get the contract addresses needed for the RNS Manager after running the RNS suite migration
// Procedrual script that gets the contract addresses from the build
// folder after migration. This file can be used inside of the RNS
// Manager React application to use the local RKS network.
// The code isn't pretty, but it works.
//
// TO RUN:
// Set the two variables below, and then in the console, run:
// node getConfig.js
//
// the output is a json script that can be copied and pasted into the
// RNS manager config file.
//
// VARIABLES:
var contractFolder = 'rns-suite/build/contracts/';
var port = '8545';
// end config
var fs = require('fs');
var rns = JSON.parse(fs.readFileSync(contractFolder + 'RNS.json', 'utf8'));
var registrar = JSON.parse(fs.readFileSync(contractFolder + 'TokenRegistrar.json', 'utf8'));
var reverseRegistrar = JSON.parse(fs.readFileSync(contractFolder + 'ReverseRegistrar.json', 'utf8'));
var publicResolver = JSON.parse(fs.readFileSync(contractFolder + 'PublicResolver.json', 'utf8'));
var nameResolver = JSON.parse(fs.readFileSync(contractFolder + 'NameResolver.json', 'utf8'));
var multiChainResolver = JSON.parse(fs.readFileSync(contractFolder + 'MultiChainResolver.json', 'utf8'));
var rif = JSON.parse(fs.readFileSync(contractFolder + 'ERC677.json', 'utf8'));
var fifsRegistrar = JSON.parse(fs.readFileSync(contractFolder + 'FIFSRegistrar.json', 'utf8'));
var fifsAddrRegistrar = JSON.parse(fs.readFileSync(contractFolder + 'FIFSAddrRegistrar.json', 'utf8'));
var rskOwner = JSON.parse(fs.readFileSync(contractFolder + 'RSKOwner.json', 'utf8'));
var renewer = JSON.parse(fs.readFileSync(contractFolder + 'Renewer.json', 'utf8'));
function getAddress(file){
return file.networks[port].address.toLowerCase();
}
console.log(' ');
console.log('{');
console.log(` "rns": "${getAddress(rns)}",`);
console.log(` "registrar": "${getAddress(registrar)}",`);
console.log(` "reverseRegistrar": "${getAddress(reverseRegistrar)}",`);
console.log(` "publicResolver": "${getAddress(publicResolver)}",`);
console.log(` "nameResolver": "${getAddress(nameResolver)}",`);
console.log(` "multiChainResolver": "${getAddress(multiChainResolver)}",`);
console.log(` "rif": "${getAddress(rif)}",`);
console.log(` "fifsRegistrar": "${getAddress(fifsRegistrar)}",`);
console.log(` "fifsAddrRegistrar": "${getAddress(fifsAddrRegistrar)}",`);
console.log(` "rskOwner": "${getAddress(rskOwner)}",`);
console.log(` "renewer": "${getAddress(renewer)}",`);
console.log(` "stringResolver": "",`);
console.log(` "definitiveResolver": ""`);
console.log('}');
console.log(' ');
@jessgusclark
Copy link
Author

Example:

image

@jessgusclark
Copy link
Author

jessgusclark commented Jan 27, 2020

Updates

  • Jan 27, 2020 - Removed gasPrice from contract since this is handled by the environment variable.
  • Jan 29, 2020 - Removed trailing comma from renewer line
  • Feb 12, 2020 - Added additional contracts and created helper function to retrieve the address and convert to lowercase.
  • May 19, 2020 - Added field for definitiveResolver. This contract needs to be migrated separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment