@dfinity/nns 10.3.0 → 10.3.1

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.
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit ff761f3619 (2025-10-03) 'rs/nns/gtc/canister/gtc.did' by import-candid
1
+ // Generated from IC repo commit 285897d (2025-10-08 tags: release-2025-10-09_03-15-base) 'rs/nns/gtc/canister/gtc.did' by import-candid
2
2
 
3
3
  type AccountState = record {
4
4
  authenticated_principal_id : opt principal;
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit ff761f3619 (2025-10-03) 'rs/nns/governance/canister/governance.did' by import-candid
1
+ // Generated from IC repo commit 285897d (2025-10-08 tags: release-2025-10-09_03-15-base) 'rs/nns/governance/canister/governance.did' by import-candid
2
2
 
3
3
  type AccountIdentifier = record {
4
4
  hash : blob;
@@ -94,6 +94,9 @@ export interface ClaimOrRefreshNeuronFromAccountResponse {
94
94
  export interface ClaimOrRefreshResponse {
95
95
  refreshed_neuron_id: [] | [NeuronId];
96
96
  }
97
+ /**
98
+ * KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
99
+ */
97
100
  export type Command =
98
101
  | { Spawn: Spawn }
99
102
  | { Split: Split }
@@ -406,17 +409,45 @@ export interface LedgerParameters {
406
409
  export interface ListKnownNeuronsResponse {
407
410
  known_neurons: Array<KnownNeuron>;
408
411
  }
412
+ /**
413
+ * Parameters of the list_neurons method.
414
+ */
409
415
  export interface ListNeurons {
410
416
  page_size: [] | [bigint];
417
+ /**
418
+ * When a public neuron is a member of the result set, include it in the
419
+ * full_neurons field (of ListNeuronsResponse). This does not affect which
420
+ * neurons are part of the result set.
421
+ */
411
422
  include_public_neurons_in_full_neurons: [] | [boolean];
423
+ /**
424
+ * These fields select neurons to be in the result set.
425
+ */
412
426
  neuron_ids: BigUint64Array | bigint[];
413
427
  page_number: [] | [bigint];
428
+ /**
429
+ * Only has an effect when include_neurons_readable_by_caller.
430
+ */
414
431
  include_empty_neurons_readable_by_caller: [] | [boolean];
415
432
  neuron_subaccounts: [] | [Array<NeuronSubaccount>];
416
433
  include_neurons_readable_by_caller: boolean;
417
434
  }
435
+ /**
436
+ * Output of the list_neurons method.
437
+ */
418
438
  export interface ListNeuronsResponse {
439
+ /**
440
+ * Per the NeuronInfo type, this is a redacted view of the neurons in the
441
+ * result set consisting of information that require no special privileges to
442
+ * view.
443
+ */
419
444
  neuron_infos: Array<[bigint, NeuronInfo]>;
445
+ /**
446
+ * If the caller has the necessary special privileges (or the neuron is
447
+ * public, and the request sets include_public_neurons_in_full_neurons to
448
+ * true), then all the information about the neurons in the result set is made
449
+ * available here.
450
+ */
420
451
  full_neurons: Array<Neuron>;
421
452
  total_pages_available: [] | [bigint];
422
453
  }
@@ -451,11 +482,18 @@ export interface MakeProposalResponse {
451
482
  message: [] | [string];
452
483
  proposal_id: [] | [ProposalId];
453
484
  }
485
+ /**
486
+ * Not to be confused with ManageNeuronRequest. (Yes, this is very structurally
487
+ * similar to that, but not actually exactly equivalent.)
488
+ */
454
489
  export interface ManageNeuron {
455
490
  id: [] | [NeuronId];
456
491
  command: [] | [Command];
457
492
  neuron_id_or_subaccount: [] | [NeuronIdOrSubaccount];
458
493
  }
494
+ /**
495
+ * KEEP THIS IN SYNC WITH COMMAND!
496
+ */
459
497
  export type ManageNeuronCommandRequest =
460
498
  | { Spawn: Spawn }
461
499
  | { Split: Split }
@@ -472,12 +510,31 @@ export type ManageNeuronCommandRequest =
472
510
  | { StakeMaturity: StakeMaturity }
473
511
  | { MergeMaturity: MergeMaturity }
474
512
  | { Disburse: Disburse };
513
+ /**
514
+ * Parameters of the manage_neuron method.
515
+ */
475
516
  export interface ManageNeuronRequest {
517
+ /**
518
+ * Deprecated. Use neuron_id_or_subaccount instead.
519
+ */
476
520
  id: [] | [NeuronId];
521
+ /**
522
+ * What operation to perform on the neuron.
523
+ */
477
524
  command: [] | [ManageNeuronCommandRequest];
525
+ /**
526
+ * Which neuron to operate on.
527
+ */
478
528
  neuron_id_or_subaccount: [] | [NeuronIdOrSubaccount];
479
529
  }
530
+ /**
531
+ * Output of the manage_neuron method.
532
+ */
480
533
  export interface ManageNeuronResponse {
534
+ /**
535
+ * Corresponds to the command field in ManageNeuronRequest, which determines
536
+ * what operation was performed.
537
+ */
481
538
  command: [] | [Command_1];
482
539
  }
483
540
  export interface MaturityDisbursement {
@@ -537,10 +594,67 @@ export interface Neuron {
537
594
  recent_ballots: Array<BallotInfo>;
538
595
  voting_power_refreshed_timestamp_seconds: [] | [bigint];
539
596
  kyc_verified: boolean;
597
+ /**
598
+ * The amount of "sway" this neuron can have if it refreshes its voting power
599
+ * frequently enough.
600
+ *
601
+ * Unlike deciding_voting_power, this does NOT take refreshing into account.
602
+ * Rather, this only takes three factors into account:
603
+ *
604
+ * 1. (Net) staked amount - This is the "base" of a neuron's voting power.
605
+ * This primarily consists of the neuron's ICP balance.
606
+ *
607
+ * 2. Age - Neurons with more age have more voting power (all else being
608
+ * equal).
609
+ *
610
+ * 3. Dissolve delay - Neurons with longer dissolve delay have more voting
611
+ * power (all else being equal). Neurons with a dissolve delay of less
612
+ * than six months are not eligible to vote. Therefore, such neurons
613
+ * are considered to have 0 voting power.
614
+ *
615
+ * Per NNS policy, this is opt. Nevertheless, it will never be null.
616
+ */
540
617
  potential_voting_power: [] | [bigint];
541
618
  neuron_type: [] | [number];
542
619
  not_for_profit: boolean;
543
620
  maturity_e8s_equivalent: bigint;
621
+ /**
622
+ * The amount of "sway" this neuron has when voting on proposals.
623
+ *
624
+ * When a proposal is created, each eligible neuron gets a "blank" ballot. The
625
+ * amount of voting power in that ballot is set to the neuron's deciding
626
+ * voting power at the time of proposal creation. There are two ways that a
627
+ * proposal can become decided:
628
+ *
629
+ * 1. Early: Either more than half of the total voting power in the ballots
630
+ * votes in favor (then the proposal is approved), or at least half of the
631
+ * votal voting power in the ballots votes against (then, the proposal is
632
+ * rejected).
633
+ *
634
+ * 2. The proposal's voting deadline is reached. At that point, if there is
635
+ * more voting power in favor than against, and at least 3% of the total
636
+ * voting power voted in favor, then the proposal is approved. Otherwise, it
637
+ * is rejected.
638
+ *
639
+ * If a neuron regularly refreshes its voting power, this has the same value
640
+ * as potential_voting_power. Actions that cause a refresh are as follows:
641
+ *
642
+ * 1. voting directly (not via following)
643
+ * 2. set following
644
+ * 3. refresh voting power
645
+ *
646
+ * (All of these actions are performed via the manage_neuron method.)
647
+ *
648
+ * However, if a neuron has not refreshed in a "long" time, this will be less
649
+ * than potential voting power. See VotingPowerEconomics. As a further result
650
+ * of less deciding voting power, not only does it have less influence on the
651
+ * outcome of proposals, the neuron receives less voting rewards (when it
652
+ * votes indirectly via following).
653
+ *
654
+ * For details, see https://dashboard.internetcomputer.org/proposal/132411.
655
+ *
656
+ * Per NNS policy, this is opt. Nevertheless, it will never be null.
657
+ */
544
658
  deciding_voting_power: [] | [bigint];
545
659
  cached_neuron_stake_e8s: bigint;
546
660
  created_timestamp_seconds: bigint;
@@ -549,6 +663,10 @@ export interface Neuron {
549
663
  hot_keys: Array<Principal>;
550
664
  account: Uint8Array | number[];
551
665
  joined_community_fund_timestamp_seconds: [] | [bigint];
666
+ /**
667
+ * The maturity disbursements in progress, i.e. the disbursements that are initiated but not
668
+ * finalized. The finalization happens 7 days after the disbursement is initiated.
669
+ */
552
670
  maturity_disbursements_in_progress: [] | [Array<MaturityDisbursement>];
553
671
  dissolve_state: [] | [DissolveState];
554
672
  followees: Array<[number, Followees]>;
@@ -583,6 +701,14 @@ export interface NeuronInFlightCommand {
583
701
  command: [] | [Command_2];
584
702
  timestamp: bigint;
585
703
  }
704
+ /**
705
+ * A limit view of Neuron that allows some aspects of all neurons to be read by
706
+ * anyone (i.e. without having to be the neuron's controller nor one of its
707
+ * hotkeys).
708
+ *
709
+ * As such, the meaning of each field in this type is generally the same as the
710
+ * one of the same (or at least similar) name in Neuron.
711
+ */
586
712
  export interface NeuronInfo {
587
713
  dissolve_delay_seconds: bigint;
588
714
  recent_ballots: Array<BallotInfo>;
@@ -592,11 +718,27 @@ export interface NeuronInfo {
592
718
  deciding_voting_power: [] | [bigint];
593
719
  created_timestamp_seconds: bigint;
594
720
  state: number;
721
+ /**
722
+ * The amount of ICP (and staked maturity) locked in this neuron.
723
+ *
724
+ * This is the foundation of the neuron's voting power.
725
+ *
726
+ * cached_neuron_stake_e8s - neuron_fees_e8s + staked_maturity_e8s_equivalent
727
+ */
595
728
  stake_e8s: bigint;
596
729
  joined_community_fund_timestamp_seconds: [] | [bigint];
597
730
  retrieved_at_timestamp_seconds: bigint;
598
731
  visibility: [] | [number];
599
732
  known_neuron_data: [] | [KnownNeuronData];
733
+ /**
734
+ * Deprecated. Use either deciding_voting_power or potential_voting_power
735
+ * instead. Has the same value as deciding_voting_power.
736
+ *
737
+ * Previously, if a neuron had < 6 months dissolve delay (making it ineligible
738
+ * to vote), this would not get set to 0 (zero). That was pretty confusing.
739
+ * Now that this is set to deciding_voting_power, this actually does get
740
+ * zeroed out.
741
+ */
600
742
  voting_power: bigint;
601
743
  age_seconds: bigint;
602
744
  }
@@ -1076,6 +1218,9 @@ export interface _SERVICE {
1076
1218
  ManageNeuronResponse
1077
1219
  >;
1078
1220
  transfer_gtc_neuron: ActorMethod<[NeuronId, NeuronId], Result>;
1221
+ /**
1222
+ * The following are methods for feature = "test"
1223
+ */
1079
1224
  update_neuron: ActorMethod<[Neuron], [] | [GovernanceError]>;
1080
1225
  update_node_provider: ActorMethod<[UpdateNodeProvider], Result>;
1081
1226
  }
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit ff761f3619 (2025-10-03) 'rs/nns/governance/canister/governance_test.did' by import-candid
1
+ // Generated from IC repo commit 285897d (2025-10-08 tags: release-2025-10-09_03-15-base) 'packages/nns/candid/governance_test.did.tmp' by import-candid
2
2
 
3
3
  type AccountIdentifier = record {
4
4
  hash : blob;
@@ -154,6 +154,7 @@ type FolloweesForTopic = record {
154
154
  type SetFollowingResponse = record {
155
155
  };
156
156
 
157
+ // KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
157
158
  type Command = variant {
158
159
  Spawn : Spawn;
159
160
  Split : Split;
@@ -170,6 +171,8 @@ type Command = variant {
170
171
  RefreshVotingPower : RefreshVotingPower;
171
172
  DisburseMaturity : DisburseMaturity;
172
173
  SetFollowing : SetFollowing;
174
+
175
+ // KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
173
176
  };
174
177
 
175
178
  type Command_1 = variant {
@@ -461,11 +464,20 @@ type ListKnownNeuronsResponse = record {
461
464
  known_neurons : vec KnownNeuron;
462
465
  };
463
466
 
467
+ // Parameters of the list_neurons method.
464
468
  type ListNeurons = record {
465
- include_public_neurons_in_full_neurons : opt bool;
469
+ // These fields select neurons to be in the result set.
466
470
  neuron_ids : vec nat64;
467
- include_empty_neurons_readable_by_caller : opt bool;
468
471
  include_neurons_readable_by_caller : bool;
472
+
473
+ // Only has an effect when include_neurons_readable_by_caller.
474
+ include_empty_neurons_readable_by_caller : opt bool;
475
+
476
+ // When a public neuron is a member of the result set, include it in the
477
+ // full_neurons field (of ListNeuronsResponse). This does not affect which
478
+ // neurons are part of the result set.
479
+ include_public_neurons_in_full_neurons : opt bool;
480
+
469
481
  page_number: opt nat64;
470
482
  page_size: opt nat64;
471
483
  neuron_subaccounts: opt vec NeuronSubaccount;
@@ -475,9 +487,19 @@ type NeuronSubaccount = record {
475
487
  subaccount : blob;
476
488
  };
477
489
 
490
+ // Output of the list_neurons method.
478
491
  type ListNeuronsResponse = record {
492
+ // Per the NeuronInfo type, this is a redacted view of the neurons in the
493
+ // result set consisting of information that require no special privileges to
494
+ // view.
479
495
  neuron_infos : vec record { nat64; NeuronInfo };
496
+
497
+ // If the caller has the necessary special privileges (or the neuron is
498
+ // public, and the request sets include_public_neurons_in_full_neurons to
499
+ // true), then all the information about the neurons in the result set is made
500
+ // available here.
480
501
  full_neurons : vec Neuron;
502
+
481
503
  total_pages_available: opt nat64;
482
504
  };
483
505
 
@@ -519,12 +541,15 @@ type MakeProposalResponse = record {
519
541
  proposal_id : opt ProposalId;
520
542
  };
521
543
 
544
+ // Not to be confused with ManageNeuronRequest. (Yes, this is very structurally
545
+ // similar to that, but not actually exactly equivalent.)
522
546
  type ManageNeuron = record {
523
547
  id : opt NeuronId;
524
548
  command : opt Command;
525
549
  neuron_id_or_subaccount : opt NeuronIdOrSubaccount;
526
550
  };
527
551
 
552
+ // KEEP THIS IN SYNC WITH COMMAND!
528
553
  type ManageNeuronCommandRequest = variant {
529
554
  Spawn : Spawn;
530
555
  Split : Split;
@@ -541,15 +566,26 @@ type ManageNeuronCommandRequest = variant {
541
566
  RefreshVotingPower : RefreshVotingPower;
542
567
  DisburseMaturity : DisburseMaturity;
543
568
  SetFollowing : SetFollowing;
569
+
570
+ // KEEP THIS IN SYNC WITH COMMAND!
544
571
  };
545
572
 
573
+ // Parameters of the manage_neuron method.
546
574
  type ManageNeuronRequest = record {
547
- id : opt NeuronId;
548
- command : opt ManageNeuronCommandRequest;
575
+ // Which neuron to operate on.
549
576
  neuron_id_or_subaccount : opt NeuronIdOrSubaccount;
577
+
578
+ // What operation to perform on the neuron.
579
+ command : opt ManageNeuronCommandRequest;
580
+
581
+ // Deprecated. Use neuron_id_or_subaccount instead.
582
+ id : opt NeuronId;
550
583
  };
551
584
 
585
+ // Output of the manage_neuron method.
552
586
  type ManageNeuronResponse = record {
587
+ // Corresponds to the command field in ManageNeuronRequest, which determines
588
+ // what operation was performed.
553
589
  command : opt Command_1;
554
590
  };
555
591
 
@@ -573,7 +609,6 @@ type MergeResponse = record {
573
609
  source_neuron_info : opt NeuronInfo;
574
610
  };
575
611
 
576
-
577
612
  type MonthlyNodeProviderRewards = record {
578
613
  minimum_xdr_permyriad_per_icp : opt nat64;
579
614
  registry_version : opt nat64;
@@ -624,6 +659,7 @@ type VotingPowerEconomics = record {
624
659
  //
625
660
  // Initially, set to 1/12 years.
626
661
  clear_following_after_seconds : opt nat64;
662
+
627
663
  // The minimum dissolve delay a neuron must have in order to be eligible to vote.
628
664
  //
629
665
  // Neurons with a dissolve delay lower than this threshold will not have
@@ -658,8 +694,66 @@ type Neuron = record {
658
694
  known_neuron_data : opt KnownNeuronData;
659
695
  spawn_at_timestamp_seconds : opt nat64;
660
696
  voting_power_refreshed_timestamp_seconds : opt nat64;
697
+
698
+ // The amount of "sway" this neuron has when voting on proposals.
699
+ //
700
+ // When a proposal is created, each eligible neuron gets a "blank" ballot. The
701
+ // amount of voting power in that ballot is set to the neuron's deciding
702
+ // voting power at the time of proposal creation. There are two ways that a
703
+ // proposal can become decided:
704
+ //
705
+ // 1. Early: Either more than half of the total voting power in the ballots
706
+ // votes in favor (then the proposal is approved), or at least half of the
707
+ // votal voting power in the ballots votes against (then, the proposal is
708
+ // rejected).
709
+ //
710
+ // 2. The proposal's voting deadline is reached. At that point, if there is
711
+ // more voting power in favor than against, and at least 3% of the total
712
+ // voting power voted in favor, then the proposal is approved. Otherwise, it
713
+ // is rejected.
714
+ //
715
+ // If a neuron regularly refreshes its voting power, this has the same value
716
+ // as potential_voting_power. Actions that cause a refresh are as follows:
717
+ //
718
+ // 1. voting directly (not via following)
719
+ // 2. set following
720
+ // 3. refresh voting power
721
+ //
722
+ // (All of these actions are performed via the manage_neuron method.)
723
+ //
724
+ // However, if a neuron has not refreshed in a "long" time, this will be less
725
+ // than potential voting power. See VotingPowerEconomics. As a further result
726
+ // of less deciding voting power, not only does it have less influence on the
727
+ // outcome of proposals, the neuron receives less voting rewards (when it
728
+ // votes indirectly via following).
729
+ //
730
+ // For details, see https://dashboard.internetcomputer.org/proposal/132411.
731
+ //
732
+ // Per NNS policy, this is opt. Nevertheless, it will never be null.
661
733
  deciding_voting_power : opt nat64;
734
+
735
+ // The amount of "sway" this neuron can have if it refreshes its voting power
736
+ // frequently enough.
737
+ //
738
+ // Unlike deciding_voting_power, this does NOT take refreshing into account.
739
+ // Rather, this only takes three factors into account:
740
+ //
741
+ // 1. (Net) staked amount - This is the "base" of a neuron's voting power.
742
+ // This primarily consists of the neuron's ICP balance.
743
+ //
744
+ // 2. Age - Neurons with more age have more voting power (all else being
745
+ // equal).
746
+ //
747
+ // 3. Dissolve delay - Neurons with longer dissolve delay have more voting
748
+ // power (all else being equal). Neurons with a dissolve delay of less
749
+ // than six months are not eligible to vote. Therefore, such neurons
750
+ // are considered to have 0 voting power.
751
+ //
752
+ // Per NNS policy, this is opt. Nevertheless, it will never be null.
662
753
  potential_voting_power : opt nat64;
754
+
755
+ // The maturity disbursements in progress, i.e. the disbursements that are initiated but not
756
+ // finalized. The finalization happens 7 days after the disbursement is initiated.
663
757
  maturity_disbursements_in_progress : opt vec MaturityDisbursement;
664
758
  };
665
759
 
@@ -699,20 +793,42 @@ type NeuronInFlightCommand = record {
699
793
  timestamp : nat64;
700
794
  };
701
795
 
796
+ // A limit view of Neuron that allows some aspects of all neurons to be read by
797
+ // anyone (i.e. without having to be the neuron's controller nor one of its
798
+ // hotkeys).
799
+ //
800
+ // As such, the meaning of each field in this type is generally the same as the
801
+ // one of the same (or at least similar) name in Neuron.
702
802
  type NeuronInfo = record {
703
803
  dissolve_delay_seconds : nat64;
704
804
  recent_ballots : vec BallotInfo;
705
805
  neuron_type : opt int32;
706
806
  created_timestamp_seconds : nat64;
707
807
  state : int32;
808
+
809
+ // The amount of ICP (and staked maturity) locked in this neuron.
810
+ //
811
+ // This is the foundation of the neuron's voting power.
812
+ //
813
+ // cached_neuron_stake_e8s - neuron_fees_e8s + staked_maturity_e8s_equivalent
708
814
  stake_e8s : nat64;
815
+
709
816
  joined_community_fund_timestamp_seconds : opt nat64;
710
817
  retrieved_at_timestamp_seconds : nat64;
711
818
  visibility : opt int32;
712
819
  known_neuron_data : opt KnownNeuronData;
713
820
  age_seconds : nat64;
714
- voting_power_refreshed_timestamp_seconds : opt nat64;
821
+
822
+ // Deprecated. Use either deciding_voting_power or potential_voting_power
823
+ // instead. Has the same value as deciding_voting_power.
824
+ //
825
+ // Previously, if a neuron had < 6 months dissolve delay (making it ineligible
826
+ // to vote), this would not get set to 0 (zero). That was pretty confusing.
827
+ // Now that this is set to deciding_voting_power, this actually does get
828
+ // zeroed out.
715
829
  voting_power : nat64;
830
+
831
+ voting_power_refreshed_timestamp_seconds : opt nat64;
716
832
  deciding_voting_power : opt nat64;
717
833
  potential_voting_power : opt nat64;
718
834
  };
@@ -1264,6 +1380,8 @@ service : (Governance) -> {
1264
1380
  ) -> (SettleNeuronsFundParticipationResponse);
1265
1381
  simulate_manage_neuron : (ManageNeuronRequest) -> (ManageNeuronResponse);
1266
1382
  transfer_gtc_neuron : (NeuronId, NeuronId) -> (Result);
1267
- update_neuron : (Neuron) -> (opt GovernanceError);
1268
1383
  update_node_provider : (UpdateNodeProvider) -> (Result);
1384
+
1385
+ // The following are methods for feature = "test"
1386
+ update_neuron : (Neuron) -> (opt GovernanceError);
1269
1387
  }
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit ff761f3619 (2025-10-03) 'rs/nns/sns-wasm/canister/sns-wasm.did' by import-candid
1
+ // Generated from IC repo commit 285897d (2025-10-08 tags: release-2025-10-09_03-15-base) 'rs/nns/sns-wasm/canister/sns-wasm.did' by import-candid
2
2
 
3
3
  type AddWasmRequest = record {
4
4
  hash : blob;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfinity/nns",
3
- "version": "10.3.0",
3
+ "version": "10.3.1",
4
4
  "description": "A library for interfacing with the Internet Computer's Network Nervous System.",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/cjs/index.cjs.js",