Skip to content
Open
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
dae2413
Update XDCValidator.sol
GalaxySciTech Feb 26, 2024
34a5765
update
GalaxySciTech Mar 4, 2024
d6c9288
Update XDCValidatorV2.sol
GalaxySciTech Mar 6, 2024
4443e4c
xdv-01
GalaxySciTech Mar 12, 2024
72b56b0
Update XDCValidatorV2.sol
GalaxySciTech Mar 12, 2024
72418e6
xdv-06
GalaxySciTech Mar 12, 2024
e4ab783
xdv-06
GalaxySciTech Mar 12, 2024
4e0b890
xdv-01
GalaxySciTech Mar 14, 2024
4342984
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
6edecf3
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
1d51654
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
76036fd
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
407cdf0
xdv-06
GalaxySciTech Mar 19, 2024
2fc7af4
Update XDCValidatorV2.sol
GalaxySciTech Mar 20, 2024
7f2fe50
Update XDCValidatorV2.sol
GalaxySciTech Mar 20, 2024
6efc12b
Update XDCValidatorV2.sol
GalaxySciTech Mar 20, 2024
b52721f
Update XDCValidatorV2.sol
GalaxySciTech Mar 21, 2024
881b4d0
Update XDCValidatorV2.sol
GalaxySciTech Mar 21, 2024
cd8901d
Update XDCValidatorV2.sol
GalaxySciTech Mar 21, 2024
ae5a5e4
upgrade solidity version to 0.4.26 and add revert mssage
GalaxySciTech Mar 22, 2024
118abf6
change constructor
GalaxySciTech Mar 22, 2024
ab456e7
Update XDCValidatorV2.sol
GalaxySciTech Mar 22, 2024
38fa42d
Update XDCValidatorV2.sol
GalaxySciTech Mar 22, 2024
2d586d8
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
a0f4cf4
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
19562cc
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
1bbf4d2
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
ca80218
Update XDCValidatorV2.sol
GalaxySciTech Mar 26, 2024
21fce80
Update XDCValidatorV2.sol
GalaxySciTech Apr 17, 2024
45fc919
Update XDCValidatorV2.sol
GalaxySciTech Apr 18, 2024
492c16c
Update XDCValidatorV2.sol
GalaxySciTech Apr 18, 2024
16b8260
Update XDCValidatorV2.sol
GalaxySciTech Apr 19, 2024
50b6465
Update XDCValidatorV2.sol
GalaxySciTech Apr 24, 2024
e31cda2
Update XDCValidatorV2.sol
GalaxySciTech Apr 26, 2024
b110f27
Update XDCValidatorV2.sol
GalaxySciTech Apr 28, 2024
9515552
Update XDCValidatorV2.sol
GalaxySciTech May 6, 2024
7f95cb4
Update XDCValidatorV2.sol
GalaxySciTech May 12, 2024
8b5d7e1
Update XDCValidatorV2.sol
GalaxySciTech May 14, 2024
6177cce
Update XDCValidatorV2.sol
GalaxySciTech May 14, 2024
e11d755
Update XDCValidatorV2.sol
GalaxySciTech May 17, 2024
c569a2e
Update XDCValidatorV2.sol
GalaxySciTech May 17, 2024
a730b03
Update XDCValidatorV2.sol
GalaxySciTech Jun 11, 2024
aabf014
Update XDCValidatorV2.sol
GalaxySciTech Jun 11, 2024
ca6fad3
Update XDCValidatorV2.sol
GalaxySciTech Jun 22, 2024
fcdf572
Update XDCValidatorV2.sol
GalaxySciTech Jun 24, 2024
1ccd176
Update XDCValidatorV2.sol
GalaxySciTech Jun 24, 2024
271750d
Update XDCValidatorV2.sol
GalaxySciTech Jun 25, 2024
6f108fb
Update XDCValidatorV2.sol
GalaxySciTech Jun 27, 2024
6c4641a
refactor function voteInvalidKYC
gzliudan Jul 1, 2024
754a6de
Merge pull request #566 from gzliudan/voteInvalidKYC
GalaxySciTech Jul 1, 2024
2a7beeb
Update XDCValidatorV2.sol
GalaxySciTech Jul 1, 2024
4c9b1f5
add test script
GalaxySciTech Jul 5, 2024
6f89036
update
GalaxySciTech Jul 8, 2024
9d22611
update
GalaxySciTech Jul 12, 2024
775b120
Update xdcValidator.js
GalaxySciTech Jul 12, 2024
390abb1
Update image.png
GalaxySciTech Jul 12, 2024
467374c
Update xdcValidator.js
GalaxySciTech Jul 15, 2024
e32d5c7
update
GalaxySciTech Jul 15, 2024
e190cc3
Update XDCValidator.sol
GalaxySciTech Jul 26, 2024
3ae7fcf
Update XDCValidator.sol
GalaxySciTech Aug 7, 2024
307e995
update
GalaxySciTech Aug 20, 2024
42073c9
Revert "update"
GalaxySciTech Aug 20, 2024
4297a92
update to v2
GalaxySciTech Aug 20, 2024
1103881
update
GalaxySciTech Aug 20, 2024
611fcc2
update
GalaxySciTech Aug 20, 2024
0e3d7ec
Update types.go
GalaxySciTech Aug 28, 2024
31cccc5
Update deployToGenesis.js
GalaxySciTech Aug 30, 2024
18e9652
Update types.go
GalaxySciTech Aug 30, 2024
bd30cd5
right place to upgrade
wgr523 Aug 30, 2024
d3fa527
Update XDCValidator.sol
GalaxySciTech Feb 26, 2024
ba3c888
update
GalaxySciTech Mar 4, 2024
7d3fc1f
Update XDCValidatorV2.sol
GalaxySciTech Mar 6, 2024
eeee36c
xdv-01
GalaxySciTech Mar 12, 2024
0269a99
Update XDCValidatorV2.sol
GalaxySciTech Mar 12, 2024
57ea283
xdv-06
GalaxySciTech Mar 12, 2024
9c723c6
xdv-06
GalaxySciTech Mar 12, 2024
bc792e5
xdv-01
GalaxySciTech Mar 14, 2024
82a30f3
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
c22658b
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
ee30def
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
bfb6e21
Update XDCValidatorV2.sol
GalaxySciTech Mar 16, 2024
c234eb7
xdv-06
GalaxySciTech Mar 19, 2024
1300f2c
Update XDCValidatorV2.sol
GalaxySciTech Mar 20, 2024
26ad555
Update XDCValidatorV2.sol
GalaxySciTech Mar 20, 2024
8d49ab6
Update XDCValidatorV2.sol
GalaxySciTech Mar 20, 2024
52a6ecb
Update XDCValidatorV2.sol
GalaxySciTech Mar 21, 2024
82eb013
Update XDCValidatorV2.sol
GalaxySciTech Mar 21, 2024
56af003
Update XDCValidatorV2.sol
GalaxySciTech Mar 21, 2024
3c0572c
upgrade solidity version to 0.4.26 and add revert mssage
GalaxySciTech Mar 22, 2024
4b9367b
change constructor
GalaxySciTech Mar 22, 2024
4891d45
Update XDCValidatorV2.sol
GalaxySciTech Mar 22, 2024
bfcde85
Update XDCValidatorV2.sol
GalaxySciTech Mar 22, 2024
11fc450
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
c942df0
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
8ae4f5c
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
b60b93b
Update XDCValidatorV2.sol
GalaxySciTech Mar 25, 2024
40c8b4f
Update XDCValidatorV2.sol
GalaxySciTech Mar 26, 2024
7589548
Update XDCValidatorV2.sol
GalaxySciTech Apr 17, 2024
841e6d7
Update XDCValidatorV2.sol
GalaxySciTech Apr 18, 2024
0f93139
Update XDCValidatorV2.sol
GalaxySciTech Apr 18, 2024
86fa3cc
Update XDCValidatorV2.sol
GalaxySciTech Apr 19, 2024
9137b88
Update XDCValidatorV2.sol
GalaxySciTech Apr 24, 2024
a3aafb2
Update XDCValidatorV2.sol
GalaxySciTech Apr 26, 2024
23b4eaf
Update XDCValidatorV2.sol
GalaxySciTech Apr 28, 2024
bf833e4
Update XDCValidatorV2.sol
GalaxySciTech May 6, 2024
d77ccfd
Update XDCValidatorV2.sol
GalaxySciTech May 12, 2024
4ed9a55
Update XDCValidatorV2.sol
GalaxySciTech May 14, 2024
1032572
Update XDCValidatorV2.sol
GalaxySciTech May 14, 2024
4599821
Update XDCValidatorV2.sol
GalaxySciTech May 17, 2024
e4bfdd7
Update XDCValidatorV2.sol
GalaxySciTech May 17, 2024
67d04e1
Update XDCValidatorV2.sol
GalaxySciTech Jun 11, 2024
73b637d
Update XDCValidatorV2.sol
GalaxySciTech Jun 11, 2024
217dc1b
Update XDCValidatorV2.sol
GalaxySciTech Jun 22, 2024
f654e1f
Update XDCValidatorV2.sol
GalaxySciTech Jun 24, 2024
05dd01b
Update XDCValidatorV2.sol
GalaxySciTech Jun 24, 2024
bc593ee
Update XDCValidatorV2.sol
GalaxySciTech Jun 25, 2024
d51b857
Update XDCValidatorV2.sol
GalaxySciTech Jun 27, 2024
f77eb78
refactor function voteInvalidKYC
gzliudan Jul 1, 2024
f73c032
Update XDCValidatorV2.sol
GalaxySciTech Jul 1, 2024
ddc265c
add test script
GalaxySciTech Jul 5, 2024
832e089
update
GalaxySciTech Jul 8, 2024
a321691
update
GalaxySciTech Jul 12, 2024
8800837
Update xdcValidator.js
GalaxySciTech Jul 12, 2024
757ed9a
Update image.png
GalaxySciTech Jul 12, 2024
e231e7b
Update xdcValidator.js
GalaxySciTech Jul 15, 2024
287812c
update
GalaxySciTech Jul 15, 2024
db0a916
Update XDCValidator.sol
GalaxySciTech Jul 26, 2024
d04bca0
Update XDCValidator.sol
GalaxySciTech Aug 7, 2024
2e83224
update
GalaxySciTech Aug 20, 2024
a444fb0
Revert "update"
GalaxySciTech Aug 20, 2024
3203775
update to v2
GalaxySciTech Aug 20, 2024
9a887d2
update
GalaxySciTech Aug 20, 2024
d45d91c
update
GalaxySciTech Aug 20, 2024
ac42174
Update types.go
GalaxySciTech Aug 28, 2024
f8fda4b
Update deployToGenesis.js
GalaxySciTech Aug 30, 2024
638c6b7
Update types.go
GalaxySciTech Aug 30, 2024
c512408
right place to upgrade
wgr523 Aug 30, 2024
64dfda0
Update XDPoS.go
GalaxySciTech Sep 2, 2024
6d900cc
Merge branch 'upgrade-validator-smart-contract' of https://github.com…
GalaxySciTech Sep 2, 2024
4e5adf0
add ValidtorV2SMCBlock constant and setup devnet block
Sep 13, 2024
93eaa35
update
GalaxySciTech Sep 20, 2024
afe096a
update test flow
GalaxySciTech Sep 21, 2024
2f342a4
Update README.md
GalaxySciTech Sep 21, 2024
0dabb6c
update
GalaxySciTech Sep 23, 2024
90c1a2c
update
GalaxySciTech Sep 23, 2024
9204f08
update
GalaxySciTech Sep 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -300,4 +300,4 @@ contract XDCValidator {
msg.sender.transfer(cap);
emit Withdraw(msg.sender, _blockNumber, cap);
}
}
}
1 change: 1 addition & 0 deletions contracts/validator/src/.env.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PRIVATE_KEY=1234567890123456789012345678901234567890123456789012345678901234
7 changes: 7 additions & 0 deletions contracts/validator/src/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.env
cache/
artifacts/
node_modules/
.vscode/
abigen
yarn.lock
5 changes: 5 additions & 0 deletions contracts/validator/src/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
node_modules
artifacts
cache
coverage*
gasReporterOutput.json
1 change: 1 addition & 0 deletions contracts/validator/src/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
7 changes: 7 additions & 0 deletions contracts/validator/src/.solhint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "solhint:recommended",
"rules": {
"compiler-version": ["error", "0.4.26"],
"func-visibility": ["warn", { "ignoreConstructors": true }]
}
}
1 change: 1 addition & 0 deletions contracts/validator/src/.solhintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
94 changes: 94 additions & 0 deletions contracts/validator/src/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# XDC Validator Contract

This folder has provided scripts for:

- Contract Building and Testing
- Contract Deployment

## Contract Building and Testing:

Environmental preparation

###### Nodejs 16 or higher version

Install dependencies

```shell
yarn
```

Test

```shell
npx hardhat compile
npx hardhat test
```

## Deploy contract to node genesis block

1. run generate script to genera

```shell
node scripts/deployToGenesis.js
```

2. run

```shell
./abigen --abi abi --bin bytecode --pkg contract --type XDCValidator --out ../contract/validator.go
```

If you don't have `abigen`, compile it. It's in `cmd/abigen/main.go` in XDC main repo (or Geth repo).

3. Go `../contract/validator.go` change `github.com/ethereum/go-ethereum` to `ethereum "github.com/XinFinOrg/XDC-Subnet"`

## Deploy contract to node any block

### Contract Setup:

This step is recommended to complete in python virtual environment because it is going to use the web3 library adapted for XDC. And before running the process, it is required to performed two operations:

1. Fill in the fields in `deployment.json`

- `candidates`: Initial candidates
- `caps`: Initial caps, one cap for one candidate
- `firstOwner`: Owner of initial candidates
- `minCandidateCap`: Minimal value for a transaction to call propose()
- `minVoterCap`: Minimal value for a transaction to call vote()
- `maxValidatorNumber`: Never used, I don't know why XDC people write this...
- `candidateWithdrawDelay`: When you call resign() at block number x, you can only withdraw the cap at block x+candidateWithdrawDelay
- `voterWithdrawDelay`: When you call unvote() at block number x, you can only withdraw the cap at block x+voterWithdrawDelay
- `grandMasters`: List of grand masters
- `minCandidateNum`: min candidate num
- `xdcdevnet`: Targeted XDC public chain devnet, testnet or mainnet node RPC link
- `xdcsubnet`: Targeted XDC private subnet chain devnet, testnet or mainnet node RPC link

2. Create a `.env` file which contain a valid account privatekey, check `.env.sample` for example

### Contract Deployment:

And get the deployed contract address

```shell
npx hardhat run scripts/deployment.js --network xdcdevnet
```

## Other command

```shell
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
npx hardhat help
REPORT_GAS=true npx hardhat test
npx prettier '**/*.{js,json,sol,md}' --check
npx prettier '**/*.{js,json,sol,md}' --write
npx solhint 'contracts/**/*.sol'
npx solhint 'contracts/**/*.sol' --fix
```

## Gas report

![Alt text](image.png)
Loading