@sparkdreamnft/sparkdreamjs 0.0.38 → 0.0.40
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/federation/v1/params.js +68 -92
- package/esm/sparkdream/federation/v1/types.js +5 -17
- package/esm/sparkdream/rep/v1/challenge.js +13 -2
- package/esm/sparkdream/rep/v1/genesis.js +362 -2
- package/esm/sparkdream/rep/v1/interim.js +58 -1
- package/esm/sparkdream/rep/v1/member.js +25 -1
- package/esm/sparkdream/rep/v1/params.js +193 -1
- package/esm/sparkdream/rep/v1/query.js +16 -16
- package/esm/sparkdream/rep/v1/tx.js +13 -1
- package/package.json +1 -1
- package/sparkdream/bundle.d.ts +28 -0
- package/sparkdream/federation/v1/params.d.ts +0 -4
- package/sparkdream/federation/v1/params.js +68 -92
- package/sparkdream/federation/v1/types.d.ts +0 -2
- package/sparkdream/federation/v1/types.js +5 -17
- package/sparkdream/rep/v1/challenge.d.ts +23 -0
- package/sparkdream/rep/v1/challenge.js +13 -2
- package/sparkdream/rep/v1/genesis.d.ts +170 -1
- package/sparkdream/rep/v1/genesis.js +362 -2
- package/sparkdream/rep/v1/interim.d.ts +32 -0
- package/sparkdream/rep/v1/interim.js +61 -2
- package/sparkdream/rep/v1/member.d.ts +54 -0
- package/sparkdream/rep/v1/member.js +25 -1
- package/sparkdream/rep/v1/params.d.ts +242 -0
- package/sparkdream/rep/v1/params.js +193 -1
- package/sparkdream/rep/v1/query.d.ts +26 -4
- package/sparkdream/rep/v1/query.js +16 -16
- package/sparkdream/rep/v1/tx.d.ts +13 -1
- package/sparkdream/rep/v1/tx.js +13 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Interim = exports.InterimStatusAmino = exports.InterimStatus = exports.InterimComplexityAmino = exports.InterimComplexity = exports.InterimTypeAmino = exports.InterimType = void 0;
|
|
3
|
+
exports.Interim = exports.InterimStatusAmino = exports.InterimStatus = exports.InterimComplexityAmino = exports.InterimComplexity = exports.InterimTypeAmino = exports.InterimType = exports.AdjudicationDecisionAmino = exports.AdjudicationDecision = void 0;
|
|
4
|
+
exports.adjudicationDecisionFromJSON = adjudicationDecisionFromJSON;
|
|
5
|
+
exports.adjudicationDecisionToJSON = adjudicationDecisionToJSON;
|
|
4
6
|
exports.interimTypeFromJSON = interimTypeFromJSON;
|
|
5
7
|
exports.interimTypeToJSON = interimTypeToJSON;
|
|
6
8
|
exports.interimComplexityFromJSON = interimComplexityFromJSON;
|
|
@@ -9,6 +11,51 @@ exports.interimStatusFromJSON = interimStatusFromJSON;
|
|
|
9
11
|
exports.interimStatusToJSON = interimStatusToJSON;
|
|
10
12
|
//@ts-nocheck
|
|
11
13
|
const binary_1 = require("../../../binary");
|
|
14
|
+
/**
|
|
15
|
+
* AdjudicationDecision is the Operations Committee's verdict on the challenge
|
|
16
|
+
* an ADJUDICATION interim was raised to settle — the terminal path for an
|
|
17
|
+
* inconclusive jury, and for challenges escalated when no jury could be seated.
|
|
18
|
+
*/
|
|
19
|
+
var AdjudicationDecision;
|
|
20
|
+
(function (AdjudicationDecision) {
|
|
21
|
+
AdjudicationDecision[AdjudicationDecision["ADJUDICATION_DECISION_UNSPECIFIED"] = 0] = "ADJUDICATION_DECISION_UNSPECIFIED";
|
|
22
|
+
/** ADJUDICATION_DECISION_UPHOLD - The challenge stands: the work failed. Resolves the challenge as UPHELD. */
|
|
23
|
+
AdjudicationDecision[AdjudicationDecision["ADJUDICATION_DECISION_UPHOLD"] = 1] = "ADJUDICATION_DECISION_UPHOLD";
|
|
24
|
+
/** ADJUDICATION_DECISION_REJECT - The challenge fails: the work stands. Resolves the challenge as REJECTED. */
|
|
25
|
+
AdjudicationDecision[AdjudicationDecision["ADJUDICATION_DECISION_REJECT"] = 2] = "ADJUDICATION_DECISION_REJECT";
|
|
26
|
+
AdjudicationDecision[AdjudicationDecision["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
27
|
+
})(AdjudicationDecision || (exports.AdjudicationDecision = AdjudicationDecision = {}));
|
|
28
|
+
exports.AdjudicationDecisionAmino = AdjudicationDecision;
|
|
29
|
+
function adjudicationDecisionFromJSON(object) {
|
|
30
|
+
switch (object) {
|
|
31
|
+
case 0:
|
|
32
|
+
case "ADJUDICATION_DECISION_UNSPECIFIED":
|
|
33
|
+
return AdjudicationDecision.ADJUDICATION_DECISION_UNSPECIFIED;
|
|
34
|
+
case 1:
|
|
35
|
+
case "ADJUDICATION_DECISION_UPHOLD":
|
|
36
|
+
return AdjudicationDecision.ADJUDICATION_DECISION_UPHOLD;
|
|
37
|
+
case 2:
|
|
38
|
+
case "ADJUDICATION_DECISION_REJECT":
|
|
39
|
+
return AdjudicationDecision.ADJUDICATION_DECISION_REJECT;
|
|
40
|
+
case -1:
|
|
41
|
+
case "UNRECOGNIZED":
|
|
42
|
+
default:
|
|
43
|
+
return AdjudicationDecision.UNRECOGNIZED;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function adjudicationDecisionToJSON(object) {
|
|
47
|
+
switch (object) {
|
|
48
|
+
case AdjudicationDecision.ADJUDICATION_DECISION_UNSPECIFIED:
|
|
49
|
+
return "ADJUDICATION_DECISION_UNSPECIFIED";
|
|
50
|
+
case AdjudicationDecision.ADJUDICATION_DECISION_UPHOLD:
|
|
51
|
+
return "ADJUDICATION_DECISION_UPHOLD";
|
|
52
|
+
case AdjudicationDecision.ADJUDICATION_DECISION_REJECT:
|
|
53
|
+
return "ADJUDICATION_DECISION_REJECT";
|
|
54
|
+
case AdjudicationDecision.UNRECOGNIZED:
|
|
55
|
+
default:
|
|
56
|
+
return "UNRECOGNIZED";
|
|
57
|
+
}
|
|
58
|
+
}
|
|
12
59
|
var InterimType;
|
|
13
60
|
(function (InterimType) {
|
|
14
61
|
/** INTERIM_TYPE_JURY_DUTY - Jury and dispute resolution */
|
|
@@ -231,7 +278,8 @@ function createBaseInterim() {
|
|
|
231
278
|
createdAt: BigInt(0),
|
|
232
279
|
completedAt: BigInt(0),
|
|
233
280
|
status: 0,
|
|
234
|
-
completionNotes: ""
|
|
281
|
+
completionNotes: "",
|
|
282
|
+
decision: 0
|
|
235
283
|
};
|
|
236
284
|
}
|
|
237
285
|
/**
|
|
@@ -282,6 +330,9 @@ exports.Interim = {
|
|
|
282
330
|
if (message.completionNotes !== "") {
|
|
283
331
|
writer.uint32(106).string(message.completionNotes);
|
|
284
332
|
}
|
|
333
|
+
if (message.decision !== 0) {
|
|
334
|
+
writer.uint32(112).int32(message.decision);
|
|
335
|
+
}
|
|
285
336
|
return writer;
|
|
286
337
|
},
|
|
287
338
|
decode(input, length) {
|
|
@@ -330,6 +381,9 @@ exports.Interim = {
|
|
|
330
381
|
case 13:
|
|
331
382
|
message.completionNotes = reader.string();
|
|
332
383
|
break;
|
|
384
|
+
case 14:
|
|
385
|
+
message.decision = reader.int32();
|
|
386
|
+
break;
|
|
333
387
|
default:
|
|
334
388
|
reader.skipType(tag & 7);
|
|
335
389
|
break;
|
|
@@ -352,6 +406,7 @@ exports.Interim = {
|
|
|
352
406
|
message.completedAt = object.completedAt !== undefined && object.completedAt !== null ? BigInt(object.completedAt.toString()) : BigInt(0);
|
|
353
407
|
message.status = object.status ?? 0;
|
|
354
408
|
message.completionNotes = object.completionNotes ?? "";
|
|
409
|
+
message.decision = object.decision ?? 0;
|
|
355
410
|
return message;
|
|
356
411
|
},
|
|
357
412
|
fromAmino(object) {
|
|
@@ -393,6 +448,9 @@ exports.Interim = {
|
|
|
393
448
|
if (object.completion_notes !== undefined && object.completion_notes !== null) {
|
|
394
449
|
message.completionNotes = object.completion_notes;
|
|
395
450
|
}
|
|
451
|
+
if (object.decision !== undefined && object.decision !== null) {
|
|
452
|
+
message.decision = object.decision;
|
|
453
|
+
}
|
|
396
454
|
return message;
|
|
397
455
|
},
|
|
398
456
|
toAmino(message) {
|
|
@@ -415,6 +473,7 @@ exports.Interim = {
|
|
|
415
473
|
obj.completed_at = message.completedAt !== BigInt(0) ? message.completedAt?.toString() : undefined;
|
|
416
474
|
obj.status = message.status === 0 ? undefined : message.status;
|
|
417
475
|
obj.completion_notes = message.completionNotes === "" ? undefined : message.completionNotes;
|
|
476
|
+
obj.decision = message.decision === 0 ? undefined : message.decision;
|
|
418
477
|
return obj;
|
|
419
478
|
},
|
|
420
479
|
fromAminoMsg(object) {
|
|
@@ -273,6 +273,33 @@ export interface Member {
|
|
|
273
273
|
lifetimeForumRepPerTag: {
|
|
274
274
|
[key: string]: string;
|
|
275
275
|
};
|
|
276
|
+
/**
|
|
277
|
+
* Block height at which the member joined. This is the height-domain
|
|
278
|
+
* twin of joined_at (a unix timestamp): the new-member decay grace
|
|
279
|
+
* window is denominated in epochs — height / epoch_blocks — so it must
|
|
280
|
+
* be measured against a height, not a timestamp. Dividing the unix
|
|
281
|
+
* timestamp by epoch_blocks produced an astronomically large "join
|
|
282
|
+
* epoch", a deeply negative member age, and a grace window that never
|
|
283
|
+
* expired for invited members (genesis-seeded members with joined_at=0
|
|
284
|
+
* were unaffected). Members restored from genesis written before this
|
|
285
|
+
* field carry 0, which reads as "joined at genesis" — they exit grace
|
|
286
|
+
* after NewMemberDecayGraceEpochs epochs, the same behaviour
|
|
287
|
+
* genesis-seeded members have always had.
|
|
288
|
+
*/
|
|
289
|
+
joinedAtHeight: bigint;
|
|
290
|
+
/**
|
|
291
|
+
* Aggregate DREAM this member currently holds in content-conviction stakes
|
|
292
|
+
* across ALL content items (blog, forum, collection). Backs the per-member
|
|
293
|
+
* max_total_content_stake_per_member cap: the per-item cap only sets the
|
|
294
|
+
* granularity of parking DREAM here, so the aggregate is what bounds the
|
|
295
|
+
* total. (Content stakes earn no DREAM but do decay.) Maintained
|
|
296
|
+
* by updateStakePoolTotals — the single choke point for stake-amount
|
|
297
|
+
* mutations — and recomputed by ReconcileStakePoolTotals on genesis import.
|
|
298
|
+
* Author bonds are not counted here; they are slashable escrow with their
|
|
299
|
+
* own per-item cap. Nil on records written before this field existed;
|
|
300
|
+
* readers must treat nil as zero.
|
|
301
|
+
*/
|
|
302
|
+
contentStakedDream: string;
|
|
276
303
|
}
|
|
277
304
|
export interface MemberProtoMsg {
|
|
278
305
|
typeUrl: "/sparkdream.rep.v1.Member";
|
|
@@ -401,6 +428,33 @@ export interface MemberAmino {
|
|
|
401
428
|
lifetime_forum_rep_per_tag?: {
|
|
402
429
|
[key: string]: string;
|
|
403
430
|
};
|
|
431
|
+
/**
|
|
432
|
+
* Block height at which the member joined. This is the height-domain
|
|
433
|
+
* twin of joined_at (a unix timestamp): the new-member decay grace
|
|
434
|
+
* window is denominated in epochs — height / epoch_blocks — so it must
|
|
435
|
+
* be measured against a height, not a timestamp. Dividing the unix
|
|
436
|
+
* timestamp by epoch_blocks produced an astronomically large "join
|
|
437
|
+
* epoch", a deeply negative member age, and a grace window that never
|
|
438
|
+
* expired for invited members (genesis-seeded members with joined_at=0
|
|
439
|
+
* were unaffected). Members restored from genesis written before this
|
|
440
|
+
* field carry 0, which reads as "joined at genesis" — they exit grace
|
|
441
|
+
* after NewMemberDecayGraceEpochs epochs, the same behaviour
|
|
442
|
+
* genesis-seeded members have always had.
|
|
443
|
+
*/
|
|
444
|
+
joined_at_height?: string;
|
|
445
|
+
/**
|
|
446
|
+
* Aggregate DREAM this member currently holds in content-conviction stakes
|
|
447
|
+
* across ALL content items (blog, forum, collection). Backs the per-member
|
|
448
|
+
* max_total_content_stake_per_member cap: the per-item cap only sets the
|
|
449
|
+
* granularity of parking DREAM here, so the aggregate is what bounds the
|
|
450
|
+
* total. (Content stakes earn no DREAM but do decay.) Maintained
|
|
451
|
+
* by updateStakePoolTotals — the single choke point for stake-amount
|
|
452
|
+
* mutations — and recomputed by ReconcileStakePoolTotals on genesis import.
|
|
453
|
+
* Author bonds are not counted here; they are slashable escrow with their
|
|
454
|
+
* own per-item cap. Nil on records written before this field existed;
|
|
455
|
+
* readers must treat nil as zero.
|
|
456
|
+
*/
|
|
457
|
+
content_staked_dream?: string;
|
|
404
458
|
}
|
|
405
459
|
export interface MemberAminoMsg {
|
|
406
460
|
type: "/sparkdream.rep.v1.Member";
|
|
@@ -494,7 +494,9 @@ function createBaseMember() {
|
|
|
494
494
|
epochSalvations: 0,
|
|
495
495
|
lastSalvationEpoch: BigInt(0),
|
|
496
496
|
forumRepPerTag: {},
|
|
497
|
-
lifetimeForumRepPerTag: {}
|
|
497
|
+
lifetimeForumRepPerTag: {},
|
|
498
|
+
joinedAtHeight: BigInt(0),
|
|
499
|
+
contentStakedDream: ""
|
|
498
500
|
};
|
|
499
501
|
}
|
|
500
502
|
/**
|
|
@@ -617,6 +619,12 @@ exports.Member = {
|
|
|
617
619
|
value
|
|
618
620
|
}, writer.uint32(258).fork()).ldelim();
|
|
619
621
|
});
|
|
622
|
+
if (message.joinedAtHeight !== BigInt(0)) {
|
|
623
|
+
writer.uint32(264).int64(message.joinedAtHeight);
|
|
624
|
+
}
|
|
625
|
+
if (message.contentStakedDream !== "") {
|
|
626
|
+
writer.uint32(274).string(message.contentStakedDream);
|
|
627
|
+
}
|
|
620
628
|
return writer;
|
|
621
629
|
},
|
|
622
630
|
decode(input, length) {
|
|
@@ -737,6 +745,12 @@ exports.Member = {
|
|
|
737
745
|
message.lifetimeForumRepPerTag[entry32.key] = entry32.value;
|
|
738
746
|
}
|
|
739
747
|
break;
|
|
748
|
+
case 33:
|
|
749
|
+
message.joinedAtHeight = reader.int64();
|
|
750
|
+
break;
|
|
751
|
+
case 34:
|
|
752
|
+
message.contentStakedDream = reader.string();
|
|
753
|
+
break;
|
|
740
754
|
default:
|
|
741
755
|
reader.skipType(tag & 7);
|
|
742
756
|
break;
|
|
@@ -803,6 +817,8 @@ exports.Member = {
|
|
|
803
817
|
}
|
|
804
818
|
return acc;
|
|
805
819
|
}, {});
|
|
820
|
+
message.joinedAtHeight = object.joinedAtHeight !== undefined && object.joinedAtHeight !== null ? BigInt(object.joinedAtHeight.toString()) : BigInt(0);
|
|
821
|
+
message.contentStakedDream = object.contentStakedDream ?? "";
|
|
806
822
|
return message;
|
|
807
823
|
},
|
|
808
824
|
fromAmino(object) {
|
|
@@ -916,6 +932,12 @@ exports.Member = {
|
|
|
916
932
|
}
|
|
917
933
|
return acc;
|
|
918
934
|
}, {});
|
|
935
|
+
if (object.joined_at_height !== undefined && object.joined_at_height !== null) {
|
|
936
|
+
message.joinedAtHeight = BigInt(object.joined_at_height);
|
|
937
|
+
}
|
|
938
|
+
if (object.content_staked_dream !== undefined && object.content_staked_dream !== null) {
|
|
939
|
+
message.contentStakedDream = object.content_staked_dream;
|
|
940
|
+
}
|
|
919
941
|
return message;
|
|
920
942
|
},
|
|
921
943
|
toAmino(message) {
|
|
@@ -982,6 +1004,8 @@ exports.Member = {
|
|
|
982
1004
|
obj.lifetime_forum_rep_per_tag[k] = v;
|
|
983
1005
|
});
|
|
984
1006
|
}
|
|
1007
|
+
obj.joined_at_height = message.joinedAtHeight !== BigInt(0) ? message.joinedAtHeight?.toString() : undefined;
|
|
1008
|
+
obj.content_staked_dream = message.contentStakedDream === "" ? undefined : message.contentStakedDream;
|
|
985
1009
|
return obj;
|
|
986
1010
|
},
|
|
987
1011
|
fromAminoMsg(object) {
|
|
@@ -246,6 +246,41 @@ export interface Params {
|
|
|
246
246
|
* Seasonal staking reward pool
|
|
247
247
|
*/
|
|
248
248
|
maxStakingRewardsPerSeason: string;
|
|
249
|
+
/**
|
|
250
|
+
* Ceiling on each epoch's reward slice, as a yield on the DREAM actually
|
|
251
|
+
* staked (default 0.0005 = 0.05% per epoch, 7.5% over a 150-epoch season
|
|
252
|
+
* gross, ~3.75% net of staked_decay_rate).
|
|
253
|
+
*
|
|
254
|
+
* The slice is otherwise remaining/remaining_epochs no matter how little is
|
|
255
|
+
* staked, so yield per staked DREAM diverges as the staked base shrinks and
|
|
256
|
+
* acc_per_share grows without bound: a chain with 1.47 DREAM staked hands the
|
|
257
|
+
* entire season budget to three dust stakes. Whatever this cap withholds
|
|
258
|
+
* stays in the pool rather than being distributed or dropped.
|
|
259
|
+
*/
|
|
260
|
+
stakingRewardYieldPerEpoch: string;
|
|
261
|
+
/**
|
|
262
|
+
* Share of the previous season's non-staking DREAM mints that funds this
|
|
263
|
+
* season's staking reward pool (default 0.05 = 5%), so emission tracks what
|
|
264
|
+
* the chain actually produced rather than the calendar.
|
|
265
|
+
*
|
|
266
|
+
* Staking rewards are excluded from the base. Counting them would let each
|
|
267
|
+
* season's pool inflate the next one's, compounding with nothing but the
|
|
268
|
+
* schedule cap below to stop it.
|
|
269
|
+
*/
|
|
270
|
+
stakingPoolMintShare: string;
|
|
271
|
+
/**
|
|
272
|
+
* Schedule ceiling on the seasonal pool:
|
|
273
|
+
*
|
|
274
|
+
* cap = staking_pool_cap_base * (season + 1) * staking_pool_cap_rate
|
|
275
|
+
*
|
|
276
|
+
* The base is the chain's initial DREAM supply (25,000 DREAM at genesis) and
|
|
277
|
+
* the rate defaults to 0.05, so the ceiling opens at 1,250 DREAM in season 0
|
|
278
|
+
* and widens by that much each season. It backstops the mint-share term above
|
|
279
|
+
* on a chain whose mint volume spikes; max_staking_rewards_per_season remains
|
|
280
|
+
* the absolute ceiling over both.
|
|
281
|
+
*/
|
|
282
|
+
stakingPoolCapBase: string;
|
|
283
|
+
stakingPoolCapRate: string;
|
|
249
284
|
/**
|
|
250
285
|
* Per-epoch decay on staked DREAM (default 0.05% = 0.0005)
|
|
251
286
|
*/
|
|
@@ -272,6 +307,31 @@ export interface Params {
|
|
|
272
307
|
* but without this cap, a whale can stake disproportionately and extract most seasonal staking rewards.
|
|
273
308
|
*/
|
|
274
309
|
maxInitiativeStakePerMember: string;
|
|
310
|
+
/**
|
|
311
|
+
* Anti-dust floor on the DREAM one MsgStake may lock (default 0.002 DREAM =
|
|
312
|
+
* 2,000 micro-DREAM). There was no floor at all, so a member could open the
|
|
313
|
+
* ten tranches max_stake_tranches_per_target allows at one micro-DREAM each
|
|
314
|
+
* and be counted as a participant in every conviction and payout weighting
|
|
315
|
+
* the initiative runs.
|
|
316
|
+
*
|
|
317
|
+
* The default is pinned to 1/staking_reward_yield_per_epoch: the smallest
|
|
318
|
+
* stake whose own per-epoch accrual (amount * yield, truncated to an integer)
|
|
319
|
+
* reaches one micro-DREAM. Below that a record can never earn anything, and
|
|
320
|
+
* should not occupy a state slot. Move it with the yield. What bounds the
|
|
321
|
+
* return on a small position is max_completion_bonus_stake_multiple, not
|
|
322
|
+
* this.
|
|
323
|
+
*/
|
|
324
|
+
minStakeAmount: string;
|
|
325
|
+
/**
|
|
326
|
+
* Per-season cap on total DREAM minted to pay interim work (default 50,000
|
|
327
|
+
* DREAM). The initiative cap below has always existed; the interim path had
|
|
328
|
+
* no season bound at all, which left it as the one DREAM-creating flow whose
|
|
329
|
+
* total was limited only by max_dream_mint_per_epoch — 250,000 DREAM/day
|
|
330
|
+
* against a 25,000 DREAM genesis supply. Interims are self-assigned and
|
|
331
|
+
* self-completed by design, so the per-member active cap alone does not
|
|
332
|
+
* bound the total: a member can complete and re-create indefinitely.
|
|
333
|
+
*/
|
|
334
|
+
maxInterimRewardsPerSeason: string;
|
|
275
335
|
/**
|
|
276
336
|
* Per-season cap on total DREAM minted via initiative completion rewards (default 100,000 DREAM).
|
|
277
337
|
* Bounds total extraction even if colluding members rubber-stamp initiatives.
|
|
@@ -482,6 +542,43 @@ export interface Params {
|
|
|
482
542
|
* Default 0.1.
|
|
483
543
|
*/
|
|
484
544
|
initiativeCompletionBonusRate: string;
|
|
545
|
+
/**
|
|
546
|
+
* Ceiling on the initiative completion bonus, as a multiple of the external
|
|
547
|
+
* DREAM actually staked behind the initiative (default 3.0):
|
|
548
|
+
*
|
|
549
|
+
* bonus_pool = min(initiative_completion_bonus_rate * budget,
|
|
550
|
+
* max_completion_bonus_stake_multiple * external_stake)
|
|
551
|
+
*
|
|
552
|
+
* Default 3.0. Without it the bonus is a fixed share of the budget while the
|
|
553
|
+
* capital needed to unlock that budget falls as 1/N in the number of stakers —
|
|
554
|
+
* required_conviction is conviction_per_dream * sqrt(budget), each of N
|
|
555
|
+
* stakers supplies sqrt(stake), so the total stake that clears the gate is
|
|
556
|
+
* conviction_per_dream^2 * budget / N. The bonus per staker is then
|
|
557
|
+
* 2.5 * N times their own stake: 7.5x at three stakers, 25x at ten, 62.5x at
|
|
558
|
+
* twenty-five, risk-free on any initiative that completes.
|
|
559
|
+
*
|
|
560
|
+
* Pricing the bonus off capital at risk instead of participant count
|
|
561
|
+
* restores the stake-to-budget ratio the conviction formula was designed
|
|
562
|
+
* around (~4%) without touching the sqrt weighting that deliberately rewards
|
|
563
|
+
* breadth. Range: 0 disables the bonus entirely.
|
|
564
|
+
*/
|
|
565
|
+
maxCompletionBonusStakeMultiple: string;
|
|
566
|
+
/**
|
|
567
|
+
* Ceiling on the TOTAL DREAM one member may hold across all content
|
|
568
|
+
* conviction stakes (blog, forum, collection — every item combined), on top
|
|
569
|
+
* of the per-item max_content_stake_per_member.
|
|
570
|
+
*
|
|
571
|
+
* Content stakes neither decay (decayStakes skips them) nor earn, so without
|
|
572
|
+
* an aggregate bound they are an unbounded decay-free store of value: DREAM
|
|
573
|
+
* parked there escapes the unstaked decay nudge entirely while a reward-
|
|
574
|
+
* bearing stake pays for itself in yield only when the seasonal pool is not
|
|
575
|
+
* calendar-bound. The per-item cap alone does not bound the park — one
|
|
576
|
+
* member can hold max_content_stake_per_member on every item ever created.
|
|
577
|
+
* Must be >= max_content_stake_per_member. Default 20,000 DREAM (2x the
|
|
578
|
+
* per-item cap). Author bonds are not counted; they are slashable escrow
|
|
579
|
+
* with their own per-item cap.
|
|
580
|
+
*/
|
|
581
|
+
maxTotalContentStakePerMember: string;
|
|
485
582
|
/**
|
|
486
583
|
* Replacement rounds the acceptance sweep may run per jury review.
|
|
487
584
|
*
|
|
@@ -901,6 +998,41 @@ export interface ParamsAmino {
|
|
|
901
998
|
* Seasonal staking reward pool
|
|
902
999
|
*/
|
|
903
1000
|
max_staking_rewards_per_season?: string;
|
|
1001
|
+
/**
|
|
1002
|
+
* Ceiling on each epoch's reward slice, as a yield on the DREAM actually
|
|
1003
|
+
* staked (default 0.0005 = 0.05% per epoch, 7.5% over a 150-epoch season
|
|
1004
|
+
* gross, ~3.75% net of staked_decay_rate).
|
|
1005
|
+
*
|
|
1006
|
+
* The slice is otherwise remaining/remaining_epochs no matter how little is
|
|
1007
|
+
* staked, so yield per staked DREAM diverges as the staked base shrinks and
|
|
1008
|
+
* acc_per_share grows without bound: a chain with 1.47 DREAM staked hands the
|
|
1009
|
+
* entire season budget to three dust stakes. Whatever this cap withholds
|
|
1010
|
+
* stays in the pool rather than being distributed or dropped.
|
|
1011
|
+
*/
|
|
1012
|
+
staking_reward_yield_per_epoch?: string;
|
|
1013
|
+
/**
|
|
1014
|
+
* Share of the previous season's non-staking DREAM mints that funds this
|
|
1015
|
+
* season's staking reward pool (default 0.05 = 5%), so emission tracks what
|
|
1016
|
+
* the chain actually produced rather than the calendar.
|
|
1017
|
+
*
|
|
1018
|
+
* Staking rewards are excluded from the base. Counting them would let each
|
|
1019
|
+
* season's pool inflate the next one's, compounding with nothing but the
|
|
1020
|
+
* schedule cap below to stop it.
|
|
1021
|
+
*/
|
|
1022
|
+
staking_pool_mint_share?: string;
|
|
1023
|
+
/**
|
|
1024
|
+
* Schedule ceiling on the seasonal pool:
|
|
1025
|
+
*
|
|
1026
|
+
* cap = staking_pool_cap_base * (season + 1) * staking_pool_cap_rate
|
|
1027
|
+
*
|
|
1028
|
+
* The base is the chain's initial DREAM supply (25,000 DREAM at genesis) and
|
|
1029
|
+
* the rate defaults to 0.05, so the ceiling opens at 1,250 DREAM in season 0
|
|
1030
|
+
* and widens by that much each season. It backstops the mint-share term above
|
|
1031
|
+
* on a chain whose mint volume spikes; max_staking_rewards_per_season remains
|
|
1032
|
+
* the absolute ceiling over both.
|
|
1033
|
+
*/
|
|
1034
|
+
staking_pool_cap_base?: string;
|
|
1035
|
+
staking_pool_cap_rate?: string;
|
|
904
1036
|
/**
|
|
905
1037
|
* Per-epoch decay on staked DREAM (default 0.05% = 0.0005)
|
|
906
1038
|
*/
|
|
@@ -927,6 +1059,31 @@ export interface ParamsAmino {
|
|
|
927
1059
|
* but without this cap, a whale can stake disproportionately and extract most seasonal staking rewards.
|
|
928
1060
|
*/
|
|
929
1061
|
max_initiative_stake_per_member?: string;
|
|
1062
|
+
/**
|
|
1063
|
+
* Anti-dust floor on the DREAM one MsgStake may lock (default 0.002 DREAM =
|
|
1064
|
+
* 2,000 micro-DREAM). There was no floor at all, so a member could open the
|
|
1065
|
+
* ten tranches max_stake_tranches_per_target allows at one micro-DREAM each
|
|
1066
|
+
* and be counted as a participant in every conviction and payout weighting
|
|
1067
|
+
* the initiative runs.
|
|
1068
|
+
*
|
|
1069
|
+
* The default is pinned to 1/staking_reward_yield_per_epoch: the smallest
|
|
1070
|
+
* stake whose own per-epoch accrual (amount * yield, truncated to an integer)
|
|
1071
|
+
* reaches one micro-DREAM. Below that a record can never earn anything, and
|
|
1072
|
+
* should not occupy a state slot. Move it with the yield. What bounds the
|
|
1073
|
+
* return on a small position is max_completion_bonus_stake_multiple, not
|
|
1074
|
+
* this.
|
|
1075
|
+
*/
|
|
1076
|
+
min_stake_amount?: string;
|
|
1077
|
+
/**
|
|
1078
|
+
* Per-season cap on total DREAM minted to pay interim work (default 50,000
|
|
1079
|
+
* DREAM). The initiative cap below has always existed; the interim path had
|
|
1080
|
+
* no season bound at all, which left it as the one DREAM-creating flow whose
|
|
1081
|
+
* total was limited only by max_dream_mint_per_epoch — 250,000 DREAM/day
|
|
1082
|
+
* against a 25,000 DREAM genesis supply. Interims are self-assigned and
|
|
1083
|
+
* self-completed by design, so the per-member active cap alone does not
|
|
1084
|
+
* bound the total: a member can complete and re-create indefinitely.
|
|
1085
|
+
*/
|
|
1086
|
+
max_interim_rewards_per_season?: string;
|
|
930
1087
|
/**
|
|
931
1088
|
* Per-season cap on total DREAM minted via initiative completion rewards (default 100,000 DREAM).
|
|
932
1089
|
* Bounds total extraction even if colluding members rubber-stamp initiatives.
|
|
@@ -1137,6 +1294,43 @@ export interface ParamsAmino {
|
|
|
1137
1294
|
* Default 0.1.
|
|
1138
1295
|
*/
|
|
1139
1296
|
initiative_completion_bonus_rate?: string;
|
|
1297
|
+
/**
|
|
1298
|
+
* Ceiling on the initiative completion bonus, as a multiple of the external
|
|
1299
|
+
* DREAM actually staked behind the initiative (default 3.0):
|
|
1300
|
+
*
|
|
1301
|
+
* bonus_pool = min(initiative_completion_bonus_rate * budget,
|
|
1302
|
+
* max_completion_bonus_stake_multiple * external_stake)
|
|
1303
|
+
*
|
|
1304
|
+
* Default 3.0. Without it the bonus is a fixed share of the budget while the
|
|
1305
|
+
* capital needed to unlock that budget falls as 1/N in the number of stakers —
|
|
1306
|
+
* required_conviction is conviction_per_dream * sqrt(budget), each of N
|
|
1307
|
+
* stakers supplies sqrt(stake), so the total stake that clears the gate is
|
|
1308
|
+
* conviction_per_dream^2 * budget / N. The bonus per staker is then
|
|
1309
|
+
* 2.5 * N times their own stake: 7.5x at three stakers, 25x at ten, 62.5x at
|
|
1310
|
+
* twenty-five, risk-free on any initiative that completes.
|
|
1311
|
+
*
|
|
1312
|
+
* Pricing the bonus off capital at risk instead of participant count
|
|
1313
|
+
* restores the stake-to-budget ratio the conviction formula was designed
|
|
1314
|
+
* around (~4%) without touching the sqrt weighting that deliberately rewards
|
|
1315
|
+
* breadth. Range: 0 disables the bonus entirely.
|
|
1316
|
+
*/
|
|
1317
|
+
max_completion_bonus_stake_multiple?: string;
|
|
1318
|
+
/**
|
|
1319
|
+
* Ceiling on the TOTAL DREAM one member may hold across all content
|
|
1320
|
+
* conviction stakes (blog, forum, collection — every item combined), on top
|
|
1321
|
+
* of the per-item max_content_stake_per_member.
|
|
1322
|
+
*
|
|
1323
|
+
* Content stakes neither decay (decayStakes skips them) nor earn, so without
|
|
1324
|
+
* an aggregate bound they are an unbounded decay-free store of value: DREAM
|
|
1325
|
+
* parked there escapes the unstaked decay nudge entirely while a reward-
|
|
1326
|
+
* bearing stake pays for itself in yield only when the seasonal pool is not
|
|
1327
|
+
* calendar-bound. The per-item cap alone does not bound the park — one
|
|
1328
|
+
* member can hold max_content_stake_per_member on every item ever created.
|
|
1329
|
+
* Must be >= max_content_stake_per_member. Default 20,000 DREAM (2x the
|
|
1330
|
+
* per-item cap). Author bonds are not counted; they are slashable escrow
|
|
1331
|
+
* with their own per-item cap.
|
|
1332
|
+
*/
|
|
1333
|
+
max_total_content_stake_per_member?: string;
|
|
1140
1334
|
/**
|
|
1141
1335
|
* Replacement rounds the acceptance sweep may run per jury review.
|
|
1142
1336
|
*
|
|
@@ -1530,6 +1724,14 @@ export interface RepOperationalParams {
|
|
|
1530
1724
|
* Anti-whale staking cap (mirrors Params.max_initiative_stake_per_member)
|
|
1531
1725
|
*/
|
|
1532
1726
|
maxInitiativeStakePerMember: string;
|
|
1727
|
+
/**
|
|
1728
|
+
* Mirrors min_stake_amount in Params.
|
|
1729
|
+
*/
|
|
1730
|
+
minStakeAmount: string;
|
|
1731
|
+
/**
|
|
1732
|
+
* Mirrors max_interim_rewards_per_season in Params.
|
|
1733
|
+
*/
|
|
1734
|
+
maxInterimRewardsPerSeason: string;
|
|
1533
1735
|
/**
|
|
1534
1736
|
* Per-season initiative reward minting cap (mirrors Params.max_initiative_rewards_per_season)
|
|
1535
1737
|
*/
|
|
@@ -1624,6 +1826,15 @@ export interface RepOperationalParams {
|
|
|
1624
1826
|
* Mirrors initiative_completion_bonus_rate in Params.
|
|
1625
1827
|
*/
|
|
1626
1828
|
initiativeCompletionBonusRate: string;
|
|
1829
|
+
/**
|
|
1830
|
+
* Mirrors max_completion_bonus_stake_multiple in Params.
|
|
1831
|
+
*/
|
|
1832
|
+
maxCompletionBonusStakeMultiple: string;
|
|
1833
|
+
/**
|
|
1834
|
+
* Mirrors max_total_content_stake_per_member in Params: the aggregate
|
|
1835
|
+
* per-member ceiling across all content conviction stakes.
|
|
1836
|
+
*/
|
|
1837
|
+
maxTotalContentStakePerMember: string;
|
|
1627
1838
|
/**
|
|
1628
1839
|
* Mirrors jury_acceptance_window_ratio in Params. Validated against
|
|
1629
1840
|
* max_jury_redraws below — the pair must fit inside the review period.
|
|
@@ -1694,6 +1905,13 @@ export interface RepOperationalParams {
|
|
|
1694
1905
|
minReviewerAgeBlocks: bigint;
|
|
1695
1906
|
reviewerDemotionCooldown: bigint;
|
|
1696
1907
|
reviewerUnbondCooldown: bigint;
|
|
1908
|
+
/**
|
|
1909
|
+
* Seasonal staking pool shape; see the same fields on Params.
|
|
1910
|
+
*/
|
|
1911
|
+
stakingRewardYieldPerEpoch: string;
|
|
1912
|
+
stakingPoolMintShare: string;
|
|
1913
|
+
stakingPoolCapBase: string;
|
|
1914
|
+
stakingPoolCapRate: string;
|
|
1697
1915
|
}
|
|
1698
1916
|
export interface RepOperationalParamsProtoMsg {
|
|
1699
1917
|
typeUrl: "/sparkdream.rep.v1.RepOperationalParams";
|
|
@@ -1829,6 +2047,14 @@ export interface RepOperationalParamsAmino {
|
|
|
1829
2047
|
* Anti-whale staking cap (mirrors Params.max_initiative_stake_per_member)
|
|
1830
2048
|
*/
|
|
1831
2049
|
max_initiative_stake_per_member?: string;
|
|
2050
|
+
/**
|
|
2051
|
+
* Mirrors min_stake_amount in Params.
|
|
2052
|
+
*/
|
|
2053
|
+
min_stake_amount?: string;
|
|
2054
|
+
/**
|
|
2055
|
+
* Mirrors max_interim_rewards_per_season in Params.
|
|
2056
|
+
*/
|
|
2057
|
+
max_interim_rewards_per_season?: string;
|
|
1832
2058
|
/**
|
|
1833
2059
|
* Per-season initiative reward minting cap (mirrors Params.max_initiative_rewards_per_season)
|
|
1834
2060
|
*/
|
|
@@ -1923,6 +2149,15 @@ export interface RepOperationalParamsAmino {
|
|
|
1923
2149
|
* Mirrors initiative_completion_bonus_rate in Params.
|
|
1924
2150
|
*/
|
|
1925
2151
|
initiative_completion_bonus_rate?: string;
|
|
2152
|
+
/**
|
|
2153
|
+
* Mirrors max_completion_bonus_stake_multiple in Params.
|
|
2154
|
+
*/
|
|
2155
|
+
max_completion_bonus_stake_multiple?: string;
|
|
2156
|
+
/**
|
|
2157
|
+
* Mirrors max_total_content_stake_per_member in Params: the aggregate
|
|
2158
|
+
* per-member ceiling across all content conviction stakes.
|
|
2159
|
+
*/
|
|
2160
|
+
max_total_content_stake_per_member?: string;
|
|
1926
2161
|
/**
|
|
1927
2162
|
* Mirrors jury_acceptance_window_ratio in Params. Validated against
|
|
1928
2163
|
* max_jury_redraws below — the pair must fit inside the review period.
|
|
@@ -1993,6 +2228,13 @@ export interface RepOperationalParamsAmino {
|
|
|
1993
2228
|
min_reviewer_age_blocks?: string;
|
|
1994
2229
|
reviewer_demotion_cooldown?: string;
|
|
1995
2230
|
reviewer_unbond_cooldown?: string;
|
|
2231
|
+
/**
|
|
2232
|
+
* Seasonal staking pool shape; see the same fields on Params.
|
|
2233
|
+
*/
|
|
2234
|
+
staking_reward_yield_per_epoch?: string;
|
|
2235
|
+
staking_pool_mint_share?: string;
|
|
2236
|
+
staking_pool_cap_base?: string;
|
|
2237
|
+
staking_pool_cap_rate?: string;
|
|
1996
2238
|
}
|
|
1997
2239
|
export interface RepOperationalParamsAminoMsg {
|
|
1998
2240
|
type: "sparkdream/x/rep/RepOperationalParams";
|