@dfinity/nns 0.4.2 → 0.4.3

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.
package/README.md CHANGED
@@ -27,3 +27,5 @@ async function main() {
27
27
 
28
28
  main();
29
29
  ```
30
+
31
+ # [How-To](/HOWTO.md)
@@ -1,4 +1,5 @@
1
- // Generated by running `cargo run --bin nns_functions_candid_gen`
1
+ // Initially generated by running `cargo run --bin nns_functions_candid_gen`
2
+ // See HOWTO.md / How-To Update `payloads.did` Manually
2
3
 
3
4
  // Exceptions (in rs files but not in did)
4
5
  type CanisterAction = variant { Start; Stop };
@@ -16,15 +17,16 @@ type UpdateIcpXdrConversionRatePayload = record {
16
17
  timestamp_seconds : nat64;
17
18
  };
18
19
 
19
-
20
- // updated https://github.com/dfinity/ic/commit/620692ef649876447646ffeed16aa3579d3ec3a8
20
+ // Source: ic/master/rs/registry/canister/canister/registry.did
21
+ // Commit: https://github.com/dfinity/ic/commit/3b8c3db8acbb1fa5d3f751a53ee9638264062808
21
22
  type AddFirewallRulesPayload = record {
22
23
  expected_hash : text;
23
- scope : text;
24
+ scope : FirewallRulesScope;
24
25
  positions : vec int32;
25
26
  rules : vec FirewallRule;
26
27
  };
27
28
  type AddNodeOperatorPayload = record {
29
+ ipv6 : opt text;
28
30
  node_operator_principal_id : opt principal;
29
31
  node_allowance : nat64;
30
32
  rewardable_nodes : vec record { text; nat32 };
@@ -50,7 +52,11 @@ type AddOrRemoveDataCentersProposalPayload = record {
50
52
  data_centers_to_add : vec DataCenterRecord;
51
53
  data_centers_to_remove : vec text;
52
54
  };
53
- type BitcoinFeature = variant { Paused; Enabled; Disabled };
55
+ type BitcoinFeature = record {
56
+ status : BitcoinFeatureStatus;
57
+ network : Network;
58
+ };
59
+ type BitcoinFeatureStatus = variant { Paused; Enabled; Disabled; Syncing };
54
60
  type BlessReplicaVersionPayload = record {
55
61
  node_manager_sha256_hex : text;
56
62
  release_package_url : text;
@@ -60,6 +66,11 @@ type BlessReplicaVersionPayload = record {
60
66
  node_manager_binary_url : text;
61
67
  binary_url : text;
62
68
  };
69
+ type CanisterIdRange = record { end : principal; start : principal };
70
+ type CompleteCanisterMigrationPayload = record {
71
+ canister_id_ranges : vec CanisterIdRange;
72
+ migration_trace : vec principal;
73
+ };
63
74
  type CreateSubnetPayload = record {
64
75
  unit_delay_millis : nat64;
65
76
  max_instructions_per_round : nat64;
@@ -121,8 +132,16 @@ type FirewallRule = record {
121
132
  ipv6_prefixes : vec text;
122
133
  ports : vec nat32;
123
134
  };
135
+ type FirewallRulesScope = variant {
136
+ Node : principal;
137
+ ReplicaNodes;
138
+ Subnet : principal;
139
+ Global;
140
+ };
124
141
  type Gps = record { latitude : float32; longitude : float32 };
142
+ type Network = variant { Mainnet; Testnet };
125
143
  type NodeOperatorRecord = record {
144
+ ipv6 : opt text;
126
145
  node_operator_principal_id : vec nat8;
127
146
  node_allowance : nat64;
128
147
  rewardable_nodes : vec record { text; nat32 };
@@ -134,17 +153,23 @@ type NodeProvidersMonthlyXdrRewards = record {
134
153
  };
135
154
  type NodeRewardRate = record { xdr_permyriad_per_node_per_month : nat64 };
136
155
  type NodeRewardRates = record { rates : vec record { text; NodeRewardRate } };
156
+ type PrepareCanisterMigrationPayload = record {
157
+ canister_id_ranges : vec CanisterIdRange;
158
+ source_subnet : principal;
159
+ destination_subnet : principal;
160
+ };
137
161
  type RecoverSubnetPayload = record {
138
162
  height : nat64;
139
163
  replacement_nodes : opt vec principal;
140
164
  subnet_id : principal;
141
165
  registry_store_uri : opt record { text; text; nat64 };
166
+ ecdsa_config : opt EcdsaInitialConfig;
142
167
  state_hash : vec nat8;
143
168
  time_ns : nat64;
144
169
  };
145
170
  type RemoveFirewallRulesPayload = record {
146
171
  expected_hash : text;
147
- scope : text;
172
+ scope : FirewallRulesScope;
148
173
  positions : vec int32;
149
174
  };
150
175
  type RemoveNodeDirectlyPayload = record { node_id : principal };
@@ -152,18 +177,18 @@ type RemoveNodeOperatorsPayload = record {
152
177
  node_operators_to_remove : vec vec nat8;
153
178
  };
154
179
  type RemoveNodesPayload = record { node_ids : vec principal };
155
- type RerouteCanisterRangePayload = record {
156
- range_end_inclusive : principal;
157
- range_start_inclusive : principal;
180
+ type RerouteCanisterRangesPayload = record {
181
+ source_subnet : principal;
182
+ reassigned_canister_ranges : vec CanisterIdRange;
158
183
  destination_subnet : principal;
159
184
  };
160
185
  type Result = variant { Ok : principal; Err : text };
161
- type Result_1 = variant {
186
+ type Result_1 = variant { Ok; Err : text };
187
+ type Result_2 = variant {
162
188
  Ok : vec record { DataCenterRecord; NodeOperatorRecord };
163
189
  Err : text;
164
190
  };
165
- type Result_2 = variant { Ok : NodeProvidersMonthlyXdrRewards; Err : text };
166
- type Result_3 = variant { Ok; Err : text };
191
+ type Result_3 = variant { Ok : NodeProvidersMonthlyXdrRewards; Err : text };
167
192
  type SetFirewallConfigPayload = record {
168
193
  ipv4_prefixes : vec text;
169
194
  firewall_config : text;
@@ -172,7 +197,7 @@ type SetFirewallConfigPayload = record {
172
197
  type SubnetFeatures = record {
173
198
  canister_sandboxing : bool;
174
199
  http_requests : bool;
175
- bitcoin_testnet_feature : opt BitcoinFeature;
200
+ bitcoin : opt BitcoinFeature;
176
201
  ecdsa_signatures : bool;
177
202
  };
178
203
  type SubnetType = variant { application; verified_application; system };
@@ -185,6 +210,8 @@ type UpdateNodeOperatorConfigDirectlyPayload = record {
185
210
  };
186
211
  type UpdateNodeOperatorConfigPayload = record {
187
212
  node_operator_id : opt principal;
213
+ set_ipv6_to_none : opt bool;
214
+ ipv6 : opt text;
188
215
  node_provider_id : opt principal;
189
216
  node_allowance : opt nat64;
190
217
  rewardable_nodes : vec record { text; nat32 };
@@ -204,6 +231,7 @@ type UpdateSubnetPayload = record {
204
231
  subnet_id : principal;
205
232
  max_ingress_bytes_per_message : opt nat64;
206
233
  dkg_dealings_per_block : opt nat64;
234
+ ecdsa_key_signing_disable : opt vec EcdsaKeyId;
207
235
  max_block_payload_size : opt nat64;
208
236
  max_instructions_per_install_code : opt nat64;
209
237
  start_as_nns : opt bool;
@@ -234,13 +262,14 @@ type UpdateUnassignedNodesConfigPayload = record {
234
262
  ssh_readonly_access : opt vec text;
235
263
  };
236
264
  service : {
237
- // Exceptions (in rs files but not in did)
265
+ // EXCEPTIONS (in rs files but not in did)
238
266
  set_authorized_subnetwork_list : (SetAuthorizedSubnetworkListArgs) -> ();
239
267
  stop_or_start_nns_canister : (StopOrStartNnsCanisterProposalPayload) -> ();
240
268
  update_icp_xdr_conversion_rate : (UpdateIcpXdrConversionRatePayload) -> ();
241
269
 
242
270
 
243
- // updated https://github.com/dfinity/ic/commit/620692ef649876447646ffeed16aa3579d3ec3a8
271
+ // Source: ic/master/rs/registry/canister/canister/registry.did
272
+ // Commit: https://github.com/dfinity/ic/commit/3b8c3db8acbb1fa5d3f751a53ee9638264062808
244
273
  add_firewall_rules : (AddFirewallRulesPayload) -> ();
245
274
  add_node : (AddNodePayload) -> (Result);
246
275
  add_node_operator : (AddNodeOperatorPayload) -> ();
@@ -248,21 +277,25 @@ service : {
248
277
  add_or_remove_data_centers : (AddOrRemoveDataCentersProposalPayload) -> ();
249
278
  bless_replica_version : (BlessReplicaVersionPayload) -> ();
250
279
  clear_provisional_whitelist : () -> ();
280
+ complete_canister_migration : (CompleteCanisterMigrationPayload) -> (
281
+ Result_1,
282
+ );
251
283
  create_subnet : (CreateSubnetPayload) -> ();
252
284
  delete_subnet : (DeleteSubnetPayload) -> ();
253
285
  get_build_metadata : () -> (text) query;
254
- get_node_operators_and_dcs_of_node_provider : (principal) -> (Result_1) query;
255
- get_node_providers_monthly_xdr_rewards : () -> (Result_2) query;
286
+ get_node_operators_and_dcs_of_node_provider : (principal) -> (Result_2) query;
287
+ get_node_providers_monthly_xdr_rewards : () -> (Result_3) query;
288
+ prepare_canister_migration : (PrepareCanisterMigrationPayload) -> (Result_1);
256
289
  recover_subnet : (RecoverSubnetPayload) -> ();
257
290
  remove_firewall_rules : (RemoveFirewallRulesPayload) -> ();
258
291
  remove_node_directly : (RemoveNodeDirectlyPayload) -> ();
259
292
  remove_node_operators : (RemoveNodeOperatorsPayload) -> ();
260
293
  remove_nodes : (RemoveNodesPayload) -> ();
261
294
  remove_nodes_from_subnet : (RemoveNodesPayload) -> ();
262
- reroute_canister_range : (RerouteCanisterRangePayload) -> (Result_3);
295
+ reroute_canister_ranges : (RerouteCanisterRangesPayload) -> (Result_1);
263
296
  set_firewall_config : (SetFirewallConfigPayload) -> ();
264
297
  update_firewall_rules : (AddFirewallRulesPayload) -> ();
265
- update_node_directly : (UpdateNodeDirectlyPayload) -> (Result_3);
298
+ update_node_directly : (UpdateNodeDirectlyPayload) -> (Result_1);
266
299
  update_node_operator_config : (UpdateNodeOperatorConfigPayload) -> ();
267
300
  update_node_operator_config_directly : (
268
301
  UpdateNodeOperatorConfigDirectlyPayload,
@@ -1,5 +1,6 @@
1
1
  import type { IDL } from "@dfinity/candid";
2
2
 
3
+ export const FirewallRulesScope: IDL.RecordClass;
3
4
  export const FirewallRule: IDL.RecordClass;
4
5
  export const AddFirewallRulesPayload: IDL.RecordClass;
5
6
  export const AddNodePayload: IDL.RecordClass;
@@ -10,6 +11,11 @@ export const Gps: IDL.RecordClass;
10
11
  export const DataCenterRecord: IDL.RecordClass;
11
12
  export const AddOrRemoveDataCentersProposalPayload: IDL.RecordClass;
12
13
  export const BlessReplicaVersionPayload: IDL.RecordClass;
14
+ export const CanisterIdRange: IDL.RecordClass;
15
+ export const CompleteCanisterMigrationPayload: IDL.RecordClass;
16
+ export const Result_1: IDL.RecordClass;
17
+ export const BitcoinFeatureStatus: IDL.RecordClass;
18
+ export const Network: IDL.RecordClass;
13
19
  export const BitcoinFeature: IDL.RecordClass;
14
20
  export const SubnetFeatures: IDL.RecordClass;
15
21
  export const EcdsaCurve: IDL.RecordClass;
@@ -20,16 +26,16 @@ export const SubnetType: IDL.RecordClass;
20
26
  export const CreateSubnetPayload: IDL.RecordClass;
21
27
  export const DeleteSubnetPayload: IDL.RecordClass;
22
28
  export const NodeOperatorRecord: IDL.RecordClass;
23
- export const Result_1: IDL.RecordClass;
24
- export const NodeProvidersMonthlyXdrRewards: IDL.RecordClass;
25
29
  export const Result_2: IDL.RecordClass;
30
+ export const NodeProvidersMonthlyXdrRewards: IDL.RecordClass;
31
+ export const Result_3: IDL.RecordClass;
32
+ export const PrepareCanisterMigrationPayload: IDL.RecordClass;
26
33
  export const RecoverSubnetPayload: IDL.RecordClass;
27
34
  export const RemoveFirewallRulesPayload: IDL.RecordClass;
28
35
  export const RemoveNodeDirectlyPayload: IDL.RecordClass;
29
36
  export const RemoveNodeOperatorsPayload: IDL.RecordClass;
30
37
  export const RemoveNodesPayload: IDL.RecordClass;
31
- export const RerouteCanisterRangePayload: IDL.RecordClass;
32
- export const Result_3: IDL.RecordClass;
38
+ export const RerouteCanisterRangesPayload: IDL.RecordClass;
33
39
  export const SetAuthorizedSubnetworkListArgs: IDL.RecordClass;
34
40
  export const SetFirewallConfigPayload: IDL.RecordClass;
35
41
  export const CanisterAction: IDL.RecordClass;
@@ -4,6 +4,12 @@
4
4
 
5
5
  import { IDL } from "@dfinity/candid";
6
6
 
7
+ export const FirewallRulesScope = IDL.Variant({
8
+ Node: IDL.Principal,
9
+ ReplicaNodes: IDL.Null,
10
+ Subnet: IDL.Principal,
11
+ Global: IDL.Null,
12
+ });
7
13
  export const FirewallRule = IDL.Record({
8
14
  ipv4_prefixes: IDL.Vec(IDL.Text),
9
15
  action: IDL.Int32,
@@ -13,7 +19,7 @@ export const FirewallRule = IDL.Record({
13
19
  });
14
20
  export const AddFirewallRulesPayload = IDL.Record({
15
21
  expected_hash: IDL.Text,
16
- scope: IDL.Text,
22
+ scope: FirewallRulesScope,
17
23
  positions: IDL.Vec(IDL.Int32),
18
24
  rules: IDL.Vec(FirewallRule),
19
25
  });
@@ -30,6 +36,7 @@ export const AddNodePayload = IDL.Record({
30
36
  });
31
37
  export const Result = IDL.Variant({ Ok: IDL.Principal, Err: IDL.Text });
32
38
  export const AddNodeOperatorPayload = IDL.Record({
39
+ ipv6: IDL.Opt(IDL.Text),
33
40
  node_operator_principal_id: IDL.Opt(IDL.Principal),
34
41
  node_allowance: IDL.Nat64,
35
42
  rewardable_nodes: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32)),
@@ -63,15 +70,30 @@ export const BlessReplicaVersionPayload = IDL.Record({
63
70
  node_manager_binary_url: IDL.Text,
64
71
  binary_url: IDL.Text,
65
72
  });
66
- export const BitcoinFeature = IDL.Variant({
73
+ export const CanisterIdRange = IDL.Record({
74
+ end: IDL.Principal,
75
+ start: IDL.Principal,
76
+ });
77
+ export const CompleteCanisterMigrationPayload = IDL.Record({
78
+ canister_id_ranges: IDL.Vec(CanisterIdRange),
79
+ migration_trace: IDL.Vec(IDL.Principal),
80
+ });
81
+ export const Result_1 = IDL.Variant({ Ok: IDL.Null, Err: IDL.Text });
82
+ export const BitcoinFeatureStatus = IDL.Variant({
67
83
  Paused: IDL.Null,
68
84
  Enabled: IDL.Null,
69
85
  Disabled: IDL.Null,
86
+ Syncing: IDL.Null,
87
+ });
88
+ export const Network = IDL.Variant({ Mainnet: IDL.Null, Testnet: IDL.Null });
89
+ export const BitcoinFeature = IDL.Record({
90
+ status: BitcoinFeatureStatus,
91
+ network: Network,
70
92
  });
71
93
  export const SubnetFeatures = IDL.Record({
72
94
  canister_sandboxing: IDL.Bool,
73
95
  http_requests: IDL.Bool,
74
- bitcoin_testnet_feature: IDL.Opt(BitcoinFeature),
96
+ bitcoin: IDL.Opt(BitcoinFeature),
75
97
  ecdsa_signatures: IDL.Bool,
76
98
  });
77
99
  export const EcdsaCurve = IDL.Variant({ secp256k1: IDL.Null });
@@ -126,34 +148,41 @@ export const DeleteSubnetPayload = IDL.Record({
126
148
  subnet_id: IDL.Opt(IDL.Principal),
127
149
  });
128
150
  export const NodeOperatorRecord = IDL.Record({
151
+ ipv6: IDL.Opt(IDL.Text),
129
152
  node_operator_principal_id: IDL.Vec(IDL.Nat8),
130
153
  node_allowance: IDL.Nat64,
131
154
  rewardable_nodes: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32)),
132
155
  node_provider_principal_id: IDL.Vec(IDL.Nat8),
133
156
  dc_id: IDL.Text,
134
157
  });
135
- export const Result_1 = IDL.Variant({
158
+ export const Result_2 = IDL.Variant({
136
159
  Ok: IDL.Vec(IDL.Tuple(DataCenterRecord, NodeOperatorRecord)),
137
160
  Err: IDL.Text,
138
161
  });
139
162
  export const NodeProvidersMonthlyXdrRewards = IDL.Record({
140
163
  rewards: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat64)),
141
164
  });
142
- export const Result_2 = IDL.Variant({
165
+ export const Result_3 = IDL.Variant({
143
166
  Ok: NodeProvidersMonthlyXdrRewards,
144
167
  Err: IDL.Text,
145
168
  });
169
+ export const PrepareCanisterMigrationPayload = IDL.Record({
170
+ canister_id_ranges: IDL.Vec(CanisterIdRange),
171
+ source_subnet: IDL.Principal,
172
+ destination_subnet: IDL.Principal,
173
+ });
146
174
  export const RecoverSubnetPayload = IDL.Record({
147
175
  height: IDL.Nat64,
148
176
  replacement_nodes: IDL.Opt(IDL.Vec(IDL.Principal)),
149
177
  subnet_id: IDL.Principal,
150
178
  registry_store_uri: IDL.Opt(IDL.Tuple(IDL.Text, IDL.Text, IDL.Nat64)),
179
+ ecdsa_config: IDL.Opt(EcdsaInitialConfig),
151
180
  state_hash: IDL.Vec(IDL.Nat8),
152
181
  time_ns: IDL.Nat64,
153
182
  });
154
183
  export const RemoveFirewallRulesPayload = IDL.Record({
155
184
  expected_hash: IDL.Text,
156
- scope: IDL.Text,
185
+ scope: FirewallRulesScope,
157
186
  positions: IDL.Vec(IDL.Int32),
158
187
  });
159
188
  export const RemoveNodeDirectlyPayload = IDL.Record({ node_id: IDL.Principal });
@@ -163,12 +192,11 @@ export const RemoveNodeOperatorsPayload = IDL.Record({
163
192
  export const RemoveNodesPayload = IDL.Record({
164
193
  node_ids: IDL.Vec(IDL.Principal),
165
194
  });
166
- export const RerouteCanisterRangePayload = IDL.Record({
167
- range_end_inclusive: IDL.Principal,
168
- range_start_inclusive: IDL.Principal,
195
+ export const RerouteCanisterRangesPayload = IDL.Record({
196
+ source_subnet: IDL.Principal,
197
+ reassigned_canister_ranges: IDL.Vec(CanisterIdRange),
169
198
  destination_subnet: IDL.Principal,
170
199
  });
171
- export const Result_3 = IDL.Variant({ Ok: IDL.Null, Err: IDL.Text });
172
200
  export const SetAuthorizedSubnetworkListArgs = IDL.Record({
173
201
  who: IDL.Opt(IDL.Principal),
174
202
  subnets: IDL.Vec(IDL.Principal),
@@ -193,6 +221,8 @@ export const UpdateNodeDirectlyPayload = IDL.Record({
193
221
  });
194
222
  export const UpdateNodeOperatorConfigPayload = IDL.Record({
195
223
  node_operator_id: IDL.Opt(IDL.Principal),
224
+ set_ipv6_to_none: IDL.Opt(IDL.Bool),
225
+ ipv6: IDL.Opt(IDL.Text),
196
226
  node_provider_id: IDL.Opt(IDL.Principal),
197
227
  node_allowance: IDL.Opt(IDL.Nat64),
198
228
  rewardable_nodes: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32)),
@@ -226,6 +256,7 @@ export const UpdateSubnetPayload = IDL.Record({
226
256
  subnet_id: IDL.Principal,
227
257
  max_ingress_bytes_per_message: IDL.Opt(IDL.Nat64),
228
258
  dkg_dealings_per_block: IDL.Opt(IDL.Nat64),
259
+ ecdsa_key_signing_disable: IDL.Opt(IDL.Vec(EcdsaKeyId)),
229
260
  max_block_payload_size: IDL.Opt(IDL.Nat64),
230
261
  max_instructions_per_install_code: IDL.Opt(IDL.Nat64),
231
262
  start_as_nns: IDL.Opt(IDL.Bool),