@dfinity/nns 10.1.0 → 10.1.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,5 @@
1
1
  // Generated from IC repo commit 206b61a (2025-09-25 tags: release-2025-09-25_09-52-base) 'rs/nns/gtc/canister/gtc.did' by import-candid
2
+
2
3
  type AccountState = record {
3
4
  authenticated_principal_id : opt principal;
4
5
  successfully_transferred_neurons : vec TransferredNeuron;
@@ -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 }
@@ -227,9 +230,41 @@ export interface FolloweesForTopic {
227
230
  topic: [] | [number];
228
231
  followees: [] | [Array<NeuronId>];
229
232
  }
233
+ /**
234
+ * Creates a rented subnet from a rental request (in the Subnet Rental
235
+ * canister).
236
+ */
230
237
  export interface FulfillSubnetRentalRequest {
238
+ /**
239
+ * Identifies which rental request to fulfill.
240
+ *
241
+ * (Identifying the rental request by user works, because a user can have at
242
+ * most one rental request in the Subnet Rental canister).
243
+ */
231
244
  user: [] | [Principal];
245
+ /**
246
+ * What software the nodes will run.
247
+ *
248
+ * This must be approved by a prior proposal to bless an IC OS version.
249
+ *
250
+ * This is a FULL git commit ID in the ic repo. (Therefore, it must be a 40
251
+ * character hexidecimal string, not an abbreviated git commit ID.)
252
+ *
253
+ * One way to find a suitable value is with the following command:
254
+ *
255
+ * ic-admin \
256
+ * get-subnet 0 \
257
+ * --nns-urls https://nns.ic0.app \
258
+ * | grep replica_version_id
259
+ *
260
+ * Where to obtain a recent version of ic-admin:
261
+ *
262
+ * https://github.com/dfinity/ic/releases/latest
263
+ */
232
264
  replica_version_id: [] | [string];
265
+ /**
266
+ * Which nodes will be members of the subnet.
267
+ */
233
268
  node_ids: [] | [Array<Principal>];
234
269
  }
235
270
  export interface GetNeuronsFundAuditInfoRequest {
@@ -374,17 +409,45 @@ export interface LedgerParameters {
374
409
  export interface ListKnownNeuronsResponse {
375
410
  known_neurons: Array<KnownNeuron>;
376
411
  }
412
+ /**
413
+ * Parameters of the list_neurons method.
414
+ */
377
415
  export interface ListNeurons {
378
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
+ */
379
422
  include_public_neurons_in_full_neurons: [] | [boolean];
423
+ /**
424
+ * These fields select neurons to be in the result set.
425
+ */
380
426
  neuron_ids: BigUint64Array | bigint[];
381
427
  page_number: [] | [bigint];
428
+ /**
429
+ * Only has an effect when include_neurons_readable_by_caller.
430
+ */
382
431
  include_empty_neurons_readable_by_caller: [] | [boolean];
383
432
  neuron_subaccounts: [] | [Array<NeuronSubaccount>];
384
433
  include_neurons_readable_by_caller: boolean;
385
434
  }
435
+ /**
436
+ * Output of the list_neurons method.
437
+ */
386
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
+ */
387
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
+ */
388
451
  full_neurons: Array<Neuron>;
389
452
  total_pages_available: [] | [bigint];
390
453
  }
@@ -419,11 +482,18 @@ export interface MakeProposalResponse {
419
482
  message: [] | [string];
420
483
  proposal_id: [] | [ProposalId];
421
484
  }
485
+ /**
486
+ * Not to be confused with ManageNeuronRequest. (Yes, this is very structurally
487
+ * similar to that, but not actually exactly equivalent.)
488
+ */
422
489
  export interface ManageNeuron {
423
490
  id: [] | [NeuronId];
424
491
  command: [] | [Command];
425
492
  neuron_id_or_subaccount: [] | [NeuronIdOrSubaccount];
426
493
  }
494
+ /**
495
+ * KEEP THIS IN SYNC WITH COMMAND!
496
+ */
427
497
  export type ManageNeuronCommandRequest =
428
498
  | { Spawn: Spawn }
429
499
  | { Split: Split }
@@ -440,12 +510,31 @@ export type ManageNeuronCommandRequest =
440
510
  | { StakeMaturity: StakeMaturity }
441
511
  | { MergeMaturity: MergeMaturity }
442
512
  | { Disburse: Disburse };
513
+ /**
514
+ * Parameters of the manage_neuron method.
515
+ */
443
516
  export interface ManageNeuronRequest {
517
+ /**
518
+ * Deprecated. Use neuron_id_or_subaccount instead.
519
+ */
444
520
  id: [] | [NeuronId];
521
+ /**
522
+ * What operation to perform on the neuron.
523
+ */
445
524
  command: [] | [ManageNeuronCommandRequest];
525
+ /**
526
+ * Which neuron to operate on.
527
+ */
446
528
  neuron_id_or_subaccount: [] | [NeuronIdOrSubaccount];
447
529
  }
530
+ /**
531
+ * Output of the manage_neuron method.
532
+ */
448
533
  export interface ManageNeuronResponse {
534
+ /**
535
+ * Corresponds to the command field in ManageNeuronRequest, which determines
536
+ * what operation was performed.
537
+ */
449
538
  command: [] | [Command_1];
450
539
  }
451
540
  export interface MaturityDisbursement {
@@ -485,6 +574,9 @@ export interface Motion {
485
574
  }
486
575
  export interface NetworkEconomics {
487
576
  neuron_minimum_stake_e8s: bigint;
577
+ /**
578
+ * Parameters that affect the voting power of neurons.
579
+ */
488
580
  voting_power_economics: [] | [VotingPowerEconomics];
489
581
  max_proposals_to_keep_per_topic: number;
490
582
  neuron_management_fee_per_proposal_e8s: bigint;
@@ -502,10 +594,67 @@ export interface Neuron {
502
594
  recent_ballots: Array<BallotInfo>;
503
595
  voting_power_refreshed_timestamp_seconds: [] | [bigint];
504
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
+ */
505
617
  potential_voting_power: [] | [bigint];
506
618
  neuron_type: [] | [number];
507
619
  not_for_profit: boolean;
508
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
+ */
509
658
  deciding_voting_power: [] | [bigint];
510
659
  cached_neuron_stake_e8s: bigint;
511
660
  created_timestamp_seconds: bigint;
@@ -514,6 +663,10 @@ export interface Neuron {
514
663
  hot_keys: Array<Principal>;
515
664
  account: Uint8Array | number[];
516
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
+ */
517
670
  maturity_disbursements_in_progress: [] | [Array<MaturityDisbursement>];
518
671
  dissolve_state: [] | [DissolveState];
519
672
  followees: Array<[number, Followees]>;
@@ -548,6 +701,14 @@ export interface NeuronInFlightCommand {
548
701
  command: [] | [Command_2];
549
702
  timestamp: bigint;
550
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
+ */
551
712
  export interface NeuronInfo {
552
713
  dissolve_delay_seconds: bigint;
553
714
  recent_ballots: Array<BallotInfo>;
@@ -557,11 +718,27 @@ export interface NeuronInfo {
557
718
  deciding_voting_power: [] | [bigint];
558
719
  created_timestamp_seconds: bigint;
559
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
+ */
560
728
  stake_e8s: bigint;
561
729
  joined_community_fund_timestamp_seconds: [] | [bigint];
562
730
  retrieved_at_timestamp_seconds: bigint;
563
731
  visibility: [] | [number];
564
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
+ */
565
742
  voting_power: bigint;
566
743
  age_seconds: bigint;
567
744
  }
@@ -759,6 +936,11 @@ export interface ProposalInfo {
759
936
  proposer: [] | [NeuronId];
760
937
  executed_timestamp_seconds: bigint;
761
938
  }
939
+ /**
940
+ * This is one way for a neuron to make sure that its deciding_voting_power is
941
+ * not less than its potential_voting_power. See the description of those fields
942
+ * in Neuron.
943
+ */
762
944
  export type RefreshVotingPower = {};
763
945
  export type RefreshVotingPowerResponse = {};
764
946
  export interface RegisterVote {
@@ -931,9 +1113,41 @@ export interface UpdateCanisterSettings {
931
1113
  export interface UpdateNodeProvider {
932
1114
  reward_account: [] | [AccountIdentifier];
933
1115
  }
1116
+ /**
1117
+ * Parameters that affect the voting power of neurons.
1118
+ */
934
1119
  export interface VotingPowerEconomics {
1120
+ /**
1121
+ * If a neuron has not "refreshed" its voting power after this amount of time,
1122
+ * its deciding voting power starts decreasing linearly. See also
1123
+ * clear_following_after_seconds.
1124
+ *
1125
+ * For explanation of what "refresh" means in this context, see
1126
+ * https://dashboard.internetcomputer.org/proposal/132411
1127
+ *
1128
+ * Initially, set to 0.5 years. (The nominal length of a year is 365.25 days).
1129
+ */
935
1130
  start_reducing_voting_power_after_seconds: [] | [bigint];
1131
+ /**
1132
+ * The minimum dissolve delay a neuron must have in order to be eligible to vote.
1133
+ *
1134
+ * Neurons with a dissolve delay lower than this threshold will not have
1135
+ * voting power, even if they are otherwise active.
1136
+ *
1137
+ * This value is an essential part of the staking mechanism, promoting
1138
+ * long-term alignment with the network's governance.
1139
+ */
936
1140
  neuron_minimum_dissolve_delay_to_vote_seconds: [] | [bigint];
1141
+ /**
1142
+ * After a neuron has experienced voting power reduction for this amount of
1143
+ * time, a couple of things happen:
1144
+ *
1145
+ * 1. Deciding voting power reaches 0.
1146
+ *
1147
+ * 2. Its following on topics other than NeuronManagement are cleared.
1148
+ *
1149
+ * Initially, set to 1/12 years.
1150
+ */
937
1151
  clear_following_after_seconds: [] | [bigint];
938
1152
  }
939
1153
  export interface VotingRewardParameters {
@@ -1,4 +1,5 @@
1
1
  // Generated from IC repo commit 206b61a (2025-09-25 tags: release-2025-09-25_09-52-base) 'rs/nns/governance/canister/governance.did' by import-candid
2
+
2
3
  type AccountIdentifier = record {
3
4
  hash : blob;
4
5
  };
@@ -227,9 +227,41 @@ export interface FolloweesForTopic {
227
227
  topic: [] | [number];
228
228
  followees: [] | [Array<NeuronId>];
229
229
  }
230
+ /**
231
+ * Creates a rented subnet from a rental request (in the Subnet Rental
232
+ * canister).
233
+ */
230
234
  export interface FulfillSubnetRentalRequest {
235
+ /**
236
+ * Identifies which rental request to fulfill.
237
+ *
238
+ * (Identifying the rental request by user works, because a user can have at
239
+ * most one rental request in the Subnet Rental canister).
240
+ */
231
241
  user: [] | [Principal];
242
+ /**
243
+ * What software the nodes will run.
244
+ *
245
+ * This must be approved by a prior proposal to bless an IC OS version.
246
+ *
247
+ * This is a FULL git commit ID in the ic repo. (Therefore, it must be a 40
248
+ * character hexidecimal string, not an abbreviated git commit ID.)
249
+ *
250
+ * One way to find a suitable value is with the following command:
251
+ *
252
+ * ic-admin \
253
+ * get-subnet 0 \
254
+ * --nns-urls https://nns.ic0.app \
255
+ * | grep replica_version_id
256
+ *
257
+ * Where to obtain a recent version of ic-admin:
258
+ *
259
+ * https://github.com/dfinity/ic/releases/latest
260
+ */
232
261
  replica_version_id: [] | [string];
262
+ /**
263
+ * Which nodes will be members of the subnet.
264
+ */
233
265
  node_ids: [] | [Array<Principal>];
234
266
  }
235
267
  export interface GetNeuronsFundAuditInfoRequest {
@@ -485,6 +517,9 @@ export interface Motion {
485
517
  }
486
518
  export interface NetworkEconomics {
487
519
  neuron_minimum_stake_e8s: bigint;
520
+ /**
521
+ * Parameters that affect the voting power of neurons.
522
+ */
488
523
  voting_power_economics: [] | [VotingPowerEconomics];
489
524
  max_proposals_to_keep_per_topic: number;
490
525
  neuron_management_fee_per_proposal_e8s: bigint;
@@ -759,6 +794,11 @@ export interface ProposalInfo {
759
794
  proposer: [] | [NeuronId];
760
795
  executed_timestamp_seconds: bigint;
761
796
  }
797
+ /**
798
+ * This is one way for a neuron to make sure that its deciding_voting_power is
799
+ * not less than its potential_voting_power. See the description of those fields
800
+ * in Neuron.
801
+ */
762
802
  export type RefreshVotingPower = {};
763
803
  export type RefreshVotingPowerResponse = {};
764
804
  export interface RegisterVote {
@@ -931,9 +971,41 @@ export interface UpdateCanisterSettings {
931
971
  export interface UpdateNodeProvider {
932
972
  reward_account: [] | [AccountIdentifier];
933
973
  }
974
+ /**
975
+ * Parameters that affect the voting power of neurons.
976
+ */
934
977
  export interface VotingPowerEconomics {
978
+ /**
979
+ * If a neuron has not "refreshed" its voting power after this amount of time,
980
+ * its deciding voting power starts decreasing linearly. See also
981
+ * clear_following_after_seconds.
982
+ *
983
+ * For explanation of what "refresh" means in this context, see
984
+ * https://dashboard.internetcomputer.org/proposal/132411
985
+ *
986
+ * Initially, set to 0.5 years. (The nominal length of a year is 365.25 days).
987
+ */
935
988
  start_reducing_voting_power_after_seconds: [] | [bigint];
989
+ /**
990
+ * The minimum dissolve delay a neuron must have in order to be eligible to vote.
991
+ *
992
+ * Neurons with a dissolve delay lower than this threshold will not have
993
+ * voting power, even if they are otherwise active.
994
+ *
995
+ * This value is an essential part of the staking mechanism, promoting
996
+ * long-term alignment with the network's governance.
997
+ */
936
998
  neuron_minimum_dissolve_delay_to_vote_seconds: [] | [bigint];
999
+ /**
1000
+ * After a neuron has experienced voting power reduction for this amount of
1001
+ * time, a couple of things happen:
1002
+ *
1003
+ * 1. Deciding voting power reaches 0.
1004
+ *
1005
+ * 2. Its following on topics other than NeuronManagement are cleared.
1006
+ *
1007
+ * Initially, set to 1/12 years.
1008
+ */
937
1009
  clear_following_after_seconds: [] | [bigint];
938
1010
  }
939
1011
  export interface VotingRewardParameters {
@@ -1,4 +1,5 @@
1
1
  // Generated from IC repo commit 206b61a (2025-09-25 tags: release-2025-09-25_09-52-base) 'rs/nns/governance/canister/governance_test.did' by import-candid
2
+
2
3
  type AccountIdentifier = record {
3
4
  hash : blob;
4
5
  };
@@ -1,4 +1,5 @@
1
1
  // Generated from IC repo commit 206b61a (2025-09-25 tags: release-2025-09-25_09-52-base) 'rs/nns/sns-wasm/canister/sns-wasm.did' by import-candid
2
+
2
3
  type AddWasmRequest = record {
3
4
  hash : blob;
4
5
  wasm : opt SnsWasm;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfinity/nns",
3
- "version": "10.1.0",
3
+ "version": "10.1.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",