@sparkdreamnft/sparkdreamjs 0.0.24 → 0.0.25
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/forum/v1/params.js +50 -2
- package/esm/sparkdream/forum/v1/sentinel_activity.js +160 -1
- package/esm/sparkdream/forum/v1/thread_metadata.js +24 -0
- package/esm/sparkdream/rep/v1/params.js +24 -0
- package/package.json +1 -1
- package/sparkdream/bundle.d.ts +12 -0
- package/sparkdream/forum/v1/params.d.ts +48 -0
- package/sparkdream/forum/v1/params.js +50 -2
- package/sparkdream/forum/v1/sentinel_activity.d.ts +125 -0
- package/sparkdream/forum/v1/sentinel_activity.js +161 -2
- package/sparkdream/forum/v1/thread_metadata.d.ts +32 -0
- package/sparkdream/forum/v1/thread_metadata.js +24 -0
- package/sparkdream/rep/v1/params.d.ts +24 -0
- package/sparkdream/rep/v1/params.js +24 -0
|
@@ -61,7 +61,9 @@ function createBaseParams() {
|
|
|
61
61
|
postConvictionLockSeconds: BigInt(0),
|
|
62
62
|
postConvictionStreamRatePerBlock: "",
|
|
63
63
|
maxForumRepPerTagPerEpoch: "",
|
|
64
|
-
postConvictionStakerSlashBps: BigInt(0)
|
|
64
|
+
postConvictionStakerSlashBps: BigInt(0),
|
|
65
|
+
curationDreamReward: "",
|
|
66
|
+
acceptProposalTimeout: BigInt(0)
|
|
65
67
|
};
|
|
66
68
|
}
|
|
67
69
|
/**
|
|
@@ -244,6 +246,12 @@ exports.Params = {
|
|
|
244
246
|
if (message.postConvictionStakerSlashBps !== BigInt(0)) {
|
|
245
247
|
writer.uint32(512).uint64(message.postConvictionStakerSlashBps);
|
|
246
248
|
}
|
|
249
|
+
if (message.curationDreamReward !== "") {
|
|
250
|
+
writer.uint32(522).string(message.curationDreamReward);
|
|
251
|
+
}
|
|
252
|
+
if (message.acceptProposalTimeout !== BigInt(0)) {
|
|
253
|
+
writer.uint32(528).int64(message.acceptProposalTimeout);
|
|
254
|
+
}
|
|
247
255
|
return writer;
|
|
248
256
|
},
|
|
249
257
|
decode(input, length) {
|
|
@@ -421,6 +429,12 @@ exports.Params = {
|
|
|
421
429
|
case 64:
|
|
422
430
|
message.postConvictionStakerSlashBps = reader.uint64();
|
|
423
431
|
break;
|
|
432
|
+
case 65:
|
|
433
|
+
message.curationDreamReward = reader.string();
|
|
434
|
+
break;
|
|
435
|
+
case 66:
|
|
436
|
+
message.acceptProposalTimeout = reader.int64();
|
|
437
|
+
break;
|
|
424
438
|
default:
|
|
425
439
|
reader.skipType(tag & 7);
|
|
426
440
|
break;
|
|
@@ -486,6 +500,8 @@ exports.Params = {
|
|
|
486
500
|
message.postConvictionStreamRatePerBlock = object.postConvictionStreamRatePerBlock ?? "";
|
|
487
501
|
message.maxForumRepPerTagPerEpoch = object.maxForumRepPerTagPerEpoch ?? "";
|
|
488
502
|
message.postConvictionStakerSlashBps = object.postConvictionStakerSlashBps !== undefined && object.postConvictionStakerSlashBps !== null ? BigInt(object.postConvictionStakerSlashBps.toString()) : BigInt(0);
|
|
503
|
+
message.curationDreamReward = object.curationDreamReward ?? "";
|
|
504
|
+
message.acceptProposalTimeout = object.acceptProposalTimeout !== undefined && object.acceptProposalTimeout !== null ? BigInt(object.acceptProposalTimeout.toString()) : BigInt(0);
|
|
489
505
|
return message;
|
|
490
506
|
},
|
|
491
507
|
fromAmino(object) {
|
|
@@ -658,6 +674,12 @@ exports.Params = {
|
|
|
658
674
|
if (object.post_conviction_staker_slash_bps !== undefined && object.post_conviction_staker_slash_bps !== null) {
|
|
659
675
|
message.postConvictionStakerSlashBps = BigInt(object.post_conviction_staker_slash_bps);
|
|
660
676
|
}
|
|
677
|
+
if (object.curation_dream_reward !== undefined && object.curation_dream_reward !== null) {
|
|
678
|
+
message.curationDreamReward = object.curation_dream_reward;
|
|
679
|
+
}
|
|
680
|
+
if (object.accept_proposal_timeout !== undefined && object.accept_proposal_timeout !== null) {
|
|
681
|
+
message.acceptProposalTimeout = BigInt(object.accept_proposal_timeout);
|
|
682
|
+
}
|
|
661
683
|
return message;
|
|
662
684
|
},
|
|
663
685
|
toAmino(message) {
|
|
@@ -718,6 +740,8 @@ exports.Params = {
|
|
|
718
740
|
obj.post_conviction_stream_rate_per_block = message.postConvictionStreamRatePerBlock === "" ? undefined : message.postConvictionStreamRatePerBlock;
|
|
719
741
|
obj.max_forum_rep_per_tag_per_epoch = message.maxForumRepPerTagPerEpoch === "" ? undefined : message.maxForumRepPerTagPerEpoch;
|
|
720
742
|
obj.post_conviction_staker_slash_bps = message.postConvictionStakerSlashBps !== BigInt(0) ? message.postConvictionStakerSlashBps?.toString() : undefined;
|
|
743
|
+
obj.curation_dream_reward = message.curationDreamReward === "" ? undefined : message.curationDreamReward;
|
|
744
|
+
obj.accept_proposal_timeout = message.acceptProposalTimeout !== BigInt(0) ? message.acceptProposalTimeout?.toString() : undefined;
|
|
721
745
|
return obj;
|
|
722
746
|
},
|
|
723
747
|
fromAminoMsg(object) {
|
|
@@ -793,7 +817,9 @@ function createBaseForumOperationalParams() {
|
|
|
793
817
|
postConvictionLockSeconds: BigInt(0),
|
|
794
818
|
postConvictionStreamRatePerBlock: "",
|
|
795
819
|
maxForumRepPerTagPerEpoch: "",
|
|
796
|
-
postConvictionStakerSlashBps: BigInt(0)
|
|
820
|
+
postConvictionStakerSlashBps: BigInt(0),
|
|
821
|
+
curationDreamReward: "",
|
|
822
|
+
acceptProposalTimeout: BigInt(0)
|
|
797
823
|
};
|
|
798
824
|
}
|
|
799
825
|
/**
|
|
@@ -959,6 +985,12 @@ exports.ForumOperationalParams = {
|
|
|
959
985
|
if (message.postConvictionStakerSlashBps !== BigInt(0)) {
|
|
960
986
|
writer.uint32(512).uint64(message.postConvictionStakerSlashBps);
|
|
961
987
|
}
|
|
988
|
+
if (message.curationDreamReward !== "") {
|
|
989
|
+
writer.uint32(522).string(message.curationDreamReward);
|
|
990
|
+
}
|
|
991
|
+
if (message.acceptProposalTimeout !== BigInt(0)) {
|
|
992
|
+
writer.uint32(528).int64(message.acceptProposalTimeout);
|
|
993
|
+
}
|
|
962
994
|
return writer;
|
|
963
995
|
},
|
|
964
996
|
decode(input, length) {
|
|
@@ -1118,6 +1150,12 @@ exports.ForumOperationalParams = {
|
|
|
1118
1150
|
case 64:
|
|
1119
1151
|
message.postConvictionStakerSlashBps = reader.uint64();
|
|
1120
1152
|
break;
|
|
1153
|
+
case 65:
|
|
1154
|
+
message.curationDreamReward = reader.string();
|
|
1155
|
+
break;
|
|
1156
|
+
case 66:
|
|
1157
|
+
message.acceptProposalTimeout = reader.int64();
|
|
1158
|
+
break;
|
|
1121
1159
|
default:
|
|
1122
1160
|
reader.skipType(tag & 7);
|
|
1123
1161
|
break;
|
|
@@ -1177,6 +1215,8 @@ exports.ForumOperationalParams = {
|
|
|
1177
1215
|
message.postConvictionStreamRatePerBlock = object.postConvictionStreamRatePerBlock ?? "";
|
|
1178
1216
|
message.maxForumRepPerTagPerEpoch = object.maxForumRepPerTagPerEpoch ?? "";
|
|
1179
1217
|
message.postConvictionStakerSlashBps = object.postConvictionStakerSlashBps !== undefined && object.postConvictionStakerSlashBps !== null ? BigInt(object.postConvictionStakerSlashBps.toString()) : BigInt(0);
|
|
1218
|
+
message.curationDreamReward = object.curationDreamReward ?? "";
|
|
1219
|
+
message.acceptProposalTimeout = object.acceptProposalTimeout !== undefined && object.acceptProposalTimeout !== null ? BigInt(object.acceptProposalTimeout.toString()) : BigInt(0);
|
|
1180
1220
|
return message;
|
|
1181
1221
|
},
|
|
1182
1222
|
fromAmino(object) {
|
|
@@ -1331,6 +1371,12 @@ exports.ForumOperationalParams = {
|
|
|
1331
1371
|
if (object.post_conviction_staker_slash_bps !== undefined && object.post_conviction_staker_slash_bps !== null) {
|
|
1332
1372
|
message.postConvictionStakerSlashBps = BigInt(object.post_conviction_staker_slash_bps);
|
|
1333
1373
|
}
|
|
1374
|
+
if (object.curation_dream_reward !== undefined && object.curation_dream_reward !== null) {
|
|
1375
|
+
message.curationDreamReward = object.curation_dream_reward;
|
|
1376
|
+
}
|
|
1377
|
+
if (object.accept_proposal_timeout !== undefined && object.accept_proposal_timeout !== null) {
|
|
1378
|
+
message.acceptProposalTimeout = BigInt(object.accept_proposal_timeout);
|
|
1379
|
+
}
|
|
1334
1380
|
return message;
|
|
1335
1381
|
},
|
|
1336
1382
|
toAmino(message) {
|
|
@@ -1385,6 +1431,8 @@ exports.ForumOperationalParams = {
|
|
|
1385
1431
|
obj.post_conviction_stream_rate_per_block = message.postConvictionStreamRatePerBlock === "" ? undefined : message.postConvictionStreamRatePerBlock;
|
|
1386
1432
|
obj.max_forum_rep_per_tag_per_epoch = message.maxForumRepPerTagPerEpoch === "" ? undefined : message.maxForumRepPerTagPerEpoch;
|
|
1387
1433
|
obj.post_conviction_staker_slash_bps = message.postConvictionStakerSlashBps !== BigInt(0) ? message.postConvictionStakerSlashBps?.toString() : undefined;
|
|
1434
|
+
obj.curation_dream_reward = message.curationDreamReward === "" ? undefined : message.curationDreamReward;
|
|
1435
|
+
obj.accept_proposal_timeout = message.acceptProposalTimeout !== BigInt(0) ? message.acceptProposalTimeout?.toString() : undefined;
|
|
1388
1436
|
return obj;
|
|
1389
1437
|
},
|
|
1390
1438
|
fromAminoMsg(object) {
|
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
import { BinaryReader, BinaryWriter } from "../../../binary";
|
|
2
2
|
import { DeepPartial } from "../../../helpers";
|
|
3
|
+
/**
|
|
4
|
+
* AccuracyEpochBucket holds one reward-epoch's resolved-appeal tally for a
|
|
5
|
+
* sentinel. Stored in a fixed-size ring on SentinelActivity (slot index =
|
|
6
|
+
* epoch % SentinelAccuracyRingSize); the `epoch` stamp disambiguates a live
|
|
7
|
+
* slot from a stale one left behind by an inactive epoch.
|
|
8
|
+
* @name AccuracyEpochBucket
|
|
9
|
+
* @package sparkdream.forum.v1
|
|
10
|
+
* @see proto type: sparkdream.forum.v1.AccuracyEpochBucket
|
|
11
|
+
*/
|
|
12
|
+
export interface AccuracyEpochBucket {
|
|
13
|
+
epoch: bigint;
|
|
14
|
+
/**
|
|
15
|
+
* upheld_hides + upheld_locks + upheld_moves resolved this epoch
|
|
16
|
+
*/
|
|
17
|
+
upheld: bigint;
|
|
18
|
+
/**
|
|
19
|
+
* overturned_* resolved this epoch
|
|
20
|
+
*/
|
|
21
|
+
overturned: bigint;
|
|
22
|
+
}
|
|
23
|
+
export interface AccuracyEpochBucketProtoMsg {
|
|
24
|
+
typeUrl: "/sparkdream.forum.v1.AccuracyEpochBucket";
|
|
25
|
+
value: Uint8Array;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* AccuracyEpochBucket holds one reward-epoch's resolved-appeal tally for a
|
|
29
|
+
* sentinel. Stored in a fixed-size ring on SentinelActivity (slot index =
|
|
30
|
+
* epoch % SentinelAccuracyRingSize); the `epoch` stamp disambiguates a live
|
|
31
|
+
* slot from a stale one left behind by an inactive epoch.
|
|
32
|
+
* @name AccuracyEpochBucketAmino
|
|
33
|
+
* @package sparkdream.forum.v1
|
|
34
|
+
* @see proto type: sparkdream.forum.v1.AccuracyEpochBucket
|
|
35
|
+
*/
|
|
36
|
+
export interface AccuracyEpochBucketAmino {
|
|
37
|
+
epoch?: string;
|
|
38
|
+
/**
|
|
39
|
+
* upheld_hides + upheld_locks + upheld_moves resolved this epoch
|
|
40
|
+
*/
|
|
41
|
+
upheld?: string;
|
|
42
|
+
/**
|
|
43
|
+
* overturned_* resolved this epoch
|
|
44
|
+
*/
|
|
45
|
+
overturned?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface AccuracyEpochBucketAminoMsg {
|
|
48
|
+
type: "/sparkdream.forum.v1.AccuracyEpochBucket";
|
|
49
|
+
value: AccuracyEpochBucketAmino;
|
|
50
|
+
}
|
|
3
51
|
/**
|
|
4
52
|
* SentinelActivity holds forum-specific action counters and local cooldowns
|
|
5
53
|
* for a sentinel. The accountability record (bond, bond status, activity
|
|
@@ -39,6 +87,34 @@ export interface SentinelActivity {
|
|
|
39
87
|
upheldPins: bigint;
|
|
40
88
|
overturnedPins: bigint;
|
|
41
89
|
epochPins: bigint;
|
|
90
|
+
/**
|
|
91
|
+
* Curation-proposal tracking. A sentinel may propose a reply as a thread's
|
|
92
|
+
* accepted answer (MsgMarkAcceptedReply on someone else's thread); the author
|
|
93
|
+
* confirms/rejects or it auto-confirms after a timeout.
|
|
94
|
+
* total_proposals — lifetime proposals created (incremented at propose).
|
|
95
|
+
* confirmed_proposals — lifetime proposals confirmed (author confirm or
|
|
96
|
+
* auto-confirm); credited to the proposing sentinel.
|
|
97
|
+
* rejected_proposals — lifetime proposals rejected by the author.
|
|
98
|
+
* epoch_curations — confirmed proposals in the current reward epoch.
|
|
99
|
+
* Feeds the sentinel reward score; reset each epoch.
|
|
100
|
+
* Incremented on CONFIRM (success), not on propose, so
|
|
101
|
+
* it cannot be farmed by spamming unconfirmed proposals.
|
|
102
|
+
*/
|
|
103
|
+
totalProposals: bigint;
|
|
104
|
+
confirmedProposals: bigint;
|
|
105
|
+
rejectedProposals: bigint;
|
|
106
|
+
epochCurations: bigint;
|
|
107
|
+
/**
|
|
108
|
+
* Rolling-window accuracy ring. Fixed length SentinelAccuracyRingSize once
|
|
109
|
+
* first written; slot e % C holds reward-epoch e's resolved-appeal tally.
|
|
110
|
+
* x/rep's reward distribution computes accuracy over the last
|
|
111
|
+
* SentinelAccuracyWindowEpochs slots from this ring. The lifetime
|
|
112
|
+
* upheld_*\/overturned_* counters above are retained for display/audit and are
|
|
113
|
+
* NO LONGER used for reward accuracy. Append-only field — empty on records
|
|
114
|
+
* written before this field existed (no migration needed; an empty ring reads
|
|
115
|
+
* as zero decided appeals).
|
|
116
|
+
*/
|
|
117
|
+
accuracyWindow: AccuracyEpochBucket[];
|
|
42
118
|
}
|
|
43
119
|
export interface SentinelActivityProtoMsg {
|
|
44
120
|
typeUrl: "/sparkdream.forum.v1.SentinelActivity";
|
|
@@ -83,11 +159,60 @@ export interface SentinelActivityAmino {
|
|
|
83
159
|
upheld_pins?: string;
|
|
84
160
|
overturned_pins?: string;
|
|
85
161
|
epoch_pins?: string;
|
|
162
|
+
/**
|
|
163
|
+
* Curation-proposal tracking. A sentinel may propose a reply as a thread's
|
|
164
|
+
* accepted answer (MsgMarkAcceptedReply on someone else's thread); the author
|
|
165
|
+
* confirms/rejects or it auto-confirms after a timeout.
|
|
166
|
+
* total_proposals — lifetime proposals created (incremented at propose).
|
|
167
|
+
* confirmed_proposals — lifetime proposals confirmed (author confirm or
|
|
168
|
+
* auto-confirm); credited to the proposing sentinel.
|
|
169
|
+
* rejected_proposals — lifetime proposals rejected by the author.
|
|
170
|
+
* epoch_curations — confirmed proposals in the current reward epoch.
|
|
171
|
+
* Feeds the sentinel reward score; reset each epoch.
|
|
172
|
+
* Incremented on CONFIRM (success), not on propose, so
|
|
173
|
+
* it cannot be farmed by spamming unconfirmed proposals.
|
|
174
|
+
*/
|
|
175
|
+
total_proposals?: string;
|
|
176
|
+
confirmed_proposals?: string;
|
|
177
|
+
rejected_proposals?: string;
|
|
178
|
+
epoch_curations?: string;
|
|
179
|
+
/**
|
|
180
|
+
* Rolling-window accuracy ring. Fixed length SentinelAccuracyRingSize once
|
|
181
|
+
* first written; slot e % C holds reward-epoch e's resolved-appeal tally.
|
|
182
|
+
* x/rep's reward distribution computes accuracy over the last
|
|
183
|
+
* SentinelAccuracyWindowEpochs slots from this ring. The lifetime
|
|
184
|
+
* upheld_*\/overturned_* counters above are retained for display/audit and are
|
|
185
|
+
* NO LONGER used for reward accuracy. Append-only field — empty on records
|
|
186
|
+
* written before this field existed (no migration needed; an empty ring reads
|
|
187
|
+
* as zero decided appeals).
|
|
188
|
+
*/
|
|
189
|
+
accuracy_window?: AccuracyEpochBucketAmino[];
|
|
86
190
|
}
|
|
87
191
|
export interface SentinelActivityAminoMsg {
|
|
88
192
|
type: "/sparkdream.forum.v1.SentinelActivity";
|
|
89
193
|
value: SentinelActivityAmino;
|
|
90
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* AccuracyEpochBucket holds one reward-epoch's resolved-appeal tally for a
|
|
197
|
+
* sentinel. Stored in a fixed-size ring on SentinelActivity (slot index =
|
|
198
|
+
* epoch % SentinelAccuracyRingSize); the `epoch` stamp disambiguates a live
|
|
199
|
+
* slot from a stale one left behind by an inactive epoch.
|
|
200
|
+
* @name AccuracyEpochBucket
|
|
201
|
+
* @package sparkdream.forum.v1
|
|
202
|
+
* @see proto type: sparkdream.forum.v1.AccuracyEpochBucket
|
|
203
|
+
*/
|
|
204
|
+
export declare const AccuracyEpochBucket: {
|
|
205
|
+
typeUrl: string;
|
|
206
|
+
encode(message: AccuracyEpochBucket, writer?: BinaryWriter): BinaryWriter;
|
|
207
|
+
decode(input: BinaryReader | Uint8Array, length?: number): AccuracyEpochBucket;
|
|
208
|
+
fromPartial(object: DeepPartial<AccuracyEpochBucket>): AccuracyEpochBucket;
|
|
209
|
+
fromAmino(object: AccuracyEpochBucketAmino): AccuracyEpochBucket;
|
|
210
|
+
toAmino(message: AccuracyEpochBucket): AccuracyEpochBucketAmino;
|
|
211
|
+
fromAminoMsg(object: AccuracyEpochBucketAminoMsg): AccuracyEpochBucket;
|
|
212
|
+
fromProtoMsg(message: AccuracyEpochBucketProtoMsg): AccuracyEpochBucket;
|
|
213
|
+
toProto(message: AccuracyEpochBucket): Uint8Array;
|
|
214
|
+
toProtoMsg(message: AccuracyEpochBucket): AccuracyEpochBucketProtoMsg;
|
|
215
|
+
};
|
|
91
216
|
/**
|
|
92
217
|
* SentinelActivity holds forum-specific action counters and local cooldowns
|
|
93
218
|
* for a sentinel. The accountability record (bond, bond status, activity
|
|
@@ -1,8 +1,104 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SentinelActivity = void 0;
|
|
3
|
+
exports.SentinelActivity = exports.AccuracyEpochBucket = void 0;
|
|
4
4
|
//@ts-nocheck
|
|
5
5
|
const binary_1 = require("../../../binary");
|
|
6
|
+
function createBaseAccuracyEpochBucket() {
|
|
7
|
+
return {
|
|
8
|
+
epoch: BigInt(0),
|
|
9
|
+
upheld: BigInt(0),
|
|
10
|
+
overturned: BigInt(0)
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* AccuracyEpochBucket holds one reward-epoch's resolved-appeal tally for a
|
|
15
|
+
* sentinel. Stored in a fixed-size ring on SentinelActivity (slot index =
|
|
16
|
+
* epoch % SentinelAccuracyRingSize); the `epoch` stamp disambiguates a live
|
|
17
|
+
* slot from a stale one left behind by an inactive epoch.
|
|
18
|
+
* @name AccuracyEpochBucket
|
|
19
|
+
* @package sparkdream.forum.v1
|
|
20
|
+
* @see proto type: sparkdream.forum.v1.AccuracyEpochBucket
|
|
21
|
+
*/
|
|
22
|
+
exports.AccuracyEpochBucket = {
|
|
23
|
+
typeUrl: "/sparkdream.forum.v1.AccuracyEpochBucket",
|
|
24
|
+
encode(message, writer = binary_1.BinaryWriter.create()) {
|
|
25
|
+
if (message.epoch !== BigInt(0)) {
|
|
26
|
+
writer.uint32(8).uint64(message.epoch);
|
|
27
|
+
}
|
|
28
|
+
if (message.upheld !== BigInt(0)) {
|
|
29
|
+
writer.uint32(16).uint64(message.upheld);
|
|
30
|
+
}
|
|
31
|
+
if (message.overturned !== BigInt(0)) {
|
|
32
|
+
writer.uint32(24).uint64(message.overturned);
|
|
33
|
+
}
|
|
34
|
+
return writer;
|
|
35
|
+
},
|
|
36
|
+
decode(input, length) {
|
|
37
|
+
const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);
|
|
38
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
39
|
+
const message = createBaseAccuracyEpochBucket();
|
|
40
|
+
while (reader.pos < end) {
|
|
41
|
+
const tag = reader.uint32();
|
|
42
|
+
switch (tag >>> 3) {
|
|
43
|
+
case 1:
|
|
44
|
+
message.epoch = reader.uint64();
|
|
45
|
+
break;
|
|
46
|
+
case 2:
|
|
47
|
+
message.upheld = reader.uint64();
|
|
48
|
+
break;
|
|
49
|
+
case 3:
|
|
50
|
+
message.overturned = reader.uint64();
|
|
51
|
+
break;
|
|
52
|
+
default:
|
|
53
|
+
reader.skipType(tag & 7);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return message;
|
|
58
|
+
},
|
|
59
|
+
fromPartial(object) {
|
|
60
|
+
const message = createBaseAccuracyEpochBucket();
|
|
61
|
+
message.epoch = object.epoch !== undefined && object.epoch !== null ? BigInt(object.epoch.toString()) : BigInt(0);
|
|
62
|
+
message.upheld = object.upheld !== undefined && object.upheld !== null ? BigInt(object.upheld.toString()) : BigInt(0);
|
|
63
|
+
message.overturned = object.overturned !== undefined && object.overturned !== null ? BigInt(object.overturned.toString()) : BigInt(0);
|
|
64
|
+
return message;
|
|
65
|
+
},
|
|
66
|
+
fromAmino(object) {
|
|
67
|
+
const message = createBaseAccuracyEpochBucket();
|
|
68
|
+
if (object.epoch !== undefined && object.epoch !== null) {
|
|
69
|
+
message.epoch = BigInt(object.epoch);
|
|
70
|
+
}
|
|
71
|
+
if (object.upheld !== undefined && object.upheld !== null) {
|
|
72
|
+
message.upheld = BigInt(object.upheld);
|
|
73
|
+
}
|
|
74
|
+
if (object.overturned !== undefined && object.overturned !== null) {
|
|
75
|
+
message.overturned = BigInt(object.overturned);
|
|
76
|
+
}
|
|
77
|
+
return message;
|
|
78
|
+
},
|
|
79
|
+
toAmino(message) {
|
|
80
|
+
const obj = {};
|
|
81
|
+
obj.epoch = message.epoch !== BigInt(0) ? message.epoch?.toString() : undefined;
|
|
82
|
+
obj.upheld = message.upheld !== BigInt(0) ? message.upheld?.toString() : undefined;
|
|
83
|
+
obj.overturned = message.overturned !== BigInt(0) ? message.overturned?.toString() : undefined;
|
|
84
|
+
return obj;
|
|
85
|
+
},
|
|
86
|
+
fromAminoMsg(object) {
|
|
87
|
+
return exports.AccuracyEpochBucket.fromAmino(object.value);
|
|
88
|
+
},
|
|
89
|
+
fromProtoMsg(message) {
|
|
90
|
+
return exports.AccuracyEpochBucket.decode(message.value);
|
|
91
|
+
},
|
|
92
|
+
toProto(message) {
|
|
93
|
+
return exports.AccuracyEpochBucket.encode(message).finish();
|
|
94
|
+
},
|
|
95
|
+
toProtoMsg(message) {
|
|
96
|
+
return {
|
|
97
|
+
typeUrl: "/sparkdream.forum.v1.AccuracyEpochBucket",
|
|
98
|
+
value: exports.AccuracyEpochBucket.encode(message).finish()
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
};
|
|
6
102
|
function createBaseSentinelActivity() {
|
|
7
103
|
return {
|
|
8
104
|
address: "",
|
|
@@ -28,7 +124,12 @@ function createBaseSentinelActivity() {
|
|
|
28
124
|
totalPins: BigInt(0),
|
|
29
125
|
upheldPins: BigInt(0),
|
|
30
126
|
overturnedPins: BigInt(0),
|
|
31
|
-
epochPins: BigInt(0)
|
|
127
|
+
epochPins: BigInt(0),
|
|
128
|
+
totalProposals: BigInt(0),
|
|
129
|
+
confirmedProposals: BigInt(0),
|
|
130
|
+
rejectedProposals: BigInt(0),
|
|
131
|
+
epochCurations: BigInt(0),
|
|
132
|
+
accuracyWindow: []
|
|
32
133
|
};
|
|
33
134
|
}
|
|
34
135
|
/**
|
|
@@ -114,6 +215,21 @@ exports.SentinelActivity = {
|
|
|
114
215
|
if (message.epochPins !== BigInt(0)) {
|
|
115
216
|
writer.uint32(192).uint64(message.epochPins);
|
|
116
217
|
}
|
|
218
|
+
if (message.totalProposals !== BigInt(0)) {
|
|
219
|
+
writer.uint32(200).uint64(message.totalProposals);
|
|
220
|
+
}
|
|
221
|
+
if (message.confirmedProposals !== BigInt(0)) {
|
|
222
|
+
writer.uint32(208).uint64(message.confirmedProposals);
|
|
223
|
+
}
|
|
224
|
+
if (message.rejectedProposals !== BigInt(0)) {
|
|
225
|
+
writer.uint32(216).uint64(message.rejectedProposals);
|
|
226
|
+
}
|
|
227
|
+
if (message.epochCurations !== BigInt(0)) {
|
|
228
|
+
writer.uint32(224).uint64(message.epochCurations);
|
|
229
|
+
}
|
|
230
|
+
for (const v of message.accuracyWindow) {
|
|
231
|
+
exports.AccuracyEpochBucket.encode(v, writer.uint32(234).fork()).ldelim();
|
|
232
|
+
}
|
|
117
233
|
return writer;
|
|
118
234
|
},
|
|
119
235
|
decode(input, length) {
|
|
@@ -195,6 +311,21 @@ exports.SentinelActivity = {
|
|
|
195
311
|
case 24:
|
|
196
312
|
message.epochPins = reader.uint64();
|
|
197
313
|
break;
|
|
314
|
+
case 25:
|
|
315
|
+
message.totalProposals = reader.uint64();
|
|
316
|
+
break;
|
|
317
|
+
case 26:
|
|
318
|
+
message.confirmedProposals = reader.uint64();
|
|
319
|
+
break;
|
|
320
|
+
case 27:
|
|
321
|
+
message.rejectedProposals = reader.uint64();
|
|
322
|
+
break;
|
|
323
|
+
case 28:
|
|
324
|
+
message.epochCurations = reader.uint64();
|
|
325
|
+
break;
|
|
326
|
+
case 29:
|
|
327
|
+
message.accuracyWindow.push(exports.AccuracyEpochBucket.decode(reader, reader.uint32()));
|
|
328
|
+
break;
|
|
198
329
|
default:
|
|
199
330
|
reader.skipType(tag & 7);
|
|
200
331
|
break;
|
|
@@ -228,6 +359,11 @@ exports.SentinelActivity = {
|
|
|
228
359
|
message.upheldPins = object.upheldPins !== undefined && object.upheldPins !== null ? BigInt(object.upheldPins.toString()) : BigInt(0);
|
|
229
360
|
message.overturnedPins = object.overturnedPins !== undefined && object.overturnedPins !== null ? BigInt(object.overturnedPins.toString()) : BigInt(0);
|
|
230
361
|
message.epochPins = object.epochPins !== undefined && object.epochPins !== null ? BigInt(object.epochPins.toString()) : BigInt(0);
|
|
362
|
+
message.totalProposals = object.totalProposals !== undefined && object.totalProposals !== null ? BigInt(object.totalProposals.toString()) : BigInt(0);
|
|
363
|
+
message.confirmedProposals = object.confirmedProposals !== undefined && object.confirmedProposals !== null ? BigInt(object.confirmedProposals.toString()) : BigInt(0);
|
|
364
|
+
message.rejectedProposals = object.rejectedProposals !== undefined && object.rejectedProposals !== null ? BigInt(object.rejectedProposals.toString()) : BigInt(0);
|
|
365
|
+
message.epochCurations = object.epochCurations !== undefined && object.epochCurations !== null ? BigInt(object.epochCurations.toString()) : BigInt(0);
|
|
366
|
+
message.accuracyWindow = object.accuracyWindow?.map(e => exports.AccuracyEpochBucket.fromPartial(e)) || [];
|
|
231
367
|
return message;
|
|
232
368
|
},
|
|
233
369
|
fromAmino(object) {
|
|
@@ -304,6 +440,19 @@ exports.SentinelActivity = {
|
|
|
304
440
|
if (object.epoch_pins !== undefined && object.epoch_pins !== null) {
|
|
305
441
|
message.epochPins = BigInt(object.epoch_pins);
|
|
306
442
|
}
|
|
443
|
+
if (object.total_proposals !== undefined && object.total_proposals !== null) {
|
|
444
|
+
message.totalProposals = BigInt(object.total_proposals);
|
|
445
|
+
}
|
|
446
|
+
if (object.confirmed_proposals !== undefined && object.confirmed_proposals !== null) {
|
|
447
|
+
message.confirmedProposals = BigInt(object.confirmed_proposals);
|
|
448
|
+
}
|
|
449
|
+
if (object.rejected_proposals !== undefined && object.rejected_proposals !== null) {
|
|
450
|
+
message.rejectedProposals = BigInt(object.rejected_proposals);
|
|
451
|
+
}
|
|
452
|
+
if (object.epoch_curations !== undefined && object.epoch_curations !== null) {
|
|
453
|
+
message.epochCurations = BigInt(object.epoch_curations);
|
|
454
|
+
}
|
|
455
|
+
message.accuracyWindow = object.accuracy_window?.map(e => exports.AccuracyEpochBucket.fromAmino(e)) || [];
|
|
307
456
|
return message;
|
|
308
457
|
},
|
|
309
458
|
toAmino(message) {
|
|
@@ -332,6 +481,16 @@ exports.SentinelActivity = {
|
|
|
332
481
|
obj.upheld_pins = message.upheldPins !== BigInt(0) ? message.upheldPins?.toString() : undefined;
|
|
333
482
|
obj.overturned_pins = message.overturnedPins !== BigInt(0) ? message.overturnedPins?.toString() : undefined;
|
|
334
483
|
obj.epoch_pins = message.epochPins !== BigInt(0) ? message.epochPins?.toString() : undefined;
|
|
484
|
+
obj.total_proposals = message.totalProposals !== BigInt(0) ? message.totalProposals?.toString() : undefined;
|
|
485
|
+
obj.confirmed_proposals = message.confirmedProposals !== BigInt(0) ? message.confirmedProposals?.toString() : undefined;
|
|
486
|
+
obj.rejected_proposals = message.rejectedProposals !== BigInt(0) ? message.rejectedProposals?.toString() : undefined;
|
|
487
|
+
obj.epoch_curations = message.epochCurations !== BigInt(0) ? message.epochCurations?.toString() : undefined;
|
|
488
|
+
if (message.accuracyWindow) {
|
|
489
|
+
obj.accuracy_window = message.accuracyWindow.map(e => e ? exports.AccuracyEpochBucket.toAmino(e) : undefined);
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
obj.accuracy_window = message.accuracyWindow;
|
|
493
|
+
}
|
|
335
494
|
return obj;
|
|
336
495
|
},
|
|
337
496
|
fromAminoMsg(object) {
|
|
@@ -15,6 +15,22 @@ export interface ThreadMetadata {
|
|
|
15
15
|
proposedReplyId: bigint;
|
|
16
16
|
proposedBy: string;
|
|
17
17
|
proposedAt: bigint;
|
|
18
|
+
/**
|
|
19
|
+
* proposal_extended is set true once the auto-confirm EndBlocker has granted
|
|
20
|
+
* the one-time inactivity extension to a pending proposal (author appeared
|
|
21
|
+
* inactive when the timeout first elapsed). Prevents an indefinite extension
|
|
22
|
+
* loop — the next timeout auto-confirms regardless. Cleared when the proposal
|
|
23
|
+
* resolves (confirm/reject/auto-confirm).
|
|
24
|
+
*/
|
|
25
|
+
proposalExtended: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* proposal_fire_at is the exact ProposalAutoConfirmQueue key (unix seconds)
|
|
28
|
+
* under which the current pending proposal is enqueued. Stored so the manual
|
|
29
|
+
* confirm/reject paths can remove the precise queue entry, and so the
|
|
30
|
+
* EndBlocker can detect-and-drop stale entries (a key whose fire_at no longer
|
|
31
|
+
* matches the live proposal). 0 = no pending proposal.
|
|
32
|
+
*/
|
|
33
|
+
proposalFireAt: bigint;
|
|
18
34
|
pinnedReplyIds: bigint[];
|
|
19
35
|
pinnedRecords: PinnedReplyRecord[];
|
|
20
36
|
}
|
|
@@ -36,6 +52,22 @@ export interface ThreadMetadataAmino {
|
|
|
36
52
|
proposed_reply_id?: string;
|
|
37
53
|
proposed_by?: string;
|
|
38
54
|
proposed_at?: string;
|
|
55
|
+
/**
|
|
56
|
+
* proposal_extended is set true once the auto-confirm EndBlocker has granted
|
|
57
|
+
* the one-time inactivity extension to a pending proposal (author appeared
|
|
58
|
+
* inactive when the timeout first elapsed). Prevents an indefinite extension
|
|
59
|
+
* loop — the next timeout auto-confirms regardless. Cleared when the proposal
|
|
60
|
+
* resolves (confirm/reject/auto-confirm).
|
|
61
|
+
*/
|
|
62
|
+
proposal_extended?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* proposal_fire_at is the exact ProposalAutoConfirmQueue key (unix seconds)
|
|
65
|
+
* under which the current pending proposal is enqueued. Stored so the manual
|
|
66
|
+
* confirm/reject paths can remove the precise queue entry, and so the
|
|
67
|
+
* EndBlocker can detect-and-drop stale entries (a key whose fire_at no longer
|
|
68
|
+
* matches the live proposal). 0 = no pending proposal.
|
|
69
|
+
*/
|
|
70
|
+
proposal_fire_at?: string;
|
|
39
71
|
pinned_reply_ids?: string[];
|
|
40
72
|
pinned_records?: PinnedReplyRecordAmino[];
|
|
41
73
|
}
|
|
@@ -13,6 +13,8 @@ function createBaseThreadMetadata() {
|
|
|
13
13
|
proposedReplyId: BigInt(0),
|
|
14
14
|
proposedBy: "",
|
|
15
15
|
proposedAt: BigInt(0),
|
|
16
|
+
proposalExtended: false,
|
|
17
|
+
proposalFireAt: BigInt(0),
|
|
16
18
|
pinnedReplyIds: [],
|
|
17
19
|
pinnedRecords: []
|
|
18
20
|
};
|
|
@@ -47,6 +49,12 @@ exports.ThreadMetadata = {
|
|
|
47
49
|
if (message.proposedAt !== BigInt(0)) {
|
|
48
50
|
writer.uint32(56).int64(message.proposedAt);
|
|
49
51
|
}
|
|
52
|
+
if (message.proposalExtended === true) {
|
|
53
|
+
writer.uint32(64).bool(message.proposalExtended);
|
|
54
|
+
}
|
|
55
|
+
if (message.proposalFireAt !== BigInt(0)) {
|
|
56
|
+
writer.uint32(72).int64(message.proposalFireAt);
|
|
57
|
+
}
|
|
50
58
|
writer.uint32(82).fork();
|
|
51
59
|
for (const v of message.pinnedReplyIds) {
|
|
52
60
|
writer.uint64(v);
|
|
@@ -85,6 +93,12 @@ exports.ThreadMetadata = {
|
|
|
85
93
|
case 7:
|
|
86
94
|
message.proposedAt = reader.int64();
|
|
87
95
|
break;
|
|
96
|
+
case 8:
|
|
97
|
+
message.proposalExtended = reader.bool();
|
|
98
|
+
break;
|
|
99
|
+
case 9:
|
|
100
|
+
message.proposalFireAt = reader.int64();
|
|
101
|
+
break;
|
|
88
102
|
case 10:
|
|
89
103
|
if ((tag & 7) === 2) {
|
|
90
104
|
const end2 = reader.uint32() + reader.pos;
|
|
@@ -115,6 +129,8 @@ exports.ThreadMetadata = {
|
|
|
115
129
|
message.proposedReplyId = object.proposedReplyId !== undefined && object.proposedReplyId !== null ? BigInt(object.proposedReplyId.toString()) : BigInt(0);
|
|
116
130
|
message.proposedBy = object.proposedBy ?? "";
|
|
117
131
|
message.proposedAt = object.proposedAt !== undefined && object.proposedAt !== null ? BigInt(object.proposedAt.toString()) : BigInt(0);
|
|
132
|
+
message.proposalExtended = object.proposalExtended ?? false;
|
|
133
|
+
message.proposalFireAt = object.proposalFireAt !== undefined && object.proposalFireAt !== null ? BigInt(object.proposalFireAt.toString()) : BigInt(0);
|
|
118
134
|
message.pinnedReplyIds = object.pinnedReplyIds?.map(e => BigInt(e.toString())) || [];
|
|
119
135
|
message.pinnedRecords = object.pinnedRecords?.map(e => types_1.PinnedReplyRecord.fromPartial(e)) || [];
|
|
120
136
|
return message;
|
|
@@ -142,6 +158,12 @@ exports.ThreadMetadata = {
|
|
|
142
158
|
if (object.proposed_at !== undefined && object.proposed_at !== null) {
|
|
143
159
|
message.proposedAt = BigInt(object.proposed_at);
|
|
144
160
|
}
|
|
161
|
+
if (object.proposal_extended !== undefined && object.proposal_extended !== null) {
|
|
162
|
+
message.proposalExtended = object.proposal_extended;
|
|
163
|
+
}
|
|
164
|
+
if (object.proposal_fire_at !== undefined && object.proposal_fire_at !== null) {
|
|
165
|
+
message.proposalFireAt = BigInt(object.proposal_fire_at);
|
|
166
|
+
}
|
|
145
167
|
message.pinnedReplyIds = object.pinned_reply_ids?.map(e => BigInt(e)) || [];
|
|
146
168
|
message.pinnedRecords = object.pinned_records?.map(e => types_1.PinnedReplyRecord.fromAmino(e)) || [];
|
|
147
169
|
return message;
|
|
@@ -155,6 +177,8 @@ exports.ThreadMetadata = {
|
|
|
155
177
|
obj.proposed_reply_id = message.proposedReplyId !== BigInt(0) ? message.proposedReplyId?.toString() : undefined;
|
|
156
178
|
obj.proposed_by = message.proposedBy === "" ? undefined : message.proposedBy;
|
|
157
179
|
obj.proposed_at = message.proposedAt !== BigInt(0) ? message.proposedAt?.toString() : undefined;
|
|
180
|
+
obj.proposal_extended = message.proposalExtended === false ? undefined : message.proposalExtended;
|
|
181
|
+
obj.proposal_fire_at = message.proposalFireAt !== BigInt(0) ? message.proposalFireAt?.toString() : undefined;
|
|
158
182
|
if (message.pinnedReplyIds) {
|
|
159
183
|
obj.pinned_reply_ids = message.pinnedReplyIds.map(e => e.toString());
|
|
160
184
|
}
|
|
@@ -335,6 +335,13 @@ export interface Params {
|
|
|
335
335
|
* Minimum appeal rate (appeals / actions) to qualify for a reward (default 0.05).
|
|
336
336
|
*/
|
|
337
337
|
minAppealRate: string;
|
|
338
|
+
/**
|
|
339
|
+
* Rolling window (in reward epochs) over which sentinel reward accuracy is
|
|
340
|
+
* measured. Recent overturns move the ratio; inactivity ages a sentinel out.
|
|
341
|
+
* Bounded 1 <= W <= MaxSentinelAccuracyWindowEpochs (== the forum
|
|
342
|
+
* SentinelAccuracyRingSize). Default 6.
|
|
343
|
+
*/
|
|
344
|
+
sentinelAccuracyWindowEpochs: bigint;
|
|
338
345
|
/**
|
|
339
346
|
* Per-member active work caps (anti-monopolization). 0 = unbounded.
|
|
340
347
|
*/
|
|
@@ -618,6 +625,13 @@ export interface ParamsAmino {
|
|
|
618
625
|
* Minimum appeal rate (appeals / actions) to qualify for a reward (default 0.05).
|
|
619
626
|
*/
|
|
620
627
|
min_appeal_rate?: string;
|
|
628
|
+
/**
|
|
629
|
+
* Rolling window (in reward epochs) over which sentinel reward accuracy is
|
|
630
|
+
* measured. Recent overturns move the ratio; inactivity ages a sentinel out.
|
|
631
|
+
* Bounded 1 <= W <= MaxSentinelAccuracyWindowEpochs (== the forum
|
|
632
|
+
* SentinelAccuracyRingSize). Default 6.
|
|
633
|
+
*/
|
|
634
|
+
sentinel_accuracy_window_epochs?: string;
|
|
621
635
|
/**
|
|
622
636
|
* Per-member active work caps (anti-monopolization). 0 = unbounded.
|
|
623
637
|
*/
|
|
@@ -830,6 +844,11 @@ export interface RepOperationalParams {
|
|
|
830
844
|
* Minimum appeal rate (appeals / actions) to qualify for a reward (default 0.05).
|
|
831
845
|
*/
|
|
832
846
|
minAppealRate: string;
|
|
847
|
+
/**
|
|
848
|
+
* Rolling window (in reward epochs) for sentinel reward accuracy (mirrors
|
|
849
|
+
* Params.sentinel_accuracy_window_epochs). Default 6.
|
|
850
|
+
*/
|
|
851
|
+
sentinelAccuracyWindowEpochs: bigint;
|
|
833
852
|
/**
|
|
834
853
|
* Per-member active work caps (mirrors Params.max_active_{initiatives,interims}_per_member). 0 = unbounded.
|
|
835
854
|
*/
|
|
@@ -1025,6 +1044,11 @@ export interface RepOperationalParamsAmino {
|
|
|
1025
1044
|
* Minimum appeal rate (appeals / actions) to qualify for a reward (default 0.05).
|
|
1026
1045
|
*/
|
|
1027
1046
|
min_appeal_rate?: string;
|
|
1047
|
+
/**
|
|
1048
|
+
* Rolling window (in reward epochs) for sentinel reward accuracy (mirrors
|
|
1049
|
+
* Params.sentinel_accuracy_window_epochs). Default 6.
|
|
1050
|
+
*/
|
|
1051
|
+
sentinel_accuracy_window_epochs?: string;
|
|
1028
1052
|
/**
|
|
1029
1053
|
* Per-member active work caps (mirrors Params.max_active_{initiatives,interims}_per_member). 0 = unbounded.
|
|
1030
1054
|
*/
|