Adjust Instantiate and Execute signatures

This commit is contained in:
Ethan Frey
2020-01-21 13:21:36 +01:00
parent b5a621a925
commit 5668833d69
5 changed files with 16 additions and 16 deletions

View File

@@ -67,7 +67,7 @@ func handleStoreCode(ctx sdk.Context, k Keeper, msg *MsgStoreCode) sdk.Result {
}
func handleInstantiate(ctx sdk.Context, k Keeper, msg *MsgInstantiateContract) sdk.Result {
contractAddr, err := k.Instantiate(ctx, msg.Sender, msg.Code, msg.InitMsg, msg.InitFunds)
contractAddr, err := k.Instantiate(ctx, msg.Code, msg.Sender, msg.InitMsg, msg.InitFunds)
if err != nil {
return sdk.ResultFromError(err)
}
@@ -90,7 +90,7 @@ func handleInstantiate(ctx sdk.Context, k Keeper, msg *MsgInstantiateContract) s
}
func handleExecute(ctx sdk.Context, k Keeper, msg *MsgExecuteContract) sdk.Result {
res, err := k.Execute(ctx, msg.Contract, msg.Sender, msg.SentFunds, msg.Msg)
res, err := k.Execute(ctx, msg.Contract, msg.Sender, msg.Msg, msg.SentFunds)
if err != nil {
return sdk.ResultFromError(err)
}

View File

@@ -83,7 +83,7 @@ func (k Keeper) Create(ctx sdk.Context, creator sdk.AccAddress, wasmCode []byte,
}
// Instantiate creates an instance of a WASM contract
func (k Keeper) Instantiate(ctx sdk.Context, creator sdk.AccAddress, codeID uint64, initMsg []byte, deposit sdk.Coins) (sdk.AccAddress, error) {
func (k Keeper) Instantiate(ctx sdk.Context, codeID uint64, creator sdk.AccAddress, initMsg []byte, deposit sdk.Coins) (sdk.AccAddress, error) {
// create contract address
contractAddress := k.generateContractAddress(ctx, codeID)
existingAcct := k.accountKeeper.GetAccount(ctx, contractAddress)
@@ -138,7 +138,7 @@ func (k Keeper) Instantiate(ctx sdk.Context, creator sdk.AccAddress, codeID uint
}
// Execute executes the contract instance
func (k Keeper) Execute(ctx sdk.Context, contractAddress sdk.AccAddress, caller sdk.AccAddress, coins sdk.Coins, msg []byte) (sdk.Result, error) {
func (k Keeper) Execute(ctx sdk.Context, contractAddress sdk.AccAddress, caller sdk.AccAddress, msg []byte, coins sdk.Coins) (sdk.Result, error) {
codeInfo, prefixStore, err := k.contractInstance(ctx, contractAddress)
if err != nil {
return sdk.Result{}, err
@@ -309,7 +309,7 @@ func (k Keeper) dispatchMessage(ctx sdk.Context, contract exported.Account, msg
return sdk.ErrInvalidAddress(msg.Contract.ContractAddr)
}
// TODO: use non nil payment once we update go-cosmwasm (ContractMsg contains optional payment)
_, err := k.Execute(ctx, targetAddr, contract.GetAddress(), nil, []byte(msg.Contract.Msg))
_, err := k.Execute(ctx, targetAddr, contract.GetAddress(), []byte(msg.Contract.Msg), nil)
if err != nil {
return err
}

View File

@@ -98,7 +98,7 @@ func TestInstantiate(t *testing.T) {
gasBefore := ctx.GasMeter().GasConsumed()
// create with no balance is also legal
addr, err := keeper.Instantiate(ctx, creator, contractID, initMsgBz, nil)
addr, err := keeper.Instantiate(ctx, contractID, creator, initMsgBz, nil)
require.NoError(t, err)
require.Equal(t, "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", addr.String())
@@ -122,7 +122,7 @@ func TestInstantiateWithNonExistingCodeID(t *testing.T) {
require.NoError(t, err)
const nonExistingCodeID = 9999
addr, err := keeper.Instantiate(ctx, creator, nonExistingCodeID, initMsgBz, nil)
addr, err := keeper.Instantiate(ctx, nonExistingCodeID, creator, initMsgBz, nil)
require.True(t, types.ErrNotFound.Is(err), err)
require.Nil(t, addr)
}
@@ -152,7 +152,7 @@ func TestExecute(t *testing.T) {
initMsgBz, err := json.Marshal(initMsg)
require.NoError(t, err)
addr, err := keeper.Instantiate(ctx, creator, contractID, initMsgBz, deposit)
addr, err := keeper.Instantiate(ctx, contractID, creator, initMsgBz, deposit)
require.NoError(t, err)
require.Equal(t, "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", addr.String())
@@ -173,7 +173,7 @@ func TestExecute(t *testing.T) {
// unauthorized - trialCtx so we don't change state
trialCtx := ctx.WithMultiStore(ctx.MultiStore().CacheWrap().(sdk.MultiStore))
res, err := keeper.Execute(trialCtx, addr, creator, nil, []byte(`{}`))
res, err := keeper.Execute(trialCtx, addr, creator, []byte(`{}`), nil)
require.Error(t, err)
require.Contains(t, err.Error(), "Unauthorized")
@@ -181,7 +181,7 @@ func TestExecute(t *testing.T) {
start := time.Now()
gasBefore := ctx.GasMeter().GasConsumed()
res, err = keeper.Execute(ctx, addr, fred, topUp, []byte(`{}`))
res, err = keeper.Execute(ctx, addr, fred, []byte(`{}`), topUp)
diff := time.Now().Sub(start)
require.NoError(t, err)
require.NotNil(t, res)
@@ -216,7 +216,7 @@ func TestExecuteWithNonExistingAddress(t *testing.T) {
// unauthorized - trialCtx so we don't change state
nonExistingAddress := addrFromUint64(9999)
_, err = keeper.Execute(ctx, nonExistingAddress, creator, nil, []byte(`{}`))
_, err = keeper.Execute(ctx, nonExistingAddress, creator, []byte(`{}`), nil)
require.True(t, types.ErrNotFound.Is(err), err)
}

View File

@@ -49,7 +49,7 @@ func TestMaskSend(t *testing.T) {
// creator instantiates a contract and gives it tokens
contractStart := sdk.NewCoins(sdk.NewInt64Coin("denom", 40000))
contractAddr, err := keeper.Instantiate(ctx, creator, codeID, []byte("{}"), contractStart)
contractAddr, err := keeper.Instantiate(ctx, codeID, creator, []byte("{}"), contractStart)
require.NoError(t, err)
require.NotEmpty(t, contractAddr)
@@ -62,7 +62,7 @@ func TestMaskSend(t *testing.T) {
transferBz, err := json.Marshal(transfer)
require.NoError(t, err)
// TODO: switch order of args Instantiate vs Execute (caller/code vs contract/caller), (msg/coins vs coins/msg)
_, err = keeper.Execute(ctx, contractAddr, creator, nil, transferBz)
_, err = keeper.Execute(ctx, contractAddr, creator, transferBz, nil)
require.NoError(t, err)
// check some account values
@@ -90,7 +90,7 @@ func TestMaskSend(t *testing.T) {
reflectSendBz, err := json.Marshal(reflectSend)
require.NoError(t, err)
// TODO: switch order of args Instantiate vs Execute (caller/code vs contract/caller), (msg/coins vs coins/msg)
_, err = keeper.Execute(ctx, contractAddr, bob, nil, reflectSendBz)
_, err = keeper.Execute(ctx, contractAddr, bob, reflectSendBz, nil)
require.NoError(t, err)
// fred got coins
@@ -118,7 +118,7 @@ func TestMaskSend(t *testing.T) {
require.NoError(t, err)
// TODO: switch order of args Instantiate vs Execute (caller/code vs contract/caller), (msg/coins vs coins/msg)
_, err = keeper.Execute(ctx, contractAddr, bob, nil, reflectOpaqueBz)
_, err = keeper.Execute(ctx, contractAddr, bob, reflectOpaqueBz, nil)
require.NoError(t, err)
// fred got more coins

View File

@@ -44,7 +44,7 @@ func TestQueryContractState(t *testing.T) {
initMsgBz, err := json.Marshal(initMsg)
require.NoError(t, err)
addr, err := keeper.Instantiate(ctx, creator, contractID, initMsgBz, deposit)
addr, err := keeper.Instantiate(ctx, contractID, creator, initMsgBz, deposit)
require.NoError(t, err)
contractModel := []types.Model{