diff --git a/x/wasm/internal/keeper/msg_server.go b/x/wasm/internal/keeper/msg_server.go index 6818b7a306..1882934cc1 100644 --- a/x/wasm/internal/keeper/msg_server.go +++ b/x/wasm/internal/keeper/msg_server.go @@ -33,7 +33,10 @@ func (m msgServer) StoreCode(goCtx context.Context, msg *types.MsgStoreCode) (*t ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeStoreCode, sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", codeID)), )) @@ -64,7 +67,10 @@ func (m msgServer) InstantiateContract(goCtx context.Context, msg *types.MsgInst ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeInstantiateContract, sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", msg.CodeID)), sdk.NewAttribute(types.AttributeKeyContract, contractAddr.String()), )) @@ -89,7 +95,10 @@ func (m msgServer) StoreCodeAndInstantiateContract(goCtx context.Context, msg *t ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeStoreCode, sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", codeID)), )) @@ -106,9 +115,7 @@ func (m msgServer) StoreCodeAndInstantiateContract(goCtx context.Context, msg *t } ctx.EventManager().EmitEvent(sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + types.EventTypeInstantiateContract, sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", codeID)), sdk.NewAttribute(types.AttributeKeyContract, contractAddr.String()), )) @@ -139,7 +146,10 @@ func (m msgServer) ExecuteContract(goCtx context.Context, msg *types.MsgExecuteC ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeExecuteContract, sdk.NewAttribute(types.AttributeKeyContract, msg.Contract), )) @@ -168,8 +178,12 @@ func (m msgServer) MigrateContract(goCtx context.Context, msg *types.MsgMigrateC ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeMigrateContract, sdk.NewAttribute(types.AttributeKeyContract, msg.Contract), + sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", msg.CodeID)), )) return &types.MsgMigrateContractResponse{ @@ -199,7 +213,10 @@ func (m msgServer) UpdateAdmin(goCtx context.Context, msg *types.MsgUpdateAdmin) ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeUpdateAdmin, sdk.NewAttribute(types.AttributeKeyContract, msg.Contract), )) @@ -224,7 +241,10 @@ func (m msgServer) ClearAdmin(goCtx context.Context, msg *types.MsgClearAdmin) ( ctx.EventManager().EmitEvent(sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), + )) + ctx.EventManager().EmitEvent(sdk.NewEvent( + types.EventTypeClearAdmin, sdk.NewAttribute(types.AttributeKeyContract, msg.Contract), )) @@ -252,8 +272,7 @@ func (m msgServer) UpdateContractStatus(goCtx context.Context, msg *types.MsgUpd sdk.NewEvent( sdk.EventTypeMessage, sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), - sdk.NewAttribute(types.AttributeKeySigner, msg.Sender), - sdk.NewAttribute(types.AttributeKeyContract, msg.Contract), + sdk.NewAttribute(sdk.AttributeKeySender, msg.Sender), ), sdk.NewEvent( types.EventTypeUpdateContractStatus, diff --git a/x/wasm/internal/keeper/proposal_handler.go b/x/wasm/internal/keeper/proposal_handler.go index 8040c0badf..82aeb4cbe3 100644 --- a/x/wasm/internal/keeper/proposal_handler.go +++ b/x/wasm/internal/keeper/proposal_handler.go @@ -73,8 +73,7 @@ func handleStoreCodeProposal(ctx sdk.Context, k governing, p types.StoreCodeProp } ourEvent := sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), + types.EventTypeStoreCode, sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", codeID)), ) ctx.EventManager().EmitEvent(ourEvent) @@ -100,8 +99,7 @@ func handleInstantiateProposal(ctx sdk.Context, k governing, p types.Instantiate } ourEvent := sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), + types.EventTypeInstantiateContract, sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", p.CodeID)), sdk.NewAttribute(types.AttributeKeyContract, contractAddr.String()), ) @@ -126,11 +124,10 @@ func handleMigrateProposal(ctx sdk.Context, k governing, p types.MigrateContract if err != nil { return err } - ourEvent := sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), + types.EventTypeMigrateContract, sdk.NewAttribute(types.AttributeKeyContract, p.Contract), + sdk.NewAttribute(types.AttributeKeyCodeID, fmt.Sprintf("%d", p.CodeID)), ) ctx.EventManager().EmitEvent(ourEvent) @@ -162,8 +159,7 @@ func handleUpdateAdminProposal(ctx sdk.Context, k governing, p types.UpdateAdmin } ourEvent := sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), + types.EventTypeUpdateAdmin, sdk.NewAttribute(types.AttributeKeyContract, p.Contract), ) ctx.EventManager().EmitEvent(ourEvent) @@ -182,9 +178,9 @@ func handleClearAdminProposal(ctx sdk.Context, k governing, p types.ClearAdminPr if err := k.setContractAdmin(ctx, contractAddr, nil, nil, GovAuthorizationPolicy{}); err != nil { return err } + ourEvent := sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), + types.EventTypeClearAdmin, sdk.NewAttribute(types.AttributeKeyContract, p.Contract), ) ctx.EventManager().EmitEvent(ourEvent) @@ -204,9 +200,9 @@ func handlePinCodesProposal(ctx sdk.Context, k governing, p types.PinCodesPropos for i, v := range p.CodeIDs { s[i] = strconv.FormatUint(v, 10) } + ourEvent := sdk.NewEvent( types.EventTypePinCode, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), sdk.NewAttribute(types.AttributeKeyCodeIDs, strings.Join(s, ",")), ) ctx.EventManager().EmitEvent(ourEvent) @@ -227,9 +223,9 @@ func handleUnpinCodesProposal(ctx sdk.Context, k governing, p types.UnpinCodesPr for i, v := range p.CodeIDs { s[i] = strconv.FormatUint(v, 10) } + ourEvent := sdk.NewEvent( types.EventTypeUnpinCode, - sdk.NewAttribute(sdk.AttributeKeyModule, types.ModuleName), sdk.NewAttribute(types.AttributeKeyCodeIDs, strings.Join(s, ",")), ) ctx.EventManager().EmitEvent(ourEvent) diff --git a/x/wasm/internal/types/events.go b/x/wasm/internal/types/events.go index b235990d9a..538637ff1f 100644 --- a/x/wasm/internal/types/events.go +++ b/x/wasm/internal/types/events.go @@ -1,6 +1,12 @@ package types const ( + EventTypeStoreCode = "store_code" + EventTypeInstantiateContract = "instantiate_contract" + EventTypeExecuteContract = "execute_contract" + EventTypeMigrateContract = "migrate_contract" + EventTypeUpdateAdmin = "update_admin" + EventTypeClearAdmin = "clear_admin" EventTypePinCode = "pin_code" EventTypeUnpinCode = "unpin_code" EventTypeUpdateContractStatus = "update_contract_status" @@ -9,6 +15,5 @@ const ( // event attributes AttributeKeyContract = "contract_address" AttributeKeyCodeID = "code_id" AttributeKeyCodeIDs = "code_ids" - AttributeKeySigner = "signer" AttributeKeyContractStatus = "contract_status" ) diff --git a/x/wasm/module_test.go b/x/wasm/module_test.go index e8bb57991f..8bbeb69ee4 100644 --- a/x/wasm/module_test.go +++ b/x/wasm/module_test.go @@ -182,11 +182,12 @@ func TestHandleInstantiate(t *testing.T) { require.Equal(t, "link18vd8fpwxzck93qlwghaj6arh4p7c5n89fvcmzu", contractBech32Addr) // this should be standard x/wasm init event, nothing from contract - require.Equal(t, 2, len(res.Events), prettyEvents(res.Events)) + require.Equal(t, 3, len(res.Events), prettyEvents(res.Events)) assert.Equal(t, "wasm", res.Events[0].Type) assertAttribute(t, "contract_address", contractBech32Addr, res.Events[0].Attributes[0]) - assert.Equal(t, "message", res.Events[1].Type) assertAttribute(t, "module", "wasm", res.Events[1].Attributes[0]) + assert.Equal(t, "message", res.Events[1].Type) + assert.Equal(t, "instantiate_contract", res.Events[2].Type) assertCodeList(t, q, data.ctx, 1) assertCodeBytes(t, q, data.ctx, 1, testContract) @@ -234,16 +235,16 @@ func TestHandleStoreAndInstantiate(t *testing.T) { require.Equal(t, uint64(1), codeID) require.Equal(t, "link18vd8fpwxzck93qlwghaj6arh4p7c5n89fvcmzu", contractBech32Addr) // this should be standard x/wasm init event, nothing from contract - require.Equal(t, 3, len(res.Events), prettyEvents(res.Events)) + require.Equal(t, 4, len(res.Events), prettyEvents(res.Events)) assert.Equal(t, "message", res.Events[0].Type) assertAttribute(t, "module", "wasm", res.Events[0].Attributes[0]) - assertAttribute(t, "code_id", "1", res.Events[0].Attributes[2]) - assert.Equal(t, "wasm", res.Events[1].Type) - assertAttribute(t, "contract_address", contractBech32Addr, res.Events[1].Attributes[0]) - assert.Equal(t, "message", res.Events[2].Type) - assertAttribute(t, "module", "wasm", res.Events[2].Attributes[0]) - assertAttribute(t, "code_id", "1", res.Events[2].Attributes[2]) - assertAttribute(t, "contract_address", contractBech32Addr, res.Events[2].Attributes[3]) + assert.Equal(t, "store_code", res.Events[1].Type) + assertAttribute(t, "code_id", "1", res.Events[1].Attributes[0]) + assert.Equal(t, "wasm", res.Events[2].Type) + assertAttribute(t, "contract_address", contractBech32Addr, res.Events[2].Attributes[0]) + assert.Equal(t, "instantiate_contract", res.Events[3].Type) + assertAttribute(t, "code_id", "1", res.Events[3].Attributes[0]) + assertAttribute(t, "contract_address", contractBech32Addr, res.Events[3].Attributes[1]) assertCodeList(t, q, data.ctx, 1) assertCodeBytes(t, q, data.ctx, 1, testContract) @@ -414,12 +415,13 @@ func TestHandleExecute(t *testing.T) { require.Equal(t, "link18vd8fpwxzck93qlwghaj6arh4p7c5n89fvcmzu", contractBech32Addr) // this should be standard x/wasm init event, plus a bank send event (2), with no custom contract events - require.Equal(t, 3, len(res.Events), prettyEvents(res.Events)) + require.Equal(t, 4, len(res.Events), prettyEvents(res.Events)) assert.Equal(t, "transfer", res.Events[0].Type) assert.Equal(t, "wasm", res.Events[1].Type) assertAttribute(t, "contract_address", contractBech32Addr, res.Events[1].Attributes[0]) assert.Equal(t, "message", res.Events[2].Type) assertAttribute(t, "module", "wasm", res.Events[2].Attributes[0]) + assert.Equal(t, "instantiate_contract", res.Events[3].Type) // ensure bob doesn't exist bobAcct := data.acctKeeper.GetAccount(data.ctx, bob) @@ -449,7 +451,7 @@ func TestHandleExecute(t *testing.T) { assertExecuteResponse(t, res.Data, []byte{0xf0, 0x0b, 0xaa}) // this should be standard x/wasm init event, plus 2 bank send event, plus a special event from the contract - require.Equal(t, 4, len(res.Events), prettyEvents(res.Events)) + require.Equal(t, 5, len(res.Events), prettyEvents(res.Events)) require.Equal(t, "transfer", res.Events[0].Type) require.Len(t, res.Events[0].Attributes, 3) @@ -468,6 +470,8 @@ func TestHandleExecute(t *testing.T) { // finally, standard x/wasm tag assert.Equal(t, "message", res.Events[3].Type) assertAttribute(t, "module", "wasm", res.Events[3].Attributes[0]) + assert.Equal(t, "execute_contract", res.Events[4].Type) + assertAttribute(t, "contract_address", contractBech32Addr, res.Events[4].Attributes[0]) // ensure bob now exists and got both payments released bobAcct = data.acctKeeper.GetAccount(data.ctx, bob)