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 <[email protected]>

* chore: correct dependencies

Signed-off-by: 170210 <[email protected]>

* chore: remove unuse files

Signed-off-by: 170210 <[email protected]>

* feat: add proto files

Signed-off-by: 170210 <[email protected]>

* chore: make proto-gen

Signed-off-by: 170210 <[email protected]>

* chore: fix compile error

Signed-off-by: 170210 <[email protected]>

* chore: add new field in params proto

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* feat: add query&tx commands of fswap module

Signed-off-by: 170210 <[email protected]>

* fix: fix for comment

Signed-off-by: 170210 <[email protected]>

* docs: update CHANGLOG.md

Signed-off-by: 170210 <[email protected]>

* docs: fix error docs

Signed-off-by: 170210 <[email protected]>

* fix: fix consensusversion

Signed-off-by: 170210 <[email protected]>

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

Signed-off-by: 170210 <[email protected]>

* fix: update proto files

Signed-off-by: 170210 <[email protected]>

* fix: fix NewKeeper

Signed-off-by: 170210 <[email protected]>

* fix: fix for comment

Signed-off-by: 170210 <[email protected]>

---------

Signed-off-by: 170210 <[email protected]>
* feat: implement genesis related functions

Signed-off-by: 170210 <[email protected]>

* chore: use mockgen

Signed-off-by: 170210 <[email protected]>

* chore: add tests

Signed-off-by: 170210 <[email protected]>

* fix: add subspace in paramsKeeper

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* fix: fix for test errors

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* fix: fix appmodulebasic

Signed-off-by: 170210 <[email protected]>

* chore: update CHANGLOG.md

Signed-off-by: 170210 <[email protected]>

* fix: use configuration instead of params

Signed-off-by: 170210 <[email protected]>

* chore: refactor new&default fswapped

Signed-off-by: 170210 <[email protected]>

* fix: add total_supply into genesisStatus & remove calculate logic

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* fix: fix module_simulation

Signed-off-by: 170210 <[email protected]>

* fix: set swappableNewCoinDenom as params

Signed-off-by: 170210 <[email protected]>

* fix: change total_supply name to swappableNewCoinAmount

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* fix: use io/collection to generate key

Signed-off-by: 170210 <[email protected]>

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

This reverts commit e42e064.

* fix: change sdk.Coin to sdk.Int

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* fix: remote unnecessary codes

Signed-off-by: 170210 <[email protected]>

* fix: add validate for swappable new coin

Signed-off-by: 170210 <[email protected]>

* fix: add randomizedGenState

Signed-off-by: 170210 <[email protected]>

* fix: fix error doc

Signed-off-by: 170210 <[email protected]>

* fix: fix lint

Signed-off-by: 170210 <[email protected]>

* fix: change proto message fields' name

Signed-off-by: 170210 <[email protected]>

---------

Signed-off-by: 170210 <[email protected]>
* 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 <[email protected]>

* refactor: remove config&params and modify genesis

Signed-off-by: 170210 <[email protected]>

* refactor: use gov/proposal to change fswapInit

Signed-off-by: 170210 <[email protected]>

* chore: fix simulation

Signed-off-by: 170210 <[email protected]>

* chore: correct query cli

Signed-off-by: 170210 <[email protected]>

* chore: add query for test

Signed-off-by: 170210 <[email protected]>

* 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 <[email protected]>
Co-authored-by: jaeseung.bae <[email protected]>
* 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