@sparkdreamnft/sparkdreamjs 0.0.18 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/sparkdream/blog/v1/params.js +62 -2
- package/esm/sparkdream/blog/v1/tx.js +583 -2
- package/esm/sparkdream/blog/v1/tx.registry.js +74 -2
- package/esm/sparkdream/blog/v1/tx.rpc.msg.js +33 -3
- package/esm/sparkdream/collect/v1/params.js +109 -1
- package/esm/sparkdream/collect/v1/tx.js +293 -1
- package/esm/sparkdream/collect/v1/tx.registry.js +38 -2
- package/esm/sparkdream/collect/v1/tx.rpc.msg.js +17 -2
- package/esm/sparkdream/collect/v1/types.js +135 -3
- package/esm/sparkdream/forum/v1/params.js +218 -2
- package/esm/sparkdream/forum/v1/post.js +25 -1
- package/esm/sparkdream/forum/v1/query.js +469 -0
- package/esm/sparkdream/forum/v1/query.lcd.js +30 -0
- package/esm/sparkdream/forum/v1/query.rpc.Query.js +31 -1
- package/esm/sparkdream/forum/v1/tx.js +460 -0
- package/esm/sparkdream/forum/v1/tx.registry.js +56 -2
- package/esm/sparkdream/forum/v1/tx.rpc.msg.js +30 -1
- package/esm/sparkdream/forum/v1/types.js +355 -0
- package/esm/sparkdream/forum/v1/user_rate_limit.js +41 -2
- package/esm/sparkdream/rep/v1/member.js +209 -1
- package/esm/sparkdream/rep/v1/query.js +13 -22
- package/package.json +1 -1
- package/sparkdream/blog/v1/params.d.ts +52 -0
- package/sparkdream/blog/v1/params.js +62 -2
- package/sparkdream/blog/v1/tx.d.ts +381 -6
- package/sparkdream/blog/v1/tx.js +584 -3
- package/sparkdream/blog/v1/tx.registry.d.ts +49 -1
- package/sparkdream/blog/v1/tx.registry.js +73 -1
- package/sparkdream/blog/v1/tx.rpc.msg.d.ts +27 -3
- package/sparkdream/blog/v1/tx.rpc.msg.js +32 -2
- package/sparkdream/bundle.d.ts +474 -0
- package/sparkdream/collect/v1/params.d.ts +124 -0
- package/sparkdream/collect/v1/params.js +109 -1
- package/sparkdream/collect/v1/tx.d.ts +195 -3
- package/sparkdream/collect/v1/tx.js +294 -2
- package/sparkdream/collect/v1/tx.registry.d.ts +25 -1
- package/sparkdream/collect/v1/tx.registry.js +37 -1
- package/sparkdream/collect/v1/tx.rpc.msg.d.ts +15 -2
- package/sparkdream/collect/v1/tx.rpc.msg.js +16 -1
- package/sparkdream/collect/v1/types.d.ts +112 -0
- package/sparkdream/collect/v1/types.js +135 -3
- package/sparkdream/forum/v1/params.d.ts +210 -0
- package/sparkdream/forum/v1/params.js +218 -2
- package/sparkdream/forum/v1/post.d.ts +28 -0
- package/sparkdream/forum/v1/post.js +25 -1
- package/sparkdream/forum/v1/query.d.ts +273 -0
- package/sparkdream/forum/v1/query.js +470 -1
- package/sparkdream/forum/v1/query.lcd.d.ts +4 -1
- package/sparkdream/forum/v1/query.lcd.js +30 -0
- package/sparkdream/forum/v1/query.rpc.Query.d.ts +18 -1
- package/sparkdream/forum/v1/query.rpc.Query.js +30 -0
- package/sparkdream/forum/v1/tx.d.ts +291 -0
- package/sparkdream/forum/v1/tx.js +462 -2
- package/sparkdream/forum/v1/tx.registry.d.ts +37 -1
- package/sparkdream/forum/v1/tx.registry.js +55 -1
- package/sparkdream/forum/v1/tx.rpc.msg.d.ts +27 -1
- package/sparkdream/forum/v1/tx.rpc.msg.js +29 -0
- package/sparkdream/forum/v1/types.d.ts +247 -0
- package/sparkdream/forum/v1/types.js +356 -1
- package/sparkdream/forum/v1/user_rate_limit.d.ts +24 -3
- package/sparkdream/forum/v1/user_rate_limit.js +41 -2
- package/sparkdream/rep/v1/member.d.ts +134 -0
- package/sparkdream/rep/v1/member.js +210 -2
- package/sparkdream/rep/v1/query.d.ts +2 -4
- package/sparkdream/rep/v1/query.js +13 -22
- package/sparkdream/rpc.query.d.ts +3 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TxRpc } from "../../../types";
|
|
2
|
-
import { MsgUpdateParams, MsgUpdateParamsResponse, MsgUpdateOperationalParams, MsgUpdateOperationalParamsResponse, MsgCreatePost, MsgCreatePostResponse, MsgEditPost, MsgEditPostResponse, MsgDeletePost, MsgDeletePostResponse, MsgFreezeThread, MsgFreezeThreadResponse, MsgUnarchiveThread, MsgUnarchiveThreadResponse, MsgPinPost, MsgPinPostResponse, MsgUnpinPost, MsgUnpinPostResponse, MsgLockThread, MsgLockThreadResponse, MsgUnlockThread, MsgUnlockThreadResponse, MsgMoveThread, MsgMoveThreadResponse, MsgFollowThread, MsgFollowThreadResponse, MsgUnfollowThread, MsgUnfollowThreadResponse, MsgUpvotePost, MsgUpvotePostResponse, MsgDownvotePost, MsgDownvotePostResponse, MsgFlagPost, MsgFlagPostResponse, MsgDismissFlags, MsgDismissFlagsResponse, MsgHidePost, MsgHidePostResponse, MsgUnhidePost, MsgUnhidePostResponse, MsgAppealPost, MsgAppealPostResponse, MsgAppealThreadLock, MsgAppealThreadLockResponse, MsgAppealThreadMove, MsgAppealThreadMoveResponse, MsgCreateBounty, MsgCreateBountyResponse, MsgAwardBounty, MsgAwardBountyResponse, MsgIncreaseBounty, MsgIncreaseBountyResponse, MsgCancelBounty, MsgCancelBountyResponse, MsgAssignBountyToReply, MsgAssignBountyToReplyResponse, MsgPinReply, MsgPinReplyResponse, MsgUnpinReply, MsgUnpinReplyResponse, MsgDisputePin, MsgDisputePinResponse, MsgMarkAcceptedReply, MsgMarkAcceptedReplyResponse, MsgConfirmProposedReply, MsgConfirmProposedReplyResponse, MsgRejectProposedReply, MsgRejectProposedReplyResponse, MsgSetForumPaused, MsgSetForumPausedResponse, MsgSetModerationPaused, MsgSetModerationPausedResponse } from "./tx";
|
|
2
|
+
import { MsgUpdateParams, MsgUpdateParamsResponse, MsgUpdateOperationalParams, MsgUpdateOperationalParamsResponse, MsgCreatePost, MsgCreatePostResponse, MsgEditPost, MsgEditPostResponse, MsgDeletePost, MsgDeletePostResponse, MsgFreezeThread, MsgFreezeThreadResponse, MsgUnarchiveThread, MsgUnarchiveThreadResponse, MsgPinPost, MsgPinPostResponse, MsgUnpinPost, MsgUnpinPostResponse, MsgMakePostPermanent, MsgMakePostPermanentResponse, MsgLockThread, MsgLockThreadResponse, MsgUnlockThread, MsgUnlockThreadResponse, MsgMoveThread, MsgMoveThreadResponse, MsgFollowThread, MsgFollowThreadResponse, MsgUnfollowThread, MsgUnfollowThreadResponse, MsgUpvotePost, MsgUpvotePostResponse, MsgDownvotePost, MsgDownvotePostResponse, MsgStakePostConviction, MsgStakePostConvictionResponse, MsgReleasePostConviction, MsgReleasePostConvictionResponse, MsgFlagPost, MsgFlagPostResponse, MsgDismissFlags, MsgDismissFlagsResponse, MsgHidePost, MsgHidePostResponse, MsgUnhidePost, MsgUnhidePostResponse, MsgAppealPost, MsgAppealPostResponse, MsgAppealThreadLock, MsgAppealThreadLockResponse, MsgAppealThreadMove, MsgAppealThreadMoveResponse, MsgCreateBounty, MsgCreateBountyResponse, MsgAwardBounty, MsgAwardBountyResponse, MsgIncreaseBounty, MsgIncreaseBountyResponse, MsgCancelBounty, MsgCancelBountyResponse, MsgAssignBountyToReply, MsgAssignBountyToReplyResponse, MsgPinReply, MsgPinReplyResponse, MsgUnpinReply, MsgUnpinReplyResponse, MsgDisputePin, MsgDisputePinResponse, MsgMarkAcceptedReply, MsgMarkAcceptedReplyResponse, MsgConfirmProposedReply, MsgConfirmProposedReplyResponse, MsgRejectProposedReply, MsgRejectProposedReplyResponse, MsgSetForumPaused, MsgSetForumPausedResponse, MsgSetModerationPaused, MsgSetModerationPausedResponse } from "./tx";
|
|
3
3
|
/** Msg defines the Msg service. */
|
|
4
4
|
export interface Msg {
|
|
5
5
|
/**
|
|
@@ -26,6 +26,15 @@ export interface Msg {
|
|
|
26
26
|
pinPost(request: MsgPinPost): Promise<MsgPinPostResponse>;
|
|
27
27
|
/** UnpinPost defines the UnpinPost RPC. */
|
|
28
28
|
unpinPost(request: MsgUnpinPost): Promise<MsgUnpinPostResponse>;
|
|
29
|
+
/**
|
|
30
|
+
* MakePostPermanent promotes an ephemeral post (root post or reply) to
|
|
31
|
+
* permanent by clearing its expiration_time and dropping the matching
|
|
32
|
+
* ExpirationQueue / EphemeralByAuthor entries. Strict separation from pin:
|
|
33
|
+
* pin is display-only and now refuses ephemeral targets, MakePermanent is
|
|
34
|
+
* the lifecycle change. Gated on make_permanent_min_trust_level (default
|
|
35
|
+
* PROVISIONAL) and consumes one slot from the daily post-rate limit.
|
|
36
|
+
*/
|
|
37
|
+
makePostPermanent(request: MsgMakePostPermanent): Promise<MsgMakePostPermanentResponse>;
|
|
29
38
|
/** LockThread defines the LockThread RPC. */
|
|
30
39
|
lockThread(request: MsgLockThread): Promise<MsgLockThreadResponse>;
|
|
31
40
|
/** UnlockThread defines the UnlockThread RPC. */
|
|
@@ -40,6 +49,20 @@ export interface Msg {
|
|
|
40
49
|
upvotePost(request: MsgUpvotePost): Promise<MsgUpvotePostResponse>;
|
|
41
50
|
/** DownvotePost defines the DownvotePost RPC. */
|
|
42
51
|
downvotePost(request: MsgDownvotePost): Promise<MsgDownvotePostResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* StakePostConviction opens a PostConvictionStake: locks the staker's DREAM
|
|
54
|
+
* and starts EndBlocker-driven per-tag rep accrual for the post's author.
|
|
55
|
+
* Caller must be ESTABLISHED+, must not be the post's author, and must
|
|
56
|
+
* commit at least Params.min_post_conviction_stake DREAM.
|
|
57
|
+
*/
|
|
58
|
+
stakePostConviction(request: MsgStakePostConviction): Promise<MsgStakePostConvictionResponse>;
|
|
59
|
+
/**
|
|
60
|
+
* ReleasePostConviction closes a previously-opened PostConvictionStake
|
|
61
|
+
* after post_conviction_lock_seconds has elapsed. The non-slashed portion
|
|
62
|
+
* of the staker's DREAM is unlocked; any rep credited to the author stays
|
|
63
|
+
* (subject to the slash path on confirmed hide).
|
|
64
|
+
*/
|
|
65
|
+
releasePostConviction(request: MsgReleasePostConviction): Promise<MsgReleasePostConvictionResponse>;
|
|
43
66
|
/** FlagPost defines the FlagPost RPC. */
|
|
44
67
|
flagPost(request: MsgFlagPost): Promise<MsgFlagPostResponse>;
|
|
45
68
|
/** DismissFlags defines the DismissFlags RPC. */
|
|
@@ -100,6 +123,7 @@ export declare class MsgClientImpl implements Msg {
|
|
|
100
123
|
unarchiveThread: (request: MsgUnarchiveThread) => Promise<MsgUnarchiveThreadResponse>;
|
|
101
124
|
pinPost: (request: MsgPinPost) => Promise<MsgPinPostResponse>;
|
|
102
125
|
unpinPost: (request: MsgUnpinPost) => Promise<MsgUnpinPostResponse>;
|
|
126
|
+
makePostPermanent: (request: MsgMakePostPermanent) => Promise<MsgMakePostPermanentResponse>;
|
|
103
127
|
lockThread: (request: MsgLockThread) => Promise<MsgLockThreadResponse>;
|
|
104
128
|
unlockThread: (request: MsgUnlockThread) => Promise<MsgUnlockThreadResponse>;
|
|
105
129
|
moveThread: (request: MsgMoveThread) => Promise<MsgMoveThreadResponse>;
|
|
@@ -107,6 +131,8 @@ export declare class MsgClientImpl implements Msg {
|
|
|
107
131
|
unfollowThread: (request: MsgUnfollowThread) => Promise<MsgUnfollowThreadResponse>;
|
|
108
132
|
upvotePost: (request: MsgUpvotePost) => Promise<MsgUpvotePostResponse>;
|
|
109
133
|
downvotePost: (request: MsgDownvotePost) => Promise<MsgDownvotePostResponse>;
|
|
134
|
+
stakePostConviction: (request: MsgStakePostConviction) => Promise<MsgStakePostConvictionResponse>;
|
|
135
|
+
releasePostConviction: (request: MsgReleasePostConviction) => Promise<MsgReleasePostConvictionResponse>;
|
|
110
136
|
flagPost: (request: MsgFlagPost) => Promise<MsgFlagPostResponse>;
|
|
111
137
|
dismissFlags: (request: MsgDismissFlags) => Promise<MsgDismissFlagsResponse>;
|
|
112
138
|
hidePost: (request: MsgHidePost) => Promise<MsgHidePostResponse>;
|
|
@@ -64,6 +64,17 @@ class MsgClientImpl {
|
|
|
64
64
|
const promise = this.rpc.request("sparkdream.forum.v1.Msg", "UnpinPost", data);
|
|
65
65
|
return promise.then(data => tx_1.MsgUnpinPostResponse.decode(new binary_1.BinaryReader(data)));
|
|
66
66
|
};
|
|
67
|
+
/* MakePostPermanent promotes an ephemeral post (root post or reply) to
|
|
68
|
+
permanent by clearing its expiration_time and dropping the matching
|
|
69
|
+
ExpirationQueue / EphemeralByAuthor entries. Strict separation from pin:
|
|
70
|
+
pin is display-only and now refuses ephemeral targets, MakePermanent is
|
|
71
|
+
the lifecycle change. Gated on make_permanent_min_trust_level (default
|
|
72
|
+
PROVISIONAL) and consumes one slot from the daily post-rate limit. */
|
|
73
|
+
makePostPermanent = async (request) => {
|
|
74
|
+
const data = tx_1.MsgMakePostPermanent.encode(request).finish();
|
|
75
|
+
const promise = this.rpc.request("sparkdream.forum.v1.Msg", "MakePostPermanent", data);
|
|
76
|
+
return promise.then(data => tx_1.MsgMakePostPermanentResponse.decode(new binary_1.BinaryReader(data)));
|
|
77
|
+
};
|
|
67
78
|
/* LockThread defines the LockThread RPC. */
|
|
68
79
|
lockThread = async (request) => {
|
|
69
80
|
const data = tx_1.MsgLockThread.encode(request).finish();
|
|
@@ -106,6 +117,24 @@ class MsgClientImpl {
|
|
|
106
117
|
const promise = this.rpc.request("sparkdream.forum.v1.Msg", "DownvotePost", data);
|
|
107
118
|
return promise.then(data => tx_1.MsgDownvotePostResponse.decode(new binary_1.BinaryReader(data)));
|
|
108
119
|
};
|
|
120
|
+
/* StakePostConviction opens a PostConvictionStake: locks the staker's DREAM
|
|
121
|
+
and starts EndBlocker-driven per-tag rep accrual for the post's author.
|
|
122
|
+
Caller must be ESTABLISHED+, must not be the post's author, and must
|
|
123
|
+
commit at least Params.min_post_conviction_stake DREAM. */
|
|
124
|
+
stakePostConviction = async (request) => {
|
|
125
|
+
const data = tx_1.MsgStakePostConviction.encode(request).finish();
|
|
126
|
+
const promise = this.rpc.request("sparkdream.forum.v1.Msg", "StakePostConviction", data);
|
|
127
|
+
return promise.then(data => tx_1.MsgStakePostConvictionResponse.decode(new binary_1.BinaryReader(data)));
|
|
128
|
+
};
|
|
129
|
+
/* ReleasePostConviction closes a previously-opened PostConvictionStake
|
|
130
|
+
after post_conviction_lock_seconds has elapsed. The non-slashed portion
|
|
131
|
+
of the staker's DREAM is unlocked; any rep credited to the author stays
|
|
132
|
+
(subject to the slash path on confirmed hide). */
|
|
133
|
+
releasePostConviction = async (request) => {
|
|
134
|
+
const data = tx_1.MsgReleasePostConviction.encode(request).finish();
|
|
135
|
+
const promise = this.rpc.request("sparkdream.forum.v1.Msg", "ReleasePostConviction", data);
|
|
136
|
+
return promise.then(data => tx_1.MsgReleasePostConvictionResponse.decode(new binary_1.BinaryReader(data)));
|
|
137
|
+
};
|
|
109
138
|
/* FlagPost defines the FlagPost RPC. */
|
|
110
139
|
flagPost = async (request) => {
|
|
111
140
|
const data = tx_1.MsgFlagPost.encode(request).finish();
|
|
@@ -133,6 +133,186 @@ export interface PinnedReplyRecordAminoMsg {
|
|
|
133
133
|
type: "/sparkdream.forum.v1.PinnedReplyRecord";
|
|
134
134
|
value: PinnedReplyRecordAmino;
|
|
135
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* ForumRepEpochCounter tracks how much forum reputation a single author has
|
|
138
|
+
* earned in a single tag during the current UTC-day epoch. Reset implicitly
|
|
139
|
+
* by comparing epoch_id to floor(block_time / 86400) on read — when the
|
|
140
|
+
* stored epoch_id is stale, the accumulated counter is treated as zero and
|
|
141
|
+
* overwritten on the next credit. Used by the post-conviction accrual loop
|
|
142
|
+
* to enforce Params.max_forum_rep_per_tag_per_epoch.
|
|
143
|
+
* @name ForumRepEpochCounter
|
|
144
|
+
* @package sparkdream.forum.v1
|
|
145
|
+
* @see proto type: sparkdream.forum.v1.ForumRepEpochCounter
|
|
146
|
+
*/
|
|
147
|
+
export interface ForumRepEpochCounter {
|
|
148
|
+
/**
|
|
149
|
+
* epoch_id is the UTC-day index: floor(block_time / 86400).
|
|
150
|
+
*/
|
|
151
|
+
epochId: bigint;
|
|
152
|
+
/**
|
|
153
|
+
* accumulated is the dec-string of rep credited so far this epoch.
|
|
154
|
+
*/
|
|
155
|
+
accumulated: string;
|
|
156
|
+
}
|
|
157
|
+
export interface ForumRepEpochCounterProtoMsg {
|
|
158
|
+
typeUrl: "/sparkdream.forum.v1.ForumRepEpochCounter";
|
|
159
|
+
value: Uint8Array;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* ForumRepEpochCounter tracks how much forum reputation a single author has
|
|
163
|
+
* earned in a single tag during the current UTC-day epoch. Reset implicitly
|
|
164
|
+
* by comparing epoch_id to floor(block_time / 86400) on read — when the
|
|
165
|
+
* stored epoch_id is stale, the accumulated counter is treated as zero and
|
|
166
|
+
* overwritten on the next credit. Used by the post-conviction accrual loop
|
|
167
|
+
* to enforce Params.max_forum_rep_per_tag_per_epoch.
|
|
168
|
+
* @name ForumRepEpochCounterAmino
|
|
169
|
+
* @package sparkdream.forum.v1
|
|
170
|
+
* @see proto type: sparkdream.forum.v1.ForumRepEpochCounter
|
|
171
|
+
*/
|
|
172
|
+
export interface ForumRepEpochCounterAmino {
|
|
173
|
+
/**
|
|
174
|
+
* epoch_id is the UTC-day index: floor(block_time / 86400).
|
|
175
|
+
*/
|
|
176
|
+
epoch_id?: string;
|
|
177
|
+
/**
|
|
178
|
+
* accumulated is the dec-string of rep credited so far this epoch.
|
|
179
|
+
*/
|
|
180
|
+
accumulated?: string;
|
|
181
|
+
}
|
|
182
|
+
export interface ForumRepEpochCounterAminoMsg {
|
|
183
|
+
type: "/sparkdream.forum.v1.ForumRepEpochCounter";
|
|
184
|
+
value: ForumRepEpochCounterAmino;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* @name PostConvictionStake_AccruedRepPerTagEntry
|
|
188
|
+
* @package sparkdream.forum.v1
|
|
189
|
+
* @see proto type: sparkdream.forum.v1.undefined
|
|
190
|
+
*/
|
|
191
|
+
export interface PostConvictionStake_AccruedRepPerTagEntry {
|
|
192
|
+
key: string;
|
|
193
|
+
value: string;
|
|
194
|
+
}
|
|
195
|
+
export interface PostConvictionStake_AccruedRepPerTagEntryProtoMsg {
|
|
196
|
+
typeUrl: string;
|
|
197
|
+
value: Uint8Array;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* @name PostConvictionStake_AccruedRepPerTagEntryAmino
|
|
201
|
+
* @package sparkdream.forum.v1
|
|
202
|
+
* @see proto type: sparkdream.forum.v1.PostConvictionStake_AccruedRepPerTagEntry
|
|
203
|
+
*/
|
|
204
|
+
export interface PostConvictionStake_AccruedRepPerTagEntryAmino {
|
|
205
|
+
key?: string;
|
|
206
|
+
value?: string;
|
|
207
|
+
}
|
|
208
|
+
export interface PostConvictionStake_AccruedRepPerTagEntryAminoMsg {
|
|
209
|
+
type: string;
|
|
210
|
+
value: PostConvictionStake_AccruedRepPerTagEntryAmino;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* PostConvictionStake records an ESTABLISHED+ member's DREAM lock backing a
|
|
214
|
+
* post's author. While the stake is active, the EndBlocker streams per-tag
|
|
215
|
+
* reputation to the author proportional to the stake's share of total active
|
|
216
|
+
* stakes on the post (split evenly across the post's tags). On confirmed
|
|
217
|
+
* sentinel hide (ExpireHiddenPosts), the accrued rep is clawed back from the
|
|
218
|
+
* author per tag and a fraction of the staker's locked DREAM is slashed
|
|
219
|
+
* (staker_slash_bps) — both staker and author endorsed harm.
|
|
220
|
+
*
|
|
221
|
+
* Stakers cannot stake on their own posts. Stakes are released after
|
|
222
|
+
* unlocks_at via MsgReleasePostConviction; LockDREAM/UnlockDREAM bypass the
|
|
223
|
+
* 3% transfer tax because it is internal member-balance rebalancing, not a
|
|
224
|
+
* transfer.
|
|
225
|
+
* @name PostConvictionStake
|
|
226
|
+
* @package sparkdream.forum.v1
|
|
227
|
+
* @see proto type: sparkdream.forum.v1.PostConvictionStake
|
|
228
|
+
*/
|
|
229
|
+
export interface PostConvictionStake {
|
|
230
|
+
id: bigint;
|
|
231
|
+
staker: string;
|
|
232
|
+
postId: bigint;
|
|
233
|
+
amount: string;
|
|
234
|
+
stakedAt: bigint;
|
|
235
|
+
unlocksAt: bigint;
|
|
236
|
+
/**
|
|
237
|
+
* accrued_rep_per_tag tracks how much rep this stake has minted to the
|
|
238
|
+
* author per tag, so a confirmed hide can claw back exactly the amount this
|
|
239
|
+
* stake produced (and no more). Map key is tag name, value is a decimal
|
|
240
|
+
* string (math.LegacyDec). Populated by the EndBlocker accrual loop.
|
|
241
|
+
*/
|
|
242
|
+
accruedRepPerTag: {
|
|
243
|
+
[key: string]: string;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* last_accrual_at is the last EndBlocker tick at which this stake credited
|
|
247
|
+
* rep to the author. Initialized to staked_at on creation; streaming is
|
|
248
|
+
* bounded by the per-(author,tag) epoch cap so multiple stakes can saturate
|
|
249
|
+
* a single tag without one stake monopolizing the budget.
|
|
250
|
+
*/
|
|
251
|
+
lastAccrualAt: bigint;
|
|
252
|
+
/**
|
|
253
|
+
* released is set true once the staker has called MsgReleasePostConviction
|
|
254
|
+
* after unlocks_at. Released stakes are kept in state until the post's
|
|
255
|
+
* hide-appeal window has fully elapsed so any retroactive slash can still
|
|
256
|
+
* find them; after that they are GC'd by a pass in EndBlocker.
|
|
257
|
+
*/
|
|
258
|
+
released: boolean;
|
|
259
|
+
}
|
|
260
|
+
export interface PostConvictionStakeProtoMsg {
|
|
261
|
+
typeUrl: "/sparkdream.forum.v1.PostConvictionStake";
|
|
262
|
+
value: Uint8Array;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* PostConvictionStake records an ESTABLISHED+ member's DREAM lock backing a
|
|
266
|
+
* post's author. While the stake is active, the EndBlocker streams per-tag
|
|
267
|
+
* reputation to the author proportional to the stake's share of total active
|
|
268
|
+
* stakes on the post (split evenly across the post's tags). On confirmed
|
|
269
|
+
* sentinel hide (ExpireHiddenPosts), the accrued rep is clawed back from the
|
|
270
|
+
* author per tag and a fraction of the staker's locked DREAM is slashed
|
|
271
|
+
* (staker_slash_bps) — both staker and author endorsed harm.
|
|
272
|
+
*
|
|
273
|
+
* Stakers cannot stake on their own posts. Stakes are released after
|
|
274
|
+
* unlocks_at via MsgReleasePostConviction; LockDREAM/UnlockDREAM bypass the
|
|
275
|
+
* 3% transfer tax because it is internal member-balance rebalancing, not a
|
|
276
|
+
* transfer.
|
|
277
|
+
* @name PostConvictionStakeAmino
|
|
278
|
+
* @package sparkdream.forum.v1
|
|
279
|
+
* @see proto type: sparkdream.forum.v1.PostConvictionStake
|
|
280
|
+
*/
|
|
281
|
+
export interface PostConvictionStakeAmino {
|
|
282
|
+
id?: string;
|
|
283
|
+
staker?: string;
|
|
284
|
+
post_id?: string;
|
|
285
|
+
amount?: string;
|
|
286
|
+
staked_at?: string;
|
|
287
|
+
unlocks_at?: string;
|
|
288
|
+
/**
|
|
289
|
+
* accrued_rep_per_tag tracks how much rep this stake has minted to the
|
|
290
|
+
* author per tag, so a confirmed hide can claw back exactly the amount this
|
|
291
|
+
* stake produced (and no more). Map key is tag name, value is a decimal
|
|
292
|
+
* string (math.LegacyDec). Populated by the EndBlocker accrual loop.
|
|
293
|
+
*/
|
|
294
|
+
accrued_rep_per_tag?: {
|
|
295
|
+
[key: string]: string;
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* last_accrual_at is the last EndBlocker tick at which this stake credited
|
|
299
|
+
* rep to the author. Initialized to staked_at on creation; streaming is
|
|
300
|
+
* bounded by the per-(author,tag) epoch cap so multiple stakes can saturate
|
|
301
|
+
* a single tag without one stake monopolizing the budget.
|
|
302
|
+
*/
|
|
303
|
+
last_accrual_at?: string;
|
|
304
|
+
/**
|
|
305
|
+
* released is set true once the staker has called MsgReleasePostConviction
|
|
306
|
+
* after unlocks_at. Released stakes are kept in state until the post's
|
|
307
|
+
* hide-appeal window has fully elapsed so any retroactive slash can still
|
|
308
|
+
* find them; after that they are GC'd by a pass in EndBlocker.
|
|
309
|
+
*/
|
|
310
|
+
released?: boolean;
|
|
311
|
+
}
|
|
312
|
+
export interface PostConvictionStakeAminoMsg {
|
|
313
|
+
type: "/sparkdream.forum.v1.PostConvictionStake";
|
|
314
|
+
value: PostConvictionStakeAmino;
|
|
315
|
+
}
|
|
136
316
|
/**
|
|
137
317
|
* BountyAward represents an award given from a bounty.
|
|
138
318
|
* @name BountyAward
|
|
@@ -169,3 +349,70 @@ export declare const PinnedReplyRecord: {
|
|
|
169
349
|
toProto(message: PinnedReplyRecord): Uint8Array;
|
|
170
350
|
toProtoMsg(message: PinnedReplyRecord): PinnedReplyRecordProtoMsg;
|
|
171
351
|
};
|
|
352
|
+
/**
|
|
353
|
+
* ForumRepEpochCounter tracks how much forum reputation a single author has
|
|
354
|
+
* earned in a single tag during the current UTC-day epoch. Reset implicitly
|
|
355
|
+
* by comparing epoch_id to floor(block_time / 86400) on read — when the
|
|
356
|
+
* stored epoch_id is stale, the accumulated counter is treated as zero and
|
|
357
|
+
* overwritten on the next credit. Used by the post-conviction accrual loop
|
|
358
|
+
* to enforce Params.max_forum_rep_per_tag_per_epoch.
|
|
359
|
+
* @name ForumRepEpochCounter
|
|
360
|
+
* @package sparkdream.forum.v1
|
|
361
|
+
* @see proto type: sparkdream.forum.v1.ForumRepEpochCounter
|
|
362
|
+
*/
|
|
363
|
+
export declare const ForumRepEpochCounter: {
|
|
364
|
+
typeUrl: string;
|
|
365
|
+
encode(message: ForumRepEpochCounter, writer?: BinaryWriter): BinaryWriter;
|
|
366
|
+
decode(input: BinaryReader | Uint8Array, length?: number): ForumRepEpochCounter;
|
|
367
|
+
fromPartial(object: DeepPartial<ForumRepEpochCounter>): ForumRepEpochCounter;
|
|
368
|
+
fromAmino(object: ForumRepEpochCounterAmino): ForumRepEpochCounter;
|
|
369
|
+
toAmino(message: ForumRepEpochCounter): ForumRepEpochCounterAmino;
|
|
370
|
+
fromAminoMsg(object: ForumRepEpochCounterAminoMsg): ForumRepEpochCounter;
|
|
371
|
+
fromProtoMsg(message: ForumRepEpochCounterProtoMsg): ForumRepEpochCounter;
|
|
372
|
+
toProto(message: ForumRepEpochCounter): Uint8Array;
|
|
373
|
+
toProtoMsg(message: ForumRepEpochCounter): ForumRepEpochCounterProtoMsg;
|
|
374
|
+
};
|
|
375
|
+
/**
|
|
376
|
+
* @name PostConvictionStake_AccruedRepPerTagEntry
|
|
377
|
+
* @package sparkdream.forum.v1
|
|
378
|
+
* @see proto type: sparkdream.forum.v1.undefined
|
|
379
|
+
*/
|
|
380
|
+
export declare const PostConvictionStake_AccruedRepPerTagEntry: {
|
|
381
|
+
encode(message: PostConvictionStake_AccruedRepPerTagEntry, writer?: BinaryWriter): BinaryWriter;
|
|
382
|
+
decode(input: BinaryReader | Uint8Array, length?: number): PostConvictionStake_AccruedRepPerTagEntry;
|
|
383
|
+
fromPartial(object: DeepPartial<PostConvictionStake_AccruedRepPerTagEntry>): PostConvictionStake_AccruedRepPerTagEntry;
|
|
384
|
+
fromAmino(object: PostConvictionStake_AccruedRepPerTagEntryAmino): PostConvictionStake_AccruedRepPerTagEntry;
|
|
385
|
+
toAmino(message: PostConvictionStake_AccruedRepPerTagEntry): PostConvictionStake_AccruedRepPerTagEntryAmino;
|
|
386
|
+
fromAminoMsg(object: PostConvictionStake_AccruedRepPerTagEntryAminoMsg): PostConvictionStake_AccruedRepPerTagEntry;
|
|
387
|
+
fromProtoMsg(message: PostConvictionStake_AccruedRepPerTagEntryProtoMsg): PostConvictionStake_AccruedRepPerTagEntry;
|
|
388
|
+
toProto(message: PostConvictionStake_AccruedRepPerTagEntry): Uint8Array;
|
|
389
|
+
};
|
|
390
|
+
/**
|
|
391
|
+
* PostConvictionStake records an ESTABLISHED+ member's DREAM lock backing a
|
|
392
|
+
* post's author. While the stake is active, the EndBlocker streams per-tag
|
|
393
|
+
* reputation to the author proportional to the stake's share of total active
|
|
394
|
+
* stakes on the post (split evenly across the post's tags). On confirmed
|
|
395
|
+
* sentinel hide (ExpireHiddenPosts), the accrued rep is clawed back from the
|
|
396
|
+
* author per tag and a fraction of the staker's locked DREAM is slashed
|
|
397
|
+
* (staker_slash_bps) — both staker and author endorsed harm.
|
|
398
|
+
*
|
|
399
|
+
* Stakers cannot stake on their own posts. Stakes are released after
|
|
400
|
+
* unlocks_at via MsgReleasePostConviction; LockDREAM/UnlockDREAM bypass the
|
|
401
|
+
* 3% transfer tax because it is internal member-balance rebalancing, not a
|
|
402
|
+
* transfer.
|
|
403
|
+
* @name PostConvictionStake
|
|
404
|
+
* @package sparkdream.forum.v1
|
|
405
|
+
* @see proto type: sparkdream.forum.v1.PostConvictionStake
|
|
406
|
+
*/
|
|
407
|
+
export declare const PostConvictionStake: {
|
|
408
|
+
typeUrl: string;
|
|
409
|
+
encode(message: PostConvictionStake, writer?: BinaryWriter): BinaryWriter;
|
|
410
|
+
decode(input: BinaryReader | Uint8Array, length?: number): PostConvictionStake;
|
|
411
|
+
fromPartial(object: DeepPartial<PostConvictionStake>): PostConvictionStake;
|
|
412
|
+
fromAmino(object: PostConvictionStakeAmino): PostConvictionStake;
|
|
413
|
+
toAmino(message: PostConvictionStake): PostConvictionStakeAmino;
|
|
414
|
+
fromAminoMsg(object: PostConvictionStakeAminoMsg): PostConvictionStake;
|
|
415
|
+
fromProtoMsg(message: PostConvictionStakeProtoMsg): PostConvictionStake;
|
|
416
|
+
toProto(message: PostConvictionStake): Uint8Array;
|
|
417
|
+
toProtoMsg(message: PostConvictionStake): PostConvictionStakeProtoMsg;
|
|
418
|
+
};
|