UNPKG

@nodeset/contracts

Version:

Protocol for accessing NodeSet's Constellation Ethereum staking network

41 lines (32 loc) 1.46 kB
import { RocketNodeManager } from '../_utils/artifacts'; import { assertBN } from '../_helpers/bn'; // Register a node export async function register(timezoneLocation, txOptions) { // Load contracts const rocketNodeManager = await RocketNodeManager.deployed(); // Get node details function getNodeDetails(nodeAddress) { return Promise.all([ rocketNodeManager.getNodeExists.call(nodeAddress), rocketNodeManager.getNodeTimezoneLocation.call(nodeAddress), ]).then( ([exists, timezoneLocation]) => ({exists, timezoneLocation}) ); } // Get initial node index let nodeCount1 = await rocketNodeManager.getNodeCount.call(); // Register await rocketNodeManager.registerNode(timezoneLocation, txOptions); // Get updated node index & node details let nodeCount2 = await rocketNodeManager.getNodeCount.call(); let [lastNodeAddress, details] = await Promise.all([ rocketNodeManager.getNodeAt.call(nodeCount2.sub('1'.BN)), getNodeDetails(txOptions.from), ]); // Check details assertBN.equal(nodeCount2, nodeCount1.add('1'.BN), 'Incorrect updated node count'); assert.strictEqual(lastNodeAddress, txOptions.from, 'Incorrect updated node index'); assert.isTrue(details.exists, 'Incorrect node exists flag'); assert.strictEqual(details.timezoneLocation, timezoneLocation, 'Incorrect node timezone location'); }