@dfinity/nns 11.1.3 → 11.1.4-next-2025-12-03

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.
@@ -9,6 +9,7 @@
9
9
  export const idlFactory = ({ IDL }) => {
10
10
  const ManageNeuronRequest = IDL.Rec();
11
11
  const Proposal = IDL.Rec();
12
+ const SelfDescribingValue = IDL.Rec();
12
13
  const NeuronId = IDL.Record({ id: IDL.Nat64 });
13
14
  const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });
14
15
  const DateUtc = IDL.Record({
@@ -39,6 +40,7 @@ export const idlFactory = ({ IDL }) => {
39
40
  timestamp_seconds: IDL.Opt(IDL.Nat64),
40
41
  });
41
42
  const MonthlyNodeProviderRewards = IDL.Record({
43
+ algorithm_version: IDL.Opt(IDL.Nat32),
42
44
  minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),
43
45
  end_date: IDL.Opt(DateUtc),
44
46
  registry_version: IDL.Opt(IDL.Nat64),
@@ -386,7 +388,7 @@ export const idlFactory = ({ IDL }) => {
386
388
  to_account: IDL.Opt(AccountIdentifier),
387
389
  amount: IDL.Opt(Amount),
388
390
  });
389
- const Command = IDL.Variant({
391
+ const ManageNeuronProposalCommand = IDL.Variant({
390
392
  Spawn: Spawn,
391
393
  Split: Split,
392
394
  Follow: Follow,
@@ -407,9 +409,9 @@ export const idlFactory = ({ IDL }) => {
407
409
  Subaccount: IDL.Vec(IDL.Nat8),
408
410
  NeuronId: NeuronId,
409
411
  });
410
- const ManageNeuron = IDL.Record({
412
+ const ManageNeuronProposal = IDL.Record({
411
413
  id: IDL.Opt(NeuronId),
412
- command: IDL.Opt(Command),
414
+ command: IDL.Opt(ManageNeuronProposalCommand),
413
415
  neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),
414
416
  });
415
417
  const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });
@@ -575,7 +577,7 @@ export const idlFactory = ({ IDL }) => {
575
577
  const Action = IDL.Variant({
576
578
  RegisterKnownNeuron: KnownNeuron,
577
579
  FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,
578
- ManageNeuron: ManageNeuron,
580
+ ManageNeuron: ManageNeuronProposal,
579
581
  UpdateCanisterSettings: UpdateCanisterSettings,
580
582
  InstallCode: InstallCode,
581
583
  DeregisterKnownNeuron: DeregisterKnownNeuron,
@@ -592,12 +594,28 @@ export const idlFactory = ({ IDL }) => {
592
594
  AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,
593
595
  Motion: Motion,
594
596
  });
597
+ SelfDescribingValue.fill(
598
+ IDL.Variant({
599
+ Int: IDL.Int,
600
+ Map: IDL.Vec(IDL.Tuple(IDL.Text, SelfDescribingValue)),
601
+ Nat: IDL.Nat,
602
+ Blob: IDL.Vec(IDL.Nat8),
603
+ Text: IDL.Text,
604
+ Array: IDL.Vec(SelfDescribingValue),
605
+ }),
606
+ );
607
+ const SelfDescribingProposalAction = IDL.Record({
608
+ type_description: IDL.Opt(IDL.Text),
609
+ type_name: IDL.Opt(IDL.Text),
610
+ value: IDL.Opt(SelfDescribingValue),
611
+ });
595
612
  Proposal.fill(
596
613
  IDL.Record({
597
614
  url: IDL.Text,
598
615
  title: IDL.Opt(IDL.Text),
599
616
  action: IDL.Opt(Action),
600
617
  summary: IDL.Text,
618
+ self_describing_action: IDL.Opt(SelfDescribingProposalAction),
601
619
  }),
602
620
  );
603
621
  const WaitForQuietState = IDL.Record({
@@ -769,6 +787,9 @@ export const idlFactory = ({ IDL }) => {
769
787
  Ok: NodeProvider,
770
788
  Err: GovernanceError,
771
789
  });
790
+ const GetPendingProposalsRequest = IDL.Record({
791
+ return_self_describing_action: IDL.Opt(IDL.Bool),
792
+ });
772
793
  const ProposalInfo = IDL.Record({
773
794
  id: IDL.Opt(ProposalId),
774
795
  status: IDL.Int32,
@@ -842,6 +863,7 @@ export const idlFactory = ({ IDL }) => {
842
863
  node_providers: IDL.Vec(NodeProvider),
843
864
  });
844
865
  const ListProposalInfoRequest = IDL.Record({
866
+ return_self_describing_action: IDL.Opt(IDL.Bool),
845
867
  include_reward_status: IDL.Vec(IDL.Int32),
846
868
  omit_large_fields: IDL.Opt(IDL.Bool),
847
869
  before_proposal: IDL.Opt(ProposalId),
@@ -1043,7 +1065,11 @@ export const idlFactory = ({ IDL }) => {
1043
1065
  [],
1044
1066
  ),
1045
1067
  get_node_provider_by_caller: IDL.Func([IDL.Null], [Result_7], []),
1046
- get_pending_proposals: IDL.Func([], [IDL.Vec(ProposalInfo)], []),
1068
+ get_pending_proposals: IDL.Func(
1069
+ [IDL.Opt(GetPendingProposalsRequest)],
1070
+ [IDL.Vec(ProposalInfo)],
1071
+ [],
1072
+ ),
1047
1073
  get_proposal_info: IDL.Func([IDL.Nat64], [IDL.Opt(ProposalInfo)], []),
1048
1074
  get_restore_aging_summary: IDL.Func([], [RestoreAgingSummary], []),
1049
1075
  list_known_neurons: IDL.Func([], [ListKnownNeuronsResponse], []),
@@ -1088,6 +1114,7 @@ export const idlFactory = ({ IDL }) => {
1088
1114
 
1089
1115
  export const init = ({ IDL }) => {
1090
1116
  const Proposal = IDL.Rec();
1117
+ const SelfDescribingValue = IDL.Rec();
1091
1118
  const NeuronId = IDL.Record({ id: IDL.Nat64 });
1092
1119
  const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });
1093
1120
  const DateUtc = IDL.Record({
@@ -1118,6 +1145,7 @@ export const init = ({ IDL }) => {
1118
1145
  timestamp_seconds: IDL.Opt(IDL.Nat64),
1119
1146
  });
1120
1147
  const MonthlyNodeProviderRewards = IDL.Record({
1148
+ algorithm_version: IDL.Opt(IDL.Nat32),
1121
1149
  minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),
1122
1150
  end_date: IDL.Opt(DateUtc),
1123
1151
  registry_version: IDL.Opt(IDL.Nat64),
@@ -1465,7 +1493,7 @@ export const init = ({ IDL }) => {
1465
1493
  to_account: IDL.Opt(AccountIdentifier),
1466
1494
  amount: IDL.Opt(Amount),
1467
1495
  });
1468
- const Command = IDL.Variant({
1496
+ const ManageNeuronProposalCommand = IDL.Variant({
1469
1497
  Spawn: Spawn,
1470
1498
  Split: Split,
1471
1499
  Follow: Follow,
@@ -1486,9 +1514,9 @@ export const init = ({ IDL }) => {
1486
1514
  Subaccount: IDL.Vec(IDL.Nat8),
1487
1515
  NeuronId: NeuronId,
1488
1516
  });
1489
- const ManageNeuron = IDL.Record({
1517
+ const ManageNeuronProposal = IDL.Record({
1490
1518
  id: IDL.Opt(NeuronId),
1491
- command: IDL.Opt(Command),
1519
+ command: IDL.Opt(ManageNeuronProposalCommand),
1492
1520
  neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),
1493
1521
  });
1494
1522
  const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });
@@ -1654,7 +1682,7 @@ export const init = ({ IDL }) => {
1654
1682
  const Action = IDL.Variant({
1655
1683
  RegisterKnownNeuron: KnownNeuron,
1656
1684
  FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,
1657
- ManageNeuron: ManageNeuron,
1685
+ ManageNeuron: ManageNeuronProposal,
1658
1686
  UpdateCanisterSettings: UpdateCanisterSettings,
1659
1687
  InstallCode: InstallCode,
1660
1688
  DeregisterKnownNeuron: DeregisterKnownNeuron,
@@ -1671,12 +1699,28 @@ export const init = ({ IDL }) => {
1671
1699
  AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,
1672
1700
  Motion: Motion,
1673
1701
  });
1702
+ SelfDescribingValue.fill(
1703
+ IDL.Variant({
1704
+ Int: IDL.Int,
1705
+ Map: IDL.Vec(IDL.Tuple(IDL.Text, SelfDescribingValue)),
1706
+ Nat: IDL.Nat,
1707
+ Blob: IDL.Vec(IDL.Nat8),
1708
+ Text: IDL.Text,
1709
+ Array: IDL.Vec(SelfDescribingValue),
1710
+ }),
1711
+ );
1712
+ const SelfDescribingProposalAction = IDL.Record({
1713
+ type_description: IDL.Opt(IDL.Text),
1714
+ type_name: IDL.Opt(IDL.Text),
1715
+ value: IDL.Opt(SelfDescribingValue),
1716
+ });
1674
1717
  Proposal.fill(
1675
1718
  IDL.Record({
1676
1719
  url: IDL.Text,
1677
1720
  title: IDL.Opt(IDL.Text),
1678
1721
  action: IDL.Opt(Action),
1679
1722
  summary: IDL.Text,
1723
+ self_describing_action: IDL.Opt(SelfDescribingProposalAction),
1680
1724
  }),
1681
1725
  );
1682
1726
  const WaitForQuietState = IDL.Record({
@@ -20,7 +20,7 @@ export interface AccountIdentifier {
20
20
  export type Action =
21
21
  | { RegisterKnownNeuron: KnownNeuron }
22
22
  | { FulfillSubnetRentalRequest: FulfillSubnetRentalRequest }
23
- | { ManageNeuron: ManageNeuron }
23
+ | { ManageNeuron: ManageNeuronProposal }
24
24
  | { UpdateCanisterSettings: UpdateCanisterSettings }
25
25
  | { InstallCode: InstallCode }
26
26
  | { DeregisterKnownNeuron: DeregisterKnownNeuron }
@@ -102,25 +102,6 @@ export interface ClaimOrRefreshNeuronFromAccountResponse {
102
102
  export interface ClaimOrRefreshResponse {
103
103
  refreshed_neuron_id: [] | [NeuronId];
104
104
  }
105
- /**
106
- * KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
107
- */
108
- export type Command =
109
- | { Spawn: Spawn }
110
- | { Split: Split }
111
- | { Follow: Follow }
112
- | { DisburseMaturity: DisburseMaturity }
113
- | { RefreshVotingPower: RefreshVotingPower }
114
- | { ClaimOrRefresh: ClaimOrRefresh }
115
- | { Configure: Configure }
116
- | { RegisterVote: RegisterVote }
117
- | { Merge: Merge }
118
- | { DisburseToNeuron: DisburseToNeuron }
119
- | { SetFollowing: SetFollowing }
120
- | { MakeProposal: Proposal }
121
- | { StakeMaturity: StakeMaturity }
122
- | { MergeMaturity: MergeMaturity }
123
- | { Disburse: Disburse };
124
105
  export type Command_1 =
125
106
  | { Error: GovernanceError }
126
107
  | { Spawn: SpawnResponse }
@@ -293,6 +274,9 @@ export interface GetNeuronsFundAuditInfoRequest {
293
274
  export interface GetNeuronsFundAuditInfoResponse {
294
275
  result: [] | [Result_6];
295
276
  }
277
+ export interface GetPendingProposalsRequest {
278
+ return_self_describing_action: [] | [boolean];
279
+ }
296
280
  export interface GlobalTimeOfDay {
297
281
  seconds_after_utc_midnight: [] | [bigint];
298
282
  }
@@ -521,6 +505,7 @@ export interface ListNodeProvidersResponse {
521
505
  node_providers: Array<NodeProvider>;
522
506
  }
523
507
  export interface ListProposalInfoRequest {
508
+ return_self_describing_action: [] | [boolean];
524
509
  include_reward_status: Int32Array;
525
510
  omit_large_fields: [] | [boolean];
526
511
  before_proposal: [] | [ProposalId];
@@ -543,18 +528,37 @@ export interface MakeProposalResponse {
543
528
  proposal_id: [] | [ProposalId];
544
529
  }
545
530
  /**
546
- * Not to be confused with ManageNeuronRequest. (Yes, this is very structurally
547
- * similar to that, but not actually exactly equivalent.)
531
+ * KEEP THIS IN SYNC WITH COMMAND!
532
+ */
533
+ export type ManageNeuronCommandRequest =
534
+ | { Spawn: Spawn }
535
+ | { Split: Split }
536
+ | { Follow: Follow }
537
+ | { DisburseMaturity: DisburseMaturity }
538
+ | { RefreshVotingPower: RefreshVotingPower }
539
+ | { ClaimOrRefresh: ClaimOrRefresh }
540
+ | { Configure: Configure }
541
+ | { RegisterVote: RegisterVote }
542
+ | { Merge: Merge }
543
+ | { DisburseToNeuron: DisburseToNeuron }
544
+ | { SetFollowing: SetFollowing }
545
+ | { MakeProposal: MakeProposalRequest }
546
+ | { StakeMaturity: StakeMaturity }
547
+ | { MergeMaturity: MergeMaturity }
548
+ | { Disburse: Disburse };
549
+ /**
550
+ * Not to be confused with ManageNeuronRequest. This is only used to represent a manage neuron proposal.
551
+ * (Yes, this is very structurally similar to that, but not actually exactly equivalent)
548
552
  */
549
- export interface ManageNeuron {
553
+ export interface ManageNeuronProposal {
550
554
  id: [] | [NeuronId];
551
- command: [] | [Command];
555
+ command: [] | [ManageNeuronProposalCommand];
552
556
  neuron_id_or_subaccount: [] | [NeuronIdOrSubaccount];
553
557
  }
554
558
  /**
555
- * KEEP THIS IN SYNC WITH COMMAND!
559
+ * KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
556
560
  */
557
- export type ManageNeuronCommandRequest =
561
+ export type ManageNeuronProposalCommand =
558
562
  | { Spawn: Spawn }
559
563
  | { Split: Split }
560
564
  | { Follow: Follow }
@@ -566,7 +570,7 @@ export type ManageNeuronCommandRequest =
566
570
  | { Merge: Merge }
567
571
  | { DisburseToNeuron: DisburseToNeuron }
568
572
  | { SetFollowing: SetFollowing }
569
- | { MakeProposal: MakeProposalRequest }
573
+ | { MakeProposal: Proposal }
570
574
  | { StakeMaturity: StakeMaturity }
571
575
  | { MergeMaturity: MergeMaturity }
572
576
  | { Disburse: Disburse };
@@ -621,6 +625,7 @@ export interface MergeResponse {
621
625
  source_neuron_info: [] | [NeuronInfo];
622
626
  }
623
627
  export interface MonthlyNodeProviderRewards {
628
+ algorithm_version: [] | [number];
624
629
  minimum_xdr_permyriad_per_icp: [] | [bigint];
625
630
  end_date: [] | [DateUtc];
626
631
  registry_version: [] | [bigint];
@@ -948,6 +953,7 @@ export interface Proposal {
948
953
  title: [] | [string];
949
954
  action: [] | [Action];
950
955
  summary: string;
956
+ self_describing_action: [] | [SelfDescribingProposalAction];
951
957
  }
952
958
  export type ProposalActionRequest =
953
959
  | { RegisterKnownNeuron: KnownNeuron }
@@ -1075,6 +1081,18 @@ export interface RewardToAccount {
1075
1081
  export interface RewardToNeuron {
1076
1082
  dissolve_delay_seconds: bigint;
1077
1083
  }
1084
+ export interface SelfDescribingProposalAction {
1085
+ type_description: [] | [string];
1086
+ type_name: [] | [string];
1087
+ value: [] | [SelfDescribingValue];
1088
+ }
1089
+ export type SelfDescribingValue =
1090
+ | { Int: bigint }
1091
+ | { Map: Array<[string, SelfDescribingValue]> }
1092
+ | { Nat: bigint }
1093
+ | { Blob: Uint8Array }
1094
+ | { Text: string }
1095
+ | { Array: Array<SelfDescribingValue> };
1078
1096
  export interface SetDefaultFollowees {
1079
1097
  default_followees: Array<[number, Followees]>;
1080
1098
  }
@@ -1301,7 +1319,10 @@ export interface _SERVICE {
1301
1319
  GetNeuronsFundAuditInfoResponse
1302
1320
  >;
1303
1321
  get_node_provider_by_caller: ActorMethod<[null], Result_7>;
1304
- get_pending_proposals: ActorMethod<[], Array<ProposalInfo>>;
1322
+ get_pending_proposals: ActorMethod<
1323
+ [[] | [GetPendingProposalsRequest]],
1324
+ Array<ProposalInfo>
1325
+ >;
1305
1326
  get_proposal_info: ActorMethod<[bigint], [] | [ProposalInfo]>;
1306
1327
  get_restore_aging_summary: ActorMethod<[], RestoreAgingSummary>;
1307
1328
  list_known_neurons: ActorMethod<[], ListKnownNeuronsResponse>;
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit 4e64157 (2025-11-17) 'packages/nns/src/candid/governance_test.did.tmp' by import-candid
1
+ // Generated from IC repo commit c49fb87 (2025-12-02) 'packages/nns/src/candid/governance_test.did.tmp' by import-candid
2
2
 
3
3
  type AccountIdentifier = record {
4
4
  hash : blob;
@@ -7,7 +7,7 @@ type AccountIdentifier = record {
7
7
  type Action = variant {
8
8
  RegisterKnownNeuron : KnownNeuron;
9
9
  DeregisterKnownNeuron : DeregisterKnownNeuron;
10
- ManageNeuron : ManageNeuron;
10
+ ManageNeuron : ManageNeuronProposal;
11
11
  UpdateCanisterSettings : UpdateCanisterSettings;
12
12
  InstallCode : InstallCode;
13
13
  StopOrStartCanister : StopOrStartCanister;
@@ -155,7 +155,7 @@ type SetFollowingResponse = record {
155
155
  };
156
156
 
157
157
  // KEEP THIS IN SYNC WITH ManageNeuronCommandRequest!
158
- type Command = variant {
158
+ type ManageNeuronProposalCommand = variant {
159
159
  Spawn : Spawn;
160
160
  Split : Split;
161
161
  Follow : Follow;
@@ -527,6 +527,7 @@ type ListProposalInfoRequest = record {
527
527
  exclude_topic : vec int32;
528
528
  include_all_manage_neuron_proposals : opt bool;
529
529
  include_status : vec int32;
530
+ return_self_describing_action : opt bool;
530
531
  };
531
532
 
532
533
  type ListProposalInfoResponse = record {
@@ -545,11 +546,11 @@ type MakeProposalResponse = record {
545
546
  proposal_id : opt ProposalId;
546
547
  };
547
548
 
548
- // Not to be confused with ManageNeuronRequest. (Yes, this is very structurally
549
- // similar to that, but not actually exactly equivalent.)
550
- type ManageNeuron = record {
549
+ // Not to be confused with ManageNeuronRequest. This is only used to represent a manage neuron proposal.
550
+ // (Yes, this is very structurally similar to that, but not actually exactly equivalent)
551
+ type ManageNeuronProposal = record {
551
552
  id : opt NeuronId;
552
- command : opt Command;
553
+ command : opt ManageNeuronProposalCommand;
553
554
  neuron_id_or_subaccount : opt NeuronIdOrSubaccount;
554
555
  };
555
556
 
@@ -622,6 +623,7 @@ type DateUtc = record {
622
623
  type MonthlyNodeProviderRewards = record {
623
624
  minimum_xdr_permyriad_per_icp : opt nat64;
624
625
  registry_version : opt nat64;
626
+ algorithm_version : opt nat32;
625
627
  node_providers : vec NodeProvider;
626
628
  timestamp : nat64;
627
629
  start_date : opt DateUtc;
@@ -1008,6 +1010,7 @@ type Proposal = record {
1008
1010
  title : opt text;
1009
1011
  action : opt Action;
1010
1012
  summary : text;
1013
+ self_describing_action : opt SelfDescribingProposalAction;
1011
1014
  };
1012
1015
 
1013
1016
  type ProposalActionRequest = variant {
@@ -1427,6 +1430,25 @@ type Vote = variant {
1427
1430
  No;
1428
1431
  };
1429
1432
 
1433
+ type SelfDescribingProposalAction = record {
1434
+ type_name : opt text;
1435
+ type_description : opt text;
1436
+ value : opt SelfDescribingValue;
1437
+ };
1438
+
1439
+ type SelfDescribingValue = variant {
1440
+ Blob : blob;
1441
+ Text : text;
1442
+ Nat : nat;
1443
+ Int : int;
1444
+ Array : vec SelfDescribingValue;
1445
+ Map : vec record { text; SelfDescribingValue };
1446
+ };
1447
+
1448
+ type GetPendingProposalsRequest = record {
1449
+ return_self_describing_action : opt bool;
1450
+ }
1451
+
1430
1452
  service : (Governance) -> {
1431
1453
  claim_gtc_neurons : (principal, vec NeuronId) -> (Result);
1432
1454
  claim_or_refresh_neuron_from_account : (ClaimOrRefreshNeuronFromAccount) -> (
@@ -1454,7 +1476,7 @@ service : (Governance) -> {
1454
1476
  GetNeuronsFundAuditInfoResponse,
1455
1477
  ) query;
1456
1478
  get_node_provider_by_caller : (null) -> (Result_7) query;
1457
- get_pending_proposals : () -> (vec ProposalInfo) query;
1479
+ get_pending_proposals : (opt GetPendingProposalsRequest) -> (vec ProposalInfo) query;
1458
1480
  get_proposal_info : (nat64) -> (opt ProposalInfo) query;
1459
1481
  get_restore_aging_summary : () -> (RestoreAgingSummary) query;
1460
1482
  list_known_neurons : () -> (ListKnownNeuronsResponse) query;
@@ -9,6 +9,7 @@
9
9
  export const idlFactory = ({ IDL }) => {
10
10
  const ManageNeuronRequest = IDL.Rec();
11
11
  const Proposal = IDL.Rec();
12
+ const SelfDescribingValue = IDL.Rec();
12
13
  const NeuronId = IDL.Record({ id: IDL.Nat64 });
13
14
  const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });
14
15
  const DateUtc = IDL.Record({
@@ -39,6 +40,7 @@ export const idlFactory = ({ IDL }) => {
39
40
  timestamp_seconds: IDL.Opt(IDL.Nat64),
40
41
  });
41
42
  const MonthlyNodeProviderRewards = IDL.Record({
43
+ algorithm_version: IDL.Opt(IDL.Nat32),
42
44
  minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),
43
45
  end_date: IDL.Opt(DateUtc),
44
46
  registry_version: IDL.Opt(IDL.Nat64),
@@ -386,7 +388,7 @@ export const idlFactory = ({ IDL }) => {
386
388
  to_account: IDL.Opt(AccountIdentifier),
387
389
  amount: IDL.Opt(Amount),
388
390
  });
389
- const Command = IDL.Variant({
391
+ const ManageNeuronProposalCommand = IDL.Variant({
390
392
  Spawn: Spawn,
391
393
  Split: Split,
392
394
  Follow: Follow,
@@ -407,9 +409,9 @@ export const idlFactory = ({ IDL }) => {
407
409
  Subaccount: IDL.Vec(IDL.Nat8),
408
410
  NeuronId: NeuronId,
409
411
  });
410
- const ManageNeuron = IDL.Record({
412
+ const ManageNeuronProposal = IDL.Record({
411
413
  id: IDL.Opt(NeuronId),
412
- command: IDL.Opt(Command),
414
+ command: IDL.Opt(ManageNeuronProposalCommand),
413
415
  neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),
414
416
  });
415
417
  const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });
@@ -575,7 +577,7 @@ export const idlFactory = ({ IDL }) => {
575
577
  const Action = IDL.Variant({
576
578
  RegisterKnownNeuron: KnownNeuron,
577
579
  FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,
578
- ManageNeuron: ManageNeuron,
580
+ ManageNeuron: ManageNeuronProposal,
579
581
  UpdateCanisterSettings: UpdateCanisterSettings,
580
582
  InstallCode: InstallCode,
581
583
  DeregisterKnownNeuron: DeregisterKnownNeuron,
@@ -592,12 +594,28 @@ export const idlFactory = ({ IDL }) => {
592
594
  AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,
593
595
  Motion: Motion,
594
596
  });
597
+ SelfDescribingValue.fill(
598
+ IDL.Variant({
599
+ Int: IDL.Int,
600
+ Map: IDL.Vec(IDL.Tuple(IDL.Text, SelfDescribingValue)),
601
+ Nat: IDL.Nat,
602
+ Blob: IDL.Vec(IDL.Nat8),
603
+ Text: IDL.Text,
604
+ Array: IDL.Vec(SelfDescribingValue),
605
+ }),
606
+ );
607
+ const SelfDescribingProposalAction = IDL.Record({
608
+ type_description: IDL.Opt(IDL.Text),
609
+ type_name: IDL.Opt(IDL.Text),
610
+ value: IDL.Opt(SelfDescribingValue),
611
+ });
595
612
  Proposal.fill(
596
613
  IDL.Record({
597
614
  url: IDL.Text,
598
615
  title: IDL.Opt(IDL.Text),
599
616
  action: IDL.Opt(Action),
600
617
  summary: IDL.Text,
618
+ self_describing_action: IDL.Opt(SelfDescribingProposalAction),
601
619
  }),
602
620
  );
603
621
  const WaitForQuietState = IDL.Record({
@@ -769,6 +787,9 @@ export const idlFactory = ({ IDL }) => {
769
787
  Ok: NodeProvider,
770
788
  Err: GovernanceError,
771
789
  });
790
+ const GetPendingProposalsRequest = IDL.Record({
791
+ return_self_describing_action: IDL.Opt(IDL.Bool),
792
+ });
772
793
  const ProposalInfo = IDL.Record({
773
794
  id: IDL.Opt(ProposalId),
774
795
  status: IDL.Int32,
@@ -842,6 +863,7 @@ export const idlFactory = ({ IDL }) => {
842
863
  node_providers: IDL.Vec(NodeProvider),
843
864
  });
844
865
  const ListProposalInfoRequest = IDL.Record({
866
+ return_self_describing_action: IDL.Opt(IDL.Bool),
845
867
  include_reward_status: IDL.Vec(IDL.Int32),
846
868
  omit_large_fields: IDL.Opt(IDL.Bool),
847
869
  before_proposal: IDL.Opt(ProposalId),
@@ -1047,7 +1069,11 @@ export const idlFactory = ({ IDL }) => {
1047
1069
  ["query"],
1048
1070
  ),
1049
1071
  get_node_provider_by_caller: IDL.Func([IDL.Null], [Result_7], ["query"]),
1050
- get_pending_proposals: IDL.Func([], [IDL.Vec(ProposalInfo)], ["query"]),
1072
+ get_pending_proposals: IDL.Func(
1073
+ [IDL.Opt(GetPendingProposalsRequest)],
1074
+ [IDL.Vec(ProposalInfo)],
1075
+ ["query"],
1076
+ ),
1051
1077
  get_proposal_info: IDL.Func(
1052
1078
  [IDL.Nat64],
1053
1079
  [IDL.Opt(ProposalInfo)],
@@ -1096,6 +1122,7 @@ export const idlFactory = ({ IDL }) => {
1096
1122
 
1097
1123
  export const init = ({ IDL }) => {
1098
1124
  const Proposal = IDL.Rec();
1125
+ const SelfDescribingValue = IDL.Rec();
1099
1126
  const NeuronId = IDL.Record({ id: IDL.Nat64 });
1100
1127
  const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });
1101
1128
  const DateUtc = IDL.Record({
@@ -1126,6 +1153,7 @@ export const init = ({ IDL }) => {
1126
1153
  timestamp_seconds: IDL.Opt(IDL.Nat64),
1127
1154
  });
1128
1155
  const MonthlyNodeProviderRewards = IDL.Record({
1156
+ algorithm_version: IDL.Opt(IDL.Nat32),
1129
1157
  minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),
1130
1158
  end_date: IDL.Opt(DateUtc),
1131
1159
  registry_version: IDL.Opt(IDL.Nat64),
@@ -1473,7 +1501,7 @@ export const init = ({ IDL }) => {
1473
1501
  to_account: IDL.Opt(AccountIdentifier),
1474
1502
  amount: IDL.Opt(Amount),
1475
1503
  });
1476
- const Command = IDL.Variant({
1504
+ const ManageNeuronProposalCommand = IDL.Variant({
1477
1505
  Spawn: Spawn,
1478
1506
  Split: Split,
1479
1507
  Follow: Follow,
@@ -1494,9 +1522,9 @@ export const init = ({ IDL }) => {
1494
1522
  Subaccount: IDL.Vec(IDL.Nat8),
1495
1523
  NeuronId: NeuronId,
1496
1524
  });
1497
- const ManageNeuron = IDL.Record({
1525
+ const ManageNeuronProposal = IDL.Record({
1498
1526
  id: IDL.Opt(NeuronId),
1499
- command: IDL.Opt(Command),
1527
+ command: IDL.Opt(ManageNeuronProposalCommand),
1500
1528
  neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),
1501
1529
  });
1502
1530
  const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });
@@ -1662,7 +1690,7 @@ export const init = ({ IDL }) => {
1662
1690
  const Action = IDL.Variant({
1663
1691
  RegisterKnownNeuron: KnownNeuron,
1664
1692
  FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,
1665
- ManageNeuron: ManageNeuron,
1693
+ ManageNeuron: ManageNeuronProposal,
1666
1694
  UpdateCanisterSettings: UpdateCanisterSettings,
1667
1695
  InstallCode: InstallCode,
1668
1696
  DeregisterKnownNeuron: DeregisterKnownNeuron,
@@ -1679,12 +1707,28 @@ export const init = ({ IDL }) => {
1679
1707
  AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,
1680
1708
  Motion: Motion,
1681
1709
  });
1710
+ SelfDescribingValue.fill(
1711
+ IDL.Variant({
1712
+ Int: IDL.Int,
1713
+ Map: IDL.Vec(IDL.Tuple(IDL.Text, SelfDescribingValue)),
1714
+ Nat: IDL.Nat,
1715
+ Blob: IDL.Vec(IDL.Nat8),
1716
+ Text: IDL.Text,
1717
+ Array: IDL.Vec(SelfDescribingValue),
1718
+ }),
1719
+ );
1720
+ const SelfDescribingProposalAction = IDL.Record({
1721
+ type_description: IDL.Opt(IDL.Text),
1722
+ type_name: IDL.Opt(IDL.Text),
1723
+ value: IDL.Opt(SelfDescribingValue),
1724
+ });
1682
1725
  Proposal.fill(
1683
1726
  IDL.Record({
1684
1727
  url: IDL.Text,
1685
1728
  title: IDL.Opt(IDL.Text),
1686
1729
  action: IDL.Opt(Action),
1687
1730
  summary: IDL.Text,
1731
+ self_describing_action: IDL.Opt(SelfDescribingProposalAction),
1688
1732
  }),
1689
1733
  );
1690
1734
  const WaitForQuietState = IDL.Record({
@@ -1,4 +1,4 @@
1
- // Generated from IC repo commit fa06b0e (2025-11-12 tags: release-2025-11-13_03-24-base) 'rs/nns/sns-wasm/canister/sns-wasm.did' by import-candid
1
+ // Generated from IC repo commit 724ae41 (2025-11-27 tags: release-2025-11-28_03-22-base) 'rs/nns/sns-wasm/canister/sns-wasm.did' by import-candid
2
2
 
3
3
  type AddWasmRequest = record {
4
4
  hash : blob;
@@ -14,7 +14,7 @@ export declare const fromListNeurons: ({ neuronIds, includeEmptyNeurons, include
14
14
  pageSize?: bigint;
15
15
  }) => RawListNeurons;
16
16
  export declare const fromManageNeuron: ({ id, command, neuronIdOrSubaccount, }: ManageNeuronRequest) => RawManageNeuron;
17
- export declare const fromListProposalsRequest: ({ includeRewardStatus, beforeProposal, excludeTopic, includeStatus, limit, includeAllManageNeuronProposals, omitLargeFields, }: ListProposalsRequest) => RawListProposalInfo;
17
+ export declare const fromListProposalsRequest: ({ includeRewardStatus, beforeProposal, excludeTopic, includeStatus, limit, includeAllManageNeuronProposals, omitLargeFields, returnSelfDescribingAction, }: ListProposalsRequest) => RawListProposalInfo;
18
18
  export declare const fromClaimOrRefreshNeuronRequest: (request: ClaimOrRefreshNeuronRequest) => RawManageNeuron;
19
19
  export declare const toClaimOrRefreshRequest: ({ memo, controller, }: {
20
20
  memo: bigint;