Adjust Instantiate and Execute signatures
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user