Skip to content

Commit 7e121b3

Browse files
authored
Merge pull request #1553 from scrtlabs/add-admin-to-init-test-try
Testing Admin in init
2 parents 9c6b67f + 6a6943b commit 7e121b3

File tree

5 files changed

+46
-2
lines changed

5 files changed

+46
-2
lines changed

cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/contract.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1010,14 +1010,15 @@ pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg) -> S
10101010
code_hash,
10111011
label,
10121012
msg,
1013+
admin,
10131014
} => Ok(Response::new()
10141015
.add_message(CosmosMsg::Wasm(WasmMsg::Instantiate {
10151016
code_id,
10161017
code_hash,
10171018
msg: Binary(msg.as_bytes().into()),
10181019
funds: vec![],
10191020
label,
1020-
admin: None,
1021+
admin,
10211022
}))
10221023
.add_attribute("a", "a")),
10231024
ExecuteMsg::CallToExec {

cosmwasm/contracts/v1/compute-tests/test-compute-contract/src/msg.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ pub enum ExecuteMsg {
357357
code_hash: String,
358358
label: String,
359359
msg: String,
360+
admin: Option<String>,
360361
},
361362
CallToExec {
362363
addr: String,

x/compute/internal/keeper/handler_plugin.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,7 @@ func EncodeWasmMsg(sender sdk.AccAddress, msg *v1wasmTypes.WasmMsg) ([]sdk.Msg,
524524
InitMsg: msg.Instantiate.Msg,
525525
InitFunds: coins,
526526
CallbackSig: msg.Instantiate.CallbackSignature,
527+
Admin: msg.Instantiate.Admin,
527528
}
528529
return []sdk.Msg{&sdkMsg}, nil
529530
case msg.Migrate != nil:

x/compute/internal/keeper/secret_contracts_migrate_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8232,3 +8232,35 @@ func TestMigrateEnvTxHash(t *testing.T) {
82328232
res.WasmEvents,
82338233
)
82348234
}
8235+
8236+
func TestContractInitsContractWithAdmin(t *testing.T) {
8237+
for _, testContract := range testContracts {
8238+
t.Run("v1 inits "+testContract.CosmWasmVersion, func(t *testing.T) {
8239+
ctx, keeper, codeID, _, walletA, privKeyA, _, _ := setupTest(t, TestContractPaths[v1Contract], sdk.NewCoins())
8240+
8241+
_, _, addr, _, initErr := initHelper(t, keeper, ctx, codeID, walletA, walletA, privKeyA, `{"nop":{}}`, true, true, defaultGasForTests)
8242+
require.Empty(t, initErr)
8243+
8244+
newCodeId, codeHash := uploadCode(ctx, t, keeper, testContract.WasmFilePath, walletA)
8245+
8246+
initMsg := fmt.Sprintf(`{"call_to_init":{"admin": "%s", "code_id":%d,"code_hash":"%s","msg":"%s","label":"1"}}`, addr.String(), newCodeId, codeHash, `{\"nop\":{}}`)
8247+
_, ctx, _, events, _, err := execHelper(t, keeper, ctx, addr, walletA, privKeyA, initMsg, false, true, math.MaxUint64, 0)
8248+
require.Empty(t, err)
8249+
8250+
var newContractBech32 string
8251+
for _, v := range events[1] {
8252+
if v.Key == "contract_address" {
8253+
newContractBech32 = v.Value
8254+
break
8255+
}
8256+
}
8257+
require.NotEmpty(t, newContractBech32)
8258+
8259+
address, error2 := sdk.AccAddressFromBech32(newContractBech32)
8260+
require.NoError(t, error2)
8261+
info := keeper.GetContractInfo(ctx, address)
8262+
8263+
require.Equal(t, addr.String(), info.Admin)
8264+
})
8265+
}
8266+
}

x/compute/internal/keeper/test_common.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,16 @@ func TestHandler(k Keeper) sdk.Handler {
620620
}
621621

622622
func handleInstantiate(ctx sdk.Context, k Keeper, msg *wasmtypes.MsgInstantiateContract) (*sdk.Result, error) {
623-
contractAddr, data, err := k.Instantiate(ctx, msg.CodeID, msg.Sender, nil, msg.InitMsg, msg.Label, msg.InitFunds, msg.CallbackSig)
623+
var admin sdk.AccAddress
624+
var err error
625+
if msg.Admin != "" {
626+
admin, err = sdk.AccAddressFromBech32(msg.Admin)
627+
if err != nil {
628+
return nil, err
629+
}
630+
}
631+
632+
contractAddr, data, err := k.Instantiate(ctx, msg.CodeID, msg.Sender, admin, msg.InitMsg, msg.Label, msg.InitFunds, msg.CallbackSig)
624633
if err != nil {
625634
result := sdk.Result{}
626635
result.Data = data

0 commit comments

Comments
 (0)