@sparkdreamnft/sparkdreamjs 0.0.36 → 0.0.37

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.
Files changed (33) hide show
  1. package/esm/sparkdream/federation/v1/genesis.js +101 -3
  2. package/esm/sparkdream/federation/v1/params.js +129 -117
  3. package/esm/sparkdream/federation/v1/query.js +204 -7
  4. package/esm/sparkdream/federation/v1/query.lcd.js +11 -2
  5. package/esm/sparkdream/federation/v1/query.rpc.Query.js +16 -3
  6. package/esm/sparkdream/federation/v1/types.js +73 -1
  7. package/esm/sparkdream/federation/v1/verifier_activity.js +143 -45
  8. package/esm/sparkdream/rep/v1/bonded_role.js +37 -1
  9. package/esm/sparkdream/rep/v1/params.js +194 -2
  10. package/esm/sparkdream/rep/v1/role_activity.js +13 -1
  11. package/package.json +1 -1
  12. package/sparkdream/bundle.d.ts +50 -0
  13. package/sparkdream/federation/v1/genesis.d.ts +66 -0
  14. package/sparkdream/federation/v1/genesis.js +102 -4
  15. package/sparkdream/federation/v1/params.d.ts +72 -10
  16. package/sparkdream/federation/v1/params.js +129 -117
  17. package/sparkdream/federation/v1/query.d.ts +120 -3
  18. package/sparkdream/federation/v1/query.js +204 -7
  19. package/sparkdream/federation/v1/query.lcd.d.ts +2 -1
  20. package/sparkdream/federation/v1/query.lcd.js +11 -2
  21. package/sparkdream/federation/v1/query.rpc.Query.d.ts +13 -3
  22. package/sparkdream/federation/v1/query.rpc.Query.js +15 -2
  23. package/sparkdream/federation/v1/types.d.ts +44 -0
  24. package/sparkdream/federation/v1/types.js +73 -1
  25. package/sparkdream/federation/v1/verifier_activity.d.ts +151 -68
  26. package/sparkdream/federation/v1/verifier_activity.js +144 -46
  27. package/sparkdream/rep/v1/bonded_role.d.ts +42 -0
  28. package/sparkdream/rep/v1/bonded_role.js +37 -1
  29. package/sparkdream/rep/v1/params.d.ts +96 -0
  30. package/sparkdream/rep/v1/params.js +194 -2
  31. package/sparkdream/rep/v1/role_activity.d.ts +26 -0
  32. package/sparkdream/rep/v1/role_activity.js +13 -1
  33. package/sparkdream/rpc.query.d.ts +1 -0
@@ -371,7 +371,10 @@ function createBaseBondedRoleConfig() {
371
371
  minAgeBlocks: BigInt(0),
372
372
  demotionCooldown: BigInt(0),
373
373
  demotionThreshold: "",
374
- unbondCooldown: BigInt(0)
374
+ unbondCooldown: BigInt(0),
375
+ upheldToResetOverturns: BigInt(0),
376
+ overturnBaseCooldown: BigInt(0),
377
+ overturnCooldownEscalates: false
375
378
  };
376
379
  }
377
380
  /**
@@ -414,6 +417,15 @@ exports.BondedRoleConfig = {
414
417
  if (message.unbondCooldown !== BigInt(0)) {
415
418
  writer.uint32(64).int64(message.unbondCooldown);
416
419
  }
420
+ if (message.upheldToResetOverturns !== BigInt(0)) {
421
+ writer.uint32(72).uint64(message.upheldToResetOverturns);
422
+ }
423
+ if (message.overturnBaseCooldown !== BigInt(0)) {
424
+ writer.uint32(80).int64(message.overturnBaseCooldown);
425
+ }
426
+ if (message.overturnCooldownEscalates === true) {
427
+ writer.uint32(88).bool(message.overturnCooldownEscalates);
428
+ }
417
429
  return writer;
418
430
  },
419
431
  decode(input, length) {
@@ -447,6 +459,15 @@ exports.BondedRoleConfig = {
447
459
  case 8:
448
460
  message.unbondCooldown = reader.int64();
449
461
  break;
462
+ case 9:
463
+ message.upheldToResetOverturns = reader.uint64();
464
+ break;
465
+ case 10:
466
+ message.overturnBaseCooldown = reader.int64();
467
+ break;
468
+ case 11:
469
+ message.overturnCooldownEscalates = reader.bool();
470
+ break;
450
471
  default:
451
472
  reader.skipType(tag & 7);
452
473
  break;
@@ -464,6 +485,9 @@ exports.BondedRoleConfig = {
464
485
  message.demotionCooldown = object.demotionCooldown !== undefined && object.demotionCooldown !== null ? BigInt(object.demotionCooldown.toString()) : BigInt(0);
465
486
  message.demotionThreshold = object.demotionThreshold ?? "";
466
487
  message.unbondCooldown = object.unbondCooldown !== undefined && object.unbondCooldown !== null ? BigInt(object.unbondCooldown.toString()) : BigInt(0);
488
+ message.upheldToResetOverturns = object.upheldToResetOverturns !== undefined && object.upheldToResetOverturns !== null ? BigInt(object.upheldToResetOverturns.toString()) : BigInt(0);
489
+ message.overturnBaseCooldown = object.overturnBaseCooldown !== undefined && object.overturnBaseCooldown !== null ? BigInt(object.overturnBaseCooldown.toString()) : BigInt(0);
490
+ message.overturnCooldownEscalates = object.overturnCooldownEscalates ?? false;
467
491
  return message;
468
492
  },
469
493
  fromAmino(object) {
@@ -492,6 +516,15 @@ exports.BondedRoleConfig = {
492
516
  if (object.unbond_cooldown !== undefined && object.unbond_cooldown !== null) {
493
517
  message.unbondCooldown = BigInt(object.unbond_cooldown);
494
518
  }
519
+ if (object.upheld_to_reset_overturns !== undefined && object.upheld_to_reset_overturns !== null) {
520
+ message.upheldToResetOverturns = BigInt(object.upheld_to_reset_overturns);
521
+ }
522
+ if (object.overturn_base_cooldown !== undefined && object.overturn_base_cooldown !== null) {
523
+ message.overturnBaseCooldown = BigInt(object.overturn_base_cooldown);
524
+ }
525
+ if (object.overturn_cooldown_escalates !== undefined && object.overturn_cooldown_escalates !== null) {
526
+ message.overturnCooldownEscalates = object.overturn_cooldown_escalates;
527
+ }
495
528
  return message;
496
529
  },
497
530
  toAmino(message) {
@@ -504,6 +537,9 @@ exports.BondedRoleConfig = {
504
537
  obj.demotion_cooldown = message.demotionCooldown !== BigInt(0) ? message.demotionCooldown?.toString() : undefined;
505
538
  obj.demotion_threshold = message.demotionThreshold === "" ? undefined : message.demotionThreshold;
506
539
  obj.unbond_cooldown = message.unbondCooldown !== BigInt(0) ? message.unbondCooldown?.toString() : undefined;
540
+ obj.upheld_to_reset_overturns = message.upheldToResetOverturns !== BigInt(0) ? message.upheldToResetOverturns?.toString() : undefined;
541
+ obj.overturn_base_cooldown = message.overturnBaseCooldown !== BigInt(0) ? message.overturnBaseCooldown?.toString() : undefined;
542
+ obj.overturn_cooldown_escalates = message.overturnCooldownEscalates === false ? undefined : message.overturnCooldownEscalates;
507
543
  return obj;
508
544
  },
509
545
  fromAminoMsg(object) {
@@ -643,6 +643,43 @@ export interface Params {
643
643
  * requirement entirely.
644
644
  */
645
645
  permissionlessMinReviewBountyRate: string;
646
+ /**
647
+ * --- Federation verifier pay (SPARK pool + DREAM stipend) ---
648
+ *
649
+ * The verifier's whole reward distribution lives here rather than in
650
+ * x/federation, for the same reason the curator's lives here rather than in
651
+ * x/collect: the accuracy it scores comes from the shared RoleActivity
652
+ * record x/rep owns, and the epoch it resets is the epoch the accuracy ring
653
+ * is stamped in. Two modules distributing on two independently-editable
654
+ * cadences would both reset those per-epoch counters and neither would read
655
+ * a coherent window. x/federation keeps the verification mechanics -- bond,
656
+ * slash, challenge windows, cooldown base -- and reports actions here.
657
+ *
658
+ * The verifier is the one bonded role whose work has an OFF-chain cost:
659
+ * fetching the peer's content and hashing it, then paying SPARK gas to
660
+ * submit. Paying only in DREAM made it the single role where doing the job
661
+ * drains the holder's SPARK and returns a token they cannot spend on gas.
662
+ */
663
+ maxVerifierRewardPool: string;
664
+ verifierRewardPoolOverflowBurnRatio: string;
665
+ verifierRewardEpochBlocks: bigint;
666
+ minVerifierAccuracy: string;
667
+ verifierAccuracyWindowEpochs: bigint;
668
+ /**
669
+ * Verified items required in an epoch to earn anything that epoch. This is
670
+ * the ONLY place volume enters verifier pay -- as a floor, never as a
671
+ * weight. See the score formula in x/rep/keeper/verifier_reward_distribution.go
672
+ * for why weighting by verified_count is the wrong curve for this role.
673
+ */
674
+ minEpochVerifications: number;
675
+ /**
676
+ * Flat DREAM minted per eligible verifier per epoch, scaled down pro-rata
677
+ * when the roster would push the epoch's total past the mint cap. Auto-bonds
678
+ * while the verifier is in RECOVERY so a slashed verifier can rebuild their
679
+ * bond by working rather than by fronting DREAM.
680
+ */
681
+ verifierDreamReward: string;
682
+ maxVerifierDreamMintPerEpoch: string;
646
683
  }
647
684
  export interface ParamsProtoMsg {
648
685
  typeUrl: "/sparkdream.rep.v1.Params";
@@ -1201,6 +1238,43 @@ export interface ParamsAmino {
1201
1238
  * requirement entirely.
1202
1239
  */
1203
1240
  permissionless_min_review_bounty_rate?: string;
1241
+ /**
1242
+ * --- Federation verifier pay (SPARK pool + DREAM stipend) ---
1243
+ *
1244
+ * The verifier's whole reward distribution lives here rather than in
1245
+ * x/federation, for the same reason the curator's lives here rather than in
1246
+ * x/collect: the accuracy it scores comes from the shared RoleActivity
1247
+ * record x/rep owns, and the epoch it resets is the epoch the accuracy ring
1248
+ * is stamped in. Two modules distributing on two independently-editable
1249
+ * cadences would both reset those per-epoch counters and neither would read
1250
+ * a coherent window. x/federation keeps the verification mechanics -- bond,
1251
+ * slash, challenge windows, cooldown base -- and reports actions here.
1252
+ *
1253
+ * The verifier is the one bonded role whose work has an OFF-chain cost:
1254
+ * fetching the peer's content and hashing it, then paying SPARK gas to
1255
+ * submit. Paying only in DREAM made it the single role where doing the job
1256
+ * drains the holder's SPARK and returns a token they cannot spend on gas.
1257
+ */
1258
+ max_verifier_reward_pool?: string;
1259
+ verifier_reward_pool_overflow_burn_ratio?: string;
1260
+ verifier_reward_epoch_blocks?: string;
1261
+ min_verifier_accuracy?: string;
1262
+ verifier_accuracy_window_epochs?: string;
1263
+ /**
1264
+ * Verified items required in an epoch to earn anything that epoch. This is
1265
+ * the ONLY place volume enters verifier pay -- as a floor, never as a
1266
+ * weight. See the score formula in x/rep/keeper/verifier_reward_distribution.go
1267
+ * for why weighting by verified_count is the wrong curve for this role.
1268
+ */
1269
+ min_epoch_verifications?: number;
1270
+ /**
1271
+ * Flat DREAM minted per eligible verifier per epoch, scaled down pro-rata
1272
+ * when the roster would push the epoch's total past the mint cap. Auto-bonds
1273
+ * while the verifier is in RECOVERY so a slashed verifier can rebuild their
1274
+ * bond by working rather than by fronting DREAM.
1275
+ */
1276
+ verifier_dream_reward?: string;
1277
+ max_verifier_dream_mint_per_epoch?: string;
1204
1278
  }
1205
1279
  export interface ParamsAminoMsg {
1206
1280
  type: "sparkdream/x/rep/Params";
@@ -1477,6 +1551,17 @@ export interface RepOperationalParams {
1477
1551
  reviewRequiredAboveBudget: string;
1478
1552
  reviewBountyReclaimDelay: bigint;
1479
1553
  permissionlessMinReviewBountyRate: string;
1554
+ /**
1555
+ * Mirrors the federation-verifier pay params in Params.
1556
+ */
1557
+ maxVerifierRewardPool: string;
1558
+ verifierRewardPoolOverflowBurnRatio: string;
1559
+ verifierRewardEpochBlocks: bigint;
1560
+ minVerifierAccuracy: string;
1561
+ verifierAccuracyWindowEpochs: bigint;
1562
+ minEpochVerifications: number;
1563
+ verifierDreamReward: string;
1564
+ maxVerifierDreamMintPerEpoch: string;
1480
1565
  }
1481
1566
  export interface RepOperationalParamsProtoMsg {
1482
1567
  typeUrl: "/sparkdream.rep.v1.RepOperationalParams";
@@ -1753,6 +1838,17 @@ export interface RepOperationalParamsAmino {
1753
1838
  review_required_above_budget?: string;
1754
1839
  review_bounty_reclaim_delay?: string;
1755
1840
  permissionless_min_review_bounty_rate?: string;
1841
+ /**
1842
+ * Mirrors the federation-verifier pay params in Params.
1843
+ */
1844
+ max_verifier_reward_pool?: string;
1845
+ verifier_reward_pool_overflow_burn_ratio?: string;
1846
+ verifier_reward_epoch_blocks?: string;
1847
+ min_verifier_accuracy?: string;
1848
+ verifier_accuracy_window_epochs?: string;
1849
+ min_epoch_verifications?: number;
1850
+ verifier_dream_reward?: string;
1851
+ max_verifier_dream_mint_per_epoch?: string;
1756
1852
  }
1757
1853
  export interface RepOperationalParamsAminoMsg {
1758
1854
  type: "sparkdream/x/rep/RepOperationalParams";
@@ -443,7 +443,15 @@ function createBaseParams() {
443
443
  curatorAccuracyWindowEpochs: BigInt(0),
444
444
  reviewRequiredAboveBudget: "",
445
445
  reviewBountyReclaimDelay: BigInt(0),
446
- permissionlessMinReviewBountyRate: ""
446
+ permissionlessMinReviewBountyRate: "",
447
+ maxVerifierRewardPool: "",
448
+ verifierRewardPoolOverflowBurnRatio: "",
449
+ verifierRewardEpochBlocks: BigInt(0),
450
+ minVerifierAccuracy: "",
451
+ verifierAccuracyWindowEpochs: BigInt(0),
452
+ minEpochVerifications: 0,
453
+ verifierDreamReward: "",
454
+ maxVerifierDreamMintPerEpoch: ""
447
455
  };
448
456
  }
449
457
  /**
@@ -816,6 +824,30 @@ exports.Params = {
816
824
  if (message.permissionlessMinReviewBountyRate !== "") {
817
825
  writer.uint32(962).string(math_1.Decimal.fromUserInput(message.permissionlessMinReviewBountyRate, 18).atomics);
818
826
  }
827
+ if (message.maxVerifierRewardPool !== "") {
828
+ writer.uint32(970).string(message.maxVerifierRewardPool);
829
+ }
830
+ if (message.verifierRewardPoolOverflowBurnRatio !== "") {
831
+ writer.uint32(978).string(math_1.Decimal.fromUserInput(message.verifierRewardPoolOverflowBurnRatio, 18).atomics);
832
+ }
833
+ if (message.verifierRewardEpochBlocks !== BigInt(0)) {
834
+ writer.uint32(984).uint64(message.verifierRewardEpochBlocks);
835
+ }
836
+ if (message.minVerifierAccuracy !== "") {
837
+ writer.uint32(994).string(math_1.Decimal.fromUserInput(message.minVerifierAccuracy, 18).atomics);
838
+ }
839
+ if (message.verifierAccuracyWindowEpochs !== BigInt(0)) {
840
+ writer.uint32(1000).uint64(message.verifierAccuracyWindowEpochs);
841
+ }
842
+ if (message.minEpochVerifications !== 0) {
843
+ writer.uint32(1008).uint32(message.minEpochVerifications);
844
+ }
845
+ if (message.verifierDreamReward !== "") {
846
+ writer.uint32(1018).string(message.verifierDreamReward);
847
+ }
848
+ if (message.maxVerifierDreamMintPerEpoch !== "") {
849
+ writer.uint32(1026).string(message.maxVerifierDreamMintPerEpoch);
850
+ }
819
851
  return writer;
820
852
  },
821
853
  decode(input, length) {
@@ -1185,6 +1217,30 @@ exports.Params = {
1185
1217
  case 120:
1186
1218
  message.permissionlessMinReviewBountyRate = math_1.Decimal.fromAtomics(reader.string(), 18).toString();
1187
1219
  break;
1220
+ case 121:
1221
+ message.maxVerifierRewardPool = reader.string();
1222
+ break;
1223
+ case 122:
1224
+ message.verifierRewardPoolOverflowBurnRatio = math_1.Decimal.fromAtomics(reader.string(), 18).toString();
1225
+ break;
1226
+ case 123:
1227
+ message.verifierRewardEpochBlocks = reader.uint64();
1228
+ break;
1229
+ case 124:
1230
+ message.minVerifierAccuracy = math_1.Decimal.fromAtomics(reader.string(), 18).toString();
1231
+ break;
1232
+ case 125:
1233
+ message.verifierAccuracyWindowEpochs = reader.uint64();
1234
+ break;
1235
+ case 126:
1236
+ message.minEpochVerifications = reader.uint32();
1237
+ break;
1238
+ case 127:
1239
+ message.verifierDreamReward = reader.string();
1240
+ break;
1241
+ case 128:
1242
+ message.maxVerifierDreamMintPerEpoch = reader.string();
1243
+ break;
1188
1244
  default:
1189
1245
  reader.skipType(tag & 7);
1190
1246
  break;
@@ -1314,6 +1370,14 @@ exports.Params = {
1314
1370
  message.reviewRequiredAboveBudget = object.reviewRequiredAboveBudget ?? "";
1315
1371
  message.reviewBountyReclaimDelay = object.reviewBountyReclaimDelay !== undefined && object.reviewBountyReclaimDelay !== null ? BigInt(object.reviewBountyReclaimDelay.toString()) : BigInt(0);
1316
1372
  message.permissionlessMinReviewBountyRate = object.permissionlessMinReviewBountyRate ?? "";
1373
+ message.maxVerifierRewardPool = object.maxVerifierRewardPool ?? "";
1374
+ message.verifierRewardPoolOverflowBurnRatio = object.verifierRewardPoolOverflowBurnRatio ?? "";
1375
+ message.verifierRewardEpochBlocks = object.verifierRewardEpochBlocks !== undefined && object.verifierRewardEpochBlocks !== null ? BigInt(object.verifierRewardEpochBlocks.toString()) : BigInt(0);
1376
+ message.minVerifierAccuracy = object.minVerifierAccuracy ?? "";
1377
+ message.verifierAccuracyWindowEpochs = object.verifierAccuracyWindowEpochs !== undefined && object.verifierAccuracyWindowEpochs !== null ? BigInt(object.verifierAccuracyWindowEpochs.toString()) : BigInt(0);
1378
+ message.minEpochVerifications = object.minEpochVerifications ?? 0;
1379
+ message.verifierDreamReward = object.verifierDreamReward ?? "";
1380
+ message.maxVerifierDreamMintPerEpoch = object.maxVerifierDreamMintPerEpoch ?? "";
1317
1381
  return message;
1318
1382
  },
1319
1383
  fromAmino(object) {
@@ -1678,6 +1742,30 @@ exports.Params = {
1678
1742
  if (object.permissionless_min_review_bounty_rate !== undefined && object.permissionless_min_review_bounty_rate !== null) {
1679
1743
  message.permissionlessMinReviewBountyRate = object.permissionless_min_review_bounty_rate;
1680
1744
  }
1745
+ if (object.max_verifier_reward_pool !== undefined && object.max_verifier_reward_pool !== null) {
1746
+ message.maxVerifierRewardPool = object.max_verifier_reward_pool;
1747
+ }
1748
+ if (object.verifier_reward_pool_overflow_burn_ratio !== undefined && object.verifier_reward_pool_overflow_burn_ratio !== null) {
1749
+ message.verifierRewardPoolOverflowBurnRatio = object.verifier_reward_pool_overflow_burn_ratio;
1750
+ }
1751
+ if (object.verifier_reward_epoch_blocks !== undefined && object.verifier_reward_epoch_blocks !== null) {
1752
+ message.verifierRewardEpochBlocks = BigInt(object.verifier_reward_epoch_blocks);
1753
+ }
1754
+ if (object.min_verifier_accuracy !== undefined && object.min_verifier_accuracy !== null) {
1755
+ message.minVerifierAccuracy = object.min_verifier_accuracy;
1756
+ }
1757
+ if (object.verifier_accuracy_window_epochs !== undefined && object.verifier_accuracy_window_epochs !== null) {
1758
+ message.verifierAccuracyWindowEpochs = BigInt(object.verifier_accuracy_window_epochs);
1759
+ }
1760
+ if (object.min_epoch_verifications !== undefined && object.min_epoch_verifications !== null) {
1761
+ message.minEpochVerifications = object.min_epoch_verifications;
1762
+ }
1763
+ if (object.verifier_dream_reward !== undefined && object.verifier_dream_reward !== null) {
1764
+ message.verifierDreamReward = object.verifier_dream_reward;
1765
+ }
1766
+ if (object.max_verifier_dream_mint_per_epoch !== undefined && object.max_verifier_dream_mint_per_epoch !== null) {
1767
+ message.maxVerifierDreamMintPerEpoch = object.max_verifier_dream_mint_per_epoch;
1768
+ }
1681
1769
  return message;
1682
1770
  },
1683
1771
  toAmino(message) {
@@ -1802,6 +1890,14 @@ exports.Params = {
1802
1890
  obj.review_required_above_budget = message.reviewRequiredAboveBudget === "" ? undefined : message.reviewRequiredAboveBudget;
1803
1891
  obj.review_bounty_reclaim_delay = message.reviewBountyReclaimDelay !== BigInt(0) ? message.reviewBountyReclaimDelay?.toString() : undefined;
1804
1892
  obj.permissionless_min_review_bounty_rate = message.permissionlessMinReviewBountyRate === "" ? undefined : message.permissionlessMinReviewBountyRate;
1893
+ obj.max_verifier_reward_pool = message.maxVerifierRewardPool === "" ? undefined : message.maxVerifierRewardPool;
1894
+ obj.verifier_reward_pool_overflow_burn_ratio = message.verifierRewardPoolOverflowBurnRatio === "" ? undefined : message.verifierRewardPoolOverflowBurnRatio;
1895
+ obj.verifier_reward_epoch_blocks = message.verifierRewardEpochBlocks !== BigInt(0) ? message.verifierRewardEpochBlocks?.toString() : undefined;
1896
+ obj.min_verifier_accuracy = message.minVerifierAccuracy === "" ? undefined : message.minVerifierAccuracy;
1897
+ obj.verifier_accuracy_window_epochs = message.verifierAccuracyWindowEpochs !== BigInt(0) ? message.verifierAccuracyWindowEpochs?.toString() : undefined;
1898
+ obj.min_epoch_verifications = message.minEpochVerifications === 0 ? undefined : message.minEpochVerifications;
1899
+ obj.verifier_dream_reward = message.verifierDreamReward === "" ? undefined : message.verifierDreamReward;
1900
+ obj.max_verifier_dream_mint_per_epoch = message.maxVerifierDreamMintPerEpoch === "" ? undefined : message.maxVerifierDreamMintPerEpoch;
1805
1901
  return obj;
1806
1902
  },
1807
1903
  fromAminoMsg(object) {
@@ -1927,7 +2023,15 @@ function createBaseRepOperationalParams() {
1927
2023
  curatorAccuracyWindowEpochs: BigInt(0),
1928
2024
  reviewRequiredAboveBudget: "",
1929
2025
  reviewBountyReclaimDelay: BigInt(0),
1930
- permissionlessMinReviewBountyRate: ""
2026
+ permissionlessMinReviewBountyRate: "",
2027
+ maxVerifierRewardPool: "",
2028
+ verifierRewardPoolOverflowBurnRatio: "",
2029
+ verifierRewardEpochBlocks: BigInt(0),
2030
+ minVerifierAccuracy: "",
2031
+ verifierAccuracyWindowEpochs: BigInt(0),
2032
+ minEpochVerifications: 0,
2033
+ verifierDreamReward: "",
2034
+ maxVerifierDreamMintPerEpoch: ""
1931
2035
  };
1932
2036
  }
1933
2037
  /**
@@ -2242,6 +2346,30 @@ exports.RepOperationalParams = {
2242
2346
  if (message.permissionlessMinReviewBountyRate !== "") {
2243
2347
  writer.uint32(802).string(math_1.Decimal.fromUserInput(message.permissionlessMinReviewBountyRate, 18).atomics);
2244
2348
  }
2349
+ if (message.maxVerifierRewardPool !== "") {
2350
+ writer.uint32(810).string(message.maxVerifierRewardPool);
2351
+ }
2352
+ if (message.verifierRewardPoolOverflowBurnRatio !== "") {
2353
+ writer.uint32(818).string(math_1.Decimal.fromUserInput(message.verifierRewardPoolOverflowBurnRatio, 18).atomics);
2354
+ }
2355
+ if (message.verifierRewardEpochBlocks !== BigInt(0)) {
2356
+ writer.uint32(824).uint64(message.verifierRewardEpochBlocks);
2357
+ }
2358
+ if (message.minVerifierAccuracy !== "") {
2359
+ writer.uint32(834).string(math_1.Decimal.fromUserInput(message.minVerifierAccuracy, 18).atomics);
2360
+ }
2361
+ if (message.verifierAccuracyWindowEpochs !== BigInt(0)) {
2362
+ writer.uint32(840).uint64(message.verifierAccuracyWindowEpochs);
2363
+ }
2364
+ if (message.minEpochVerifications !== 0) {
2365
+ writer.uint32(848).uint32(message.minEpochVerifications);
2366
+ }
2367
+ if (message.verifierDreamReward !== "") {
2368
+ writer.uint32(858).string(message.verifierDreamReward);
2369
+ }
2370
+ if (message.maxVerifierDreamMintPerEpoch !== "") {
2371
+ writer.uint32(866).string(message.maxVerifierDreamMintPerEpoch);
2372
+ }
2245
2373
  return writer;
2246
2374
  },
2247
2375
  decode(input, length) {
@@ -2551,6 +2679,30 @@ exports.RepOperationalParams = {
2551
2679
  case 100:
2552
2680
  message.permissionlessMinReviewBountyRate = math_1.Decimal.fromAtomics(reader.string(), 18).toString();
2553
2681
  break;
2682
+ case 101:
2683
+ message.maxVerifierRewardPool = reader.string();
2684
+ break;
2685
+ case 102:
2686
+ message.verifierRewardPoolOverflowBurnRatio = math_1.Decimal.fromAtomics(reader.string(), 18).toString();
2687
+ break;
2688
+ case 103:
2689
+ message.verifierRewardEpochBlocks = reader.uint64();
2690
+ break;
2691
+ case 104:
2692
+ message.minVerifierAccuracy = math_1.Decimal.fromAtomics(reader.string(), 18).toString();
2693
+ break;
2694
+ case 105:
2695
+ message.verifierAccuracyWindowEpochs = reader.uint64();
2696
+ break;
2697
+ case 106:
2698
+ message.minEpochVerifications = reader.uint32();
2699
+ break;
2700
+ case 107:
2701
+ message.verifierDreamReward = reader.string();
2702
+ break;
2703
+ case 108:
2704
+ message.maxVerifierDreamMintPerEpoch = reader.string();
2705
+ break;
2554
2706
  default:
2555
2707
  reader.skipType(tag & 7);
2556
2708
  break;
@@ -2660,6 +2812,14 @@ exports.RepOperationalParams = {
2660
2812
  message.reviewRequiredAboveBudget = object.reviewRequiredAboveBudget ?? "";
2661
2813
  message.reviewBountyReclaimDelay = object.reviewBountyReclaimDelay !== undefined && object.reviewBountyReclaimDelay !== null ? BigInt(object.reviewBountyReclaimDelay.toString()) : BigInt(0);
2662
2814
  message.permissionlessMinReviewBountyRate = object.permissionlessMinReviewBountyRate ?? "";
2815
+ message.maxVerifierRewardPool = object.maxVerifierRewardPool ?? "";
2816
+ message.verifierRewardPoolOverflowBurnRatio = object.verifierRewardPoolOverflowBurnRatio ?? "";
2817
+ message.verifierRewardEpochBlocks = object.verifierRewardEpochBlocks !== undefined && object.verifierRewardEpochBlocks !== null ? BigInt(object.verifierRewardEpochBlocks.toString()) : BigInt(0);
2818
+ message.minVerifierAccuracy = object.minVerifierAccuracy ?? "";
2819
+ message.verifierAccuracyWindowEpochs = object.verifierAccuracyWindowEpochs !== undefined && object.verifierAccuracyWindowEpochs !== null ? BigInt(object.verifierAccuracyWindowEpochs.toString()) : BigInt(0);
2820
+ message.minEpochVerifications = object.minEpochVerifications ?? 0;
2821
+ message.verifierDreamReward = object.verifierDreamReward ?? "";
2822
+ message.maxVerifierDreamMintPerEpoch = object.maxVerifierDreamMintPerEpoch ?? "";
2663
2823
  return message;
2664
2824
  },
2665
2825
  fromAmino(object) {
@@ -2964,6 +3124,30 @@ exports.RepOperationalParams = {
2964
3124
  if (object.permissionless_min_review_bounty_rate !== undefined && object.permissionless_min_review_bounty_rate !== null) {
2965
3125
  message.permissionlessMinReviewBountyRate = object.permissionless_min_review_bounty_rate;
2966
3126
  }
3127
+ if (object.max_verifier_reward_pool !== undefined && object.max_verifier_reward_pool !== null) {
3128
+ message.maxVerifierRewardPool = object.max_verifier_reward_pool;
3129
+ }
3130
+ if (object.verifier_reward_pool_overflow_burn_ratio !== undefined && object.verifier_reward_pool_overflow_burn_ratio !== null) {
3131
+ message.verifierRewardPoolOverflowBurnRatio = object.verifier_reward_pool_overflow_burn_ratio;
3132
+ }
3133
+ if (object.verifier_reward_epoch_blocks !== undefined && object.verifier_reward_epoch_blocks !== null) {
3134
+ message.verifierRewardEpochBlocks = BigInt(object.verifier_reward_epoch_blocks);
3135
+ }
3136
+ if (object.min_verifier_accuracy !== undefined && object.min_verifier_accuracy !== null) {
3137
+ message.minVerifierAccuracy = object.min_verifier_accuracy;
3138
+ }
3139
+ if (object.verifier_accuracy_window_epochs !== undefined && object.verifier_accuracy_window_epochs !== null) {
3140
+ message.verifierAccuracyWindowEpochs = BigInt(object.verifier_accuracy_window_epochs);
3141
+ }
3142
+ if (object.min_epoch_verifications !== undefined && object.min_epoch_verifications !== null) {
3143
+ message.minEpochVerifications = object.min_epoch_verifications;
3144
+ }
3145
+ if (object.verifier_dream_reward !== undefined && object.verifier_dream_reward !== null) {
3146
+ message.verifierDreamReward = object.verifier_dream_reward;
3147
+ }
3148
+ if (object.max_verifier_dream_mint_per_epoch !== undefined && object.max_verifier_dream_mint_per_epoch !== null) {
3149
+ message.maxVerifierDreamMintPerEpoch = object.max_verifier_dream_mint_per_epoch;
3150
+ }
2967
3151
  return message;
2968
3152
  },
2969
3153
  toAmino(message) {
@@ -3068,6 +3252,14 @@ exports.RepOperationalParams = {
3068
3252
  obj.review_required_above_budget = message.reviewRequiredAboveBudget === "" ? undefined : message.reviewRequiredAboveBudget;
3069
3253
  obj.review_bounty_reclaim_delay = message.reviewBountyReclaimDelay !== BigInt(0) ? message.reviewBountyReclaimDelay?.toString() : undefined;
3070
3254
  obj.permissionless_min_review_bounty_rate = message.permissionlessMinReviewBountyRate === "" ? undefined : message.permissionlessMinReviewBountyRate;
3255
+ obj.max_verifier_reward_pool = message.maxVerifierRewardPool === "" ? undefined : message.maxVerifierRewardPool;
3256
+ obj.verifier_reward_pool_overflow_burn_ratio = message.verifierRewardPoolOverflowBurnRatio === "" ? undefined : message.verifierRewardPoolOverflowBurnRatio;
3257
+ obj.verifier_reward_epoch_blocks = message.verifierRewardEpochBlocks !== BigInt(0) ? message.verifierRewardEpochBlocks?.toString() : undefined;
3258
+ obj.min_verifier_accuracy = message.minVerifierAccuracy === "" ? undefined : message.minVerifierAccuracy;
3259
+ obj.verifier_accuracy_window_epochs = message.verifierAccuracyWindowEpochs !== BigInt(0) ? message.verifierAccuracyWindowEpochs?.toString() : undefined;
3260
+ obj.min_epoch_verifications = message.minEpochVerifications === 0 ? undefined : message.minEpochVerifications;
3261
+ obj.verifier_dream_reward = message.verifierDreamReward === "" ? undefined : message.verifierDreamReward;
3262
+ obj.max_verifier_dream_mint_per_epoch = message.maxVerifierDreamMintPerEpoch === "" ? undefined : message.maxVerifierDreamMintPerEpoch;
3071
3263
  return obj;
3072
3264
  },
3073
3265
  fromAminoMsg(object) {
@@ -206,6 +206,19 @@ export interface RoleActivity {
206
206
  overturnedActions: {
207
207
  [key: string]: bigint;
208
208
  };
209
+ /**
210
+ * last_slash_epoch is the reward epoch (in the units the role's own
211
+ * reward distribution reads -- see roleRewardEpoch) in which this role
212
+ * was most recently slashed. Stamped by SlashBond for every role type.
213
+ *
214
+ * Reward distributions may use it as a "no pay in an epoch you were
215
+ * slashed in" gate; only the federation verifier does today. Stamping it
216
+ * generically anyway is deliberate: it is a property of the bond, the
217
+ * stamp is one write on a path that is already writing, and a role that
218
+ * wants the gate should not have to reintroduce a private counter to get
219
+ * it. Zero means never slashed under the current accounting.
220
+ */
221
+ lastSlashEpoch: bigint;
209
222
  }
210
223
  export interface RoleActivityProtoMsg {
211
224
  typeUrl: "/sparkdream.rep.v1.RoleActivity";
@@ -276,6 +289,19 @@ export interface RoleActivityAmino {
276
289
  overturned_actions?: {
277
290
  [key: string]: string;
278
291
  };
292
+ /**
293
+ * last_slash_epoch is the reward epoch (in the units the role's own
294
+ * reward distribution reads -- see roleRewardEpoch) in which this role
295
+ * was most recently slashed. Stamped by SlashBond for every role type.
296
+ *
297
+ * Reward distributions may use it as a "no pay in an epoch you were
298
+ * slashed in" gate; only the federation verifier does today. Stamping it
299
+ * generically anyway is deliberate: it is a property of the bond, the
300
+ * stamp is one write on a path that is already writing, and a role that
301
+ * wants the gate should not have to reintroduce a private counter to get
302
+ * it. Zero means never slashed under the current accounting.
303
+ */
304
+ last_slash_epoch?: string;
279
305
  }
280
306
  export interface RoleActivityAminoMsg {
281
307
  type: "/sparkdream.rep.v1.RoleActivity";
@@ -402,7 +402,8 @@ function createBaseRoleActivity() {
402
402
  epochActions: {},
403
403
  totalActions: {},
404
404
  upheldActions: {},
405
- overturnedActions: {}
405
+ overturnedActions: {},
406
+ lastSlashEpoch: BigInt(0)
406
407
  };
407
408
  }
408
409
  /**
@@ -472,6 +473,9 @@ exports.RoleActivity = {
472
473
  value
473
474
  }, writer.uint32(88).fork()).ldelim();
474
475
  });
476
+ if (message.lastSlashEpoch !== BigInt(0)) {
477
+ writer.uint32(96).int64(message.lastSlashEpoch);
478
+ }
475
479
  return writer;
476
480
  },
477
481
  decode(input, length) {
@@ -526,6 +530,9 @@ exports.RoleActivity = {
526
530
  message.overturnedActions[entry11.key] = entry11.value;
527
531
  }
528
532
  break;
533
+ case 12:
534
+ message.lastSlashEpoch = reader.int64();
535
+ break;
529
536
  default:
530
537
  reader.skipType(tag & 7);
531
538
  break;
@@ -566,6 +573,7 @@ exports.RoleActivity = {
566
573
  }
567
574
  return acc;
568
575
  }, {});
576
+ message.lastSlashEpoch = object.lastSlashEpoch !== undefined && object.lastSlashEpoch !== null ? BigInt(object.lastSlashEpoch.toString()) : BigInt(0);
569
577
  return message;
570
578
  },
571
579
  fromAmino(object) {
@@ -613,6 +621,9 @@ exports.RoleActivity = {
613
621
  }
614
622
  return acc;
615
623
  }, {});
624
+ if (object.last_slash_epoch !== undefined && object.last_slash_epoch !== null) {
625
+ message.lastSlashEpoch = BigInt(object.last_slash_epoch);
626
+ }
616
627
  return message;
617
628
  },
618
629
  toAmino(message) {
@@ -653,6 +664,7 @@ exports.RoleActivity = {
653
664
  obj.overturned_actions[k] = v.toString();
654
665
  });
655
666
  }
667
+ obj.last_slash_epoch = message.lastSlashEpoch !== BigInt(0) ? message.lastSlashEpoch?.toString() : undefined;
656
668
  return obj;
657
669
  },
658
670
  fromAminoMsg(object) {
@@ -285,6 +285,7 @@ export declare const createRPCQueryClient: ({ rpcEndpoint }: {
285
285
  getReputationAttestation(request: import("./federation/v1/query").QueryGetReputationAttestationRequest): Promise<import("./federation/v1/query").QueryGetReputationAttestationResponse>;
286
286
  listOutboundAttestations(request?: import("./federation/v1/query").QueryListOutboundAttestationsRequest): Promise<import("./federation/v1/query").QueryListOutboundAttestationsResponse>;
287
287
  verifierActivity(request: import("./federation/v1/query").QueryVerifierActivityRequest): Promise<import("./federation/v1/query").QueryVerifierActivityResponse>;
288
+ operatorRewardPool(request?: import("./federation/v1/query").QueryOperatorRewardPoolRequest): Promise<import("./federation/v1/query").QueryOperatorRewardPoolResponse>;
288
289
  getVerificationRecord(request: import("./federation/v1/query").QueryGetVerificationRecordRequest): Promise<import("./federation/v1/query").QueryGetVerificationRecordResponse>;
289
290
  getEscalatedChallenge(request: import("./federation/v1/query").QueryGetEscalatedChallengeRequest): Promise<import("./federation/v1/query").QueryGetEscalatedChallengeResponse>;
290
291
  };