Skip to content

Commit 2723362

Browse files
author
nashqueue
committed
Ignite clie scaffold message submit-scavange
1 parent 4de2475 commit 2723362

File tree

16 files changed

+1066
-15
lines changed

16 files changed

+1066
-15
lines changed

docs/static/openapi.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51552,6 +51552,8 @@ definitions:
5155251552
description: |-
5155351553
Version defines the versioning scheme used to negotiate the IBC verison in
5155451554
the connection handshake.
51555+
scavenge.scavenge.MsgSubmitScavengeResponse:
51556+
type: object
5155551557
scavenge.scavenge.Params:
5155651558
type: object
5155751559
description: Params defines the parameters for the module.

proto/scavenge/tx.proto

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,18 @@ option go_package = "scavenge/x/scavenge/types";
77

88
// Msg defines the Msg service.
99
service Msg {
10-
// this line is used by starport scaffolding # proto/tx/rpc
10+
rpc SubmitScavenge(MsgSubmitScavenge) returns (MsgSubmitScavengeResponse);
11+
// this line is used by starport scaffolding # proto/tx/rpc
12+
}
13+
14+
message MsgSubmitScavenge {
15+
string creator = 1;
16+
string solutionHash = 2;
17+
string description = 3;
18+
string reward = 4;
19+
}
20+
21+
message MsgSubmitScavengeResponse {
1122
}
1223

1324
// this line is used by starport scaffolding # proto/tx/message

vue/src/store/generated/scavenge/scavenge.scavenge/index.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,35 @@ export default {
135135
},
136136

137137

138+
async sendMsgSubmitScavenge({ rootGetters }, { value, fee = [], memo = '' }) {
139+
try {
140+
const txClient=await initTxClient(rootGetters)
141+
const msg = await txClient.msgSubmitScavenge(value)
142+
const result = await txClient.signAndBroadcast([msg], {fee: { amount: fee,
143+
gas: "200000" }, memo})
144+
return result
145+
} catch (e) {
146+
if (e == MissingWalletError) {
147+
throw new Error('TxClient:MsgSubmitScavenge:Init Could not initialize signing client. Wallet is required.')
148+
}else{
149+
throw new Error('TxClient:MsgSubmitScavenge:Send Could not broadcast Tx: '+ e.message)
150+
}
151+
}
152+
},
138153

154+
async MsgSubmitScavenge({ rootGetters }, { value }) {
155+
try {
156+
const txClient=await initTxClient(rootGetters)
157+
const msg = await txClient.msgSubmitScavenge(value)
158+
return msg
159+
} catch (e) {
160+
if (e == MissingWalletError) {
161+
throw new Error('TxClient:MsgSubmitScavenge:Init Could not initialize signing client. Wallet is required.')
162+
} else{
163+
throw new Error('TxClient:MsgSubmitScavenge:Create Could not create message: ' + e.message)
164+
}
165+
}
166+
},
139167

140168
}
141169
}

vue/src/store/generated/scavenge/scavenge.scavenge/module/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import { StdFee } from "@cosmjs/launchpad";
44
import { SigningStargateClient } from "@cosmjs/stargate";
55
import { Registry, OfflineSigner, EncodeObject, DirectSecp256k1HdWallet } from "@cosmjs/proto-signing";
66
import { Api } from "./rest";
7+
import { MsgSubmitScavenge } from "./types/scavenge/tx";
78

89

910
const types = [
11+
["/scavenge.scavenge.MsgSubmitScavenge", MsgSubmitScavenge],
1012

1113
];
1214
export const MissingWalletError = new Error("wallet is required");
@@ -39,6 +41,7 @@ const txClient = async (wallet: OfflineSigner, { addr: addr }: TxClientOptions =
3941

4042
return {
4143
signAndBroadcast: (msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions = {fee: defaultFee, memo: ""}) => client.signAndBroadcast(address, msgs, fee,memo),
44+
msgSubmitScavenge: (data: MsgSubmitScavenge): EncodeObject => ({ typeUrl: "/scavenge.scavenge.MsgSubmitScavenge", value: MsgSubmitScavenge.fromPartial( data ) }),
4245

4346
};
4447
};

vue/src/store/generated/scavenge/scavenge.scavenge/module/rest.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ export interface RpcStatus {
2020
details?: ProtobufAny[];
2121
}
2222

23+
export type ScavengeMsgSubmitScavengeResponse = object;
24+
2325
/**
2426
* Params defines the parameters for the module.
2527
*/

vue/src/store/generated/scavenge/scavenge.scavenge/module/types/scavenge/tx.ts

Lines changed: 206 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,208 @@
11
/* eslint-disable */
2+
import { Reader, Writer } from "protobufjs/minimal";
3+
24
export const protobufPackage = "scavenge.scavenge";
35

6+
export interface MsgSubmitScavenge {
7+
creator: string;
8+
solutionHash: string;
9+
description: string;
10+
reward: string;
11+
}
12+
13+
export interface MsgSubmitScavengeResponse {}
14+
15+
const baseMsgSubmitScavenge: object = {
16+
creator: "",
17+
solutionHash: "",
18+
description: "",
19+
reward: "",
20+
};
21+
22+
export const MsgSubmitScavenge = {
23+
encode(message: MsgSubmitScavenge, writer: Writer = Writer.create()): Writer {
24+
if (message.creator !== "") {
25+
writer.uint32(10).string(message.creator);
26+
}
27+
if (message.solutionHash !== "") {
28+
writer.uint32(18).string(message.solutionHash);
29+
}
30+
if (message.description !== "") {
31+
writer.uint32(26).string(message.description);
32+
}
33+
if (message.reward !== "") {
34+
writer.uint32(34).string(message.reward);
35+
}
36+
return writer;
37+
},
38+
39+
decode(input: Reader | Uint8Array, length?: number): MsgSubmitScavenge {
40+
const reader = input instanceof Uint8Array ? new Reader(input) : input;
41+
let end = length === undefined ? reader.len : reader.pos + length;
42+
const message = { ...baseMsgSubmitScavenge } as MsgSubmitScavenge;
43+
while (reader.pos < end) {
44+
const tag = reader.uint32();
45+
switch (tag >>> 3) {
46+
case 1:
47+
message.creator = reader.string();
48+
break;
49+
case 2:
50+
message.solutionHash = reader.string();
51+
break;
52+
case 3:
53+
message.description = reader.string();
54+
break;
55+
case 4:
56+
message.reward = reader.string();
57+
break;
58+
default:
59+
reader.skipType(tag & 7);
60+
break;
61+
}
62+
}
63+
return message;
64+
},
65+
66+
fromJSON(object: any): MsgSubmitScavenge {
67+
const message = { ...baseMsgSubmitScavenge } as MsgSubmitScavenge;
68+
if (object.creator !== undefined && object.creator !== null) {
69+
message.creator = String(object.creator);
70+
} else {
71+
message.creator = "";
72+
}
73+
if (object.solutionHash !== undefined && object.solutionHash !== null) {
74+
message.solutionHash = String(object.solutionHash);
75+
} else {
76+
message.solutionHash = "";
77+
}
78+
if (object.description !== undefined && object.description !== null) {
79+
message.description = String(object.description);
80+
} else {
81+
message.description = "";
82+
}
83+
if (object.reward !== undefined && object.reward !== null) {
84+
message.reward = String(object.reward);
85+
} else {
86+
message.reward = "";
87+
}
88+
return message;
89+
},
90+
91+
toJSON(message: MsgSubmitScavenge): unknown {
92+
const obj: any = {};
93+
message.creator !== undefined && (obj.creator = message.creator);
94+
message.solutionHash !== undefined &&
95+
(obj.solutionHash = message.solutionHash);
96+
message.description !== undefined &&
97+
(obj.description = message.description);
98+
message.reward !== undefined && (obj.reward = message.reward);
99+
return obj;
100+
},
101+
102+
fromPartial(object: DeepPartial<MsgSubmitScavenge>): MsgSubmitScavenge {
103+
const message = { ...baseMsgSubmitScavenge } as MsgSubmitScavenge;
104+
if (object.creator !== undefined && object.creator !== null) {
105+
message.creator = object.creator;
106+
} else {
107+
message.creator = "";
108+
}
109+
if (object.solutionHash !== undefined && object.solutionHash !== null) {
110+
message.solutionHash = object.solutionHash;
111+
} else {
112+
message.solutionHash = "";
113+
}
114+
if (object.description !== undefined && object.description !== null) {
115+
message.description = object.description;
116+
} else {
117+
message.description = "";
118+
}
119+
if (object.reward !== undefined && object.reward !== null) {
120+
message.reward = object.reward;
121+
} else {
122+
message.reward = "";
123+
}
124+
return message;
125+
},
126+
};
127+
128+
const baseMsgSubmitScavengeResponse: object = {};
129+
130+
export const MsgSubmitScavengeResponse = {
131+
encode(
132+
_: MsgSubmitScavengeResponse,
133+
writer: Writer = Writer.create()
134+
): Writer {
135+
return writer;
136+
},
137+
138+
decode(
139+
input: Reader | Uint8Array,
140+
length?: number
141+
): MsgSubmitScavengeResponse {
142+
const reader = input instanceof Uint8Array ? new Reader(input) : input;
143+
let end = length === undefined ? reader.len : reader.pos + length;
144+
const message = {
145+
...baseMsgSubmitScavengeResponse,
146+
} as MsgSubmitScavengeResponse;
147+
while (reader.pos < end) {
148+
const tag = reader.uint32();
149+
switch (tag >>> 3) {
150+
default:
151+
reader.skipType(tag & 7);
152+
break;
153+
}
154+
}
155+
return message;
156+
},
157+
158+
fromJSON(_: any): MsgSubmitScavengeResponse {
159+
const message = {
160+
...baseMsgSubmitScavengeResponse,
161+
} as MsgSubmitScavengeResponse;
162+
return message;
163+
},
164+
165+
toJSON(_: MsgSubmitScavengeResponse): unknown {
166+
const obj: any = {};
167+
return obj;
168+
},
169+
170+
fromPartial(
171+
_: DeepPartial<MsgSubmitScavengeResponse>
172+
): MsgSubmitScavengeResponse {
173+
const message = {
174+
...baseMsgSubmitScavengeResponse,
175+
} as MsgSubmitScavengeResponse;
176+
return message;
177+
},
178+
};
179+
4180
/** Msg defines the Msg service. */
5-
export interface Msg {}
181+
export interface Msg {
182+
/** this line is used by starport scaffolding # proto/tx/rpc */
183+
SubmitScavenge(
184+
request: MsgSubmitScavenge
185+
): Promise<MsgSubmitScavengeResponse>;
186+
}
6187

7188
export class MsgClientImpl implements Msg {
8189
private readonly rpc: Rpc;
9190
constructor(rpc: Rpc) {
10191
this.rpc = rpc;
11192
}
193+
SubmitScavenge(
194+
request: MsgSubmitScavenge
195+
): Promise<MsgSubmitScavengeResponse> {
196+
const data = MsgSubmitScavenge.encode(request).finish();
197+
const promise = this.rpc.request(
198+
"scavenge.scavenge.Msg",
199+
"SubmitScavenge",
200+
data
201+
);
202+
return promise.then((data) =>
203+
MsgSubmitScavengeResponse.decode(new Reader(data))
204+
);
205+
}
12206
}
13207

14208
interface Rpc {
@@ -18,3 +212,14 @@ interface Rpc {
18212
data: Uint8Array
19213
): Promise<Uint8Array>;
20214
}
215+
216+
type Builtin = Date | Function | Uint8Array | string | number | undefined;
217+
export type DeepPartial<T> = T extends Builtin
218+
? T
219+
: T extends Array<infer U>
220+
? Array<DeepPartial<U>>
221+
: T extends ReadonlyArray<infer U>
222+
? ReadonlyArray<DeepPartial<U>>
223+
: T extends {}
224+
? { [K in keyof T]?: DeepPartial<T[K]> }
225+
: Partial<T>;

x/scavenge/client/cli/tx.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func GetTxCmd() *cobra.Command {
3030
RunE: client.ValidateCmd,
3131
}
3232

33+
cmd.AddCommand(CmdSubmitScavenge())
3334
// this line is used by starport scaffolding # 1
3435

3536
return cmd
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package cli
2+
3+
import (
4+
"strconv"
5+
6+
"github.com/cosmos/cosmos-sdk/client"
7+
"github.com/cosmos/cosmos-sdk/client/flags"
8+
"github.com/cosmos/cosmos-sdk/client/tx"
9+
"github.com/spf13/cobra"
10+
"scavenge/x/scavenge/types"
11+
)
12+
13+
var _ = strconv.Itoa(0)
14+
15+
func CmdSubmitScavenge() *cobra.Command {
16+
cmd := &cobra.Command{
17+
Use: "submit-scavenge [solution-hash] [description] [reward]",
18+
Short: "Broadcast message submit-scavenge",
19+
Args: cobra.ExactArgs(3),
20+
RunE: func(cmd *cobra.Command, args []string) (err error) {
21+
argSolutionHash := args[0]
22+
argDescription := args[1]
23+
argReward := args[2]
24+
25+
clientCtx, err := client.GetClientTxContext(cmd)
26+
if err != nil {
27+
return err
28+
}
29+
30+
msg := types.NewMsgSubmitScavenge(
31+
clientCtx.GetFromAddress().String(),
32+
argSolutionHash,
33+
argDescription,
34+
argReward,
35+
)
36+
if err := msg.ValidateBasic(); err != nil {
37+
return err
38+
}
39+
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
40+
},
41+
}
42+
43+
flags.AddTxFlagsToCmd(cmd)
44+
45+
return cmd
46+
}

x/scavenge/handler.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@ import (
1111

1212
// NewHandler ...
1313
func NewHandler(k keeper.Keeper) sdk.Handler {
14-
// this line is used by starport scaffolding # handler/msgServer
14+
msgServer := keeper.NewMsgServerImpl(k)
1515

1616
return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) {
1717
ctx = ctx.WithEventManager(sdk.NewEventManager())
1818

1919
switch msg := msg.(type) {
20-
// this line is used by starport scaffolding # 1
20+
case *types.MsgSubmitScavenge:
21+
res, err := msgServer.SubmitScavenge(sdk.WrapSDKContext(ctx), msg)
22+
return sdk.WrapServiceResult(ctx, res, err)
23+
// this line is used by starport scaffolding # 1
2124
default:
2225
errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg)
2326
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg)

0 commit comments

Comments
 (0)