From f41a498bd817f986088f5c97af7fc42e517ba62e Mon Sep 17 00:00:00 2001 From: Eshel Date: Thu, 28 Sep 2023 18:09:14 +0300 Subject: [PATCH 1/3] seeing if it passes CI, because locally something is missing (looking at you protogen) but I don't know what --- .../test-compute-contract/src/contract.rs | 3 +- .../test-compute-contract/src/msg.rs | 1 + go-cosmwasm/Cargo.lock | 4 +-- x/compute/internal/keeper/handler_plugin.go | 1 + .../keeper/secret_contracts_migrate_test.go | 33 +++++++++++++++++++ 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/contract.rs b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/contract.rs index b52ce29a1..72ed8c44a 100644 --- a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/contract.rs +++ b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/contract.rs @@ -1010,6 +1010,7 @@ pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg) -> S code_hash, label, msg, + admin, } => Ok(Response::new() .add_message(CosmosMsg::Wasm(WasmMsg::Instantiate { code_id, @@ -1017,7 +1018,7 @@ pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg) -> S msg: Binary(msg.as_bytes().into()), funds: vec![], label, - admin: None, + admin, })) .add_attribute("a", "a")), ExecuteMsg::CallToExec { diff --git a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/msg.rs b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/msg.rs index 058d5eee8..1695a1891 100644 --- a/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/msg.rs +++ b/cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/msg.rs @@ -357,6 +357,7 @@ pub enum ExecuteMsg { code_hash: String, label: String, msg: String, + admin: Option, }, CallToExec { addr: String, diff --git a/go-cosmwasm/Cargo.lock b/go-cosmwasm/Cargo.lock index e7d96fc8d..03d0f4eae 100644 --- a/go-cosmwasm/Cargo.lock +++ b/go-cosmwasm/Cargo.lock @@ -649,9 +649,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", diff --git a/x/compute/internal/keeper/handler_plugin.go b/x/compute/internal/keeper/handler_plugin.go index 5f7c749e8..1464f9950 100644 --- a/x/compute/internal/keeper/handler_plugin.go +++ b/x/compute/internal/keeper/handler_plugin.go @@ -524,6 +524,7 @@ func EncodeWasmMsg(sender sdk.AccAddress, msg *v1wasmTypes.WasmMsg) ([]sdk.Msg, InitMsg: msg.Instantiate.Msg, InitFunds: coins, CallbackSig: msg.Instantiate.CallbackSignature, + Admin: msg.Instantiate.Admin, } return []sdk.Msg{&sdkMsg}, nil case msg.Migrate != nil: diff --git a/x/compute/internal/keeper/secret_contracts_migrate_test.go b/x/compute/internal/keeper/secret_contracts_migrate_test.go index 5638d923d..9011f0489 100644 --- a/x/compute/internal/keeper/secret_contracts_migrate_test.go +++ b/x/compute/internal/keeper/secret_contracts_migrate_test.go @@ -8232,3 +8232,36 @@ func TestMigrateEnvTxHash(t *testing.T) { res.WasmEvents, ) } + +func TestContractInitsContractWithAdmin(t *testing.T) { + for _, testContract := range testContracts { + t.Run("v1 inits "+testContract.CosmWasmVersion, func(t *testing.T) { + ctx, keeper, codeID, _, walletA, privKeyA, _, _ := setupTest(t, TestContractPaths[v1Contract], sdk.NewCoins()) + + _, _, addr, _, initErr := initHelper(t, keeper, ctx, codeID, walletA, walletA, privKeyA, `{"nop":{}}`, true, true, defaultGasForTests) + require.Empty(t, initErr) + + newCodeId, codeHash := uploadCode(ctx, t, keeper, testContract.WasmFilePath, walletA) + + initMsg := fmt.Sprintf(`{"call_to_init":{"admin": "%s", "code_id":%d,"code_hash":"%s","msg":"%s","label":"1"}}`, addr.String(), newCodeId, codeHash, `{\"nop\":{}}`) + fmt.Println("ESHELDEBUG: initMsg:", initMsg) + _, ctx, _, events, _, err := execHelper(t, keeper, ctx, addr, walletA, privKeyA, initMsg, false, true, math.MaxUint64, 0) + require.Empty(t, err) + + var newContractBech32 string + for _, v := range events[1] { + if v.Key == "contract_address" { + newContractBech32 = v.Value + break + } + } + require.NotEmpty(t, newContractBech32) + + address, error2 := sdk.AccAddressFromBech32(newContractBech32) + require.NoError(t, error2) + info := keeper.GetContractInfo(ctx, address) + + require.Equal(t, addr.String(), info.Admin) + }) + } +} From 38e65dd98755a4741ef105f431f6218e0d03b608 Mon Sep 17 00:00:00 2001 From: Eshel Date: Sat, 30 Sep 2023 15:10:35 +0300 Subject: [PATCH 2/3] fixing test handler --- x/compute/internal/keeper/secret_contracts_migrate_test.go | 1 - x/compute/internal/keeper/test_common.go | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/x/compute/internal/keeper/secret_contracts_migrate_test.go b/x/compute/internal/keeper/secret_contracts_migrate_test.go index 9011f0489..1344ba6ac 100644 --- a/x/compute/internal/keeper/secret_contracts_migrate_test.go +++ b/x/compute/internal/keeper/secret_contracts_migrate_test.go @@ -8244,7 +8244,6 @@ func TestContractInitsContractWithAdmin(t *testing.T) { newCodeId, codeHash := uploadCode(ctx, t, keeper, testContract.WasmFilePath, walletA) initMsg := fmt.Sprintf(`{"call_to_init":{"admin": "%s", "code_id":%d,"code_hash":"%s","msg":"%s","label":"1"}}`, addr.String(), newCodeId, codeHash, `{\"nop\":{}}`) - fmt.Println("ESHELDEBUG: initMsg:", initMsg) _, ctx, _, events, _, err := execHelper(t, keeper, ctx, addr, walletA, privKeyA, initMsg, false, true, math.MaxUint64, 0) require.Empty(t, err) diff --git a/x/compute/internal/keeper/test_common.go b/x/compute/internal/keeper/test_common.go index 316afd932..fed13fd05 100644 --- a/x/compute/internal/keeper/test_common.go +++ b/x/compute/internal/keeper/test_common.go @@ -620,7 +620,12 @@ func TestHandler(k Keeper) sdk.Handler { } func handleInstantiate(ctx sdk.Context, k Keeper, msg *wasmtypes.MsgInstantiateContract) (*sdk.Result, error) { - contractAddr, data, err := k.Instantiate(ctx, msg.CodeID, msg.Sender, nil, msg.InitMsg, msg.Label, msg.InitFunds, msg.CallbackSig) + admin, err := sdk.AccAddressFromBech32(msg.Admin) + if err != nil { + return nil, err + } + + contractAddr, data, err := k.Instantiate(ctx, msg.CodeID, msg.Sender, admin, msg.InitMsg, msg.Label, msg.InitFunds, msg.CallbackSig) if err != nil { result := sdk.Result{} result.Data = data From 6a6943b8f9776fda949af19eed6786618773e9d8 Mon Sep 17 00:00:00 2001 From: Eshel Date: Sat, 30 Sep 2023 15:23:22 +0300 Subject: [PATCH 3/3] fixing test hander again so it doesn't brake other tests --- x/compute/internal/keeper/test_common.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/x/compute/internal/keeper/test_common.go b/x/compute/internal/keeper/test_common.go index fed13fd05..e4e19eda0 100644 --- a/x/compute/internal/keeper/test_common.go +++ b/x/compute/internal/keeper/test_common.go @@ -620,9 +620,13 @@ func TestHandler(k Keeper) sdk.Handler { } func handleInstantiate(ctx sdk.Context, k Keeper, msg *wasmtypes.MsgInstantiateContract) (*sdk.Result, error) { - admin, err := sdk.AccAddressFromBech32(msg.Admin) - if err != nil { - return nil, err + var admin sdk.AccAddress + var err error + if msg.Admin != "" { + admin, err = sdk.AccAddressFromBech32(msg.Admin) + if err != nil { + return nil, err + } } contractAddr, data, err := k.Instantiate(ctx, msg.CodeID, msg.Sender, admin, msg.InitMsg, msg.Label, msg.InitFunds, msg.CallbackSig)