owned this note
owned this note
Published
Linked with GitHub
# Wasmd Unforking Testing
# Test Documentation for Wasmd Unforking
## Overview
This document outlines the comprehensive testing strategy for migrating from the forked wasmd version (v0.35.0) to the upstream mainstream version (v0.36.0). The unforking process involves critical store migrations that require thorough validation to ensure data preservation and contract functionality.
## Integration Testing
### Migration Test Scenario
The primary test scenario involves:
1. **Pre-migration Setup**: Deploy a local chain running v0.35.0 (forked version)
2. **Contract Deployment**: Deploy comprehensive test contracts covering various CosmWasm features
3. **Data Population**: Execute transactions to populate contract state and chain data
4. **Upgrade Execution**: Perform the upgrade to v0.36.0 (mainstream version) with store migrations
5. **Post-migration Validation**: Verify data integrity and contract functionality
### Test Contract Categories
#### CW20 Token Migration Test
- [x] **Basic Token Operations**
- Deploy CW20 token contract
- Mint tokens to multiple accounts
- Execute transfers and allowances
- Validate balances and total supply
- [x] **Post-Migration Validation**
- Verify all token balances preserved
- Test transfer functionality
- Validate metadata and token info
- Check allowance mappings
#### Stargate-Tester Contract Test
- [x] **Stargate Query Testing**
- Deploy stargate-tester contract
- Execute various stargate queries
- Test bank, staking, and governance queries
- Store query results and state
- [x] **Migration Validation**
- Verify stored query results intact
- Re-execute queries and compare results
- Test new stargate functionality
- Validate query response formats
#### Terra Swap DEX Test
- [x] **DEX Functionality Testing**
- Deploy swap contracts and liquidity pools
- Add liquidity to pools
- Execute swap operations
- Create limit orders
- [x] **Liquidity and State Validation**
- Verify all liquidity pool balances
- Check swap history and state
- Validate LP token distributions
- Test post-migration swap operations
## Rebel-2 Testnet e2e test
### `Wasmd` Module Query Testing
+ Verified all `terrad q wasm query` sub-commands execute without errors (contract info, contract-state, smart queries, raw queries).
```bash
$ build/terrad q wasm contract-state all terra1xudw9tpmkp2er5zvzmaylf2wgjc6qhtnc236k7rtmessagw08dkqp54c00 --node https://rpc.luncblaze.com:443
models:
- key: 000762616C616E636574657272613177373078617A39716778307278396375706D7177706A333635793637756B3563636D6E753566
value: Ijc1MDc0MTAyNTUzMSI=
- key: 000762616C616E6365746572726131776C61756A333933686D36646C307A716C746B666D6A3779786A6877373575743866646C3072386C6E6A30637A6832776A67307361373336326A
value: IjAi
- key: 000762616C616E63657465727261317A766E306732717036636A37686C30766C6C7A3067706A7363326834673274377335646C76766E6A796B61307530783038347A7364356E717365
value: IjI0OTI1ODk3NDQ2OSI=
- key: 0009616C6C6F77616E63650040746572726131776C61756A333933686D36646C307A716C746B666D6A3779786A6877373575743866646C3072386C6E6A30637A6832776A67307361373336326A7465727261317A766E306732717036636A37686C30766C6C7A3067706A7363326834673274377335646C76766E6A796B61307530783038347A7364356E717365
value: eyJhbGxvd2FuY2UiOiIwIiwiZXhwaXJlcyI6eyJuZXZlciI6e319fQ==
- key: 0011616C6C6F77616E63655F7370656E64657200407465727261317A766E306732717036636A37686C30766C6C7A3067706A7363326834673274377335646C76766E6A796B61307530783038347A7364356E717365746572726131776C61756A333933686D36646C307A716C746B666D6A3779786A6877373575743866646C3072386C6E6A30637A6832776A67307361373336326A
value: eyJhbGxvd2FuY2UiOiIwIiwiZXhwaXJlcyI6eyJuZXZlciI6e319fQ==
- key: 636F6E74726163745F696E666F
value: eyJjb250cmFjdCI6ImNyYXRlcy5pbzpjdzIwLWJhc2UiLCJ2ZXJzaW9uIjoiMC4xNC4wIn0=
- key: 746F6B656E5F696E666F
value: eyJuYW1lIjoiUGVwZSBDb2luIiwic3ltYm9sIjoiUEVQRSIsImRlY2ltYWxzIjo2LCJ0b3RhbF9zdXBwbHkiOiIxMDAwMDAwMDAwMDAwIiwibWludCI6eyJtaW50ZXIiOiJ0ZXJyYTF3bGF1ajM5M2htNmRsMHpxbHRrZm1qN3l4amh3NzV1dDhmZGwwcjhsbmowY3poMndqZzBzYTczNjJqIiwiY2FwIjpudWxsfX0=
pagination:
next_key: null
total: "0"
```
+ Documented breaking change for `ContractInfo`: https://x.com/orbit__labs/status/1965529320740585782
```
{
"address": "...",
"contract_info": {
"code_id": "...",
"creator": "...",
"admin": "...",
"label": "...",
"created": {
"block_height": "...",
"tx_index": "..."
},
"ibc_port_id": "",
"extension": null
}
}
Includes top-level address and explicit extension field.
This format represents a full contract query result.
Mainnet response
{
"contract_info": {
"code_id": "...",
"creator": "...",
"admin": "...",
"label": "...",
"created": {
"block_height": "...",
"tx_index": "..."
},
"ibc_port_id": ""
}
}
```
+ Validated historic height queries against CW20 contract state (balances, contract metadata, instantiation info).
```bash
$ build/terrad q wasm contract-state all terra1xudw9tpmkp2er5zvzmaylf2wgjc6qhtnc236k7rtmessagw08dkqp54c00 --node https://rpc.luncblaze.com:443 --height 27410000
models:
- key: 000762616C616E636574657272613177373078617A39716778307278396375706D7177706A333635793637756B3563636D6E753566
value: Ijc1MDc0MTAyNTUzMSI=
- key: 000762616C616E6365746572726131776C61756A333933686D36646C307A716C746B666D6A3779786A6877373575743866646C3072386C6E6A30637A6832776A67307361373336326A
value: IjAi
- key: 000762616C616E63657465727261317A766E306732717036636A37686C30766C6C7A3067706A7363326834673274377335646C76766E6A796B61307530783038347A7364356E717365
value: IjI0OTI1ODk3NDQ2OSI=
- key: 0009616C6C6F77616E63650040746572726131776C61756A333933686D36646C307A716C746B666D6A3779786A6877373575743866646C3072386C6E6A30637A6832776A67307361373336326A7465727261317A766E306732717036636A37686C30766C6C7A3067706A7363326834673274377335646C76766E6A796B61307530783038347A7364356E717365
value: eyJhbGxvd2FuY2UiOiIwIiwiZXhwaXJlcyI6eyJuZXZlciI6e319fQ==
- key: 0011616C6C6F77616E63655F7370656E64657200407465727261317A766E306732717036636A37686C30766C6C7A3067706A7363326834673274377335646C76766E6A796B61307530783038347A7364356E717365746572726131776C61756A333933686D36646C307A716C746B666D6A3779786A6877373575743866646C3072386C6E6A30637A6832776A67307361373336326A
value: eyJhbGxvd2FuY2UiOiIwIiwiZXhwaXJlcyI6eyJuZXZlciI6e319fQ==
- key: 636F6E74726163745F696E666F
value: eyJjb250cmFjdCI6ImNyYXRlcy5pbzpjdzIwLWJhc2UiLCJ2ZXJzaW9uIjoiMC4xNC4wIn0=
- key: 746F6B656E5F696E666F
value: eyJuYW1lIjoiUGVwZSBDb2luIiwic3ltYm9sIjoiUEVQRSIsImRlY2ltYWxzIjo2LCJ0b3RhbF9zdXBwbHkiOiIxMDAwMDAwMDAwMDAwIiwibWludCI6eyJtaW50ZXIiOiJ0ZXJyYTF3bGF1ajM5M2htNmRsMHpxbHRrZm1qN3l4amh3NzV1dDhmZGwwcjhsbmowY3poMndqZzBzYTczNjJqIiwiY2FwIjpudWxsfX0=
pagination:
next_key: null
total: "0"
```
```bash
$ build/terrad q wasm contract terra1xudw9tpmkp2er5zvzmaylf2wgjc6qhtnc236k7rtmessagw08dkqp54c00 --node $NODE
address: terra1xudw9tpmkp2er5zvzmaylf2wgjc6qhtnc236k7rtmessagw08dkqp54c00
contract_info:
admin: terra1w70xaz9qgx0rx9cupmqwpj365y67uk5ccmnu5f
code_id: "1252"
created:
block_height: "24028235"
tx_index: "0"
creator: terra1wlauj393hm6dl0zqltkfmj7yxjhw75ut8fdl0r8lnj0czh2wjg0sa7362j
extension: null
ibc_port_id: ""
```
### Terraswap
Testing functionality of TerraSwap on testnet rebel-2 postupgrade, ensuring swap feature working properly