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 bankplus function to restrict to send coin to inactive smart contract. #400

Merged
merged 18 commits into from
Jan 10, 2022

Conversation

zemyblue
Copy link
Member

@zemyblue zemyblue commented Dec 15, 2021

Description

If the receiver is inactive contract, the transfer is failure.
This function doesn't modify bank module. The SendCoins of bank module is wrapped in the bankplus. But the bankplus is not other module. It just extends the bank module.

Wrapping the SendCoins of bank module

If specific smart contract change to inactive status, wasm call the AddBlockedAddr of bankplus. And conversely, if change active, wasm call the DeleteBlockedAddr of bankplus.

All bank module should be change to bankplus when initiate the app.
(So, lbm should apply this as well.)

Add blockedAddr for blocked smart contract.

The blockedAddr of original bank module and blockedAddr of bankplus is different.

  • The blockedAddr of original bank module is just generated when the app initiate, and manage the list of blocked modules, and it cannot be changed.
  • The blockedAddr of bankplus manage inactive smart contracts, and can add/delete when the smart contract's status is changed.

closes: #394


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Targeted PR against correct branch (see CONTRIBUTING.md)
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work. (Nothing)
  • Code follows the module structure standards.
  • Wrote unit and integration tests
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/)
  • Added relevant godoc comments.
  • Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer
  • Review Codecov Report in the comment section below once CI passes

@zemyblue zemyblue added the Draft label Dec 15, 2021
@codecov
Copy link

codecov bot commented Dec 16, 2021

Codecov Report

❗ No coverage uploaded for pull request base (main@0e7b3cf). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #400   +/-   ##
=======================================
  Coverage        ?   53.93%           
=======================================
  Files           ?      685           
  Lines           ?    69999           
  Branches        ?        0           
=======================================
  Hits            ?    37752           
  Misses          ?    29226           
  Partials        ?     3021           

@zemyblue zemyblue changed the title [draft] feat: add bankplus function to restrict to send coin to inactive smart contract. feat: add bankplus function to restrict to send coin to inactive smart contract. Dec 17, 2021
@zemyblue zemyblue added C:WASM and removed Draft labels Dec 17, 2021
@zemyblue zemyblue self-assigned this Dec 17, 2021
Copy link
Contributor

@brew0722 brew0722 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In genernal, LGTM

x/bankplus/keeper/keeper.go Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
x/bankplus/keeper/blocked.go Outdated Show resolved Hide resolved
x/bankplus/keeper/blocked.go Outdated Show resolved Hide resolved
x/bankplus/keeper/blocked_test.go Outdated Show resolved Hide resolved
x/bankplus/keeper/keeper.go Outdated Show resolved Hide resolved
x/bankplus/keeper/keeper.go Show resolved Hide resolved
x/bankplus/keeper/keeper_test.go Show resolved Hide resolved
x/bankplus/keeper/keeper.go Outdated Show resolved Hide resolved
x/bankplus/keeper/keeper.go Outdated Show resolved Hide resolved
x/bankplus/keeper/blocked.go Outdated Show resolved Hide resolved
Copy link
Contributor

@brew0722 brew0722 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@loloicci loloicci requested review from loloicci and removed request for egonspace January 7, 2022 03:22
Copy link
Contributor

@loloicci loloicci left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@zemyblue zemyblue merged commit cb1ad80 into main Jan 10, 2022
@zemyblue zemyblue deleted the zemyblue/issue_394 branch January 10, 2022 03:22
zemyblue added a commit that referenced this pull request Jan 25, 2022
* main: (44 commits)
  feat: rewrite issue template and move PR template (#410)
  fix: validate validator addresses in update-validator-auths proposal (#411)
  feat: add `bankplus` function to restrict to send coin to inactive smart contract. (#400)
  build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#408)
  ci: fix branch name on ci script (#409)
  feat: Add CreateValidator access control feature (#406)
  build(deps): bump github.com/spf13/viper from 1.9.0 to 1.10.1 (#403)
  build(deps): bump github.com/rs/zerolog from 1.26.0 to 1.26.1 (#402)
  fix: fix query signing infos command (#407)
  build(deps): bump github.com/spf13/cobra from 1.1.3 to 1.3.0 (#399)
  build(deps): github.com/ulikunitz/xz from 0.5.5 to 0.5.10 (#398)
  build(deps): bump actions/stale from 3 to 4.1.0 (#396)
  build(deps): bump actions/cache from 2.1.3 to 2.1.7 (#386)
  feat: Add the `instantiate_permission` in the `CodeInfoResponse` (#395)
  fix: fix bug where `StoreCodeAndInstantiateContract`, `UpdateContractStatus`, `UpdateContractStatusProposal` API does not work (#393)
  docs: modify with latest version of swagger REST interface docs. (#392)
  fix: fix invalid root hash by bumping up tm-db (#388)
  chore: fix swagger's config path for wasm (#391)
  build(deps): bump technote-space/get-diff-action from 5.0.1 to 5.0.2 (#379)
  fix: update allowance inside AllowedMsgAllowance (#383)
  ...
@zemyblue zemyblue mentioned this pull request Jan 26, 2022
5 tasks
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.

Prevent sending coin if the contract is inactive.
5 participants