aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJhih-Ming Huang <jm@byzantine-lab.io>2019-09-29 15:28:13 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-09-29 15:28:12 +0800
commitd537c10df659c059af08eca58c2ed8fb0847c4f0 (patch)
tree6b6bd58d90c5e059c3f02c6f6b857dbe2d80fa81
parent67add53d950448534a42942c6da7e39e3ddc3b83 (diff)
downloadtangerine-node-staker-master.tar.gz
tangerine-node-staker-master.tar.zst
tangerine-node-staker-master.zip
Add updateNodeInfo and add ci config (#2)HEADmaster
-rw-r--r--.travis.yml5
-rw-r--r--contracts/NodeStaker.sol12
-rw-r--r--contracts/test/NodeStakerMock.sol3
-rw-r--r--migrations/2_deploy.js4
-rw-r--r--test/NodeStaker.js2
5 files changed, 22 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..bb0a900
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - 9
+before_script:
+ - npm run ganache &
diff --git a/contracts/NodeStaker.sol b/contracts/NodeStaker.sol
index 9ebeafc..95badbe 100644
--- a/contracts/NodeStaker.sol
+++ b/contracts/NodeStaker.sol
@@ -33,6 +33,7 @@ contract NodeStaker is Ownable, FoundationOwnable {
event NodePublicKeyReplaced(bytes oldKey, bytes newKey);
event UnstakedByFoundation(uint256 amount);
event OwnershipTranferedByFoundation(address from, address to);
+ event NodeInfoUpdated(string Name, string Email, string Location, string Url);
// ---------
// Modifiers
@@ -50,6 +51,8 @@ contract NodeStaker is Ownable, FoundationOwnable {
emit NodeDeposited(msg.sender, msg.value);
}
+ constructor(bool _registered) public { registered = _registered; }
+
// -------------------
// Getters and Setters
// -------------------
@@ -109,6 +112,15 @@ contract NodeStaker is Ownable, FoundationOwnable {
emit NodePublicKeyReplaced(oldKey, key);
}
+ /**
+ * @dev update node info
+ */
+ function updateNodeInfo(string memory Name, string memory Email,
+ string memory Location, string memory Url) public onlyOwner onlyRegistered {
+ gov.updateNodeInfo(Name, Email, Location, Url);
+ emit NodeInfoUpdated(Name, Email, Location, Url);
+ }
+
// -------------------------
// Foundation Only Functions
// -------------------------
diff --git a/contracts/test/NodeStakerMock.sol b/contracts/test/NodeStakerMock.sol
index cf8cb3a..275666e 100644
--- a/contracts/test/NodeStakerMock.sol
+++ b/contracts/test/NodeStakerMock.sol
@@ -3,7 +3,8 @@ pragma solidity ^0.5.11;
import "../NodeStaker.sol";
contract NodeStakerMock is NodeStaker {
-
+ constructor(bool _registered) NodeStaker(_registered) public {}
+
function setGovernance(address govAddress) public onlyOwner {
gov = Governance(govAddress);
}
diff --git a/migrations/2_deploy.js b/migrations/2_deploy.js
index cbe9109..75be898 100644
--- a/migrations/2_deploy.js
+++ b/migrations/2_deploy.js
@@ -10,12 +10,12 @@ module.exports = async (deployer, network) => {
for (const config of configs) {
const {owner, address} = config;
- let staker = await NodeStaker.new();
+ let staker = await NodeStaker.new(false);
if (gov) {
console.log('Network is development, use mock governance: ', gov.address);
minStake = new web3.utils.BN(web3.utils.toWei('1', 'ether'));
- let staker = await NodeStakerMock.new();
+ let staker = await NodeStakerMock.new(false);
staker.setGovernance(gov.address);
}
diff --git a/test/NodeStaker.js b/test/NodeStaker.js
index cf91ac7..9a72753 100644
--- a/test/NodeStaker.js
+++ b/test/NodeStaker.js
@@ -17,7 +17,7 @@ contract('NodeStaker', accounts => {
const deploy = async () => {
govMock = await GovernanceMock.new();
- nodeStaker = await NodeStaker.new();
+ nodeStaker = await NodeStaker.new(false);
await nodeStaker.setGovernance(govMock.address);
nodeStaker.sendTransaction({value: minStake});
nodeStaker.transferOwnership(owner);