Proposal: Fix legacy contracts by core upgrade

Proposal: Re-Enable Legacy Contract Execution

Summary

This proposal seeks approval for a patch to the chain core that will re-introduce support for legacy CosmWasm contract execution. The change consists of a small fix (~30–50 lines of code) that restores functionality broken during the v2.1.0 upgrade in 2022.

Affected contracts include not only a number of Astroport pools and potentially some remaining Terraswap pools. While re-enabling these contracts would make currently locked liquidity accessible again without requiring contract migration, the fix would also allow a lot more legacy contracts that include tax handling on chain to work again.

Context

During the v2.1.0 upgrade, custom Terra query support was changed, which caused contracts to stop working, which query the tax rate on chain or exchange rates from the oracle module. This affected several liquidity pools holding significant amounts of LUNC and USTC (besides other tokens).

Key findings from a node-level patch test:

  • The patch allows transactions against these contracts to succeed again.
  • Pools currently contain large amounts of locked liquidity.
  • Example balances (rounded):
    • LUNC/USTC pool: ~700M LUNC, ~6M USTC
    • bLUNA/LUNC pool: ~150M LUNC
    • MIR/USTC pool: ~6M USTC
    • ASTRO/USTC pool: ~3.9M USTC
    • kUST/USTC pool: ~2.9M USTC
  • Across 465 identified Astroport contracts:
    • ~27.4M USTC
    • ~959M LUNC

These tokens are currently unreachable due to the broken execution path. That means, traders can not use those pools at all (native ↔ native) or only in one direction (cw20 ← native).

Implications

Re-enabling execution is expected to instantly “re-open” these pools. This has two sides:

  • Positive: The chain and its users regain access to their liquidity. Tokens that should be in circulation become usable again. Further, there will be a lot more contracts that will start working again without the need of contract migration.
  • Negative: The affected pools are highly imbalanced. Immediately after activation, users and most likely arbitrage bots will drain the obvious opportunities. Example: the LUNC/USTC pool trades at roughly 2× the fair market ratio. This means large swings will happen within minutes of the fix going live. This could affect the price of LUNC and USTC both positive or negative on other DEXes/CEXes, too, in the short term.

Risks

  • Arbitrage drain: First movers (mostly bots) will capture outsized profits, not long-term holders.
  • Public perception: Can be framed as “unlocking” large amounts of USTC/LUNC supply, which may be viewed negatively, although these coins where always meant to be unlocked. The “locking” happened due to a core upgrade side-effect.
  • Timing: Liquidity providers in affected and currently disfunctional pools cannot “exit early” before the patch is applied.
  • Precedent: Some may argue this sets a precedent for L1 patches to support dApps. However, the breakage was originally caused by an L1 upgrade, and the fix is small and contained.

Conclusion

The patch restores functionality that was unintentionally broken. It unlocks liquidity for affected users and contracts, and will restore contract functionality for legacy contracts on chain.

Voting Options:

  • YES – Approve the patch to re-enable legacy contract execution.
  • NO – Do not apply the patch, legacy contracts remain unusable.
  • NO WITH VETO – Strong opposition.
  • ABSTAIN – No opinion.

Further information (not part of the proposal text)

The code changes have been done and can be seen here: fix: Legacy contracts using terra query variants by StrathCole · Pull Request #602 · classic-terra/core · GitHub

Additional test information:
I created a local test script which contains the original wasm (contract) code of four astroport contracts. The steps the test script does:

  1. Start a local chain with only one node using v1.1.0 of the chain
  2. deploy all four astroport pair contracts, instantiate them and test providing liquidity, swapping and withdrawing liquidity.
  3. go through all upgrades of the chain (i.e. v2.0.1, v2.1.1, v2.2.1, …, v3.5.1) and re-test liquidity and swap operations
  4. as expected from v2.1 on the liquidity providing still works, but swaps (native tokens) and withdrawal results in
Error: rpc error: code = Unknown desc = rpc error: code = Unknown desc = failed to execute message; message index: 0: Generic error: Querier system error: Unsupported query type: unknown terra query variant: execute wasm contract failed [classic-terra/[email protected]/x/wasm/keeper/keeper.go:396] With gas wanted: '18446744073709551615' and gas used: '187740' : unknown request
  1. upgrade to the local patched version and then re-run the tests. This confirmed that the swaps and withdrawals worked again afterwards:
{"height":"901","txhash":"9539ECA6A4B0622643BCA9C208741F2C0AB17AFBC931E4B489E657133A0588DB","codespace":"","code":0,"data":"122E0A2C2F636F736D7761736D2E7761736D2E76312E4D736745786563757465436F6E7472616374526573706F6E7365","raw_log":"[{\"msg_index\":0,\"events\":[{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmwasm.wasm.v1.MsgExecuteContract\"},{\"key\":\"sender\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"module\",\"value\":\"wasm\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"amount\",\"value\":\"50000uusd\"}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"amount\",\"value\":\"50000uusd\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"sender\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"amount\",\"value\":\"50000uusd\"}]},{\"type\":\"execute\",\"attributes\":[{\"key\":\"_contract_address\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"}]},{\"type\":\"wasm\",\"attributes\":[{\"key\":\"_contract_address\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"action\",\"value\":\"swap\"},{\"key\":\"sender\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"receiver\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"offer_asset\",\"value\":\"uusd\"},{\"key\":\"ask_asset\",\"value\":\"uluna\"},{\"key\":\"offer_amount\",\"value\":\"50000\"},{\"key\":\"return_amount\",\"value\":\"136507\"},{\"key\":\"tax_amount\",\"value\":\"0\"},{\"key\":\"spread_amount\",\"value\":\"0\"},{\"key\":\"commission_amount\",\"value\":\"410\"},{\"key\":\"maker_fee_amount\",\"value\":\"0\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"amount\",\"value\":\"682uluna\"}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"682uluna\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"sender\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"amount\",\"value\":\"682uluna\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"1uluna\"}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"terra1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8pm7utl\"},{\"key\":\"amount\",\"value\":\"1uluna\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"terra1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8pm7utl\"},{\"key\":\"sender\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"1uluna\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"67uluna\"}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"terra1jgp27m8fykex4e4jtt0l7ze8q528ux2lh4zh0f\"},{\"key\":\"amount\",\"value\":\"67uluna\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"terra1jgp27m8fykex4e4jtt0l7ze8q528ux2lh4zh0f\"},{\"key\":\"sender\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"67uluna\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"614uluna\"}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"terra1sk06e3dyexuq4shw77y3dsv480xv42mq73anxu\"},{\"key\":\"amount\",\"value\":\"614uluna\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"terra1sk06e3dyexuq4shw77y3dsv480xv42mq73anxu\"},{\"key\":\"sender\",\"value\":\"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa\"},{\"key\":\"amount\",\"value\":\"614uluna\"}]},{\"type\":\"tax_payment\",\"attributes\":[{\"key\":\"reverse_charge\",\"value\":\"true\"},{\"key\":\"tax_amount\",\"value\":\"682uluna\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"amount\",\"value\":\"135825uluna\"}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"amount\",\"value\":\"135825uluna\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v\"},{\"key\":\"sender\",\"value\":\"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d\"},{\"key\":\"amount\",\"value\":\"135825uluna\"}]}]}]","logs":[{"msg_index":0,"log":"","events":[{"type":"message","attributes":[{"key":"action","value":"/cosmwasm.wasm.v1.MsgExecuteContract"},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"module","value":"wasm"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"amount","value":"50000uusd"}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"amount","value":"50000uusd"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"amount","value":"50000uusd"}]},{"type":"execute","attributes":[{"key":"_contract_address","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"}]},{"type":"wasm","attributes":[{"key":"_contract_address","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"action","value":"swap"},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"receiver","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"offer_asset","value":"uusd"},{"key":"ask_asset","value":"uluna"},{"key":"offer_amount","value":"50000"},{"key":"return_amount","value":"136507"},{"key":"tax_amount","value":"0"},{"key":"spread_amount","value":"0"},{"key":"commission_amount","value":"410"},{"key":"maker_fee_amount","value":"0"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"amount","value":"682uluna"}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"682uluna"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"sender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"amount","value":"682uluna"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"1uluna"}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8pm7utl"},{"key":"amount","value":"1uluna"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8pm7utl"},{"key":"sender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"1uluna"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"67uluna"}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1jgp27m8fykex4e4jtt0l7ze8q528ux2lh4zh0f"},{"key":"amount","value":"67uluna"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1jgp27m8fykex4e4jtt0l7ze8q528ux2lh4zh0f"},{"key":"sender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"67uluna"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"614uluna"}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1sk06e3dyexuq4shw77y3dsv480xv42mq73anxu"},{"key":"amount","value":"614uluna"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1sk06e3dyexuq4shw77y3dsv480xv42mq73anxu"},{"key":"sender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa"},{"key":"amount","value":"614uluna"}]},{"type":"tax_payment","attributes":[{"key":"reverse_charge","value":"true"},{"key":"tax_amount","value":"682uluna"}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"amount","value":"135825uluna"}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"amount","value":"135825uluna"}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v"},{"key":"sender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d"},{"key":"amount","value":"135825uluna"}]}]}],"info":"","gas_wanted":"398509","gas_used":"328238","tx":{"@type":"/cosmos.tx.v1beta1.Tx","body":{"messages":[{"@type":"/cosmwasm.wasm.v1.MsgExecuteContract","sender":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","contract":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","msg":{"swap":{"max_spread":"0.1","offer_asset":{"info":{"native_token":{"denom":"uusd"}},"amount":"50000"}}},"funds":[{"denom":"uusd","amount":"50000"}]}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Aqv2KqkN0qD1YB6HEfm+tTgFPHVUwZPajkmqV0tJgIT6"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"140"}],"fee":{"amount":[{"denom":"uluna","amount":"11955270"}],"gas_limit":"398509","payer":"","granter":""},"tip":null},"signatures":["7zIHxYrrtVlqWAf5UzLQzrRY8XaAn4PO+BMI3bBzK+Z5pU42P/vZvlZV6+KJMefpzPF7GU7OLR9w69HSgg0VAA=="]},"timestamp":"2025-09-11T14:29:18Z","events":[{"type":"coin_spent","attributes":[{"key":"spender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"amount","value":"11955270uluna","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"11955270uluna","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"amount","value":"11955270uluna","index":true}]},{"type":"message","attributes":[{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true}]},{"type":"tx","attributes":[{"key":"fee","value":"11955270uluna","index":true},{"key":"fee_payer","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true}]},{"type":"tx","attributes":[{"key":"acc_seq","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v/140","index":true}]},{"type":"tx","attributes":[{"key":"signature","value":"7zIHxYrrtVlqWAf5UzLQzrRY8XaAn4PO+BMI3bBzK+Z5pU42P/vZvlZV6+KJMefpzPF7GU7OLR9w69HSgg0VAA==","index":true}]},{"type":"message","attributes":[{"key":"action","value":"/cosmwasm.wasm.v1.MsgExecuteContract","index":true},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"module","value":"wasm","index":true}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"amount","value":"50000uusd","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"amount","value":"50000uusd","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"amount","value":"50000uusd","index":true}]},{"type":"execute","attributes":[{"key":"_contract_address","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true}]},{"type":"wasm","attributes":[{"key":"_contract_address","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"action","value":"swap","index":true},{"key":"sender","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"receiver","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"offer_asset","value":"uusd","index":true},{"key":"ask_asset","value":"uluna","index":true},{"key":"offer_amount","value":"50000","index":true},{"key":"return_amount","value":"136507","index":true},{"key":"tax_amount","value":"0","index":true},{"key":"spread_amount","value":"0","index":true},{"key":"commission_amount","value":"410","index":true},{"key":"maker_fee_amount","value":"0","index":true}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"amount","value":"682uluna","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"682uluna","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"sender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"amount","value":"682uluna","index":true}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"1uluna","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8pm7utl","index":true},{"key":"amount","value":"1uluna","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1jv65s3grqf6v6jl3dp4t6c9t9rk99cd8pm7utl","index":true},{"key":"sender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"1uluna","index":true}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"67uluna","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1jgp27m8fykex4e4jtt0l7ze8q528ux2lh4zh0f","index":true},{"key":"amount","value":"67uluna","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1jgp27m8fykex4e4jtt0l7ze8q528ux2lh4zh0f","index":true},{"key":"sender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"67uluna","index":true}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"614uluna","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1sk06e3dyexuq4shw77y3dsv480xv42mq73anxu","index":true},{"key":"amount","value":"614uluna","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1sk06e3dyexuq4shw77y3dsv480xv42mq73anxu","index":true},{"key":"sender","value":"terra17xpfvakm2amg962yls6f84z3kell8c5lkaeqfa","index":true},{"key":"amount","value":"614uluna","index":true}]},{"type":"tax_payment","attributes":[{"key":"reverse_charge","value":"true","index":true},{"key":"tax_amount","value":"682uluna","index":true}]},{"type":"coin_spent","attributes":[{"key":"spender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"amount","value":"135825uluna","index":true}]},{"type":"coin_received","attributes":[{"key":"receiver","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"amount","value":"135825uluna","index":true}]},{"type":"transfer","attributes":[{"key":"recipient","value":"terra1ynfwy6ct69n6hw7mafdxjflz7w0wak0jrj3y6v","index":true},{"key":"sender","value":"terra16t7y0vrtpqjw2d7jvc2209yan9002339vjr96d","index":true},{"key":"amount","value":"135825uluna","index":true}]}]}
5 Likes

I believe this proposal is highly valuable for the ecosystem. With a small core fix, it can unlock millions of LUNC and USTC, restore legacy contracts, and bring back functionality to protocols like Astroport and Terraswap. This will increase liquidity, strengthen user confidence, and add new momentum to Terra Classic. I fully support it. :white_check_mark:

2 Likes

On telegram there was the question on why not just first send all the funds in the pools back to the LP owners.

My answer to this was:

That would be technically unfeasible.

  • There would be thousands of queries, sends, calculations and contract executions(!) that had to be done during a chain upgrade
  • the risk of something going wrong during that is quite high
  • Even collecting all the holdings/shares upfront would mean thousands of refund transactions during chain upgrade, especially also including contract executions to refund cw20
  • collecting upfront would involve a “trust” to the people collecting the list and storing it in the chain upgrade handler
  • It is not only astroport contracts, who would guarantee, you catch all currently malfunctioning pools or stuck funds somewhere in the ecosystem?
  • You would send tokens to tons of inactive wallets instead of having them in pools available for trading

There are only three options to handle this in my opinion:

  1. Fix the contracts by a chain upgrade
  2. Leave everything as is
  3. Fix the contracts by migrating each single one of the contracts to new code

Yes, bots would suck up most of the arbitrage in those pools for sure. But that would mostly bring the pools to “fair” market value. Also some users simply are stuck in CW20<->native contracts, not in LP. Because those pools are working currently one-way.

5 Likes

take the job Cole :collision:
#MM3 Wait for you

The public’s trust in the LUNC blockchain is invaluable. Support this.

2 Likes

I see that the proposal passed, so any work have been made ?

Just saw this. The update is already live.