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

[Feature] Bump cosmwasm to v0.14.0 #472

Merged
merged 10 commits into from
May 6, 2021
Merged

Conversation

yun-yeo
Copy link
Contributor

@yun-yeo yun-yeo commented May 4, 2021

Summary of changes

The main change is now the contract can have optional admin address in its info state. If the ContractInfo contains valid admin address, then the contract is flagged as migratable. Only the admin address can execute MsgMigrateContract & MsgUpdateContractAdmin & MsgClearContractAdmin messages.

Also the Cosmwasm API interface now supports WasmMsg::Migrate & WasmMsg::UpdateAdmin & WasmMsg::ClearAdmin.

New Messages

  • MsgClearContractAdmin
    • Remove a contract admin to make the contract un-migratable

Message Changes

  • MsgUpdateContractOwner name changed to MsgUpdateContractAdmin
  • MsgInstantiateContract.Owner removed and MsgInstantiateContract.Creator & MsgInstantiateContract.Admin added
    // only when the admin is specified, the contract flagged as migratible
    type MsgInstantiateContract struct {
       // Sender is an sender address
       Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"`
       // Admin is optional an admin address that can execute migrations
       Admin string `protobuf:"bytes,2,opt,name=admin,proto3" json:"admin,omitempty" yaml:"admin"`
       // CodeID is the reference to the stored WASM code
       CodeID uint64 `protobuf:"varint,3,opt,name=code_id,json=codeId,proto3" json:"code_id,omitempty" yaml:"code_id"`
       // InitMsg json encoded message to be passed to the contract on instantiation
       InitMsg encoding_json.RawMessage `protobuf:"bytes,4,opt,name=init_msg,json=initMsg,proto3,casttype=encoding/json.RawMessage" json:"init_msg,omitempty" yaml:"init_msg"`
       // InitCoins that are transferred to the contract on execution
       InitCoins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,5,rep,name=init_coins,json=initCoins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"init_coins" yaml:"init_coins"`
    }

State Changes

  • ContractInfo.Owner removed and ContractInfo.Creator & ContractInfo.Admin added

Report of required housekeeping

  • Github issue OR spec proposal link
  • Wrote tests
  • Updated API documentation (client/lcd/swagger-ui/swagger.yaml)
  • Added a relevant changelog entry: clog add [section] [stanza] [message]

(FOR ADMIN) Before merging

  • Added appropriate labels to PR
  • Squashed all commits, uses message "Merge pull request #XYZ: [title]" (coding standards)
  • Confirm added tests are consistent with the intended behavior of changes
  • Ensure all tests pass

@yun-yeo yun-yeo self-assigned this May 4, 2021
@codecov
Copy link

codecov bot commented May 4, 2021

Codecov Report

Merging #472 (f7448e9) into release/v0.5.x (8b5c49c) will increase coverage by 2.42%.
The diff coverage is 56.53%.

Impacted file tree graph

@@                Coverage Diff                 @@
##           release/v0.5.x     #472      +/-   ##
==================================================
+ Coverage           43.27%   45.70%   +2.42%     
==================================================
  Files                 137      141       +4     
  Lines                7385     7838     +453     
==================================================
+ Hits                 3196     3582     +386     
- Misses               3969     4017      +48     
- Partials              220      239      +19     
Impacted Files Coverage Δ
app/app.go 0.69% <0.00%> (-0.02%) ⬇️
app/export.go 0.00% <0.00%> (ø)
x/market/keeper/test_utils.go 99.14% <ø> (ø)
x/market/types/querier.go 0.00% <ø> (ø)
x/market/types/query.pb.gw.go 0.00% <0.00%> (ø)
x/oracle/keeper/keeper.go 80.66% <0.00%> (ø)
x/treasury/genesis.go 90.69% <ø> (ø)
x/treasury/wasm/interface.go 72.22% <0.00%> (ø)
x/wasm/keeper/api.go 65.21% <ø> (-8.70%) ⬇️
x/wasm/simulation/test_contract.go 0.00% <ø> (ø)
... and 56 more

@hanjukim hanjukim self-requested a review May 6, 2021 02:28
@hanjukim hanjukim merged commit 989eccb into release/v0.5.x May 6, 2021
@hanjukim hanjukim deleted the feature/cosmwasm-v0.14.0 branch May 6, 2021 02:33
@yun-yeo yun-yeo mentioned this pull request May 6, 2021
8 tasks
yun-yeo pushed a commit that referenced this pull request Aug 11, 2021
yun-yeo pushed a commit that referenced this pull request Aug 11, 2021
* upgrade to Cosmos SDK v0.39.2 (#430)

* upgrade to Cosmos SDK v0.39.2-rc1

* update to cosmos-sdk v0.39.2 RC2

* update to rc3

* update to v0.39.2

* [Bugfix] Register wasm query failed error to sdkerrors (#436)

* register wasm query failed error code
* fix description for querier

* fix treasury indicators querier

* [Feature] append blocking conditions for `/txs` query with `--public` flag on LCD (#437)

* block querying genesis txs from public node
* update txs query blocking condition for public node

* hotfix memory leak in go-cosmwasm iterator

* Implement tax caps querier for all whitelisted denoms (#442)

* add tax_caps querier
* add client interface & swagger update

Co-authored-by: Paul Kim <paul@terra.money>

* [Hotfix] treasury empty epoch data (#445)

* prevent division by zero, even though no epoch data is stored

* add test case for empty epoch data

* apply review for v0.4.2

* add empty epoch data load test case

* running startgate version

* update swagger-docs

* bugfix customized fee estimation interface

* change circleci to workflow

* housekeeping

* fix simulation

* fix simulation

* fix mempool logic to restrict gas limit for oracle txs

* Bump cosmwasm to v0.14.x (#465)

* Bump cosmwasm to v0.14.x

* fix lint

* Bump CosmWasm to v0.14.0-beta3

* update swagger-docs

* simulation update

* fix simulation

* fix test binary name

* fix test

* add MigrateMsg parsing & change test contract binary

* fix simulation

* fix msg validation

* fix test

* Update binding interface to reject IBC and Burn message

* implement wasm module migration script

* [Feature] Separate mint and burn swap pool (#467)

* sperate mint and burn swap pool

* fix lint

* add market migration script

* [Feature] v0.4 to v0.5 migration (#471)

* MsgAuth migration
* Market migration test
* Revert vesting rounding error
* Implement migrate cmd from v0.4 to v0.5
* Fix wrong bank import key to evidence

* [Feature] Bump cosmwasm to v0.14.0 (#472)

* update swagger-docs

* update proto comment & swagger-docs

* update proto doc generation script to generate docs with cosmos and ibc

* remove cosmos proto vesting account

* pass nano second for wasm BlockInfo

* allow empty admin on cli comment

* update swagger-docs

* fix instantiate&execute&migrate event ordering

* [Feature] Bump SDK version to v0.43.0-beta1 (#474)

* bump cosmos-sdk v0.43.0-beta1 & migrate msgauth to cosmos-sdk's authz module

* add address verifier

* revert gitflow

* fix address verifier condition

* remove not used TODO comments

* fix migration script

* fix test

* pass proto codec for wasm simulation

* bugfix to pass msgs to BroadcastTx at fee estimation

* bugfix cmd and estimate_fee

* remove log

* [Feature] Remove Treasury bespoke proposals (#475)

* remove treasury proposals

* update swagger docs

* [Feature] RewardWeight migration script update to burn all seigniorage (#477)

* update RewardWeight migration script to burn all seigniorage

* update swagger-docs

* revert core/BaseAccount codec to core/Account & swagger update

* add deprecation headers to custom rest handlers

* fix swagger

* Fix distribution legacy amino codec

* fix treasury migration

* update swagger docs

* legacy swagger update

* temporal fix for keyring dir not found error

* add deprecation flag to swagger

* convert pubkey replace to receive proto style pubkey object

* upgrade migration register for v0.5.0-beta3

* prepare docker files both for shared and static libary version

* make static.Dockerfile to default Dockerfile

* bugfix add treasury burn permission

* fix(terrad-env): Dockerfile VOLUME directive doesn't work on Azure (#489)

- VOLUME can be used as a string or JSON array
Cf https://docs.docker.com/engine/reference/builder/#volume

* [Feature] update organization name to terra-money (#486)

* org name update to terra-money

* remove circleci

* Update migration params for col5 (#491)

* update migration params for col5

* fix test

* increase wasm code size

* update migration code to add burn permission to treasury module (#493)

* [Bugfix] Return BASE/QUOTE exchange rate (#497)

* fix to return BASE/QUOTE exchange rate

* fix test

* return error when failed to parse msg

* change error comment

* [Feature] amino support to authz module with tax computing custom cli (#499)

* add amino support to authz module with tax computing custom cli

* fix to use custom transactino factory

* fill more denom meta infos

* update wasm cli to receive base64 bytes for raw query

* [Bugfix] limit wasm max gas with param (#502)

* limit wasm gas usage with param

* update comment

* use explicit subCtx

* fix swap grpc querier

* fix swap grpc querier wasm interface with cli

* register UpgradeHandler for v0.5.0

* [Feature] Apply audit (#504)

* move oracle SlashWindow check to outside of VotePeriod block

* fix to return BurnBasePool params

* allow to change oracle feeder to other address

* return error when oracle prevote request input is wrong

* remove unnecessary storage access at oracle tally

* sort price ballot at creation time to reduce duplicate sort cost

* fix testcase

* force to spend gas for failed address conversion

* fix to use ValidateFeeder to properly check bonding status of validator at oracle voting

* remove unnecessary oracle price ballot sort

* prevent empty treasury epoch state stored for cumulateive epochs

* prevent to create multiple vesting schedules for a denom

* remove CodeID from the MsgStoreCode

* fix simulation

* [Bump] cosmwasm to v0.15.0 (#509)

* bump cosmwasm to v0.15.0

* emit both from_contract and wasm events to support latest & legacy style, but block from_contract to be passed to a contract

* add deprecated comment to from_contract

* invalid replyOn check

* allow to overwrite response data with reply data

* charge gas for wasm events

* simplify gov msg parser

* use wasmvm@v0.15.1

* update wasm event spec

* fix test for wasm gov

* update migration test code to use refect.DeepEqual()

* fix migration test to use json.Marshal for correct comparision

* register UpgradeHandler for v0.5.0

* fix bank encoding

* transfer all luna token to contract for proper simulation

* change require.Equal to assert.JSONEq

clear migration test

* fix treasury migration bug

* [Bump] sdk version to v0.43.0-rc0 (#507)

* bump sdk version to v0.43.0-rc0

* reuse app creator

* fix estimate_fee request interface unpacker

* remove unused files

* remove unused files

* fix to use new app config at testnet launch

* register all message amino codec to legacy.Cdc because authz module use this to get signbytes

* prevent register codec multiple times

* update cosmos proto for swagger update

* register feegrant amino codec to support legacy service

* change upgrade name to use -rc0

* change upgrade handler name to v0.5.0

* update swagger docs to include deprecated estimate_fee endpoints

* fix compute_tax endpoints

* Update README.md

* migrate market MintBasePool size to previous BasePool

* add amino support for StakeAuthorization (#512)

* update changelog

* keep consistency with wasmd

* feat(gov): add MsgVoteWeighted amino codec

* fix test

* remove unused sorted check (#517)

* rollback market base pool split (#518)

* remove unused sorted check

* rollback mint&burn pool split

* update swagger docs

* update readme

* [Feature] contract info query wasm interface (#520)

* add contract info query interface

* add testing code for contract info query wasm interface

* remove print

* Bump dependencies (#526)

* update changelog

* bump cosmwasm to v0.16.0-rc5 && cosmos-sdk to v0.43.0-rc2

* check reply error

* update test_contract for simulation

* bump cosmwasm to v0.16.0 & cosmos-sdk to v0.43.0-rc3

* add analysis for wasm contract for debugging purpose

* update ibc-go v1.0.0-rc4

* charge contract registering cost

* Update Dockerfile to use CosmWasm 0.16

* add changelog

Co-authored-by: Paul Kim <paul@terra.money>

* upgrade to Cosmos SDK v0.39.2 (#430)

* upgrade to Cosmos SDK v0.39.2-rc1

* update to cosmos-sdk v0.39.2 RC2

* update to rc3

* update to v0.39.2

* [Hotfix] treasury empty epoch data (#445)

* prevent division by zero, even though no epoch data is stored

* add test case for empty epoch data

* apply review for v0.4.2

* running startgate version

* update swagger-docs

* bugfix customized fee estimation interface

* change circleci to workflow

* housekeeping

* fix simulation

* fix simulation

* fix mempool logic to restrict gas limit for oracle txs

* Bump cosmwasm to v0.14.x (#465)

* Bump cosmwasm to v0.14.x

* fix lint

* Bump CosmWasm to v0.14.0-beta3

* update swagger-docs

* simulation update

* fix simulation

* fix test binary name

* fix test

* add MigrateMsg parsing & change test contract binary

* fix simulation

* fix msg validation

* fix test

* Update binding interface to reject IBC and Burn message

* implement wasm module migration script

* [Feature] Separate mint and burn swap pool (#467)

* sperate mint and burn swap pool

* fix lint

* add market migration script

* [Feature] v0.4 to v0.5 migration (#471)

* MsgAuth migration
* Market migration test
* Revert vesting rounding error
* Implement migrate cmd from v0.4 to v0.5
* Fix wrong bank import key to evidence

* [Feature] Bump cosmwasm to v0.14.0 (#472)

* update swagger-docs

* update proto comment & swagger-docs

* update proto doc generation script to generate docs with cosmos and ibc

* remove cosmos proto vesting account

* pass nano second for wasm BlockInfo

* allow empty admin on cli comment

* update swagger-docs

* fix instantiate&execute&migrate event ordering

* [Feature] Bump SDK version to v0.43.0-beta1 (#474)

* bump cosmos-sdk v0.43.0-beta1 & migrate msgauth to cosmos-sdk's authz module

* add address verifier

* revert gitflow

* fix address verifier condition

* remove not used TODO comments

* fix migration script

* fix test

* pass proto codec for wasm simulation

* bugfix to pass msgs to BroadcastTx at fee estimation

* bugfix cmd and estimate_fee

* remove log

* [Feature] Remove Treasury bespoke proposals (#475)

* remove treasury proposals

* update swagger docs

* [Feature] RewardWeight migration script update to burn all seigniorage (#477)

* update RewardWeight migration script to burn all seigniorage

* update swagger-docs

* revert core/BaseAccount codec to core/Account & swagger update

* add deprecation headers to custom rest handlers

* fix swagger

* Fix distribution legacy amino codec

* fix treasury migration

* update swagger docs

* legacy swagger update

* temporal fix for keyring dir not found error

* add deprecation flag to swagger

* convert pubkey replace to receive proto style pubkey object

* upgrade migration register for v0.5.0-beta3

* prepare docker files both for shared and static libary version

* make static.Dockerfile to default Dockerfile

* bugfix add treasury burn permission

* fix(terrad-env): Dockerfile VOLUME directive doesn't work on Azure (#489)

- VOLUME can be used as a string or JSON array
Cf https://docs.docker.com/engine/reference/builder/#volume

* [Feature] update organization name to terra-money (#486)

* org name update to terra-money

* remove circleci

* Update migration params for col5 (#491)

* update migration params for col5

* fix test

* increase wasm code size

* update migration code to add burn permission to treasury module (#493)

* [Bugfix] Return BASE/QUOTE exchange rate (#497)

* fix to return BASE/QUOTE exchange rate

* fix test

* return error when failed to parse msg

* change error comment

* [Feature] amino support to authz module with tax computing custom cli (#499)

* add amino support to authz module with tax computing custom cli

* fix to use custom transactino factory

* fill more denom meta infos

* update wasm cli to receive base64 bytes for raw query

* [Bugfix] limit wasm max gas with param (#502)

* limit wasm gas usage with param

* update comment

* use explicit subCtx

* fix swap grpc querier

* fix swap grpc querier wasm interface with cli

* register UpgradeHandler for v0.5.0

* [Feature] Apply audit (#504)

* move oracle SlashWindow check to outside of VotePeriod block

* fix to return BurnBasePool params

* allow to change oracle feeder to other address

* return error when oracle prevote request input is wrong

* remove unnecessary storage access at oracle tally

* sort price ballot at creation time to reduce duplicate sort cost

* fix testcase

* force to spend gas for failed address conversion

* fix to use ValidateFeeder to properly check bonding status of validator at oracle voting

* remove unnecessary oracle price ballot sort

* prevent empty treasury epoch state stored for cumulateive epochs

* prevent to create multiple vesting schedules for a denom

* remove CodeID from the MsgStoreCode

* fix simulation

* [Bump] cosmwasm to v0.15.0 (#509)

* bump cosmwasm to v0.15.0

* emit both from_contract and wasm events to support latest & legacy style, but block from_contract to be passed to a contract

* add deprecated comment to from_contract

* invalid replyOn check

* allow to overwrite response data with reply data

* charge gas for wasm events

* simplify gov msg parser

* use wasmvm@v0.15.1

* update wasm event spec

* fix test for wasm gov

* update migration test code to use refect.DeepEqual()

* fix migration test to use json.Marshal for correct comparision

* register UpgradeHandler for v0.5.0

* fix bank encoding

* transfer all luna token to contract for proper simulation

* change require.Equal to assert.JSONEq

clear migration test

* fix treasury migration bug

* [Bump] sdk version to v0.43.0-rc0 (#507)

* bump sdk version to v0.43.0-rc0

* reuse app creator

* fix estimate_fee request interface unpacker

* remove unused files

* remove unused files

* fix to use new app config at testnet launch

* register all message amino codec to legacy.Cdc because authz module use this to get signbytes

* prevent register codec multiple times

* update cosmos proto for swagger update

* register feegrant amino codec to support legacy service

* change upgrade name to use -rc0

* change upgrade handler name to v0.5.0

* update swagger docs to include deprecated estimate_fee endpoints

* fix compute_tax endpoints

* migrate market MintBasePool size to previous BasePool

* Update README.md

* update changelog

* add amino support for StakeAuthorization (#512)

* keep consistency with wasmd

* fix test

* feat(gov): add MsgVoteWeighted amino codec

* remove unused sorted check (#517)

* rollback market base pool split (#518)

* remove unused sorted check

* rollback mint&burn pool split

* update swagger docs

* update readme

* [Feature] contract info query wasm interface (#520)

* add contract info query interface

* add testing code for contract info query wasm interface

* remove print

* Bump dependencies (#526)

* update changelog

* bump cosmwasm to v0.16.0-rc5 && cosmos-sdk to v0.43.0-rc2

* check reply error

* update test_contract for simulation

* bump cosmwasm to v0.16.0 & cosmos-sdk to v0.43.0-rc3

* add analysis for wasm contract for debugging purpose

* update ibc-go v1.0.0-rc4

* charge contract registering cost

* Update Dockerfile to use CosmWasm 0.16

* add changelog

Co-authored-by: Paul Kim <paul@terra.money>

* correct rebase

* check attributes length before doing attribute parse (#531)

* bump sdk version to 0.43 and ibc-go version to 1.0.0 (#529)

* bump sdk version to 0.43 and ibc-go version to 1.0.0

* add changelog

* update keyring for kwallet fix

* update changelog

* update migrate consensus params

* fix to use master branch for proto-check-breaking

Co-authored-by: Alessio Treglia <quadrispro@ubuntu.com>
Co-authored-by: Paul Kim <paul@terra.money>
Co-authored-by: Zeid Marouf <4321056+zmarouf@users.noreply.github.com>
Co-authored-by: Do Kwon <do@terra.money>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants