Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add role-based access control for bridge #1358

Merged
merged 8 commits into from
May 7, 2024
Merged

feat: add role-based access control for bridge #1358

merged 8 commits into from
May 7, 2024

Conversation

tkxkd0159
Copy link
Member

@tkxkd0159 tkxkd0159 commented May 7, 2024

Description

closes: #XXXX

Apply #1350

Motivation and context

How has this been tested?

Screenshots (if appropriate):

Checklist:

  • I followed the contributing guidelines and code of conduct.
  • I have added a relevant changelog to CHANGELOG.md
  • I have added tests to cover my changes.
  • I have updated the documentation accordingly.
  • I have updated API documentation client/docs/swagger-ui/swagger.yaml

170210 and others added 7 commits April 18, 2024 16:33
* feat: initial fswap module

Signed-off-by: 170210 <j170210@icloud.com>

* chore: correct dependencies

Signed-off-by: 170210 <j170210@icloud.com>

* chore: remove unuse files

Signed-off-by: 170210 <j170210@icloud.com>

* feat: add proto files

Signed-off-by: 170210 <j170210@icloud.com>

* chore: make proto-gen

Signed-off-by: 170210 <j170210@icloud.com>

* chore: fix compile error

Signed-off-by: 170210 <j170210@icloud.com>

* chore: add new field in params proto

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* feat: add query&tx commands of fswap module

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix for comment

Signed-off-by: 170210 <j170210@icloud.com>

* docs: update CHANGLOG.md

Signed-off-by: 170210 <j170210@icloud.com>

* docs: fix error docs

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix consensusversion

Signed-off-by: 170210 <j170210@icloud.com>

* fix: remove route,type&getSignBytes in msgs.go

Signed-off-by: 170210 <j170210@icloud.com>

* fix: update proto files

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix NewKeeper

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix for comment

Signed-off-by: 170210 <j170210@icloud.com>

---------

Signed-off-by: 170210 <j170210@icloud.com>
* feat: implement genesis related functions

Signed-off-by: 170210 <j170210@icloud.com>

* chore: use mockgen

Signed-off-by: 170210 <j170210@icloud.com>

* chore: add tests

Signed-off-by: 170210 <j170210@icloud.com>

* fix: add subspace in paramsKeeper

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix for test errors

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix appmodulebasic

Signed-off-by: 170210 <j170210@icloud.com>

* chore: update CHANGLOG.md

Signed-off-by: 170210 <j170210@icloud.com>

* fix: use configuration instead of params

Signed-off-by: 170210 <j170210@icloud.com>

* chore: refactor new&default fswapped

Signed-off-by: 170210 <j170210@icloud.com>

* fix: add total_supply into genesisStatus & remove calculate logic

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix module_simulation

Signed-off-by: 170210 <j170210@icloud.com>

* fix: set swappableNewCoinDenom as params

Signed-off-by: 170210 <j170210@icloud.com>

* fix: change total_supply name to swappableNewCoinAmount

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* fix: use io/collection to generate key

Signed-off-by: 170210 <j170210@icloud.com>

* Revert "fix: use io/collection to generate key"

This reverts commit e42e064.

* fix: change sdk.Coin to sdk.Int

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* fix: remote unnecessary codes

Signed-off-by: 170210 <j170210@icloud.com>

* fix: add validate for swappable new coin

Signed-off-by: 170210 <j170210@icloud.com>

* fix: add randomizedGenState

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix error doc

Signed-off-by: 170210 <j170210@icloud.com>

* fix: fix lint

Signed-off-by: 170210 <j170210@icloud.com>

* fix: change proto message fields' name

Signed-off-by: 170210 <j170210@icloud.com>

---------

Signed-off-by: 170210 <j170210@icloud.com>
* initialize fbridge module

* add all proto files for fbridge

* add missing proto files

* initialize module structure

* modify proto based on discussion

* add codec

* add CHANGELOG

* modify UpdateRole feature
* impl bridge transfer tx/query

* add CLI
* feat: add SeqToBlocknum

* add CHANGELOG

* add query bound for SeqToBlocknums
…Proposal) (#1345)

* refactor: fswap module's proto

Signed-off-by: 170210 <j170210@icloud.com>

* refactor: remove config&params and modify genesis

Signed-off-by: 170210 <j170210@icloud.com>

* refactor: use gov/proposal to change fswapInit

Signed-off-by: 170210 <j170210@icloud.com>

* chore: fix simulation

Signed-off-by: 170210 <j170210@icloud.com>

* chore: correct query cli

Signed-off-by: 170210 <j170210@icloud.com>

* chore: add query for test

Signed-off-by: 170210 <j170210@icloud.com>

* chore: lint fix

* chore: fix for tx cli

* chore: update proto

* chore: update genesis logic

* chore: add basic tx and queries

* chore: rename fswap to swap

* chore: change old/new to from/to

* chore: clean-up

* chore: clean errors and rename

* chore: update proto

* chore: clean unnecessary member variables

* chore: update proto, introduce config, clean code

* chore: remove redundant denom validation

* chore: remove cache-like operation, rename swap proposal in proto, errors start with number 2

* chore: apply feedbacks

* chore: fix some

* chore: fix for initGenesis

* chore: apply feedbacks

* chore: update changelog

* chore: remove redundant logic

* chore: update error doc

* chore: update proto and logic to accept bank.Metadata

* chore: add query to get all the swaps

* chore: change swap_multiple to swap_rate

* chore: disallow updating existing denom metadata with different values

* chore: fix for calcSwap logic

* chore: extract CalcSwap to function

* chore: add missing query cmd

* chore: fix for proposal cli

* chore: fix for init timing

* chore: fix query cli

* chore: fix to prevent generating swap more than MaxSwaps

* fix: add missing call validateBasic for proposal

* fix:

* chore: change error type for temporal test-pass

* chore: fix for make-swap-proposal update

* chore: fix to check swap count after increase in order not to make more than limit

* chore: prevent any proposal with different denom

* chore: change amount cap type

* chore: fix codec-related parts

* chore: minor change for convert to-coin-amount-cap

---------

Signed-off-by: 170210 <j170210@icloud.com>
Co-authored-by: jaeseung.bae <jaeseung.bae@linecorp.com>
* add submitting role proposal feature

* feat: addVote

* feat: role proposal confirmation logic

* add gRPC for RBAC

* fix checking trustLevel condition

* validate role metadata during initialization

* add invariants for metadata

* delete expired proposal at begin blocker

* add memStore and halting feature

* remove redundant gRPC queries

* fix endblock logic

* add Params test

* add dummy guardian for testing

* remove redundant invariants

* set bridge switch at missing parts

* add gov authority

* add guardian invariant

* add single member query

* return error if the address has no role

* append genesis validation

* add CLI

* return all registered members if there is no query string

* add unit tests for RBAC

* merge `halt` with `resume` as `set-bridge-status`

* Add CHANGELOG

* add ERRORS docs

* apply 0tech review

* enhance bridge switch unit test

* maintain bridge status metadata based on permanent states

* change panic msg for unimplemented features

* check duplicate seq in genesis

* bridge inactive counter must always be initialization

* bridge is always inactive if there is no guardian

* start fbridge module after auth/bank

* remove redundant invariant checking
@tkxkd0159 tkxkd0159 changed the title Pjdp1 feat: add role-based access control for bridge May 7, 2024
@tkxkd0159 tkxkd0159 added the A: feature New features label May 7, 2024
@tkxkd0159 tkxkd0159 marked this pull request as ready for review May 7, 2024 12:07
@tkxkd0159 tkxkd0159 self-assigned this May 7, 2024
Copy link

codecov bot commented May 7, 2024

Codecov Report

Attention: Patch coverage is 32.07856% with 415 lines in your changes are missing coverage. Please review.

Project coverage is 69.53%. Comparing base (b73fabd) to head (3ea78b2).
Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1358      +/-   ##
==========================================
- Coverage   69.98%   69.53%   -0.45%     
==========================================
  Files         663      672       +9     
  Lines       55440    56103     +663     
==========================================
+ Hits        38799    39012     +213     
- Misses      14408    14827     +419     
- Partials     2233     2264      +31     
Files Coverage Δ
simapp/app.go 80.06% <100.00%> (ø)
x/fbridge/types/codec.go 54.54% <50.00%> (ø)
x/fbridge/keeper/params.go 83.33% <83.33%> (ø)
x/fbridge/types/msgs.go 0.00% <0.00%> (ø)
x/fbridge/types/fbridge.go 0.00% <0.00%> (ø)
x/fbridge/types/params.go 42.42% <42.42%> (ø)
x/fbridge/keeper/keeper.go 67.85% <70.00%> (+17.85%) ⬆️
x/fbridge/types/keys.go 0.00% <0.00%> (ø)
x/fbridge/keeper/abci.go 0.00% <0.00%> (ø)
x/fbridge/keeper/genesis.go 10.34% <8.33%> (+10.34%) ⬆️
... and 4 more

@tkxkd0159 tkxkd0159 merged commit 1c272c9 into main May 7, 2024
45 of 46 checks passed
@tkxkd0159 tkxkd0159 deleted the pjdp1 branch May 7, 2024 12:26
mergify bot pushed a commit that referenced this pull request May 7, 2024
* add submitting role proposal feature

* feat: addVote

* feat: role proposal confirmation logic

* add gRPC for RBAC

* fix checking trustLevel condition

* validate role metadata during initialization

* add invariants for metadata

* delete expired proposal at begin blocker

* add memStore and halting feature

* remove redundant gRPC queries

* fix endblock logic

* add Params test

* add dummy guardian for testing

* remove redundant invariants

* set bridge switch at missing parts

* add gov authority

* add guardian invariant

* add single member query

* return error if the address has no role

* append genesis validation

* add CLI

* return all registered members if there is no query string

* add unit tests for RBAC

* merge `halt` with `resume` as `set-bridge-status`

* Add CHANGELOG

* add ERRORS docs

* apply 0tech review

* enhance bridge switch unit test

* maintain bridge status metadata based on permanent states

* change panic msg for unimplemented features

* check duplicate seq in genesis

* bridge inactive counter must always be initialization

* bridge is always inactive if there is no guardian

* start fbridge module after auth/bank

* remove redundant invariant checking

(cherry picked from commit 1c272c9)

# Conflicts:
#	CHANGELOG.md
#	client/docs/swagger-ui/swagger.yaml
#	x/ERRORS.md
tkxkd0159 added a commit that referenced this pull request May 7, 2024
* feat: add role-based access control for bridge

* use ostracon beginblock for compatibility

* fix CHANGELOG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants