# Dry Run Phase 3 Gov Proposal

**URL:** <https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085>\
**Category:** Network Operations\
**Created:** [14 November 2024 02:17 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085 "2024-11-14T02:17:42Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![brentstone](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/brentstone/32/464_2.png) [@brentstone](https://forum.namada.net/u/brentstone)\
**Post date:** [14 November 2024 02:17 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/1 "2024-11-14T02:17:42Z")

</div>

We are successfully in Phase 2 now of the dry-run! This topic is now to discuss the proposal for advancing to Phase 3.

**The first draft of the proposal code is here:** [namada-governance-upgrades/phase3/src/lib.rs at brent/dry-run · anoma/namada-governance-upgrades · GitHub](https://github.com/anoma/namada-governance-upgrades/blob/brent/dry-run/phase3/src/lib.rs). This has not been submitted on-chain yet.

A channel has been opened between the dry run network and Osmosis mainnet with the name `transfer/channel-1/uosmo`. This is hard-coded into the gov proposal code above.

We are proposing to support the flow of mainnet OSMO only in the Phase 3 proposal. The first proposed values of the mint and throughput rate limits are 10,000 OSMO.

In order to support shielded gas payment with a disposable key before NAM transfers are enabled in Phase 5, gas must be able to be paid using a non-native token. As a result, this proposal also allows OSMO to be used for gas payment at a rate of 1 uOSMO (0.000001 OSMO) per unit of gas.

**Important note:** the dry-run network will be taken offline at some point, so please do not transfer in any more OSMO than you are willing to lose. You will certainly be able to IBC transfer out your OSMO back to their mainnet before the dry-run ends, but in case of lapses in memory, any OSMO remaining in the network when the dry-run is taken offline will likely be lost.

Please offer your thoughts on all things related to the proposal!

---

<div class="post-metadata">

**Author:** ![brentstone](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/brentstone/32/464_2.png) [@brentstone](https://forum.namada.net/u/brentstone)\
**Post date:** [14 November 2024 04:43 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/2 "2024-11-14T04:43:52Z")

</div>

Here are also some recommendations of actions to test during Phase 3 of the dry-run:

- you can IBC transfer OSMO into Namada both transparently and by direct shielding
- you can IBC transfer OSMO out of Namada
- you can `shield`, `unshield`, and `transfer` mainnet OSMO within Namada
- you are unable to `shield` NAM (before Phase 5)
- you can use `shielded-sync` with and without a MASP indexer
- you do not accrue NAM in your shielded balance from rewards (turned on in Phase 4)
- you can pay gas using OSMO
- you can pay gas using OSMO with your shielded balance for shielded txs (using a `--disposable-gas-payer`)

---

<div class="post-metadata">

**Author:** ![cryptosj](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/cryptosj/32/1258_2.png) [@cryptosj](https://forum.namada.net/u/cryptosj)\
**Post date:** [14 November 2024 18:25 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/3 "2024-11-14T18:25:43Z")

</div>

We Support this proposal 🚀

---

<div class="post-metadata">

**Author:** ![brentstone](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/brentstone/32/464_2.png) [@brentstone](https://forum.namada.net/u/brentstone)\
**Post date:** [14 November 2024 19:16 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/4 "2024-11-14T19:16:41Z")

</div>

The proposal is on-chain with ID of 2!

To verify the code, you can look [here](https://github.com/anoma/namada-governance-upgrades/actions/runs/11843529833) for the build artifacts that contain `phase3.wasm`, then compare the hashes with the CLI proposal query:

```auto
> sha256sum phase3.wasm 
45028620c50d9aeab6e5e8f7a158d364667be3e959e58184d7dfe3d01906721e phase3.wasm

> namadac query-proposal --proposal-id 2 --node $DO_NODE

Last committed epoch: 25
Proposal Id: 2
Type: Default with Wasm
Author: tnam1qqgll8x8rz9fvtdv8q6n985za0vjvgyu0udxh7fp
Content: {"abstract": "Initialize phase 3 of the dry-run by enabling the flow of non-native assets into Namada for both shielded and transparent use", "discussions-to": "https://forum.namada.net/t/dry-run-phase-2-gov-proposal/1085", "title": "Phase 2 -> 3"}
Start Epoch: 26
End Epoch: 41
Activation Epoch: 42
Status: pending
Data: Hash: 45028620C50D9AEAB6E5E8F7A158D364667BE3E959E58184D7DFE3D01906721E

```

---

<div class="post-metadata">

**Author:** ![Rigorous](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/rigorous/32/397_2.png) [@Rigorous](https://forum.namada.net/u/Rigorous)\
**Post date:** [14 November 2024 20:38 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/5 "2024-11-14T20:38:13Z")

</div>

Technically, we should verify the proposal WASM on a testnet before voting. In this case the dry-run could be considered a testnet, so it could be overkill to test it on a separate testnet.

But when we are going to do this for real, running the WASM on a parallel testnet before voting would be prudent. Who knows there are bugs that are only revealed on a network with more than 100 validators or a high amount of transactions?

---

<div class="post-metadata">

**Author:** ![brentstone](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/brentstone/32/464_2.png) [@brentstone](https://forum.namada.net/u/brentstone)\
**Post date:** [14 November 2024 21:36 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/6 "2024-11-14T21:36:40Z")

</div>

I agree with this in principle. @Gavin thoughts?

---

<div class="post-metadata">

**Author:** ![Rigorous](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/rigorous/32/397_2.png) [@Rigorous](https://forum.namada.net/u/Rigorous)\
**Post date:** [14 November 2024 22:01 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/7 "2024-11-14T22:01:52Z")

</div>

Would Housefire and/or Campfire be suitable for testing proposals?

---

<div class="post-metadata">

**Author:** ![brentstone](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/brentstone/32/464_2.png) [@brentstone](https://forum.namada.net/u/brentstone)\
**Post date:** [16 November 2024 11:12 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/8 "2024-11-16T11:12:28Z")

</div>

Yes, either one could be decided as the staging environment for this

---

<div class="post-metadata">

**Author:** ![brentstone](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/brentstone/32/464_2.png) [@brentstone](https://forum.namada.net/u/brentstone)\
**Post date:** [16 November 2024 13:05 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/10 "2024-11-16T13:05:31Z")

</div>

Wow awesome work, thanks so much for testing @Daniel!

I am actually able to use the disposable gas payer as intended. I’ll share my workflow below. You can see that I unshield `591` uOSMO and pay a `50000` uOSMO gas fee using the disposable / ephemeral key.

```auto
> namadac balance --owner s-1 --token uosmo --node $RPC_TUDUDES
Last committed masp epoch: 11
transfer/channel-1/uosmo: 291591

> namadac unshield --source s-1 --target brent-1 --token uosmo --node $RPC_TUDUDES --amount 591 --disposable-gas-payer --gas-spending-key s-1 --gas-token uosmo
Enter your decryption password for s-1: 
Created disposable keypair with alias disposable-key-A0FA0FD493D6F23B4343B51D12011D59CCBD2155-created-at-1731761972
Transaction added to mempool.
Transaction hash: 5FB85A82D04A9822D45AD9D2DDB7D7A34266E0667B3513F845C1F6A26A290B21
Transaction 18280188DBA4ED637669F4171D90065E0310C542F050407B8F43B82A32499B6E was successfully applied at height 45032, consuming 47218 gas units.

> namadac shielded-sync --viewing-keys s-1 --node $RPC_TUDUDES --with-indexer https://masp.namada-dryrun.tududes.com/api/v1
==== Shielded sync started using indexer client ====

fetched : 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████| 39/39 [00:00<00:00, 51.61it/s]
scanned : 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 1.30it/s]
applied : 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 1.29it/s]

Syncing finished

> namadac balance --owner s-1 --token uosmo --node $RPC_TUDUDES 
Last committed masp epoch: 11
transfer/channel-1/uosmo: 241000

```

---

<div class="post-metadata">

**Author:** ![Daniel](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/daniel/32/186_2.png) [@Daniel](https://forum.namada.net/u/Daniel)\
**Post date:** [16 November 2024 13:10 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/11 "2024-11-16T13:10:58Z")

</div>

Good to know works with unshielding 🫡. I have only tried to do so on a shielded to shielded transaction. Have you tried it out on your side?

---

<div class="post-metadata">

**Author:** ![Daniel](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/daniel/32/186_2.png) [@Daniel](https://forum.namada.net/u/Daniel)\
**Post date:** [16 November 2024 16:58 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/12 "2024-11-16T16:58:12Z")

</div>

The shielded transfer (shielded to shielded) using `--disposable-gas-payer` flag finally works. First, I have figured out that I didn’t have enough OSMO to pay for gas fees in the two spending keys I have used in the testings. So, I send a few to one of them. And then, it complained about transaction gas limit to be exceeded:

```auto
Encountered error while broadcasting transaction: StringTracer: server error: {"codespace":"","code":9,"data":"","log":"Mempool validation failed: Error trying to apply a transaction: Gas error: Transaction gas limit exceeded","hash":"0DF185F5C936696430B963DD754E145494BEBF26BAF0BE7C7B283BA6FD6C7966"}

```

I had to add to add `--gas-limit 80000` so as to troubleshoot it and make it functional.

> [@brentstone](#):
>
> `namadac unshield --source s-1 --target brent-1 --token uosmo --node $RPC_TUDUDES --amount 591 --disposable-gas-payer --gas-spending-key s-1 --gas-token uosmo`

I just now also tested out unshielding IBC transfers using `--disposable-gas-payer` flag. They are working too 🥳

---

<div class="post-metadata">

**Author:** ![Daniel](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/daniel/32/186_2.png) [@Daniel](https://forum.namada.net/u/Daniel)\
**Post date:** [17 November 2024 07:37 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/13 "2024-11-17T07:37:09Z")

</div>

**Reposting as the original message above it’s been deleted accidentally**

I have been testing out all these actions and almost all of them seem to work as expected. I have only faced issues while using `--disposable-gas-payer` flag, a priori seems that it’s not working, or pehaps I’m using it in a wrong way (posted the command below too).

- you can IBC transfer OSMO into Namada both transparently and by direct shielding  
**Transfer OSMO from Osmosis to Namada transparently:**

```auto
namadac balance --owner a --token transfer/channel-1/uosmo
transfer/channel-1/uosmo: 100000

```

> **[Mintscan](https://www.mintscan.io/osmosis/tx/7C611C57B30515879437DEB069582845B10F48C10A0A165AEA7F1AE86548E06F?height=24079263)**
>
> Interchain block explorer and data analytics for sovereign blockchain networks.

**Transfer OSMO from Osmosis to Namada’s MASP (shielding IBC transfer):**

```auto
namadac balance --owner masptest --token transfer/channel-1/uosmo
Last committed masp epoch: 11
transfer/channel-1/uosmo: 20000

```

> **[Mintscan](https://www.mintscan.io/osmosis/tx/D29F30C4464FE5DB0AB35EA8568F95661B2F2F880F41B63CAE44472473051093?height=24080406)**
>
> Interchain block explorer and data analytics for sovereign blockchain networks.

- you can IBC transfer OSMO out of Namada  
**Transfer OSMO from Namada to Osmosis (unshielding IBC transfer):**

Transaction hash: 9FFB1EA2FF8FE3540D230E947CE554F4B52D84B0CA322F92CC0CDC310B414D6A

Received on Osmosis:

```auto
osmosisd q bank balances osmo1ytrmydn4uzcgj9hqdhn727r3w7tgns37mqllha --node https://rpc.osmosis.zone:443
balances:
- amount: "50"
  denom: uosmo

```

> **[Mintscan](https://www.mintscan.io/osmosis/tx/084C195AC803CE77088494554D9FA723516ABD70B0DFF47107A51FED16B7F845?height=24083583)**
>
> Interchain block explorer and data analytics for sovereign blockchain networks.

**Transfer OSMO from Namada to Osmosis transparently:**

Transaction hash: 8962491BAF5A6C1EA26428B97D43604737A13BFCB92C19B96A9B0EA6C81DB414

Received on Osmosis:

```auto
osmosisd q bank balances osmo1ytrmydn4uzcgj9hqdhn727r3w7tgns37mqllha --node https://rpc.osmosis.zone:443
balances:
- amount: "100"
  denom: uosmo
pagination:
  next_key: null
  total: "0"

```

> **[Mintscan](https://www.mintscan.io/osmosis/tx/053DEB1D228753F2676384FFAEECAEF64B5166A0352D0D57E9410C6246B8F573?height=24083801)**
>
> Interchain block explorer and data analytics for sovereign blockchain networks.

- you can `shield`, `unshield`, and `transfer` mainnet OSMO within Namada  
**Transparent transfer (transparent to transparent):**

```auto
namadac balance --owner t --token transfer/channel-1/uosmo
transfer/channel-1/uosmo: 83

```

Transaction hash: 56AEE4BCB9411D4DCD41A4C488F5638A9186D3DC91A6E4654005604F6EE2DB7F

**Shielding transfer (transparent to shielded):**

```auto
namadac balance --owner b --token transfer/channel-1/uosmo
Last committed masp epoch: 11
transfer/channel-1/uosmo: 99

```

Transaction hash: 082A0E461BFA30C8CC47910C2146A22B0918958B23F65048B565CEA9A144042A

**Unshielding transfer (shielded to transparent):**

```auto
namadac balance --owner t --token transfer/channel-1/uosmo
transfer/channel-1/uosmo: 105

```

Transaction hash: CC8BD4A4752A17B62F0248E11BEC9667F08DBD3585CFFAF5D827A7678C7D1A67

**Shielded transfer (shielded to shielded):**

```auto
namadac balance --owner b --token transfer/channel-1/uosmo
Last committed masp epoch: 11
transfer/channel-1/uosmo: 155

```

Transaction hash: 56914B26946AF4E232C0BD2E2FA2478EDA6AA53F5F49B6B1C59ACC04C0D91C51

- you are unable to `shield` NAM (before Phase 5)

```auto
Errors: [
  [
    "tnam1pyqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqej6juv",
    "Native VP error: Native token deposit isn't allowed"
  ]
]

```

Transaction hash: 5841F9C02783610A3059E6148FE8DC8BB6F17F3630B5182170A64B4CAFD90475

- you can use `shielded-sync` with and without a MASP indexer  
with: yes  
without: yes
- you do not accrue NAM in your shielded balance from rewards (turned on in Phase 4)  
Not receiving rewards:

```auto
namadac balance --owner masptest --token NAM
Last committed masp epoch: 11
nam: 0

```

- you can pay gas using OSMO  
**Transparent transfer (transparent to transparent):**

Transaction hash: 55FC67A938DD9E0784953B8269AA7E9EA7F641A0DA4D646E52A35187A4352953

```auto
namadac balance --owner t --token transfer/channel-1/uosmo                                                       
transfer/channel-1/uosmo: 188

```

Transaction hash: 9F738613212C1AECF1C7D7567AF2849A5DDD0B3C51ADAC888E3364470D3973F1

**Shielding transfer (transparent to shielded):**

```auto
namadac balance --owner b --token transfer/channel-1/uosmo
Last committed masp epoch: 11
transfer/channel-1/uosmo: 376

```

Transaction hash: F718800F5FFFF30F5655AF166D41D2499EF57804E81EE0C2E24D4A19CC0E061F

**Unshielding transfer (shielded to transparent):**

```auto
namadac balance --owner t --token transfer/channel-1/uosmo
transfer/channel-1/uosmo: 210

```

Transaction hash: B8B6B266E1FD5705DBB0F47AC95C1A26BC1F93117372E9B628772753DE31C06F

- you can pay gas using OSMO with your shielded balance for shielded txs (using a `--disposable-gas-payer`)

I wasn’t able to use `--disposable-gas-payer` gas to pay gas fees with OSMO for a shielded to shielded transaction, it outputs this error message below. I wonder if this is happening because disposable gas payer logic can’t yet work with tokens others than native one - as it complains about insufficient funds, meaning that perhaps is looking for NAM instead of the token denom passed in the `--gas-token` flag.

```auto
Created disposable keypair with alias disposable-key-C8ACD37A214A8604649D1AECF5FACFAEFBB3D00B-created-at-1731755234
Error:
   0: Insufficient funds
   1: Insufficient funds

```

If I use only `--gas-spending-key`, it works fine and I can pay gas fees with OSMO for a shielded to shielded transaction:

```auto
namadac transfer --source masptest --target masp-addr2 --token transfer/channel-1/uosmo --amount 54 --gas-token transfer/channel-1/uosmo --gas-spending-key masptest --signing-keys t

```

Transaction hash: F0EA3212225DDAB031CD08477278A634ED207AE65562D84996ACA9A7EB6B49A7

```auto
namadac balance --owner b --token transfer/channel-1/uosmo
Last committed masp epoch: 11
transfer/channel-1/uosmo: 153

```

---

<div class="post-metadata">

**Author:** ![Gavin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.namada.net/gavin/32/16_2.png) [@Gavin](https://forum.namada.net/u/Gavin)\
**Post date:** [22 November 2024 02:02 UTC](https://forum.namada.net/t/dry-run-phase-3-gov-proposal/1085/14 "2024-11-22T02:02:09Z")

</div>

yeah i think all wasm should be executed on Housefire first, we could propose having this be part of our social expectations in our community’s governance process

cc @brentstone
