@dfinity/nns 8.3.2 → 8.4.0

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 2f02a66 (2025-02-13 tags: release-2025-02-20_10-16-disable-best-effort-messaging) 'rs/nns/governance/canister/governance.did' by import-candid
1
+ // Generated from IC repo commit 3ae3649 (2025-03-26 tags: release-2025-03-27_03-14-base) 'rs/nns/governance/canister/governance.did' by import-candid
2
2
  type AccountIdentifier = record {
3
3
  hash : blob;
4
4
  };
@@ -124,6 +124,20 @@ type RefreshVotingPowerResponse = record {
124
124
  // minimal until we discover there is a "real need". YAGNI.
125
125
  };
126
126
 
127
+ type DisburseMaturity = record {
128
+ percentage_to_disburse : nat32;
129
+ to_account : opt Account;
130
+ };
131
+
132
+ type Account = record {
133
+ owner: opt principal;
134
+ subaccount: opt blob;
135
+ };
136
+
137
+ type DisburseMaturityResponse = record {
138
+ amount_disbursed_e8s : opt nat64;
139
+ };
140
+
127
141
  // KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
128
142
  type Command = variant {
129
143
  Spawn : Spawn;
@@ -139,6 +153,7 @@ type Command = variant {
139
153
  MergeMaturity : MergeMaturity;
140
154
  Disburse : Disburse;
141
155
  RefreshVotingPower : RefreshVotingPower;
156
+ DisburseMaturity : DisburseMaturity;
142
157
 
143
158
  // KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
144
159
  };
@@ -158,6 +173,7 @@ type Command_1 = variant {
158
173
  MergeMaturity : MergeMaturityResponse;
159
174
  Disburse : DisburseResponse;
160
175
  RefreshVotingPower : RefreshVotingPowerResponse;
176
+ DisburseMaturity : DisburseMaturityResponse;
161
177
  };
162
178
 
163
179
  type Command_2 = variant {
@@ -303,7 +319,6 @@ type Governance = record {
303
319
  to_claim_transfers : vec NeuronStakeTransfer;
304
320
  short_voting_period_seconds : nat64;
305
321
  topic_followee_index : vec record { int32; FollowersMap };
306
- migrations : opt Migrations;
307
322
  proposals : vec record { nat64; ProposalData };
308
323
  xdr_conversion_rate : opt XdrConversionRate;
309
324
  in_flight_commands : vec record { nat64; NeuronInFlightCommand };
@@ -541,6 +556,7 @@ type ManageNeuronCommandRequest = variant {
541
556
  MergeMaturity : MergeMaturity;
542
557
  Disburse : Disburse;
543
558
  RefreshVotingPower : RefreshVotingPower;
559
+ DisburseMaturity : DisburseMaturity;
544
560
 
545
561
  // KEEP THIS IN SYNC WITH COMMAND!
546
562
  };
@@ -584,17 +600,6 @@ type MergeResponse = record {
584
600
  source_neuron_info : opt NeuronInfo;
585
601
  };
586
602
 
587
- type Migration = record {
588
- status : opt int32;
589
- failure_reason : opt text;
590
- progress : opt Progress;
591
- };
592
-
593
- type Migrations = record {
594
- neuron_indexes_migration : opt Migration;
595
- copy_inactive_neurons_to_stable_memory_migration : opt Migration;
596
- };
597
-
598
603
  type MonthlyNodeProviderRewards = record {
599
604
  minimum_xdr_permyriad_per_icp : opt nat64;
600
605
  registry_version : opt nat64;
@@ -645,6 +650,15 @@ type VotingPowerEconomics = record {
645
650
  //
646
651
  // Initially, set to 1/12 years.
647
652
  clear_following_after_seconds : opt nat64;
653
+
654
+ // The minimum dissolve delay a neuron must have in order to be eligible to vote.
655
+ //
656
+ // Neurons with a dissolve delay lower than this threshold will not have
657
+ // voting power, even if they are otherwise active.
658
+ //
659
+ // This value is an essential part of the staking mechanism, promoting
660
+ // long-term alignment with the network's governance.
661
+ neuron_minimum_dissolve_delay_to_vote_seconds : opt nat64;
648
662
  };
649
663
 
650
664
  type Neuron = record {
@@ -949,10 +963,6 @@ type Principals = record {
949
963
  principals : vec principal;
950
964
  };
951
965
 
952
- type Progress = variant {
953
- LastNeuronId : NeuronId;
954
- };
955
-
956
966
  type Proposal = record {
957
967
  url : text;
958
968
  title : opt text;
@@ -22,6 +22,14 @@ export const idlFactory = ({ IDL }) => {
22
22
  'topic' : IDL.Int32,
23
23
  'followees' : IDL.Vec(NeuronId),
24
24
  });
25
+ const Account = IDL.Record({
26
+ 'owner' : IDL.Opt(IDL.Principal),
27
+ 'subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)),
28
+ });
29
+ const DisburseMaturity = IDL.Record({
30
+ 'to_account' : IDL.Opt(Account),
31
+ 'percentage_to_disburse' : IDL.Nat32,
32
+ });
25
33
  const RefreshVotingPower = IDL.Record({});
26
34
  const ClaimOrRefreshNeuronFromAccount = IDL.Record({
27
35
  'controller' : IDL.Opt(IDL.Principal),
@@ -87,6 +95,7 @@ export const idlFactory = ({ IDL }) => {
87
95
  'Spawn' : Spawn,
88
96
  'Split' : Split,
89
97
  'Follow' : Follow,
98
+ 'DisburseMaturity' : DisburseMaturity,
90
99
  'RefreshVotingPower' : RefreshVotingPower,
91
100
  'ClaimOrRefresh' : ClaimOrRefresh,
92
101
  'Configure' : Configure,
@@ -279,6 +288,7 @@ export const idlFactory = ({ IDL }) => {
279
288
  });
280
289
  const VotingPowerEconomics = IDL.Record({
281
290
  'start_reducing_voting_power_after_seconds' : IDL.Opt(IDL.Nat64),
291
+ 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),
282
292
  'clear_following_after_seconds' : IDL.Opt(IDL.Nat64),
283
293
  });
284
294
  const Decimal = IDL.Record({ 'human_readable' : IDL.Opt(IDL.Text) });
@@ -481,16 +491,6 @@ export const idlFactory = ({ IDL }) => {
481
491
  const FollowersMap = IDL.Record({
482
492
  'followers_map' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followers)),
483
493
  });
484
- const Progress = IDL.Variant({ 'LastNeuronId' : NeuronId });
485
- const Migration = IDL.Record({
486
- 'status' : IDL.Opt(IDL.Int32),
487
- 'failure_reason' : IDL.Opt(IDL.Text),
488
- 'progress' : IDL.Opt(Progress),
489
- });
490
- const Migrations = IDL.Record({
491
- 'neuron_indexes_migration' : IDL.Opt(Migration),
492
- 'copy_inactive_neurons_to_stable_memory_migration' : IDL.Opt(Migration),
493
- });
494
494
  const GovernanceError = IDL.Record({
495
495
  'error_message' : IDL.Text,
496
496
  'error_type' : IDL.Int32,
@@ -661,7 +661,6 @@ export const idlFactory = ({ IDL }) => {
661
661
  'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),
662
662
  'short_voting_period_seconds' : IDL.Nat64,
663
663
  'topic_followee_index' : IDL.Vec(IDL.Tuple(IDL.Int32, FollowersMap)),
664
- 'migrations' : IDL.Opt(Migrations),
665
664
  'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),
666
665
  'xdr_conversion_rate' : IDL.Opt(XdrConversionRate),
667
666
  'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),
@@ -817,6 +816,7 @@ export const idlFactory = ({ IDL }) => {
817
816
  'Spawn' : Spawn,
818
817
  'Split' : Split,
819
818
  'Follow' : Follow,
819
+ 'DisburseMaturity' : DisburseMaturity,
820
820
  'RefreshVotingPower' : RefreshVotingPower,
821
821
  'ClaimOrRefresh' : ClaimOrRefresh,
822
822
  'Configure' : Configure,
@@ -836,6 +836,9 @@ export const idlFactory = ({ IDL }) => {
836
836
  })
837
837
  );
838
838
  const SpawnResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });
839
+ const DisburseMaturityResponse = IDL.Record({
840
+ 'amount_disbursed_e8s' : IDL.Opt(IDL.Nat64),
841
+ });
839
842
  const RefreshVotingPowerResponse = IDL.Record({});
840
843
  const ClaimOrRefreshResponse = IDL.Record({
841
844
  'refreshed_neuron_id' : IDL.Opt(NeuronId),
@@ -864,6 +867,7 @@ export const idlFactory = ({ IDL }) => {
864
867
  'Spawn' : SpawnResponse,
865
868
  'Split' : SpawnResponse,
866
869
  'Follow' : IDL.Record({}),
870
+ 'DisburseMaturity' : DisburseMaturityResponse,
867
871
  'RefreshVotingPower' : RefreshVotingPowerResponse,
868
872
  'ClaimOrRefresh' : ClaimOrRefreshResponse,
869
873
  'Configure' : IDL.Record({}),
@@ -1037,6 +1041,14 @@ export const init = ({ IDL }) => {
1037
1041
  'topic' : IDL.Int32,
1038
1042
  'followees' : IDL.Vec(NeuronId),
1039
1043
  });
1044
+ const Account = IDL.Record({
1045
+ 'owner' : IDL.Opt(IDL.Principal),
1046
+ 'subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)),
1047
+ });
1048
+ const DisburseMaturity = IDL.Record({
1049
+ 'to_account' : IDL.Opt(Account),
1050
+ 'percentage_to_disburse' : IDL.Nat32,
1051
+ });
1040
1052
  const RefreshVotingPower = IDL.Record({});
1041
1053
  const ClaimOrRefreshNeuronFromAccount = IDL.Record({
1042
1054
  'controller' : IDL.Opt(IDL.Principal),
@@ -1102,6 +1114,7 @@ export const init = ({ IDL }) => {
1102
1114
  'Spawn' : Spawn,
1103
1115
  'Split' : Split,
1104
1116
  'Follow' : Follow,
1117
+ 'DisburseMaturity' : DisburseMaturity,
1105
1118
  'RefreshVotingPower' : RefreshVotingPower,
1106
1119
  'ClaimOrRefresh' : ClaimOrRefresh,
1107
1120
  'Configure' : Configure,
@@ -1294,6 +1307,7 @@ export const init = ({ IDL }) => {
1294
1307
  });
1295
1308
  const VotingPowerEconomics = IDL.Record({
1296
1309
  'start_reducing_voting_power_after_seconds' : IDL.Opt(IDL.Nat64),
1310
+ 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),
1297
1311
  'clear_following_after_seconds' : IDL.Opt(IDL.Nat64),
1298
1312
  });
1299
1313
  const Decimal = IDL.Record({ 'human_readable' : IDL.Opt(IDL.Text) });
@@ -1496,16 +1510,6 @@ export const init = ({ IDL }) => {
1496
1510
  const FollowersMap = IDL.Record({
1497
1511
  'followers_map' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followers)),
1498
1512
  });
1499
- const Progress = IDL.Variant({ 'LastNeuronId' : NeuronId });
1500
- const Migration = IDL.Record({
1501
- 'status' : IDL.Opt(IDL.Int32),
1502
- 'failure_reason' : IDL.Opt(IDL.Text),
1503
- 'progress' : IDL.Opt(Progress),
1504
- });
1505
- const Migrations = IDL.Record({
1506
- 'neuron_indexes_migration' : IDL.Opt(Migration),
1507
- 'copy_inactive_neurons_to_stable_memory_migration' : IDL.Opt(Migration),
1508
- });
1509
1513
  const GovernanceError = IDL.Record({
1510
1514
  'error_message' : IDL.Text,
1511
1515
  'error_type' : IDL.Int32,
@@ -1676,7 +1680,6 @@ export const init = ({ IDL }) => {
1676
1680
  'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),
1677
1681
  'short_voting_period_seconds' : IDL.Nat64,
1678
1682
  'topic_followee_index' : IDL.Vec(IDL.Tuple(IDL.Int32, FollowersMap)),
1679
- 'migrations' : IDL.Opt(Migrations),
1680
1683
  'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),
1681
1684
  'xdr_conversion_rate' : IDL.Opt(XdrConversionRate),
1682
1685
  'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),
@@ -22,6 +22,14 @@ export const idlFactory = ({ IDL }) => {
22
22
  'topic' : IDL.Int32,
23
23
  'followees' : IDL.Vec(NeuronId),
24
24
  });
25
+ const Account = IDL.Record({
26
+ 'owner' : IDL.Opt(IDL.Principal),
27
+ 'subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)),
28
+ });
29
+ const DisburseMaturity = IDL.Record({
30
+ 'to_account' : IDL.Opt(Account),
31
+ 'percentage_to_disburse' : IDL.Nat32,
32
+ });
25
33
  const RefreshVotingPower = IDL.Record({});
26
34
  const ClaimOrRefreshNeuronFromAccount = IDL.Record({
27
35
  'controller' : IDL.Opt(IDL.Principal),
@@ -87,6 +95,7 @@ export const idlFactory = ({ IDL }) => {
87
95
  'Spawn' : Spawn,
88
96
  'Split' : Split,
89
97
  'Follow' : Follow,
98
+ 'DisburseMaturity' : DisburseMaturity,
90
99
  'RefreshVotingPower' : RefreshVotingPower,
91
100
  'ClaimOrRefresh' : ClaimOrRefresh,
92
101
  'Configure' : Configure,
@@ -279,6 +288,7 @@ export const idlFactory = ({ IDL }) => {
279
288
  });
280
289
  const VotingPowerEconomics = IDL.Record({
281
290
  'start_reducing_voting_power_after_seconds' : IDL.Opt(IDL.Nat64),
291
+ 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),
282
292
  'clear_following_after_seconds' : IDL.Opt(IDL.Nat64),
283
293
  });
284
294
  const Decimal = IDL.Record({ 'human_readable' : IDL.Opt(IDL.Text) });
@@ -481,16 +491,6 @@ export const idlFactory = ({ IDL }) => {
481
491
  const FollowersMap = IDL.Record({
482
492
  'followers_map' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followers)),
483
493
  });
484
- const Progress = IDL.Variant({ 'LastNeuronId' : NeuronId });
485
- const Migration = IDL.Record({
486
- 'status' : IDL.Opt(IDL.Int32),
487
- 'failure_reason' : IDL.Opt(IDL.Text),
488
- 'progress' : IDL.Opt(Progress),
489
- });
490
- const Migrations = IDL.Record({
491
- 'neuron_indexes_migration' : IDL.Opt(Migration),
492
- 'copy_inactive_neurons_to_stable_memory_migration' : IDL.Opt(Migration),
493
- });
494
494
  const GovernanceError = IDL.Record({
495
495
  'error_message' : IDL.Text,
496
496
  'error_type' : IDL.Int32,
@@ -661,7 +661,6 @@ export const idlFactory = ({ IDL }) => {
661
661
  'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),
662
662
  'short_voting_period_seconds' : IDL.Nat64,
663
663
  'topic_followee_index' : IDL.Vec(IDL.Tuple(IDL.Int32, FollowersMap)),
664
- 'migrations' : IDL.Opt(Migrations),
665
664
  'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),
666
665
  'xdr_conversion_rate' : IDL.Opt(XdrConversionRate),
667
666
  'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),
@@ -817,6 +816,7 @@ export const idlFactory = ({ IDL }) => {
817
816
  'Spawn' : Spawn,
818
817
  'Split' : Split,
819
818
  'Follow' : Follow,
819
+ 'DisburseMaturity' : DisburseMaturity,
820
820
  'RefreshVotingPower' : RefreshVotingPower,
821
821
  'ClaimOrRefresh' : ClaimOrRefresh,
822
822
  'Configure' : Configure,
@@ -836,6 +836,9 @@ export const idlFactory = ({ IDL }) => {
836
836
  })
837
837
  );
838
838
  const SpawnResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });
839
+ const DisburseMaturityResponse = IDL.Record({
840
+ 'amount_disbursed_e8s' : IDL.Opt(IDL.Nat64),
841
+ });
839
842
  const RefreshVotingPowerResponse = IDL.Record({});
840
843
  const ClaimOrRefreshResponse = IDL.Record({
841
844
  'refreshed_neuron_id' : IDL.Opt(NeuronId),
@@ -864,6 +867,7 @@ export const idlFactory = ({ IDL }) => {
864
867
  'Spawn' : SpawnResponse,
865
868
  'Split' : SpawnResponse,
866
869
  'Follow' : IDL.Record({}),
870
+ 'DisburseMaturity' : DisburseMaturityResponse,
867
871
  'RefreshVotingPower' : RefreshVotingPowerResponse,
868
872
  'ClaimOrRefresh' : ClaimOrRefreshResponse,
869
873
  'Configure' : IDL.Record({}),
@@ -1022,6 +1026,14 @@ export const init = ({ IDL }) => {
1022
1026
  'topic' : IDL.Int32,
1023
1027
  'followees' : IDL.Vec(NeuronId),
1024
1028
  });
1029
+ const Account = IDL.Record({
1030
+ 'owner' : IDL.Opt(IDL.Principal),
1031
+ 'subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)),
1032
+ });
1033
+ const DisburseMaturity = IDL.Record({
1034
+ 'to_account' : IDL.Opt(Account),
1035
+ 'percentage_to_disburse' : IDL.Nat32,
1036
+ });
1025
1037
  const RefreshVotingPower = IDL.Record({});
1026
1038
  const ClaimOrRefreshNeuronFromAccount = IDL.Record({
1027
1039
  'controller' : IDL.Opt(IDL.Principal),
@@ -1087,6 +1099,7 @@ export const init = ({ IDL }) => {
1087
1099
  'Spawn' : Spawn,
1088
1100
  'Split' : Split,
1089
1101
  'Follow' : Follow,
1102
+ 'DisburseMaturity' : DisburseMaturity,
1090
1103
  'RefreshVotingPower' : RefreshVotingPower,
1091
1104
  'ClaimOrRefresh' : ClaimOrRefresh,
1092
1105
  'Configure' : Configure,
@@ -1279,6 +1292,7 @@ export const init = ({ IDL }) => {
1279
1292
  });
1280
1293
  const VotingPowerEconomics = IDL.Record({
1281
1294
  'start_reducing_voting_power_after_seconds' : IDL.Opt(IDL.Nat64),
1295
+ 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),
1282
1296
  'clear_following_after_seconds' : IDL.Opt(IDL.Nat64),
1283
1297
  });
1284
1298
  const Decimal = IDL.Record({ 'human_readable' : IDL.Opt(IDL.Text) });
@@ -1481,16 +1495,6 @@ export const init = ({ IDL }) => {
1481
1495
  const FollowersMap = IDL.Record({
1482
1496
  'followers_map' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followers)),
1483
1497
  });
1484
- const Progress = IDL.Variant({ 'LastNeuronId' : NeuronId });
1485
- const Migration = IDL.Record({
1486
- 'status' : IDL.Opt(IDL.Int32),
1487
- 'failure_reason' : IDL.Opt(IDL.Text),
1488
- 'progress' : IDL.Opt(Progress),
1489
- });
1490
- const Migrations = IDL.Record({
1491
- 'neuron_indexes_migration' : IDL.Opt(Migration),
1492
- 'copy_inactive_neurons_to_stable_memory_migration' : IDL.Opt(Migration),
1493
- });
1494
1498
  const GovernanceError = IDL.Record({
1495
1499
  'error_message' : IDL.Text,
1496
1500
  'error_type' : IDL.Int32,
@@ -1661,7 +1665,6 @@ export const init = ({ IDL }) => {
1661
1665
  'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),
1662
1666
  'short_voting_period_seconds' : IDL.Nat64,
1663
1667
  'topic_followee_index' : IDL.Vec(IDL.Tuple(IDL.Int32, FollowersMap)),
1664
- 'migrations' : IDL.Opt(Migrations),
1665
1668
  'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),
1666
1669
  'xdr_conversion_rate' : IDL.Opt(XdrConversionRate),
1667
1670
  'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),
@@ -2,6 +2,10 @@ import type { ActorMethod } from "@dfinity/agent";
2
2
  import type { IDL } from "@dfinity/candid";
3
3
  import type { Principal } from "@dfinity/principal";
4
4
 
5
+ export interface Account {
6
+ owner: [] | [Principal];
7
+ subaccount: [] | [Uint8Array | number[]];
8
+ }
5
9
  export interface AccountIdentifier {
6
10
  hash: Uint8Array | number[];
7
11
  }
@@ -92,6 +96,7 @@ export type Command =
92
96
  | { Spawn: Spawn }
93
97
  | { Split: Split }
94
98
  | { Follow: Follow }
99
+ | { DisburseMaturity: DisburseMaturity }
95
100
  | { RefreshVotingPower: RefreshVotingPower }
96
101
  | { ClaimOrRefresh: ClaimOrRefresh }
97
102
  | { Configure: Configure }
@@ -107,6 +112,7 @@ export type Command_1 =
107
112
  | { Spawn: SpawnResponse }
108
113
  | { Split: SpawnResponse }
109
114
  | { Follow: {} }
115
+ | { DisburseMaturity: DisburseMaturityResponse }
110
116
  | { RefreshVotingPower: RefreshVotingPowerResponse }
111
117
  | { ClaimOrRefresh: ClaimOrRefreshResponse }
112
118
  | { Configure: {} }
@@ -175,6 +181,13 @@ export interface Disburse {
175
181
  to_account: [] | [AccountIdentifier];
176
182
  amount: [] | [Amount];
177
183
  }
184
+ export interface DisburseMaturity {
185
+ to_account: [] | [Account];
186
+ percentage_to_disburse: number;
187
+ }
188
+ export interface DisburseMaturityResponse {
189
+ amount_disbursed_e8s: [] | [bigint];
190
+ }
178
191
  export interface DisburseResponse {
179
192
  transfer_block_height: bigint;
180
193
  }
@@ -234,7 +247,6 @@ export interface Governance {
234
247
  to_claim_transfers: Array<NeuronStakeTransfer>;
235
248
  short_voting_period_seconds: bigint;
236
249
  topic_followee_index: Array<[number, FollowersMap]>;
237
- migrations: [] | [Migrations];
238
250
  proposals: Array<[bigint, ProposalData]>;
239
251
  xdr_conversion_rate: [] | [XdrConversionRate];
240
252
  in_flight_commands: Array<[bigint, NeuronInFlightCommand]>;
@@ -410,6 +422,7 @@ export type ManageNeuronCommandRequest =
410
422
  | { Spawn: Spawn }
411
423
  | { Split: Split }
412
424
  | { Follow: Follow }
425
+ | { DisburseMaturity: DisburseMaturity }
413
426
  | { RefreshVotingPower: RefreshVotingPower }
414
427
  | { ClaimOrRefresh: ClaimOrRefresh }
415
428
  | { Configure: Configure }
@@ -444,15 +457,6 @@ export interface MergeResponse {
444
457
  target_neuron_info: [] | [NeuronInfo];
445
458
  source_neuron_info: [] | [NeuronInfo];
446
459
  }
447
- export interface Migration {
448
- status: [] | [number];
449
- failure_reason: [] | [string];
450
- progress: [] | [Progress];
451
- }
452
- export interface Migrations {
453
- neuron_indexes_migration: [] | [Migration];
454
- copy_inactive_neurons_to_stable_memory_migration: [] | [Migration];
455
- }
456
460
  export interface MonthlyNodeProviderRewards {
457
461
  minimum_xdr_permyriad_per_icp: [] | [bigint];
458
462
  registry_version: [] | [bigint];
@@ -674,7 +678,6 @@ export interface Percentage {
674
678
  export interface Principals {
675
679
  principals: Array<Principal>;
676
680
  }
677
- export type Progress = { LastNeuronId: NeuronId };
678
681
  export interface Proposal {
679
682
  url: string;
680
683
  title: [] | [string];
@@ -907,6 +910,7 @@ export interface UpdateNodeProvider {
907
910
  }
908
911
  export interface VotingPowerEconomics {
909
912
  start_reducing_voting_power_after_seconds: [] | [bigint];
913
+ neuron_minimum_dissolve_delay_to_vote_seconds: [] | [bigint];
910
914
  clear_following_after_seconds: [] | [bigint];
911
915
  }
912
916
  export interface VotingRewardParameters {
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit 2f02a66 (2025-02-13 tags: release-2025-02-20_10-16-disable-best-effort-messaging) 'rs/nns/governance/canister/governance_test.did' by import-candid
1
+ // Generated from IC repo commit 3ae3649 (2025-03-26 tags: release-2025-03-27_03-14-base) 'rs/nns/governance/canister/governance_test.did' by import-candid
2
2
  type AccountIdentifier = record {
3
3
  hash : blob;
4
4
  };
@@ -124,6 +124,20 @@ type RefreshVotingPowerResponse = record {
124
124
  // minimal until we discover there is a "real need". YAGNI.
125
125
  };
126
126
 
127
+ type DisburseMaturity = record {
128
+ percentage_to_disburse : nat32;
129
+ to_account : opt Account;
130
+ };
131
+
132
+ type Account = record {
133
+ owner: opt principal;
134
+ subaccount: opt blob;
135
+ };
136
+
137
+ type DisburseMaturityResponse = record {
138
+ amount_disbursed_e8s : opt nat64;
139
+ };
140
+
127
141
  type Command = variant {
128
142
  Spawn : Spawn;
129
143
  Split : Split;
@@ -138,6 +152,7 @@ type Command = variant {
138
152
  MergeMaturity : MergeMaturity;
139
153
  Disburse : Disburse;
140
154
  RefreshVotingPower : RefreshVotingPower;
155
+ DisburseMaturity : DisburseMaturity;
141
156
  };
142
157
 
143
158
  type Command_1 = variant {
@@ -155,6 +170,7 @@ type Command_1 = variant {
155
170
  MergeMaturity : MergeMaturityResponse;
156
171
  Disburse : DisburseResponse;
157
172
  RefreshVotingPower : RefreshVotingPowerResponse;
173
+ DisburseMaturity : DisburseMaturityResponse;
158
174
  };
159
175
 
160
176
  type Command_2 = variant {
@@ -302,7 +318,6 @@ type Governance = record {
302
318
  to_claim_transfers : vec NeuronStakeTransfer;
303
319
  short_voting_period_seconds : nat64;
304
320
  topic_followee_index : vec record { int32; FollowersMap };
305
- migrations : opt Migrations;
306
321
  proposals : vec record { nat64; ProposalData };
307
322
  xdr_conversion_rate : opt XdrConversionRate;
308
323
  in_flight_commands : vec record { nat64; NeuronInFlightCommand };
@@ -518,6 +533,7 @@ type ManageNeuronCommandRequest = variant {
518
533
  MergeMaturity : MergeMaturity;
519
534
  Disburse : Disburse;
520
535
  RefreshVotingPower : RefreshVotingPower;
536
+ DisburseMaturity : DisburseMaturity;
521
537
  };
522
538
 
523
539
  type ManageNeuronRequest = record {
@@ -550,16 +566,6 @@ type MergeResponse = record {
550
566
  source_neuron_info : opt NeuronInfo;
551
567
  };
552
568
 
553
- type Migration = record {
554
- status : opt int32;
555
- failure_reason : opt text;
556
- progress : opt Progress;
557
- };
558
-
559
- type Migrations = record {
560
- neuron_indexes_migration : opt Migration;
561
- copy_inactive_neurons_to_stable_memory_migration : opt Migration;
562
- };
563
569
 
564
570
  type MonthlyNodeProviderRewards = record {
565
571
  minimum_xdr_permyriad_per_icp : opt nat64;
@@ -611,6 +617,14 @@ type VotingPowerEconomics = record {
611
617
  //
612
618
  // Initially, set to 1/12 years.
613
619
  clear_following_after_seconds : opt nat64;
620
+ // The minimum dissolve delay a neuron must have in order to be eligible to vote.
621
+ //
622
+ // Neurons with a dissolve delay lower than this threshold will not have
623
+ // voting power, even if they are otherwise active.
624
+ //
625
+ // This value is an essential part of the staking mechanism, promoting
626
+ // long-term alignment with the network's governance.
627
+ neuron_minimum_dissolve_delay_to_vote_seconds : opt nat64;
614
628
  };
615
629
 
616
630
  type Neuron = record {
@@ -838,10 +852,6 @@ type Principals = record {
838
852
  principals : vec principal;
839
853
  };
840
854
 
841
- type Progress = variant {
842
- LastNeuronId : NeuronId;
843
- };
844
-
845
855
  type Proposal = record {
846
856
  url : text;
847
857
  title : opt text;
@@ -22,6 +22,14 @@ export const idlFactory = ({ IDL }) => {
22
22
  'topic' : IDL.Int32,
23
23
  'followees' : IDL.Vec(NeuronId),
24
24
  });
25
+ const Account = IDL.Record({
26
+ 'owner' : IDL.Opt(IDL.Principal),
27
+ 'subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)),
28
+ });
29
+ const DisburseMaturity = IDL.Record({
30
+ 'to_account' : IDL.Opt(Account),
31
+ 'percentage_to_disburse' : IDL.Nat32,
32
+ });
25
33
  const RefreshVotingPower = IDL.Record({});
26
34
  const ClaimOrRefreshNeuronFromAccount = IDL.Record({
27
35
  'controller' : IDL.Opt(IDL.Principal),
@@ -87,6 +95,7 @@ export const idlFactory = ({ IDL }) => {
87
95
  'Spawn' : Spawn,
88
96
  'Split' : Split,
89
97
  'Follow' : Follow,
98
+ 'DisburseMaturity' : DisburseMaturity,
90
99
  'RefreshVotingPower' : RefreshVotingPower,
91
100
  'ClaimOrRefresh' : ClaimOrRefresh,
92
101
  'Configure' : Configure,
@@ -279,6 +288,7 @@ export const idlFactory = ({ IDL }) => {
279
288
  });
280
289
  const VotingPowerEconomics = IDL.Record({
281
290
  'start_reducing_voting_power_after_seconds' : IDL.Opt(IDL.Nat64),
291
+ 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),
282
292
  'clear_following_after_seconds' : IDL.Opt(IDL.Nat64),
283
293
  });
284
294
  const Decimal = IDL.Record({ 'human_readable' : IDL.Opt(IDL.Text) });
@@ -481,16 +491,6 @@ export const idlFactory = ({ IDL }) => {
481
491
  const FollowersMap = IDL.Record({
482
492
  'followers_map' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followers)),
483
493
  });
484
- const Progress = IDL.Variant({ 'LastNeuronId' : NeuronId });
485
- const Migration = IDL.Record({
486
- 'status' : IDL.Opt(IDL.Int32),
487
- 'failure_reason' : IDL.Opt(IDL.Text),
488
- 'progress' : IDL.Opt(Progress),
489
- });
490
- const Migrations = IDL.Record({
491
- 'neuron_indexes_migration' : IDL.Opt(Migration),
492
- 'copy_inactive_neurons_to_stable_memory_migration' : IDL.Opt(Migration),
493
- });
494
494
  const GovernanceError = IDL.Record({
495
495
  'error_message' : IDL.Text,
496
496
  'error_type' : IDL.Int32,
@@ -661,7 +661,6 @@ export const idlFactory = ({ IDL }) => {
661
661
  'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),
662
662
  'short_voting_period_seconds' : IDL.Nat64,
663
663
  'topic_followee_index' : IDL.Vec(IDL.Tuple(IDL.Int32, FollowersMap)),
664
- 'migrations' : IDL.Opt(Migrations),
665
664
  'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),
666
665
  'xdr_conversion_rate' : IDL.Opt(XdrConversionRate),
667
666
  'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),
@@ -817,6 +816,7 @@ export const idlFactory = ({ IDL }) => {
817
816
  'Spawn' : Spawn,
818
817
  'Split' : Split,
819
818
  'Follow' : Follow,
819
+ 'DisburseMaturity' : DisburseMaturity,
820
820
  'RefreshVotingPower' : RefreshVotingPower,
821
821
  'ClaimOrRefresh' : ClaimOrRefresh,
822
822
  'Configure' : Configure,
@@ -836,6 +836,9 @@ export const idlFactory = ({ IDL }) => {
836
836
  })
837
837
  );
838
838
  const SpawnResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });
839
+ const DisburseMaturityResponse = IDL.Record({
840
+ 'amount_disbursed_e8s' : IDL.Opt(IDL.Nat64),
841
+ });
839
842
  const RefreshVotingPowerResponse = IDL.Record({});
840
843
  const ClaimOrRefreshResponse = IDL.Record({
841
844
  'refreshed_neuron_id' : IDL.Opt(NeuronId),
@@ -864,6 +867,7 @@ export const idlFactory = ({ IDL }) => {
864
867
  'Spawn' : SpawnResponse,
865
868
  'Split' : SpawnResponse,
866
869
  'Follow' : IDL.Record({}),
870
+ 'DisburseMaturity' : DisburseMaturityResponse,
867
871
  'RefreshVotingPower' : RefreshVotingPowerResponse,
868
872
  'ClaimOrRefresh' : ClaimOrRefreshResponse,
869
873
  'Configure' : IDL.Record({}),
@@ -1038,6 +1042,14 @@ export const init = ({ IDL }) => {
1038
1042
  'topic' : IDL.Int32,
1039
1043
  'followees' : IDL.Vec(NeuronId),
1040
1044
  });
1045
+ const Account = IDL.Record({
1046
+ 'owner' : IDL.Opt(IDL.Principal),
1047
+ 'subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)),
1048
+ });
1049
+ const DisburseMaturity = IDL.Record({
1050
+ 'to_account' : IDL.Opt(Account),
1051
+ 'percentage_to_disburse' : IDL.Nat32,
1052
+ });
1041
1053
  const RefreshVotingPower = IDL.Record({});
1042
1054
  const ClaimOrRefreshNeuronFromAccount = IDL.Record({
1043
1055
  'controller' : IDL.Opt(IDL.Principal),
@@ -1103,6 +1115,7 @@ export const init = ({ IDL }) => {
1103
1115
  'Spawn' : Spawn,
1104
1116
  'Split' : Split,
1105
1117
  'Follow' : Follow,
1118
+ 'DisburseMaturity' : DisburseMaturity,
1106
1119
  'RefreshVotingPower' : RefreshVotingPower,
1107
1120
  'ClaimOrRefresh' : ClaimOrRefresh,
1108
1121
  'Configure' : Configure,
@@ -1295,6 +1308,7 @@ export const init = ({ IDL }) => {
1295
1308
  });
1296
1309
  const VotingPowerEconomics = IDL.Record({
1297
1310
  'start_reducing_voting_power_after_seconds' : IDL.Opt(IDL.Nat64),
1311
+ 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),
1298
1312
  'clear_following_after_seconds' : IDL.Opt(IDL.Nat64),
1299
1313
  });
1300
1314
  const Decimal = IDL.Record({ 'human_readable' : IDL.Opt(IDL.Text) });
@@ -1497,16 +1511,6 @@ export const init = ({ IDL }) => {
1497
1511
  const FollowersMap = IDL.Record({
1498
1512
  'followers_map' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followers)),
1499
1513
  });
1500
- const Progress = IDL.Variant({ 'LastNeuronId' : NeuronId });
1501
- const Migration = IDL.Record({
1502
- 'status' : IDL.Opt(IDL.Int32),
1503
- 'failure_reason' : IDL.Opt(IDL.Text),
1504
- 'progress' : IDL.Opt(Progress),
1505
- });
1506
- const Migrations = IDL.Record({
1507
- 'neuron_indexes_migration' : IDL.Opt(Migration),
1508
- 'copy_inactive_neurons_to_stable_memory_migration' : IDL.Opt(Migration),
1509
- });
1510
1514
  const GovernanceError = IDL.Record({
1511
1515
  'error_message' : IDL.Text,
1512
1516
  'error_type' : IDL.Int32,
@@ -1677,7 +1681,6 @@ export const init = ({ IDL }) => {
1677
1681
  'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),
1678
1682
  'short_voting_period_seconds' : IDL.Nat64,
1679
1683
  'topic_followee_index' : IDL.Vec(IDL.Tuple(IDL.Int32, FollowersMap)),
1680
- 'migrations' : IDL.Opt(Migrations),
1681
1684
  'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),
1682
1685
  'xdr_conversion_rate' : IDL.Opt(XdrConversionRate),
1683
1686
  'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),