-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Migrate governance-contracts #89
Conversation
ABIs in wemix/governance_abi.go is generated based on wemix/contracts/WemixGovernance.js. (The abi definitions are used in wemix/admin.go) wemix/governance_abi.go: wemix/contracts/WemixGovernance.js
@cat $< | awk $(AWK_CODE_2) > $@ Currently, the js file must be updated manually whenever governance contracts are changed. This PR makes wemix/admin.go no longer use wemix/governance_abi.go. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
To ensure compile-time checking for commonly used contract names, it would be beneficial to declare them as constants.
|
In Ethereum, error is created by Currently, the below codes use "github.com/pkg/errors".
|
* Add release ci (#102) * Create release.yml * fix: typo * fix: remove sha * fix: specify ubuntu version in ci files * fix: setup packages in ci files to match dependency * fix: integrate file name rule to keep consistency between ci files * fix: use gwemix version instead of ref name * feat: update snapshot pending state * Migrate governance-contracts (#89) * migrate : governance-contract * panic: core.GenerateChain * fix: test panic * fix : FakeMode, escape futureBlock * fix : panic bad block * refact : mv wemix_backends -> wemix package * refact : remove common/bn * refact : GovContracts * fix : remove unused * fix : rename confusing variable * fix : unhandled error * fix : code style * refact: migrate openzeppelin contract:v4.6.0, contracts-upgrade:v4.7.0 * feat : update governancedeploy use wemix/bind * fix : remove unused * fix : default init envstorage values * fix : gwemix.sh * fix : compare fixed bytes * fix : compare fixed bytes * fix : typo * fix : Flag type * feat : update genesisConfig * fix : remove unused code * fix : deploy log * feat : wemix simulated OptionFn * feat : install solc * fix : typo * fix : typo * fix : error verifyBlockSig * fix : remove unused file * fix : gwemix.sh * fix: go.mod * refact : using bind structs * docs : gwemix.sh comment * refact : submodule openzeppelin * feat : using NCPExit * wip : dev-ci * fix : unuse generic * fix : TestWemixBackends$ * feat : using generic, remove lint_test go@1.17 * fix: go:generate * fix : clean code * fix : remove comment * fix : clean code * feat : (governance abigen) compare data before writing to the file * refact : using compiledTy * feat : include sigs wemix/bind contracts * refacet : move compiled, remove simulated-backend * fix : clean code * fix : clean code * fix : detailed tick processing * feat : [init-gov] add option password * fix : gwemix.sh init-gov params * fix : [init-gov] add option password * refact : use const * fix : use constant * fix : loadGenesisConfig * fix : check bootnodeExists --------- Co-authored-by: egonspace <egonspace@gmail.com> * fix : call staker address (#114) fix : get contracts address StakingReward domain * Feat: add local test scripts (#113) * migrate : governance-contract * panic: core.GenerateChain * fix: test panic * fix : FakeMode, escape futureBlock * fix : panic bad block * refact : mv wemix_backends -> wemix package * refact : remove common/bn * refact : GovContracts * fix : remove unused * fix : rename confusing variable * fix : unhandled error * fix : code style * refact: migrate openzeppelin contract:v4.6.0, contracts-upgrade:v4.7.0 * feat : update governancedeploy use wemix/bind * fix : remove unused * fix : default init envstorage values * fix : gwemix.sh * fix : compare fixed bytes * fix : compare fixed bytes * fix : typo * fix : Flag type * feat : update genesisConfig * fix : remove unused code * fix : deploy log * feat : wemix simulated OptionFn * feat : install solc * fix : typo * fix : typo * fix : error verifyBlockSig * fix : remove unused file * fix : gwemix.sh * fix: go.mod * refact : using bind structs * docs : gwemix.sh comment * refact : submodule openzeppelin * feat : using NCPExit * wip : dev-ci * fix : unuse generic * fix : TestWemixBackends$ * feat : using generic, remove lint_test go@1.17 * fix: go:generate * fix : clean code * fix : remove comment * fix : clean code * feat : (governance abigen) compare data before writing to the file * refact : using compiledTy * feat : include sigs wemix/bind contracts * refacet : move compiled, remove simulated-backend * fix : clean code * fix : clean code * fix : detailed tick processing * Feat: add local test scripts * Fix: minor fix * feat : [init-gov] add option password * fix : gwemix.sh init-gov params * Chore: typo fix * fix : [init-gov] add option password * Fix: fix set-nodekey.sh * Chore: push for test * refact : use const * Feat: add init-boot.sh * Fix: minor fix * chore: minor typo * chore: add waiting message for port to open in init-boot.sh * Chore: minor test * chore: improve waiting message for port to open in init-boot.sh * feat: add executable permission to gwemix.sh in init-boot.sh * chore: improve gwemix start confirmation in init-boot.sh * chore: update log file path and success message in init-boot.sh * chore: Update init-boot.sh to improve gwemix start confirmation * chore: Add pcscd service to Dockerfile.local.boot and start it in init-boot.sh * chore: Update init-boot.sh to start gwemix service and improve start confirmation * chore: Update Dockerfile and gen-docker-compose.sh for wemix node configuration * chore: Refactor key generation and configuration scripts * chore: Clean up unnecessary files and improve entrypoint in Dockerfile.local.boot and Dockerfile.local.node * chore: Update init-boot.sh to start gwemix service and improve start confirmation * chore: Update init-boot.sh to improve gwemix start confirmation * chore: Update Makefile and Dockerfile.local.boot to include init-node.sh in build process * chore: Update init-node.sh to check if the boot node has started before executing commands * chore: Update init-node.sh to include datadir for wemix * chore: Improve gwemix start confirmation and add etcd initialization * chore: Update init-boot.sh to use console command for etcd initialization * chore: Add curl and netcat-traditional to Dockerfile * chore: Refactor local-docker-env scripts for key generation and configuration * chore: Update Makefile-local-env to include wemix configuration files in build process * Feat: Refactor local-docker-env scripts for key generation and configuration * Chore: revert makefile * chore: Update local-docker-env scripts for key generation and configuration * chore: Update Dockerfile to include missing command for updating CA certificates * chore: change local test readme to english * chore: Refactor local-docker-env scripts for key generation and configuration * chore: Update Dockerfile to use specified Ubuntu version in the Docker image --------- Co-authored-by: felix-shin-wt <znzno700@wemade.com> Co-authored-by: egonspace <egonspace@gmail.com> Co-authored-by: felix-shin-wt <65204854+felix-shin-wt@users.noreply.github.com> * add .prettierrc [solidity formatter] (#115) * feat : add prettierrc * fix : remove unuseful comment * [add proposal type] governance general purpose (#116) * feat : add execute * fix : upgrade issue * test : execute * feat : append gap * fix : gap size * fix : [execute fail] return value * fix : typo * fix : typo * feat : test code * feat : gov abigen * fix: update rocksdb to v6.28.2 (#120) fix: update rocksdb v6.27.3 -> v6.28.2 * fix : remove memsize (#122) * Feat: remove mem-size to support go1.23 * Fix: remove memsize from mobile/geth * feat: add eth 68 protocol (#117) * fix: eth 68 protocol * fix: test failure * fix: test failure * fix: protocol name for eth68 * fix: support eth protocol name * fix: lint error * fix: use protocol name when handshaking * fix: protocol name * fix: protocol match bug * fix: not load NCPExit contract * fix: apply comment * Feat: version patch to 9 (#126) :Feat: version patch to 9 --------- Co-authored-by: jed-wemade <127728629+jed-wemade@users.noreply.github.com> Co-authored-by: egonspace <egon@wemade.com> Co-authored-by: felix-shin-wt <65204854+felix-shin-wt@users.noreply.github.com> Co-authored-by: egonspace <egonspace@gmail.com> Co-authored-by: paul ahn <paulahn2022@wemade.com> Co-authored-by: felix-shin-wt <znzno700@wemade.com>
The version control for the governance-contract is managed in go-wemix. (commit: e04c2b07fd0d773cc3e07cacddadd182074a1863)
go-wemix/wemix/governance-contract
1-1. The contract code, excluding the hardhat part, was copied to
go-wemix/wemix/governance-contract/contracts
.1-2. Test code to verify the operation was written in Golang and can be found at
go-wemix/wemix/governance-contracts/test
.The contract bound in the wemix package is used.
go-wemix/wemix/bind
2-1. The code for binding the contract was done in go-wemix/wemix/governance-contract/contracts/abigen.go.
2-2. All instances of using 'metclient.RemoteContract' were removed and replaced with the bound contract.
A 'SimulatedBackend' including the governance-contract was created.
'go-wemix/wemix/bind/backends'
3-1. Functions were added and some were modified in 'go-wemix/accounts/abi/bind/backends'.
3-2. Modifications were made to prevent errors from occurring when adding a future block in simulation mode (ModeFake of ethash).