@dfinity/nns 0.1.9 → 0.2.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.
- package/README.md +10 -11
- package/dist/cjs/index.cjs.js +48 -48
- package/dist/cjs/index.cjs.js.map +3 -3
- package/dist/esm/account_identifier.js +1 -1
- package/dist/esm/chunk-4FZAJTYF.js +2 -0
- package/dist/esm/chunk-4FZAJTYF.js.map +7 -0
- package/dist/esm/chunk-AM5HOKAH.js +2 -0
- package/dist/esm/chunk-AM5HOKAH.js.map +7 -0
- package/dist/esm/chunk-FVDRR6PO.js +17 -0
- package/dist/esm/chunk-FVDRR6PO.js.map +7 -0
- package/dist/esm/chunk-HFWTAZD7.js +825 -0
- package/dist/esm/chunk-HFWTAZD7.js.map +7 -0
- package/dist/esm/chunk-IQ5S76MI.js +4 -0
- package/dist/esm/chunk-IQ5S76MI.js.map +7 -0
- package/dist/esm/chunk-LNMGZ6W7.js +3 -0
- package/dist/esm/chunk-LNMGZ6W7.js.map +7 -0
- package/dist/esm/{chunk-NR65YN67.js → chunk-NYI672WX.js} +2 -2
- package/dist/esm/{chunk-NR65YN67.js.map → chunk-NYI672WX.js.map} +0 -0
- package/dist/esm/chunk-SO23SIWX.js +3 -0
- package/dist/esm/chunk-SO23SIWX.js.map +7 -0
- package/dist/esm/chunk-X2SHUWG3.js +2 -0
- package/dist/esm/chunk-X2SHUWG3.js.map +7 -0
- package/dist/esm/governance.js +1 -1
- package/dist/esm/icp.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ledger.js +1 -1
- package/dist/types/account_identifier.d.ts +5 -2
- package/dist/types/canisters/governance/payloads.d.ts +3 -0
- package/dist/types/canisters/governance/request.converters.d.ts +26 -0
- package/dist/types/canisters/governance/response.converters.d.ts +35 -0
- package/dist/types/constants/canister_ids.d.ts +4 -0
- package/dist/types/constants/constants.d.ts +5 -0
- package/dist/types/governance.d.ts +15 -16
- package/dist/types/icp.d.ts +2 -5
- package/dist/types/index.d.ts +6 -3
- package/dist/types/ledger.d.ts +11 -32
- package/dist/types/types/common.d.ts +8 -0
- package/dist/types/types/governance.d.ts +9 -0
- package/dist/types/types/governance_converters.d.ts +532 -0
- package/dist/types/types/icp.d.ts +4 -0
- package/dist/types/types/ledger.d.ts +30 -0
- package/dist/types/types/option.d.ts +1 -0
- package/dist/types/utils/agent.utils.d.ts +5 -0
- package/dist/types/utils/converter.utils.d.ts +18 -0
- package/dist/types/utils/{proto.d.ts → proto.utils.d.ts} +0 -0
- package/package.json +13 -11
- package/dist/esm/chunk-AAXRCEPL.js +0 -2
- package/dist/esm/chunk-AAXRCEPL.js.map +0 -7
- package/dist/esm/chunk-AV2V5I5D.js +0 -10
- package/dist/esm/chunk-AV2V5I5D.js.map +0 -7
- package/dist/esm/chunk-QXLTRMTU.js +0 -832
- package/dist/esm/chunk-QXLTRMTU.js.map +0 -7
- package/dist/esm/chunk-RKZCM7KO.js +0 -4
- package/dist/esm/chunk-RKZCM7KO.js.map +0 -7
- package/dist/esm/chunk-UJYSTOZE.js +0 -2
- package/dist/esm/chunk-UJYSTOZE.js.map +0 -7
- package/dist/esm/chunk-XN3QHASA.js +0 -4
- package/dist/esm/chunk-XN3QHASA.js.map +0 -7
- package/dist/esm/chunk-YXM7FYC5.js +0 -2
- package/dist/esm/chunk-YXM7FYC5.js.map +0 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-SO23SIWX.js";import"./chunk-LNMGZ6W7.js";import"./chunk-FVDRR6PO.js";import"./chunk-NYI672WX.js";import"./chunk-4FZAJTYF.js";export{a as AccountIdentifier,b as SubAccount};
|
|
2
2
|
//# sourceMappingURL=account_identifier.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var I=Object.create;var n=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var N=(E,t,_)=>t in E?n(E,t,{enumerable:!0,configurable:!0,writable:!0,value:_}):E[t]=_;var c=E=>n(E,"__esModule",{value:!0});var p=(E,t)=>()=>(t||E((t={exports:{}}).exports,t),t.exports),r=(E,t)=>{for(var _ in t)n(E,_,{get:t[_],enumerable:!0})},e=(E,t,_,T)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of C(t))!B.call(E,o)&&(_||o!=="default")&&n(E,o,{get:()=>t[o],enumerable:!(T=x(t,o))||T.enumerable});return E},s=(E,t)=>e(c(n(E!=null?I(A(E)):{},"default",!t&&E&&E.__esModule?{get:()=>E.default,enumerable:!0}:{value:E,enumerable:!0})),E);var O=(E,t,_)=>(N(E,typeof t!="symbol"?t+"":t,_),_);var S=BigInt(1095062083),g=BigInt(1347768404),i=BigInt(1e4),M=BigInt(1e8);export{p as a,r as b,s as c,O as d,M as e};
|
|
2
|
+
//# sourceMappingURL=chunk-4FZAJTYF.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/constants/constants.ts"],
|
|
4
|
+
"sourcesContent": ["export const SUB_ACCOUNT_BYTE_LENGTH = 32;\nexport const CREATE_CANISTER_MEMO = BigInt(0x41455243); // CREA,\nexport const TOP_UP_CANISTER_MEMO = BigInt(0x50555054); // TPUP\n\nexport const TRANSACTION_FEE = BigInt(10_000);\n\n// Note: Canister IDs are not constant, so are not provided here.\n// The same applies to HOST.\nexport const E8S_PER_ICP = BigInt(100000000);\n"],
|
|
5
|
+
"mappings": "oxBACO,GAAM,GAAuB,OAAO,YAC9B,EAAuB,OAAO,YAE9B,EAAkB,OAAO,KAIzB,EAAc,OAAO",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as B,b as ke,c as Ce,e as Ve,f as Fe,g as Ee}from"./chunk-LNMGZ6W7.js";import{a as l,b as n,d as Se,e as Ke,f as qe,h as Be}from"./chunk-HFWTAZD7.js";import{c as uo}from"./chunk-FVDRR6PO.js";import{c as co}from"./chunk-4FZAJTYF.js";var Ue=({IDL:e})=>{let o=e.Rec(),t=e.Record({id:e.Nat64}),r=e.Record({followees:e.Vec(t)}),s=e.Record({not_dissolving_neurons_e8s_buckets:e.Vec(e.Tuple(e.Nat64,e.Float64)),garbage_collectable_neurons_count:e.Nat64,neurons_with_invalid_stake_count:e.Nat64,not_dissolving_neurons_count_buckets:e.Vec(e.Tuple(e.Nat64,e.Nat64)),total_supply_icp:e.Nat64,neurons_with_less_than_6_months_dissolve_delay_count:e.Nat64,dissolved_neurons_count:e.Nat64,total_staked_e8s:e.Nat64,not_dissolving_neurons_count:e.Nat64,dissolved_neurons_e8s:e.Nat64,neurons_with_less_than_6_months_dissolve_delay_e8s:e.Nat64,dissolving_neurons_count_buckets:e.Vec(e.Tuple(e.Nat64,e.Nat64)),dissolving_neurons_count:e.Nat64,dissolving_neurons_e8s_buckets:e.Vec(e.Tuple(e.Nat64,e.Float64)),community_fund_total_staked_e8s:e.Nat64,timestamp_seconds:e.Nat64}),a=e.Record({hash:e.Vec(e.Nat8)}),c=e.Record({id:e.Opt(e.Principal),reward_account:e.Opt(a)}),p=e.Record({neuron_minimum_stake_e8s:e.Nat64,max_proposals_to_keep_per_topic:e.Nat32,neuron_management_fee_per_proposal_e8s:e.Nat64,reject_cost_e8s:e.Nat64,transaction_fee_e8s:e.Nat64,neuron_spawn_dissolve_delay_seconds:e.Nat64,minimum_icp_xdr_rate:e.Nat64,maximum_node_provider_rewards_e8s:e.Nat64}),U=e.Record({day_after_genesis:e.Nat64,actual_timestamp_seconds:e.Nat64,distributed_e8s_equivalent:e.Nat64,settled_proposals:e.Vec(t)}),w=e.Record({to_subaccount:e.Vec(e.Nat8),neuron_stake_e8s:e.Nat64,from:e.Opt(e.Principal),memo:e.Nat64,from_subaccount:e.Vec(e.Nat8),transfer_timestamp:e.Nat64,block_height:e.Nat64}),d=e.Record({error_message:e.Text,error_type:e.Int32}),i=e.Record({vote:e.Int32,voting_power:e.Nat64}),g=e.Record({no:e.Nat64,yes:e.Nat64,total:e.Nat64,timestamp_seconds:e.Nat64}),_=e.Record({name:e.Text,description:e.Opt(e.Text)}),y=e.Record({id:e.Opt(t),known_neuron_data:e.Opt(_)}),O=e.Record({new_controller:e.Opt(e.Principal),nonce:e.Opt(e.Nat64)}),P=e.Record({amount_e8s:e.Nat64}),G=e.Record({topic:e.Int32,followees:e.Vec(t)}),h=e.Record({controller:e.Opt(e.Principal),memo:e.Nat64}),H=e.Variant({NeuronIdOrSubaccount:e.Record({}),MemoAndController:h,Memo:e.Nat64}),b=e.Record({by:e.Opt(H)}),j=e.Record({hot_key_to_remove:e.Opt(e.Principal)}),J=e.Record({new_hot_key:e.Opt(e.Principal)}),z=e.Record({additional_dissolve_delay_seconds:e.Nat32}),W=e.Record({dissolve_timestamp_seconds:e.Nat64}),X=e.Variant({RemoveHotKey:j,AddHotKey:J,StopDissolving:e.Record({}),StartDissolving:e.Record({}),IncreaseDissolveDelay:z,JoinCommunityFund:e.Record({}),SetDissolveTimestamp:W}),S=e.Record({operation:e.Opt(X)}),Q=e.Record({vote:e.Int32,proposal:e.Opt(t)}),T=e.Record({source_neuron_id:e.Opt(t)}),x=e.Record({dissolve_delay_seconds:e.Nat64,kyc_verified:e.Bool,amount_e8s:e.Nat64,new_controller:e.Opt(e.Principal),nonce:e.Nat64}),A=e.Record({percentage_to_merge:e.Nat32}),Y=e.Record({e8s:e.Nat64}),M=e.Record({to_account:e.Opt(a),amount:e.Opt(Y)}),$=e.Variant({Spawn:O,Split:P,Follow:G,ClaimOrRefresh:b,Configure:S,RegisterVote:Q,Merge:T,DisburseToNeuron:x,MakeProposal:o,MergeMaturity:A,Disburse:M}),m=e.Variant({Subaccount:e.Vec(e.Nat8),NeuronId:t}),k=e.Record({id:e.Opt(t),command:e.Opt($),neuron_id_or_subaccount:e.Opt(m)}),Z=e.Record({nns_function:e.Int32,payload:e.Vec(e.Nat8)}),I=e.Record({dissolve_delay_seconds:e.Nat64}),D=e.Record({to_account:e.Opt(a)}),L=e.Variant({RewardToNeuron:I,RewardToAccount:D}),C=e.Record({node_provider:e.Opt(c),reward_mode:e.Opt(L),amount_e8s:e.Nat64}),ee=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r))}),V=e.Record({rewards:e.Vec(C)}),oe=e.Record({principals:e.Vec(e.Principal)}),te=e.Variant({ToRemove:c,ToAdd:c}),ne=e.Record({change:e.Opt(te)}),re=e.Record({motion_text:e.Text}),se=e.Variant({RegisterKnownNeuron:y,ManageNeuron:k,ExecuteNnsFunction:Z,RewardNodeProvider:C,SetDefaultFollowees:ee,RewardNodeProviders:V,ManageNetworkEconomics:p,ApproveGenesisKyc:oe,AddOrRemoveNodeProvider:ne,Motion:re});o.fill(e.Record({url:e.Text,title:e.Opt(e.Text),action:e.Opt(se),summary:e.Text}));let ae=e.Record({current_deadline_timestamp_seconds:e.Nat64}),ie=e.Record({id:e.Opt(t),failure_reason:e.Opt(d),ballots:e.Vec(e.Tuple(e.Nat64,i)),proposal_timestamp_seconds:e.Nat64,reward_event_round:e.Nat64,failed_timestamp_seconds:e.Nat64,reject_cost_e8s:e.Nat64,latest_tally:e.Opt(g),decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(t),wait_for_quiet_state:e.Opt(ae),executed_timestamp_seconds:e.Nat64}),ce=e.Variant({Spawn:O,Split:P,Configure:S,Merge:T,DisburseToNeuron:x,ClaimOrRefreshNeuron:b,MergeMaturity:A,Disburse:M}),de=e.Record({command:e.Opt(ce),timestamp:e.Nat64}),F=e.Record({vote:e.Int32,proposal_id:e.Opt(t)}),ue=e.Variant({DissolveDelaySeconds:e.Nat64,WhenDissolvedTimestampSeconds:e.Nat64}),N=e.Record({id:e.Opt(t),controller:e.Opt(e.Principal),recent_ballots:e.Vec(F),kyc_verified:e.Bool,not_for_profit:e.Bool,maturity_e8s_equivalent:e.Nat64,cached_neuron_stake_e8s:e.Nat64,created_timestamp_seconds:e.Nat64,aging_since_timestamp_seconds:e.Nat64,hot_keys:e.Vec(e.Principal),account:e.Vec(e.Nat8),joined_community_fund_timestamp_seconds:e.Opt(e.Nat64),dissolve_state:e.Opt(ue),followees:e.Vec(e.Tuple(e.Int32,r)),neuron_fees_e8s:e.Nat64,transfer:e.Opt(w),known_neuron_data:e.Opt(_)}),io=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r)),wait_for_quiet_threshold_seconds:e.Nat64,metrics:e.Opt(s),node_providers:e.Vec(c),economics:e.Opt(p),latest_reward_event:e.Opt(U),to_claim_transfers:e.Vec(w),short_voting_period_seconds:e.Nat64,proposals:e.Vec(e.Tuple(e.Nat64,ie)),in_flight_commands:e.Vec(e.Tuple(e.Nat64,de)),neurons:e.Vec(e.Tuple(e.Nat64,N)),genesis_timestamp_seconds:e.Nat64}),R=e.Variant({Ok:e.Null,Err:d}),le=e.Variant({Error:d,NeuronId:t}),pe=e.Record({result:e.Opt(le)}),E=e.Variant({Ok:N,Err:d}),_e=e.Variant({Ok:V,Err:d}),K=e.Record({dissolve_delay_seconds:e.Nat64,recent_ballots:e.Vec(F),created_timestamp_seconds:e.Nat64,state:e.Int32,stake_e8s:e.Nat64,joined_community_fund_timestamp_seconds:e.Opt(e.Nat64),retrieved_at_timestamp_seconds:e.Nat64,known_neuron_data:e.Opt(_),voting_power:e.Nat64,age_seconds:e.Nat64}),q=e.Variant({Ok:K,Err:d}),f=e.Record({id:e.Opt(t),status:e.Int32,topic:e.Int32,failure_reason:e.Opt(d),ballots:e.Vec(e.Tuple(e.Nat64,i)),proposal_timestamp_seconds:e.Nat64,reward_event_round:e.Nat64,deadline_timestamp_seconds:e.Opt(e.Nat64),failed_timestamp_seconds:e.Nat64,reject_cost_e8s:e.Nat64,latest_tally:e.Opt(g),reward_status:e.Int32,decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(t),executed_timestamp_seconds:e.Nat64}),me=e.Record({known_neurons:e.Vec(y)}),Ne=e.Record({neuron_ids:e.Vec(e.Nat64),include_neurons_readable_by_caller:e.Bool}),Re=e.Record({neuron_infos:e.Vec(e.Tuple(e.Nat64,K)),full_neurons:e.Vec(N)}),fe=e.Record({include_reward_status:e.Vec(e.Int32),before_proposal:e.Opt(t),limit:e.Nat32,exclude_topic:e.Vec(e.Int32),include_status:e.Vec(e.Int32)}),ve=e.Record({proposal_info:e.Vec(f)}),v=e.Record({created_neuron_id:e.Opt(t)}),we=e.Record({refreshed_neuron_id:e.Opt(t)}),ge=e.Record({proposal_id:e.Opt(t)}),ye=e.Record({merged_maturity_e8s:e.Nat64,new_stake_e8s:e.Nat64}),Oe=e.Record({transfer_block_height:e.Nat64}),Pe=e.Variant({Error:d,Spawn:v,Split:v,Follow:e.Record({}),ClaimOrRefresh:we,Configure:e.Record({}),RegisterVote:e.Record({}),Merge:e.Record({}),DisburseToNeuron:v,MakeProposal:ge,MergeMaturity:ye,Disburse:Oe}),he=e.Record({command:e.Opt(Pe)}),be=e.Record({reward_account:e.Opt(a)});return e.Service({claim_gtc_neurons:e.Func([e.Principal,e.Vec(t)],[R],[]),claim_or_refresh_neuron_from_account:e.Func([h],[pe],[]),get_build_metadata:e.Func([],[e.Text],[]),get_full_neuron:e.Func([e.Nat64],[E],[]),get_full_neuron_by_id_or_subaccount:e.Func([m],[E],[]),get_monthly_node_provider_rewards:e.Func([],[_e],[]),get_neuron_ids:e.Func([],[e.Vec(e.Nat64)],[]),get_neuron_info:e.Func([e.Nat64],[q],[]),get_neuron_info_by_id_or_subaccount:e.Func([m],[q],[]),get_pending_proposals:e.Func([],[e.Vec(f)],[]),get_proposal_info:e.Func([e.Nat64],[e.Opt(f)],[]),list_known_neurons:e.Func([],[me],[]),list_neurons:e.Func([Ne],[Re],[]),list_proposals:e.Func([fe],[ve],[]),manage_neuron:e.Func([k],[he],[]),transfer_gtc_neuron:e.Func([t,t],[R],[]),update_node_provider:e.Func([be],[R],[])})};var Ge=({IDL:e})=>{let o=e.Rec(),t=e.Record({id:e.Nat64}),r=e.Record({followees:e.Vec(t)}),s=e.Record({not_dissolving_neurons_e8s_buckets:e.Vec(e.Tuple(e.Nat64,e.Float64)),garbage_collectable_neurons_count:e.Nat64,neurons_with_invalid_stake_count:e.Nat64,not_dissolving_neurons_count_buckets:e.Vec(e.Tuple(e.Nat64,e.Nat64)),total_supply_icp:e.Nat64,neurons_with_less_than_6_months_dissolve_delay_count:e.Nat64,dissolved_neurons_count:e.Nat64,total_staked_e8s:e.Nat64,not_dissolving_neurons_count:e.Nat64,dissolved_neurons_e8s:e.Nat64,neurons_with_less_than_6_months_dissolve_delay_e8s:e.Nat64,dissolving_neurons_count_buckets:e.Vec(e.Tuple(e.Nat64,e.Nat64)),dissolving_neurons_count:e.Nat64,dissolving_neurons_e8s_buckets:e.Vec(e.Tuple(e.Nat64,e.Float64)),community_fund_total_staked_e8s:e.Nat64,timestamp_seconds:e.Nat64}),a=e.Record({hash:e.Vec(e.Nat8)}),c=e.Record({id:e.Opt(e.Principal),reward_account:e.Opt(a)}),p=e.Record({neuron_minimum_stake_e8s:e.Nat64,max_proposals_to_keep_per_topic:e.Nat32,neuron_management_fee_per_proposal_e8s:e.Nat64,reject_cost_e8s:e.Nat64,transaction_fee_e8s:e.Nat64,neuron_spawn_dissolve_delay_seconds:e.Nat64,minimum_icp_xdr_rate:e.Nat64,maximum_node_provider_rewards_e8s:e.Nat64}),U=e.Record({day_after_genesis:e.Nat64,actual_timestamp_seconds:e.Nat64,distributed_e8s_equivalent:e.Nat64,settled_proposals:e.Vec(t)}),w=e.Record({to_subaccount:e.Vec(e.Nat8),neuron_stake_e8s:e.Nat64,from:e.Opt(e.Principal),memo:e.Nat64,from_subaccount:e.Vec(e.Nat8),transfer_timestamp:e.Nat64,block_height:e.Nat64}),d=e.Record({error_message:e.Text,error_type:e.Int32}),i=e.Record({vote:e.Int32,voting_power:e.Nat64}),g=e.Record({no:e.Nat64,yes:e.Nat64,total:e.Nat64,timestamp_seconds:e.Nat64}),_=e.Record({name:e.Text,description:e.Opt(e.Text)}),y=e.Record({id:e.Opt(t),known_neuron_data:e.Opt(_)}),O=e.Record({new_controller:e.Opt(e.Principal),nonce:e.Opt(e.Nat64)}),P=e.Record({amount_e8s:e.Nat64}),G=e.Record({topic:e.Int32,followees:e.Vec(t)}),h=e.Record({controller:e.Opt(e.Principal),memo:e.Nat64}),H=e.Variant({NeuronIdOrSubaccount:e.Record({}),MemoAndController:h,Memo:e.Nat64}),b=e.Record({by:e.Opt(H)}),j=e.Record({hot_key_to_remove:e.Opt(e.Principal)}),J=e.Record({new_hot_key:e.Opt(e.Principal)}),z=e.Record({additional_dissolve_delay_seconds:e.Nat32}),W=e.Record({dissolve_timestamp_seconds:e.Nat64}),X=e.Variant({RemoveHotKey:j,AddHotKey:J,StopDissolving:e.Record({}),StartDissolving:e.Record({}),IncreaseDissolveDelay:z,JoinCommunityFund:e.Record({}),SetDissolveTimestamp:W}),S=e.Record({operation:e.Opt(X)}),Q=e.Record({vote:e.Int32,proposal:e.Opt(t)}),T=e.Record({source_neuron_id:e.Opt(t)}),x=e.Record({dissolve_delay_seconds:e.Nat64,kyc_verified:e.Bool,amount_e8s:e.Nat64,new_controller:e.Opt(e.Principal),nonce:e.Nat64}),A=e.Record({percentage_to_merge:e.Nat32}),Y=e.Record({e8s:e.Nat64}),M=e.Record({to_account:e.Opt(a),amount:e.Opt(Y)}),$=e.Variant({Spawn:O,Split:P,Follow:G,ClaimOrRefresh:b,Configure:S,RegisterVote:Q,Merge:T,DisburseToNeuron:x,MakeProposal:o,MergeMaturity:A,Disburse:M}),m=e.Variant({Subaccount:e.Vec(e.Nat8),NeuronId:t}),k=e.Record({id:e.Opt(t),command:e.Opt($),neuron_id_or_subaccount:e.Opt(m)}),Z=e.Record({nns_function:e.Int32,payload:e.Vec(e.Nat8)}),I=e.Record({dissolve_delay_seconds:e.Nat64}),D=e.Record({to_account:e.Opt(a)}),L=e.Variant({RewardToNeuron:I,RewardToAccount:D}),C=e.Record({node_provider:e.Opt(c),reward_mode:e.Opt(L),amount_e8s:e.Nat64}),ee=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r))}),V=e.Record({rewards:e.Vec(C)}),oe=e.Record({principals:e.Vec(e.Principal)}),te=e.Variant({ToRemove:c,ToAdd:c}),ne=e.Record({change:e.Opt(te)}),re=e.Record({motion_text:e.Text}),se=e.Variant({RegisterKnownNeuron:y,ManageNeuron:k,ExecuteNnsFunction:Z,RewardNodeProvider:C,SetDefaultFollowees:ee,RewardNodeProviders:V,ManageNetworkEconomics:p,ApproveGenesisKyc:oe,AddOrRemoveNodeProvider:ne,Motion:re});o.fill(e.Record({url:e.Text,title:e.Opt(e.Text),action:e.Opt(se),summary:e.Text}));let ae=e.Record({current_deadline_timestamp_seconds:e.Nat64}),ie=e.Record({id:e.Opt(t),failure_reason:e.Opt(d),ballots:e.Vec(e.Tuple(e.Nat64,i)),proposal_timestamp_seconds:e.Nat64,reward_event_round:e.Nat64,failed_timestamp_seconds:e.Nat64,reject_cost_e8s:e.Nat64,latest_tally:e.Opt(g),decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(t),wait_for_quiet_state:e.Opt(ae),executed_timestamp_seconds:e.Nat64}),ce=e.Variant({Spawn:O,Split:P,Configure:S,Merge:T,DisburseToNeuron:x,ClaimOrRefreshNeuron:b,MergeMaturity:A,Disburse:M}),de=e.Record({command:e.Opt(ce),timestamp:e.Nat64}),F=e.Record({vote:e.Int32,proposal_id:e.Opt(t)}),ue=e.Variant({DissolveDelaySeconds:e.Nat64,WhenDissolvedTimestampSeconds:e.Nat64}),N=e.Record({id:e.Opt(t),controller:e.Opt(e.Principal),recent_ballots:e.Vec(F),kyc_verified:e.Bool,not_for_profit:e.Bool,maturity_e8s_equivalent:e.Nat64,cached_neuron_stake_e8s:e.Nat64,created_timestamp_seconds:e.Nat64,aging_since_timestamp_seconds:e.Nat64,hot_keys:e.Vec(e.Principal),account:e.Vec(e.Nat8),joined_community_fund_timestamp_seconds:e.Opt(e.Nat64),dissolve_state:e.Opt(ue),followees:e.Vec(e.Tuple(e.Int32,r)),neuron_fees_e8s:e.Nat64,transfer:e.Opt(w),known_neuron_data:e.Opt(_)}),io=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r)),wait_for_quiet_threshold_seconds:e.Nat64,metrics:e.Opt(s),node_providers:e.Vec(c),economics:e.Opt(p),latest_reward_event:e.Opt(U),to_claim_transfers:e.Vec(w),short_voting_period_seconds:e.Nat64,proposals:e.Vec(e.Tuple(e.Nat64,ie)),in_flight_commands:e.Vec(e.Tuple(e.Nat64,de)),neurons:e.Vec(e.Tuple(e.Nat64,N)),genesis_timestamp_seconds:e.Nat64}),R=e.Variant({Ok:e.Null,Err:d}),le=e.Variant({Error:d,NeuronId:t}),pe=e.Record({result:e.Opt(le)}),E=e.Variant({Ok:N,Err:d}),_e=e.Variant({Ok:V,Err:d}),K=e.Record({dissolve_delay_seconds:e.Nat64,recent_ballots:e.Vec(F),created_timestamp_seconds:e.Nat64,state:e.Int32,stake_e8s:e.Nat64,joined_community_fund_timestamp_seconds:e.Opt(e.Nat64),retrieved_at_timestamp_seconds:e.Nat64,known_neuron_data:e.Opt(_),voting_power:e.Nat64,age_seconds:e.Nat64}),q=e.Variant({Ok:K,Err:d}),f=e.Record({id:e.Opt(t),status:e.Int32,topic:e.Int32,failure_reason:e.Opt(d),ballots:e.Vec(e.Tuple(e.Nat64,i)),proposal_timestamp_seconds:e.Nat64,reward_event_round:e.Nat64,deadline_timestamp_seconds:e.Opt(e.Nat64),failed_timestamp_seconds:e.Nat64,reject_cost_e8s:e.Nat64,latest_tally:e.Opt(g),reward_status:e.Int32,decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(t),executed_timestamp_seconds:e.Nat64}),me=e.Record({known_neurons:e.Vec(y)}),Ne=e.Record({neuron_ids:e.Vec(e.Nat64),include_neurons_readable_by_caller:e.Bool}),Re=e.Record({neuron_infos:e.Vec(e.Tuple(e.Nat64,K)),full_neurons:e.Vec(N)}),fe=e.Record({include_reward_status:e.Vec(e.Int32),before_proposal:e.Opt(t),limit:e.Nat32,exclude_topic:e.Vec(e.Int32),include_status:e.Vec(e.Int32)}),ve=e.Record({proposal_info:e.Vec(f)}),v=e.Record({created_neuron_id:e.Opt(t)}),we=e.Record({refreshed_neuron_id:e.Opt(t)}),ge=e.Record({proposal_id:e.Opt(t)}),ye=e.Record({merged_maturity_e8s:e.Nat64,new_stake_e8s:e.Nat64}),Oe=e.Record({transfer_block_height:e.Nat64}),Pe=e.Variant({Error:d,Spawn:v,Split:v,Follow:e.Record({}),ClaimOrRefresh:we,Configure:e.Record({}),RegisterVote:e.Record({}),Merge:e.Record({}),DisburseToNeuron:v,MakeProposal:ge,MergeMaturity:ye,Disburse:Oe}),he=e.Record({command:e.Opt(Pe)}),be=e.Record({reward_account:e.Opt(a)});return e.Service({claim_gtc_neurons:e.Func([e.Principal,e.Vec(t)],[R],[]),claim_or_refresh_neuron_from_account:e.Func([h],[pe],[]),get_build_metadata:e.Func([],[e.Text],["query"]),get_full_neuron:e.Func([e.Nat64],[E],["query"]),get_full_neuron_by_id_or_subaccount:e.Func([m],[E],["query"]),get_monthly_node_provider_rewards:e.Func([],[_e],[]),get_neuron_ids:e.Func([],[e.Vec(e.Nat64)],["query"]),get_neuron_info:e.Func([e.Nat64],[q],["query"]),get_neuron_info_by_id_or_subaccount:e.Func([m],[q],["query"]),get_pending_proposals:e.Func([],[e.Vec(f)],["query"]),get_proposal_info:e.Func([e.Nat64],[e.Opt(f)],["query"]),list_known_neurons:e.Func([],[me],["query"]),list_neurons:e.Func([Ne],[Re],["query"]),list_proposals:e.Func([fe],[ve],["query"]),manage_neuron:e.Func([k],[he],[]),transfer_gtc_neuron:e.Func([t,t],[R],[]),update_node_provider:e.Func([be],[R],["query"])})};var lo=(s=>(s[s.UNSPECIFIED=0]="UNSPECIFIED",s[s.LOCKED=1]="LOCKED",s[s.DISSOLVING=2]="DISSOLVING",s[s.DISSOLVED=3]="DISSOLVED",s))(lo||{}),po=(a=>(a[a.PROPOSAL_REWARD_STATUS_UNKNOWN=0]="PROPOSAL_REWARD_STATUS_UNKNOWN",a[a.PROPOSAL_REWARD_STATUS_ACCEPT_VOTES=1]="PROPOSAL_REWARD_STATUS_ACCEPT_VOTES",a[a.PROPOSAL_REWARD_STATUS_READY_TO_SETTLE=2]="PROPOSAL_REWARD_STATUS_READY_TO_SETTLE",a[a.PROPOSAL_REWARD_STATUS_SETTLED=3]="PROPOSAL_REWARD_STATUS_SETTLED",a[a.PROPOSAL_REWARD_STATUS_INELIGIBLE=4]="PROPOSAL_REWARD_STATUS_INELIGIBLE",a))(po||{}),_o=(c=>(c[c.PROPOSAL_STATUS_UNKNOWN=0]="PROPOSAL_STATUS_UNKNOWN",c[c.PROPOSAL_STATUS_OPEN=1]="PROPOSAL_STATUS_OPEN",c[c.PROPOSAL_STATUS_REJECTED=2]="PROPOSAL_STATUS_REJECTED",c[c.PROPOSAL_STATUS_ACCEPTED=3]="PROPOSAL_STATUS_ACCEPTED",c[c.PROPOSAL_STATUS_EXECUTED=4]="PROPOSAL_STATUS_EXECUTED",c[c.PROPOSAL_STATUS_FAILED=5]="PROPOSAL_STATUS_FAILED",c))(_o||{}),mo=(r=>(r[r.UNSPECIFIED=0]="UNSPECIFIED",r[r.YES=1]="YES",r[r.NO=2]="NO",r))(mo||{}),No=(i=>(i[i.Unspecified=0]="Unspecified",i[i.ManageNeuron=1]="ManageNeuron",i[i.ExchangeRate=2]="ExchangeRate",i[i.NetworkEconomics=3]="NetworkEconomics",i[i.Governance=4]="Governance",i[i.NodeAdmin=5]="NodeAdmin",i[i.ParticipantManagement=6]="ParticipantManagement",i[i.SubnetManagement=7]="SubnetManagement",i[i.NetworkCanisterManagement=8]="NetworkCanisterManagement",i[i.Kyc=9]="Kyc",i[i.NodeProviderRewards=10]="NodeProviderRewards",i))(No||{}),u=class extends Error{constructor(o){super("Unsupported value: "+o)}};var Te=class{principal;constructor(){}fromManageNeuron=o=>({id:o.id?[this.fromNeuronId(o.id)]:[],command:o.command?[this.fromCommand(o.command)]:[],neuron_id_or_subaccount:o.neuronIdOrSubaccount?[this.fromNeuronIdOrSubaccount(o.neuronIdOrSubaccount)]:[]});fromClaimNeuronRequest=o=>[B(o.publicKey),o.nonce,o.dissolveDelayInSecs];fromListProposalsRequest=o=>({include_reward_status:o.includeRewardStatus,before_proposal:o.beforeProposal?[this.fromProposalId(o.beforeProposal)]:[],limit:o.limit,exclude_topic:o.excludeTopic,include_status:o.includeStatus});fromClaimOrRefreshNeuronRequest=o=>({id:[],command:[{ClaimOrRefresh:{by:[{NeuronIdOrSubaccount:{}}]}}],neuron_id_or_subaccount:[{NeuronId:{id:o.neuronId}}]});fromSplitRequest=o=>{let t={Split:{amount_e8s:o.amount}};return{id:[],command:[t],neuron_id_or_subaccount:[{NeuronId:{id:o.neuronId}}]}};fromDisburseToNeuronRequest=o=>{let t={DisburseToNeuron:{dissolve_delay_seconds:o.dissolveDelaySeconds,kyc_verified:o.kycVerified,amount_e8s:o.amount,new_controller:o.newController!=null?[l.fromText(o.newController)]:[],nonce:o.nonce}};return{id:[],command:[t],neuron_id_or_subaccount:[{NeuronId:{id:o.neuronId}}]}};fromMakeProposalRequest=o=>{let t={MakeProposal:{url:o.url,title:o.title!=null?[o.title]:[],summary:o.summary,action:[this.fromAction(o.action)]}};return{id:[],command:[t],neuron_id_or_subaccount:[{NeuronId:{id:o.neuronId}}]}};fromFollowees(o){return{followees:o.map(this.fromNeuronId)}}fromNeuronId=o=>({id:o});fromNeuronIdOrSubaccount=o=>{if("NeuronId"in o)return{NeuronId:{id:o.NeuronId}};if("Subaccount"in o)return{Subaccount:o.Subaccount};throw new u(o)};fromProposalId=o=>({id:o});fromAction=o=>{if("ExecuteNnsFunction"in o){let t=o.ExecuteNnsFunction;return{ExecuteNnsFunction:{nns_function:t.nnsFunctionId,payload:B(t.payloadBytes)}}}if("ManageNeuron"in o){let t=o.ManageNeuron;return{ManageNeuron:this.fromManageNeuron(t)}}if("ApproveGenesisKyc"in o)return{ApproveGenesisKyc:{principals:o.ApproveGenesisKyc.principals.map(l.fromText)}};if("ManageNetworkEconomics"in o){let t=o.ManageNetworkEconomics;return{ManageNetworkEconomics:{neuron_minimum_stake_e8s:t.neuronMinimumStake,max_proposals_to_keep_per_topic:t.maxProposalsToKeepPerTopic,neuron_management_fee_per_proposal_e8s:t.neuronManagementFeePerProposal,reject_cost_e8s:t.rejectCost,transaction_fee_e8s:t.transactionFee,neuron_spawn_dissolve_delay_seconds:t.neuronSpawnDissolveDelaySeconds,minimum_icp_xdr_rate:t.minimumIcpXdrRate,maximum_node_provider_rewards_e8s:t.maximumNodeProviderRewards}}}if("RewardNodeProvider"in o){let t=o.RewardNodeProvider;return{RewardNodeProvider:{node_provider:t.nodeProvider?[this.fromNodeProvider(t.nodeProvider)]:[],amount_e8s:t.amountE8s,reward_mode:t.rewardMode!=null?[this.fromRewardMode(t.rewardMode)]:[]}}}if("RewardNodeProviders"in o)return{RewardNodeProviders:{rewards:o.RewardNodeProviders.rewards.map(r=>({node_provider:r.nodeProvider?[this.fromNodeProvider(r.nodeProvider)]:[],amount_e8s:r.amountE8s,reward_mode:r.rewardMode!=null?[this.fromRewardMode(r.rewardMode)]:[]}))}};if("AddOrRemoveNodeProvider"in o){let t=o.AddOrRemoveNodeProvider;return{AddOrRemoveNodeProvider:{change:t.change?[this.fromChange(t.change)]:[]}}}if("Motion"in o)return{Motion:{motion_text:o.Motion.motionText}};if("SetDefaultFollowees"in o)return{SetDefaultFollowees:{default_followees:o.SetDefaultFollowees.defaultFollowees.map(r=>[r.topic,this.fromFollowees(r.followees)])}};if("RegisterKnownNeuron"in o){let t=o.RegisterKnownNeuron;return{RegisterKnownNeuron:{id:[{id:t.id}],known_neuron_data:[{name:t.name,description:t.description!==void 0?[t.description]:[]}]}}}throw new u(o)};fromCommand=o=>{if("Split"in o)return{Split:{amount_e8s:o.Split.amount}};if("Follow"in o){let t=o.Follow;return{Follow:{topic:t.topic,followees:t.followees.map(this.fromNeuronId)}}}if("ClaimOrRefresh"in o){let t=o.ClaimOrRefresh;return{ClaimOrRefresh:{by:t.by?[this.fromClaimOrRefreshBy(t.by)]:[]}}}if("Configure"in o){let t=o.Configure;return{Configure:{operation:t.operation?[this.fromOperation(t.operation)]:[]}}}if("RegisterVote"in o){let t=o.RegisterVote;return{RegisterVote:{vote:t.vote,proposal:t.proposal?[this.fromProposalId(t.proposal)]:[]}}}if("DisburseToNeuron"in o){let t=o.DisburseToNeuron;return{DisburseToNeuron:{dissolve_delay_seconds:t.dissolveDelaySeconds,kyc_verified:t.kycVerified,amount_e8s:t.amount,new_controller:t.newController?[l.fromText(t.newController)]:[],nonce:t.nonce}}}if("MergeMaturity"in o)return{MergeMaturity:{percentage_to_merge:o.MergeMaturity.percentageToMerge}};if("MakeProposal"in o){let t=o.MakeProposal;return{MakeProposal:{url:t.url,title:[],action:t.action?[this.fromAction(t.action)]:[],summary:t.summary}}}if("Disburse"in o){let t=o.Disburse;return{Disburse:{to_account:t.toAccountId?[this.fromAccountIdentifier(t.toAccountId)]:[],amount:t.amount?[this.fromAmount(t.amount)]:[]}}}if("Spawn"in o){let t=o.Spawn;return{Spawn:{new_controller:t.newController?[l.fromText(t.newController)]:[],nonce:[]}}}if("Merge"in o){let t=o.Merge;return{Merge:{source_neuron_id:t.sourceNeuronId?[{id:t.sourceNeuronId}]:[]}}}throw new u(o)};fromOperation=o=>{if("RemoveHotKey"in o){let t=o.RemoveHotKey;return{RemoveHotKey:{hot_key_to_remove:t.hotKeyToRemove!=null?[l.fromText(t.hotKeyToRemove)]:[]}}}if("AddHotKey"in o){let t=o.AddHotKey;return{AddHotKey:{new_hot_key:t.newHotKey?[l.fromText(t.newHotKey)]:[]}}}if("StopDissolving"in o)return{StopDissolving:{}};if("StartDissolving"in o)return{StartDissolving:{}};if("IncreaseDissolveDelay"in o)return{IncreaseDissolveDelay:{additional_dissolve_delay_seconds:o.IncreaseDissolveDelay.additionalDissolveDelaySeconds}};if("JoinCommunityFund"in o)return o;if("SetDissolveTimestamp"in o)return{SetDissolveTimestamp:{dissolve_timestamp_seconds:o.SetDissolveTimestamp.dissolveTimestampSeconds}};throw new u(o)};fromChange=o=>{if("ToRemove"in o)return{ToRemove:this.fromNodeProvider(o.ToRemove)};if("ToAdd"in o)return{ToAdd:this.fromNodeProvider(o.ToAdd)};throw new u(o)};fromNodeProvider=o=>({id:o.id!=null?[l.fromText(o.id)]:[],reward_account:o.rewardAccount!=null?[this.fromAccountIdentifier(o.rewardAccount)]:[]});fromAmount(o){return{e8s:o}}fromAccountIdentifier(o){let t=Ve(o);return{hash:B(t)}}fromRewardMode(o){if("RewardToNeuron"in o)return{RewardToNeuron:{dissolve_delay_seconds:o.RewardToNeuron.dissolveDelaySeconds}};if("RewardToAccount"in o)return{RewardToAccount:{to_account:o.RewardToAccount.toAccount!=null?[this.fromAccountIdentifier(o.RewardToAccount.toAccount)]:[]}};throw new u(o)}fromClaimOrRefreshBy(o){if("NeuronIdOrSubaccount"in o)return{NeuronIdOrSubaccount:{}};if("Memo"in o)return{Memo:o.Memo};if("MemoAndController"in o)return{MemoAndController:{memo:o.MemoAndController.memo,controller:o.MemoAndController.controller?[o.MemoAndController.controller]:[]}};throw new u(o)}};var ro=co(uo());var He=n.Record({node_operator_principal_id:n.Opt(n.Principal),node_allowance:n.Nat64,node_provider_principal_id:n.Opt(n.Principal)}),je=n.Record({subnet_id:n.Principal,node_ids:n.Vec(n.Principal)}),Ro=n.Record({latitude:n.Float32,longitude:n.Float32}),fo=n.Record({id:n.Text,gps:n.Opt(Ro),region:n.Text,owner:n.Text}),Je=n.Record({data_centers_to_add:n.Vec(fo),data_centers_to_remove:n.Vec(n.Text)}),ze=n.Record({node_manager_sha256_hex:n.Text,release_package_url:n.Text,sha256_hex:n.Text,replica_version_id:n.Text,release_package_sha256_hex:n.Text,node_manager_binary_url:n.Text,binary_url:n.Text}),We=n.Record({ecdsa_signatures:n.Bool}),Xe=n.Variant({application:n.Null,verified_application:n.Null,system:n.Null}),Qe=n.Record({unit_delay_millis:n.Nat64,max_instructions_per_round:n.Nat64,features:We,max_instructions_per_message:n.Nat64,gossip_registry_poll_period_ms:n.Nat32,max_ingress_bytes_per_message:n.Nat64,dkg_dealings_per_block:n.Nat64,max_block_payload_size:n.Nat64,max_instructions_per_install_code:n.Nat64,start_as_nns:n.Bool,is_halted:n.Bool,gossip_pfn_evaluation_period_ms:n.Nat32,max_ingress_messages_per_block:n.Nat64,gossip_max_artifact_streams_per_peer:n.Nat32,replica_version_id:n.Text,gossip_max_duplicity:n.Nat32,gossip_max_chunk_wait_ms:n.Nat32,dkg_interval_length:n.Nat64,subnet_id_override:n.Opt(n.Principal),ingress_bytes_per_block_soft_cap:n.Nat64,initial_notary_delay_millis:n.Nat64,gossip_max_chunk_size:n.Nat32,subnet_type:Xe,gossip_retransmission_request_ms:n.Nat32,gossip_receive_check_cache_size:n.Nat32,node_ids:n.Vec(n.Principal)}),Ye=n.Record({height:n.Nat64,replacement_nodes:n.Opt(n.Vec(n.Principal)),subnet_id:n.Principal,registry_store_uri:n.Opt(n.Tuple(n.Text,n.Text,n.Nat64)),state_hash:n.Vec(n.Nat8),time_ns:n.Nat64}),Wo=n.Record({node_operators_to_remove:n.Vec(n.Vec(n.Nat8))}),xe=n.Record({node_ids:n.Vec(n.Principal)}),Xo=n.Record({range_end_inclusive:n.Principal,range_start_inclusive:n.Principal,destination_subnet:n.Principal}),$e=n.Record({who:n.Opt(n.Principal),subnets:n.Vec(n.Principal)}),Ze=n.Record({ipv4_prefixes:n.Vec(n.Text),firewall_config:n.Text,ipv6_prefixes:n.Vec(n.Text)}),vo=n.Variant({Start:n.Null,Stop:n.Null}),Ie=n.Record({action:vo,canister_id:n.Principal}),De=n.Record({data_source:n.Text,xdr_permyriad_per_icp:n.Nat64,timestamp_seconds:n.Nat64}),Le=n.Record({node_operator_id:n.Opt(n.Principal),node_allowance:n.Opt(n.Nat64),rewardable_nodes:n.Vec(n.Tuple(n.Text,n.Nat32)),dc_id:n.Opt(n.Text)}),wo=n.Record({xdr_permyriad_per_node_per_month:n.Nat64}),go=n.Record({rates:n.Vec(n.Tuple(n.Text,wo))}),eo=n.Record({new_entries:n.Vec(n.Tuple(n.Text,go))}),oo=n.Record({unit_delay_millis:n.Opt(n.Nat64),max_duplicity:n.Opt(n.Nat32),max_instructions_per_round:n.Opt(n.Nat64),features:n.Opt(We),set_gossip_config_to_default:n.Bool,max_instructions_per_message:n.Opt(n.Nat64),pfn_evaluation_period_ms:n.Opt(n.Nat32),subnet_id:n.Principal,max_ingress_bytes_per_message:n.Opt(n.Nat64),dkg_dealings_per_block:n.Opt(n.Nat64),max_block_payload_size:n.Opt(n.Nat64),max_instructions_per_install_code:n.Opt(n.Nat64),start_as_nns:n.Opt(n.Bool),is_halted:n.Opt(n.Bool),max_number_of_canisters:n.Opt(n.Nat64),advert_best_effort_percentage:n.Opt(n.Nat32),retransmission_request_ms:n.Opt(n.Nat32),dkg_interval_length:n.Opt(n.Nat64),registry_poll_period_ms:n.Opt(n.Nat32),max_chunk_wait_ms:n.Opt(n.Nat32),receive_check_cache_size:n.Opt(n.Nat32),ssh_backup_access:n.Opt(n.Vec(n.Text)),ingress_bytes_per_block_soft_cap:n.Opt(n.Nat64),max_chunk_size:n.Opt(n.Nat32),initial_notary_delay_millis:n.Opt(n.Nat64),max_artifact_streams_per_peer:n.Opt(n.Nat32),subnet_type:n.Opt(Xe),ssh_readonly_access:n.Opt(n.Vec(n.Text))}),to=n.Record({subnet_id:n.Principal,replica_version_id:n.Text}),no=n.Record({replica_version:n.Opt(n.Text),ssh_readonly_access:n.Opt(n.Vec(n.Text))});var so=e=>{switch(e){case 1:return"Create subnet";case 2:return"Add nodes to subnet";case 3:return"Install NNS canister";case 4:return"Upgrade NNS canister";case 5:return"Bless replica version";case 6:return"Recover subnet";case 7:return"Update subnet config";case 8:return"Assign node operator Id";case 9:return"Update NNS root canister";case 10:return"Update ICP/XDR conversion rate";case 11:return"Update subnet replica version";case 12:return"Clear provisional whitelist";case 13:return"Remove nodes from subnet";case 14:return"Set authorized subnetworks";case 15:return"Change firewall config";case 16:return"Update node operator config";case 17:return"Start or stop NNS canister";case 18:return"Remove nodes from registry";case 19:return"Uninstall code from canister";case 20:return"Update the node rewards table";case 21:return"Add or remove data centers";case 22:return"Update unassigned nodes config";default:return"--Unknown--"}},ao=(e,o)=>{let t=new ro.Buffer(o);try{switch(e){case 1:return n.decode([Qe],t)[0];case 2:return n.decode([je],t)[0];case 3:return{"Unable to display payload":"Payload too large"};case 4:return{"Unable to display payload":"Payload too large"};case 5:return n.decode([ze],t)[0];case 6:return n.decode([Ye],t)[0];case 7:return n.decode([oo],t)[0];case 8:return n.decode([He],t)[0];case 9:return{"Unable to display payload":"Payload too large"};case 10:return n.decode([De],t)[0];case 11:return n.decode([to],t)[0];case 12:return{};case 13:return n.decode([xe],t)[0];case 14:return n.decode([$e],t)[0];case 15:return n.decode([Ze],t)[0];case 16:return n.decode([Le],t)[0];case 17:return n.decode([Ie],t)[0];case 18:return n.decode([xe],t)[0];case 20:return n.decode([eo],t)[0];case 21:return n.decode([Je],t)[0];case 22:return n.decode([no],t)[0];default:return}}catch(r){return console.log("Unable to deserialize payload. NNS function: "+e),console.log(r),{error:"Unable to deserialize payload"}}};var Ae=class{toProposalInfo=o=>({id:o.id.length?this.toNeuronId(o.id[0]):void 0,ballots:o.ballots.map(t=>this.toBallot(t[0],t[1])),rejectCost:o.reject_cost_e8s,proposalTimestampSeconds:o.proposal_timestamp_seconds,rewardEventRound:o.reward_event_round,failedTimestampSeconds:o.failed_timestamp_seconds,decidedTimestampSeconds:o.decided_timestamp_seconds,proposal:o.proposal.length?this.toProposal(o.proposal[0]):void 0,proposer:o.proposer.length?this.toNeuronId(o.proposer[0]):void 0,latestTally:o.latest_tally.length?this.toTally(o.latest_tally[0]):void 0,executedTimestampSeconds:o.executed_timestamp_seconds,topic:o.topic,status:o.status,rewardStatus:o.reward_status});toArrayOfNeuronInfo=(o,t)=>{let r=t.toString();return o.neuron_infos.map(([s,a])=>this.toNeuronInfo(s,r,a,o.full_neurons.find(c=>c.id.length&&c.id[0].id===s)))};toNeuronInfo(o,t,r,s){let a=s?this.toNeuron(s,t):void 0;return{neuronId:o,dissolveDelaySeconds:r.dissolve_delay_seconds,recentBallots:r.recent_ballots.map(this.toBallotInfo),createdTimestampSeconds:r.created_timestamp_seconds,state:r.state,joinedCommunityFundTimestampSeconds:r.joined_community_fund_timestamp_seconds.length?r.joined_community_fund_timestamp_seconds[0]:void 0,retrievedAtTimestampSeconds:r.retrieved_at_timestamp_seconds,votingPower:r.voting_power,ageSeconds:r.age_seconds,fullNeuron:a}}toListProposalsResponse=o=>({proposals:o.proposal_info.map(this.toProposalInfo)});toKnownNeuron=o=>({id:o.id[0]?.id??BigInt(0),name:o.known_neuron_data[0]?.name??"",description:o.known_neuron_data[0]?.description[0]??""});toSplitResponse=o=>{let t=o.command.length?o.command[0]:void 0;if(t&&"Split"in t){let r=t.Split.created_neuron_id;if(r.length)return r[0].id}throw this.throwUnrecognisedTypeError("response",o)};toDisburseToNeuronResult=o=>{let t=o.command;if(t.length&&"Spawn"in t[0]&&t[0].Spawn.created_neuron_id.length)return{createdNeuronId:t[0].Spawn.created_neuron_id[0].id};throw this.throwUnrecognisedTypeError("response",o)};toClaimOrRefreshNeuronResponse=o=>{let t=o.command;if(t.length&&"ClaimOrRefresh"in t[0])return t[0].ClaimOrRefresh.refreshed_neuron_id.length?t[0].ClaimOrRefresh.refreshed_neuron_id[0].id:void 0;throw this.throwUnrecognisedTypeError("response",o)};toMakeProposalResponse=o=>{let t=o.command;if(t.length&&"MakeProposal"in t[0]&&t[0].MakeProposal.proposal_id.length)return{proposalId:t[0].MakeProposal.proposal_id[0].id};throw this.throwUnrecognisedTypeError("response",o)};toNeuron=(o,t)=>({id:o.id.length?this.toNeuronId(o.id[0]):void 0,isCurrentUserController:o.controller.length?o.controller[0].toString()===t:void 0,controller:o.controller.length?o.controller[0].toString():void 0,recentBallots:o.recent_ballots.map(this.toBallotInfo),kycVerified:o.kyc_verified,notForProfit:o.not_for_profit,cachedNeuronStake:o.cached_neuron_stake_e8s,createdTimestampSeconds:o.created_timestamp_seconds,maturityE8sEquivalent:o.maturity_e8s_equivalent,agingSinceTimestampSeconds:o.aging_since_timestamp_seconds,neuronFees:o.neuron_fees_e8s,hotKeys:o.hot_keys.map(r=>r.toString()),accountIdentifier:Ee(Ke,ke(o.account)),joinedCommunityFundTimestampSeconds:o.joined_community_fund_timestamp_seconds.length?o.joined_community_fund_timestamp_seconds[0]:void 0,dissolveState:o.dissolve_state.length?this.toDissolveState(o.dissolve_state[0]):void 0,followees:o.followees.map(([r,s])=>this.toFollowees(r,s))});toBallotInfo=o=>({vote:o.vote,proposalId:o.proposal_id.length?this.toNeuronId(o.proposal_id[0]):void 0});toDissolveState=o=>"DissolveDelaySeconds"in o?{DissolveDelaySeconds:o.DissolveDelaySeconds}:{WhenDissolvedTimestampSeconds:o.WhenDissolvedTimestampSeconds};toFollowees=(o,t)=>({topic:o,followees:t.followees.map(this.toNeuronId)});toNeuronId=o=>o.id;toNeuronIdOrSubaccount=o=>{if("NeuronId"in o)return{NeuronId:o.NeuronId.id};if("Subaccount"in o)return{Subaccount:o.Subaccount};throw new u(o)};toBallot=(o,t)=>({neuronId:o,vote:t.vote,votingPower:t.voting_power});toProposal=o=>({title:o.title.length?o.title[0]:void 0,url:o.url,action:o.action.length?this.toAction(o.action[0]):void 0,summary:o.summary});toAction=o=>{if("ExecuteNnsFunction"in o){let t=o.ExecuteNnsFunction,r=Ce(t.payload),s=r.byteLength?ao(t.nns_function,r):void 0;return{ExecuteNnsFunction:{nnsFunctionId:t.nns_function,nnsFunctionName:so(t.nns_function),payload:s,payloadBytes:r}}}if("ManageNeuron"in o){let t=o.ManageNeuron;return{ManageNeuron:{id:t.id.length?this.toNeuronId(t.id[0]):void 0,command:t.command.length?this.toCommand(t.command[0]):void 0,neuronIdOrSubaccount:t.neuron_id_or_subaccount.length?this.toNeuronIdOrSubaccount(t.neuron_id_or_subaccount[0]):void 0}}}if("ApproveGenesisKyc"in o)return{ApproveGenesisKyc:{principals:o.ApproveGenesisKyc.principals.map(r=>r.toString())}};if("ManageNetworkEconomics"in o){let t=o.ManageNetworkEconomics;return{ManageNetworkEconomics:{neuronMinimumStake:t.neuron_minimum_stake_e8s,maxProposalsToKeepPerTopic:t.max_proposals_to_keep_per_topic,neuronManagementFeePerProposal:t.neuron_management_fee_per_proposal_e8s,rejectCost:t.reject_cost_e8s,transactionFee:t.transaction_fee_e8s,neuronSpawnDissolveDelaySeconds:t.neuron_spawn_dissolve_delay_seconds,minimumIcpXdrRate:t.minimum_icp_xdr_rate,maximumNodeProviderRewards:t.maximum_node_provider_rewards_e8s}}}if("RewardNodeProvider"in o){let t=o.RewardNodeProvider;return{RewardNodeProvider:{nodeProvider:t.node_provider.length?this.toNodeProvider(t.node_provider[0]):void 0,amountE8s:t.amount_e8s,rewardMode:t.reward_mode.length?this.toRewardMode(t.reward_mode[0]):void 0}}}if("RewardNodeProviders"in o)return{RewardNodeProviders:{rewards:o.RewardNodeProviders.rewards.map(r=>({nodeProvider:r.node_provider.length?this.toNodeProvider(r.node_provider[0]):void 0,amountE8s:r.amount_e8s,rewardMode:r.reward_mode.length?this.toRewardMode(r.reward_mode[0]):void 0}))}};if("AddOrRemoveNodeProvider"in o){let t=o.AddOrRemoveNodeProvider;return{AddOrRemoveNodeProvider:{change:t.change.length?this.toChange(t.change[0]):void 0}}}if("Motion"in o)return{Motion:{motionText:o.Motion.motion_text}};if("SetDefaultFollowees"in o)return{SetDefaultFollowees:{defaultFollowees:o.SetDefaultFollowees.default_followees.map(([r,s])=>this.toFollowees(r,s))}};if("RegisterKnownNeuron"in o){let t=o.RegisterKnownNeuron;return{RegisterKnownNeuron:this.toKnownNeuron(t)}}throw new u(o)};toTally=o=>({no:o.no,yes:o.yes,total:o.total,timestampSeconds:o.timestamp_seconds});toCommand=o=>{if("Spawn"in o){let t=o.Spawn;return{Spawn:{newController:t.new_controller.length?t.new_controller[0].toString():void 0}}}if("Split"in o)return{Split:{amount:o.Split.amount_e8s}};if("Follow"in o){let t=o.Follow;return{Follow:{topic:t.topic,followees:t.followees.map(this.toNeuronId)}}}if("ClaimOrRefresh"in o){let t=o.ClaimOrRefresh;return{ClaimOrRefresh:{by:t.by.length?this.toClaimOrRefreshBy(t.by[0]):void 0}}}if("Configure"in o){let t=o.Configure;return{Configure:{operation:t.operation.length?this.toOperation(t.operation[0]):void 0}}}if("RegisterVote"in o){let t=o.RegisterVote;return{RegisterVote:{vote:t.vote,proposal:t.proposal.length?this.toNeuronId(t.proposal[0]):void 0}}}if("DisburseToNeuron"in o){let t=o.DisburseToNeuron;return{DisburseToNeuron:{dissolveDelaySeconds:t.dissolve_delay_seconds,kycVerified:t.kyc_verified,amount:t.amount_e8s,newController:t.new_controller.length?t.new_controller[0].toString():void 0,nonce:t.nonce}}}if("MergeMaturity"in o)return{MergeMaturity:{percentageToMerge:o.MergeMaturity.percentage_to_merge}};if("MakeProposal"in o){let t=o.MakeProposal;return{MakeProposal:{title:t.title.length?t.title[0]:void 0,url:t.url,action:t.action.length?this.toAction(t.action[0]):void 0,summary:t.summary}}}if("Disburse"in o){let t=o.Disburse;return{Disburse:{toAccountId:t.to_account.length?this.toAccountIdentifier(t.to_account[0]):void 0,amount:t.amount.length?this.toAmount(t.amount[0]):void 0}}}if("Merge"in o){let t=o.Merge;return{Merge:{sourceNeuronId:t.source_neuron_id.length?t.source_neuron_id[0].id:void 0}}}throw new u(o)};toOperation=o=>{if("RemoveHotKey"in o){let t=o.RemoveHotKey;return{RemoveHotKey:{hotKeyToRemove:t.hot_key_to_remove.length?t.hot_key_to_remove[0].toString():void 0}}}if("AddHotKey"in o){let t=o.AddHotKey;return{AddHotKey:{newHotKey:t.new_hot_key.length?t.new_hot_key[0].toString():void 0}}}if("StopDissolving"in o)return{StopDissolving:{}};if("StartDissolving"in o)return{StartDissolving:{}};if("IncreaseDissolveDelay"in o)return{IncreaseDissolveDelay:{additionalDissolveDelaySeconds:o.IncreaseDissolveDelay.additional_dissolve_delay_seconds}};if("JoinCommunityFund"in o)return o;if("SetDissolveTimestamp"in o)return{SetDissolveTimestamp:{dissolveTimestampSeconds:o.SetDissolveTimestamp.dissolve_timestamp_seconds}};throw new u(o)};toChange=o=>{if("ToRemove"in o)return{ToRemove:this.toNodeProvider(o.ToRemove)};if("ToAdd"in o)return{ToAdd:this.toNodeProvider(o.ToAdd)};throw new u(o)};toNodeProvider=o=>({id:o.id.length?o.id[0].toString():void 0,rewardAccount:o.reward_account.length?this.toAccountIdentifier(o.reward_account[0]):void 0});toAmount=o=>o.e8s;toAccountIdentifier(o){return Fe(new Uint8Array(o.hash))}toRewardMode(o){if("RewardToNeuron"in o)return{RewardToNeuron:{dissolveDelaySeconds:o.RewardToNeuron.dissolve_delay_seconds}};if("RewardToAccount"in o)return{RewardToAccount:{toAccount:o.RewardToAccount.to_account!=null&&o.RewardToAccount.to_account.length?this.toAccountIdentifier(o.RewardToAccount.to_account[0]):void 0}};throw new u(o)}toClaimOrRefreshBy(o){if("NeuronIdOrSubaccount"in o)return{NeuronIdOrSubaccount:{}};if("Memo"in o)return{Memo:o.Memo};if("MemoAndController"in o)return{MemoAndController:{memo:o.MemoAndController.memo,controller:o.MemoAndController.controller.length?o.MemoAndController.controller[0]:void 0}};throw new u(o)}throwUnrecognisedTypeError(o,t){return new Error(`Unrecognised ${o} type - ${JSON.stringify(t)}`)}};var Me=class{constructor(o,t,r,s){this.service=o;this.certifiedService=t;this.requestConverters=r;this.responseConverters=s;this.service=o,this.certifiedService=t,this.requestConverters=r,this.responseConverters=s}static create(o={}){let t=o.agent??Be(),r=o.canisterId??qe,s=o.serviceOverride??Se.createActor(Ge,{agent:t,canisterId:r}),a=o.certifiedServiceOverride??Se.createActor(Ue,{agent:t,canisterId:r}),c=new Te,p=new Ae;return new Me(s,a,c,p)}listKnownNeurons=async(o=!0)=>(await(o?this.certifiedService:this.service).list_known_neurons()).known_neurons.map(s=>({id:s.id[0]?.id??BigInt(0),name:s.known_neuron_data[0]?.name??"",description:s.known_neuron_data[0]?.description[0]}));listProposals=async({request:o,certified:t=!0})=>{let r=this.requestConverters.fromListProposalsRequest(o),a=await(t?this.certifiedService:this.service).list_proposals(r);return this.responseConverters.toListProposalsResponse(a)}};export{lo as a,po as b,_o as c,mo as d,No as e,u as f,Me as g};
|
|
2
|
+
//# sourceMappingURL=chunk-AM5HOKAH.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../candid/governance.certified.idl.js", "../../candid/governance.idl.js", "../../src/types/governance_converters.ts", "../../src/canisters/governance/request.converters.ts", "../../src/canisters/governance/payloads.ts", "../../candid/payloads.idl.js", "../../src/canisters/governance/response.converters.ts", "../../src/governance.ts"],
|
|
4
|
+
"sourcesContent": ["/* Do not edit. Compiled with ./scripts/compile-idl-js from candid/governance.did */\nexport const idlFactory = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ 'id' : IDL.Nat64 });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const GovernanceCachedMetrics = IDL.Record({\n 'not_dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'garbage_collectable_neurons_count' : IDL.Nat64,\n 'neurons_with_invalid_stake_count' : IDL.Nat64,\n 'not_dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'total_supply_icp' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'not_dissolving_neurons_count' : IDL.Nat64,\n 'dissolved_neurons_e8s' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_e8s' : IDL.Nat64,\n 'dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'dissolving_neurons_count' : IDL.Nat64,\n 'dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'community_fund_total_staked_e8s' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const AccountIdentifier = IDL.Record({ 'hash' : IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n 'id' : IDL.Opt(IDL.Principal),\n 'reward_account' : IDL.Opt(AccountIdentifier),\n });\n const NetworkEconomics = IDL.Record({\n 'neuron_minimum_stake_e8s' : IDL.Nat64,\n 'max_proposals_to_keep_per_topic' : IDL.Nat32,\n 'neuron_management_fee_per_proposal_e8s' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'transaction_fee_e8s' : IDL.Nat64,\n 'neuron_spawn_dissolve_delay_seconds' : IDL.Nat64,\n 'minimum_icp_xdr_rate' : IDL.Nat64,\n 'maximum_node_provider_rewards_e8s' : IDL.Nat64,\n });\n const RewardEvent = IDL.Record({\n 'day_after_genesis' : IDL.Nat64,\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(NeuronId),\n });\n const NeuronStakeTransfer = IDL.Record({\n 'to_subaccount' : IDL.Vec(IDL.Nat8),\n 'neuron_stake_e8s' : IDL.Nat64,\n 'from' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n 'from_subaccount' : IDL.Vec(IDL.Nat8),\n 'transfer_timestamp' : IDL.Nat64,\n 'block_height' : IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({ 'vote' : IDL.Int32, 'voting_power' : IDL.Nat64 });\n const Tally = IDL.Record({\n 'no' : IDL.Nat64,\n 'yes' : IDL.Nat64,\n 'total' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const KnownNeuronData = IDL.Record({\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n });\n const KnownNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Spawn = IDL.Record({\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({ 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'topic' : IDL.Int32,\n 'followees' : IDL.Vec(NeuronId),\n });\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'NeuronIdOrSubaccount' : IDL.Record({}),\n 'MemoAndController' : ClaimOrRefreshNeuronFromAccount,\n 'Memo' : IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n 'hot_key_to_remove' : IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ 'new_hot_key' : IDL.Opt(IDL.Principal) });\n const IncreaseDissolveDelay = IDL.Record({\n 'additional_dissolve_delay_seconds' : IDL.Nat32,\n });\n const SetDissolveTimestamp = IDL.Record({\n 'dissolve_timestamp_seconds' : IDL.Nat64,\n });\n const Operation = IDL.Variant({\n 'RemoveHotKey' : RemoveHotKey,\n 'AddHotKey' : AddHotKey,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\n 'JoinCommunityFund' : IDL.Record({}),\n 'SetDissolveTimestamp' : SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ 'operation' : IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal' : IDL.Opt(NeuronId),\n });\n const Merge = IDL.Record({ 'source_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n 'dissolve_delay_seconds' : IDL.Nat64,\n 'kyc_verified' : IDL.Bool,\n 'amount_e8s' : IDL.Nat64,\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Nat64,\n });\n const MergeMaturity = IDL.Record({ 'percentage_to_merge' : IDL.Nat32 });\n const Amount = IDL.Record({ 'e8s' : IDL.Nat64 });\n const Disburse = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n 'amount' : IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Follow' : Follow,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'MakeProposal' : Proposal,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n 'Subaccount' : IDL.Vec(IDL.Nat8),\n 'NeuronId' : NeuronId,\n });\n const ManageNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'command' : IDL.Opt(Command),\n 'neuron_id_or_subaccount' : IDL.Opt(NeuronIdOrSubaccount),\n });\n const ExecuteNnsFunction = IDL.Record({\n 'nns_function' : IDL.Int32,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const RewardToNeuron = IDL.Record({ 'dissolve_delay_seconds' : IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n 'RewardToNeuron' : RewardToNeuron,\n 'RewardToAccount' : RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n 'node_provider' : IDL.Opt(NodeProvider),\n 'reward_mode' : IDL.Opt(RewardMode),\n 'amount_e8s' : IDL.Nat64,\n });\n const SetDefaultFollowees = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n 'rewards' : IDL.Vec(RewardNodeProvider),\n });\n const ApproveGenesisKyc = IDL.Record({\n 'principals' : IDL.Vec(IDL.Principal),\n });\n const Change = IDL.Variant({\n 'ToRemove' : NodeProvider,\n 'ToAdd' : NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ 'change' : IDL.Opt(Change) });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'RegisterKnownNeuron' : KnownNeuron,\n 'ManageNeuron' : ManageNeuron,\n 'ExecuteNnsFunction' : ExecuteNnsFunction,\n 'RewardNodeProvider' : RewardNodeProvider,\n 'SetDefaultFollowees' : SetDefaultFollowees,\n 'RewardNodeProviders' : RewardNodeProviders,\n 'ManageNetworkEconomics' : NetworkEconomics,\n 'ApproveGenesisKyc' : ApproveGenesisKyc,\n 'AddOrRemoveNodeProvider' : AddOrRemoveNodeProvider,\n 'Motion' : Motion,\n });\n Proposal.fill(\n IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Opt(IDL.Text),\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n })\n );\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n 'proposal_timestamp_seconds' : IDL.Nat64,\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'decided_timestamp_seconds' : IDL.Nat64,\n 'proposal' : IDL.Opt(Proposal),\n 'proposer' : IDL.Opt(NeuronId),\n 'wait_for_quiet_state' : IDL.Opt(WaitForQuietState),\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Command_2 = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Configure' : Configure,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n 'command' : IDL.Opt(Command_2),\n 'timestamp' : IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal_id' : IDL.Opt(NeuronId),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'controller' : IDL.Opt(IDL.Principal),\n 'recent_ballots' : IDL.Vec(BallotInfo),\n 'kyc_verified' : IDL.Bool,\n 'not_for_profit' : IDL.Bool,\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'hot_keys' : IDL.Vec(IDL.Principal),\n 'account' : IDL.Vec(IDL.Nat8),\n 'joined_community_fund_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n 'transfer' : IDL.Opt(NeuronStakeTransfer),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Governance = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'wait_for_quiet_threshold_seconds' : IDL.Nat64,\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'node_providers' : IDL.Vec(NodeProvider),\n 'economics' : IDL.Opt(NetworkEconomics),\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),\n 'short_voting_period_seconds' : IDL.Nat64,\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n const Result = IDL.Variant({ 'Ok' : IDL.Null, 'Err' : GovernanceError });\n const Result_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'NeuronId' : NeuronId,\n });\n const ClaimOrRefreshNeuronFromAccountResponse = IDL.Record({\n 'result' : IDL.Opt(Result_1),\n });\n const Result_2 = IDL.Variant({ 'Ok' : Neuron, 'Err' : GovernanceError });\n const Result_3 = IDL.Variant({\n 'Ok' : RewardNodeProviders,\n 'Err' : GovernanceError,\n });\n const NeuronInfo = IDL.Record({\n 'dissolve_delay_seconds' : IDL.Nat64,\n 'recent_ballots' : IDL.Vec(BallotInfo),\n 'created_timestamp_seconds' : IDL.Nat64,\n 'state' : IDL.Int32,\n 'stake_e8s' : IDL.Nat64,\n 'joined_community_fund_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'retrieved_at_timestamp_seconds' : IDL.Nat64,\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n 'voting_power' : IDL.Nat64,\n 'age_seconds' : IDL.Nat64,\n });\n const Result_4 = IDL.Variant({ 'Ok' : NeuronInfo, 'Err' : GovernanceError });\n const ProposalInfo = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'status' : IDL.Int32,\n 'topic' : IDL.Int32,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n 'proposal_timestamp_seconds' : IDL.Nat64,\n 'reward_event_round' : IDL.Nat64,\n 'deadline_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'reward_status' : IDL.Int32,\n 'decided_timestamp_seconds' : IDL.Nat64,\n 'proposal' : IDL.Opt(Proposal),\n 'proposer' : IDL.Opt(NeuronId),\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const ListKnownNeuronsResponse = IDL.Record({\n 'known_neurons' : IDL.Vec(KnownNeuron),\n });\n const ListNeurons = IDL.Record({\n 'neuron_ids' : IDL.Vec(IDL.Nat64),\n 'include_neurons_readable_by_caller' : IDL.Bool,\n });\n const ListNeuronsResponse = IDL.Record({\n 'neuron_infos' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInfo)),\n 'full_neurons' : IDL.Vec(Neuron),\n });\n const ListProposalInfo = IDL.Record({\n 'include_reward_status' : IDL.Vec(IDL.Int32),\n 'before_proposal' : IDL.Opt(NeuronId),\n 'limit' : IDL.Nat32,\n 'exclude_topic' : IDL.Vec(IDL.Int32),\n 'include_status' : IDL.Vec(IDL.Int32),\n });\n const ListProposalInfoResponse = IDL.Record({\n 'proposal_info' : IDL.Vec(ProposalInfo),\n });\n const SpawnResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });\n const ClaimOrRefreshResponse = IDL.Record({\n 'refreshed_neuron_id' : IDL.Opt(NeuronId),\n });\n const MakeProposalResponse = IDL.Record({\n 'proposal_id' : IDL.Opt(NeuronId),\n });\n const MergeMaturityResponse = IDL.Record({\n 'merged_maturity_e8s' : IDL.Nat64,\n 'new_stake_e8s' : IDL.Nat64,\n });\n const DisburseResponse = IDL.Record({ 'transfer_block_height' : IDL.Nat64 });\n const Command_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'Spawn' : SpawnResponse,\n 'Split' : SpawnResponse,\n 'Follow' : IDL.Record({}),\n 'ClaimOrRefresh' : ClaimOrRefreshResponse,\n 'Configure' : IDL.Record({}),\n 'RegisterVote' : IDL.Record({}),\n 'Merge' : IDL.Record({}),\n 'DisburseToNeuron' : SpawnResponse,\n 'MakeProposal' : MakeProposalResponse,\n 'MergeMaturity' : MergeMaturityResponse,\n 'Disburse' : DisburseResponse,\n });\n const ManageNeuronResponse = IDL.Record({ 'command' : IDL.Opt(Command_1) });\n const UpdateNodeProvider = IDL.Record({\n 'reward_account' : IDL.Opt(AccountIdentifier),\n });\n return IDL.Service({\n 'claim_gtc_neurons' : IDL.Func(\n [IDL.Principal, IDL.Vec(NeuronId)],\n [Result],\n [],\n ),\n 'claim_or_refresh_neuron_from_account' : IDL.Func(\n [ClaimOrRefreshNeuronFromAccount],\n [ClaimOrRefreshNeuronFromAccountResponse],\n [],\n ),\n 'get_build_metadata' : IDL.Func([], [IDL.Text], []),\n 'get_full_neuron' : IDL.Func([IDL.Nat64], [Result_2], []),\n 'get_full_neuron_by_id_or_subaccount' : IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_2],\n [],\n ),\n 'get_monthly_node_provider_rewards' : IDL.Func([], [Result_3], []),\n 'get_neuron_ids' : IDL.Func([], [IDL.Vec(IDL.Nat64)], []),\n 'get_neuron_info' : IDL.Func([IDL.Nat64], [Result_4], []),\n 'get_neuron_info_by_id_or_subaccount' : IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_4],\n [],\n ),\n 'get_pending_proposals' : IDL.Func([], [IDL.Vec(ProposalInfo)], []),\n 'get_proposal_info' : IDL.Func([IDL.Nat64], [IDL.Opt(ProposalInfo)], []),\n 'list_known_neurons' : IDL.Func([], [ListKnownNeuronsResponse], []),\n 'list_neurons' : IDL.Func([ListNeurons], [ListNeuronsResponse], []),\n 'list_proposals' : IDL.Func(\n [ListProposalInfo],\n [ListProposalInfoResponse],\n [],\n ),\n 'manage_neuron' : IDL.Func([ManageNeuron], [ManageNeuronResponse], []),\n 'transfer_gtc_neuron' : IDL.Func([NeuronId, NeuronId], [Result], []),\n 'update_node_provider' : IDL.Func([UpdateNodeProvider], [Result], []),\n });\n};\nexport const init = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ 'id' : IDL.Nat64 });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const GovernanceCachedMetrics = IDL.Record({\n 'not_dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'garbage_collectable_neurons_count' : IDL.Nat64,\n 'neurons_with_invalid_stake_count' : IDL.Nat64,\n 'not_dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'total_supply_icp' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'not_dissolving_neurons_count' : IDL.Nat64,\n 'dissolved_neurons_e8s' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_e8s' : IDL.Nat64,\n 'dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'dissolving_neurons_count' : IDL.Nat64,\n 'dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'community_fund_total_staked_e8s' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const AccountIdentifier = IDL.Record({ 'hash' : IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n 'id' : IDL.Opt(IDL.Principal),\n 'reward_account' : IDL.Opt(AccountIdentifier),\n });\n const NetworkEconomics = IDL.Record({\n 'neuron_minimum_stake_e8s' : IDL.Nat64,\n 'max_proposals_to_keep_per_topic' : IDL.Nat32,\n 'neuron_management_fee_per_proposal_e8s' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'transaction_fee_e8s' : IDL.Nat64,\n 'neuron_spawn_dissolve_delay_seconds' : IDL.Nat64,\n 'minimum_icp_xdr_rate' : IDL.Nat64,\n 'maximum_node_provider_rewards_e8s' : IDL.Nat64,\n });\n const RewardEvent = IDL.Record({\n 'day_after_genesis' : IDL.Nat64,\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(NeuronId),\n });\n const NeuronStakeTransfer = IDL.Record({\n 'to_subaccount' : IDL.Vec(IDL.Nat8),\n 'neuron_stake_e8s' : IDL.Nat64,\n 'from' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n 'from_subaccount' : IDL.Vec(IDL.Nat8),\n 'transfer_timestamp' : IDL.Nat64,\n 'block_height' : IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({ 'vote' : IDL.Int32, 'voting_power' : IDL.Nat64 });\n const Tally = IDL.Record({\n 'no' : IDL.Nat64,\n 'yes' : IDL.Nat64,\n 'total' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const KnownNeuronData = IDL.Record({\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n });\n const KnownNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Spawn = IDL.Record({\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({ 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'topic' : IDL.Int32,\n 'followees' : IDL.Vec(NeuronId),\n });\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'NeuronIdOrSubaccount' : IDL.Record({}),\n 'MemoAndController' : ClaimOrRefreshNeuronFromAccount,\n 'Memo' : IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n 'hot_key_to_remove' : IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ 'new_hot_key' : IDL.Opt(IDL.Principal) });\n const IncreaseDissolveDelay = IDL.Record({\n 'additional_dissolve_delay_seconds' : IDL.Nat32,\n });\n const SetDissolveTimestamp = IDL.Record({\n 'dissolve_timestamp_seconds' : IDL.Nat64,\n });\n const Operation = IDL.Variant({\n 'RemoveHotKey' : RemoveHotKey,\n 'AddHotKey' : AddHotKey,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\n 'JoinCommunityFund' : IDL.Record({}),\n 'SetDissolveTimestamp' : SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ 'operation' : IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal' : IDL.Opt(NeuronId),\n });\n const Merge = IDL.Record({ 'source_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n 'dissolve_delay_seconds' : IDL.Nat64,\n 'kyc_verified' : IDL.Bool,\n 'amount_e8s' : IDL.Nat64,\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Nat64,\n });\n const MergeMaturity = IDL.Record({ 'percentage_to_merge' : IDL.Nat32 });\n const Amount = IDL.Record({ 'e8s' : IDL.Nat64 });\n const Disburse = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n 'amount' : IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Follow' : Follow,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'MakeProposal' : Proposal,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n 'Subaccount' : IDL.Vec(IDL.Nat8),\n 'NeuronId' : NeuronId,\n });\n const ManageNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'command' : IDL.Opt(Command),\n 'neuron_id_or_subaccount' : IDL.Opt(NeuronIdOrSubaccount),\n });\n const ExecuteNnsFunction = IDL.Record({\n 'nns_function' : IDL.Int32,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const RewardToNeuron = IDL.Record({ 'dissolve_delay_seconds' : IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n 'RewardToNeuron' : RewardToNeuron,\n 'RewardToAccount' : RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n 'node_provider' : IDL.Opt(NodeProvider),\n 'reward_mode' : IDL.Opt(RewardMode),\n 'amount_e8s' : IDL.Nat64,\n });\n const SetDefaultFollowees = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n 'rewards' : IDL.Vec(RewardNodeProvider),\n });\n const ApproveGenesisKyc = IDL.Record({\n 'principals' : IDL.Vec(IDL.Principal),\n });\n const Change = IDL.Variant({\n 'ToRemove' : NodeProvider,\n 'ToAdd' : NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ 'change' : IDL.Opt(Change) });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'RegisterKnownNeuron' : KnownNeuron,\n 'ManageNeuron' : ManageNeuron,\n 'ExecuteNnsFunction' : ExecuteNnsFunction,\n 'RewardNodeProvider' : RewardNodeProvider,\n 'SetDefaultFollowees' : SetDefaultFollowees,\n 'RewardNodeProviders' : RewardNodeProviders,\n 'ManageNetworkEconomics' : NetworkEconomics,\n 'ApproveGenesisKyc' : ApproveGenesisKyc,\n 'AddOrRemoveNodeProvider' : AddOrRemoveNodeProvider,\n 'Motion' : Motion,\n });\n Proposal.fill(\n IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Opt(IDL.Text),\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n })\n );\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n 'proposal_timestamp_seconds' : IDL.Nat64,\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'decided_timestamp_seconds' : IDL.Nat64,\n 'proposal' : IDL.Opt(Proposal),\n 'proposer' : IDL.Opt(NeuronId),\n 'wait_for_quiet_state' : IDL.Opt(WaitForQuietState),\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Command_2 = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Configure' : Configure,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n 'command' : IDL.Opt(Command_2),\n 'timestamp' : IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal_id' : IDL.Opt(NeuronId),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'controller' : IDL.Opt(IDL.Principal),\n 'recent_ballots' : IDL.Vec(BallotInfo),\n 'kyc_verified' : IDL.Bool,\n 'not_for_profit' : IDL.Bool,\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'hot_keys' : IDL.Vec(IDL.Principal),\n 'account' : IDL.Vec(IDL.Nat8),\n 'joined_community_fund_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n 'transfer' : IDL.Opt(NeuronStakeTransfer),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Governance = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'wait_for_quiet_threshold_seconds' : IDL.Nat64,\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'node_providers' : IDL.Vec(NodeProvider),\n 'economics' : IDL.Opt(NetworkEconomics),\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),\n 'short_voting_period_seconds' : IDL.Nat64,\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n return [Governance];\n};\n", "/* Do not edit. Compiled with ./scripts/compile-idl-js from candid/governance.did */\nexport const idlFactory = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ 'id' : IDL.Nat64 });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const GovernanceCachedMetrics = IDL.Record({\n 'not_dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'garbage_collectable_neurons_count' : IDL.Nat64,\n 'neurons_with_invalid_stake_count' : IDL.Nat64,\n 'not_dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'total_supply_icp' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'not_dissolving_neurons_count' : IDL.Nat64,\n 'dissolved_neurons_e8s' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_e8s' : IDL.Nat64,\n 'dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'dissolving_neurons_count' : IDL.Nat64,\n 'dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'community_fund_total_staked_e8s' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const AccountIdentifier = IDL.Record({ 'hash' : IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n 'id' : IDL.Opt(IDL.Principal),\n 'reward_account' : IDL.Opt(AccountIdentifier),\n });\n const NetworkEconomics = IDL.Record({\n 'neuron_minimum_stake_e8s' : IDL.Nat64,\n 'max_proposals_to_keep_per_topic' : IDL.Nat32,\n 'neuron_management_fee_per_proposal_e8s' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'transaction_fee_e8s' : IDL.Nat64,\n 'neuron_spawn_dissolve_delay_seconds' : IDL.Nat64,\n 'minimum_icp_xdr_rate' : IDL.Nat64,\n 'maximum_node_provider_rewards_e8s' : IDL.Nat64,\n });\n const RewardEvent = IDL.Record({\n 'day_after_genesis' : IDL.Nat64,\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(NeuronId),\n });\n const NeuronStakeTransfer = IDL.Record({\n 'to_subaccount' : IDL.Vec(IDL.Nat8),\n 'neuron_stake_e8s' : IDL.Nat64,\n 'from' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n 'from_subaccount' : IDL.Vec(IDL.Nat8),\n 'transfer_timestamp' : IDL.Nat64,\n 'block_height' : IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({ 'vote' : IDL.Int32, 'voting_power' : IDL.Nat64 });\n const Tally = IDL.Record({\n 'no' : IDL.Nat64,\n 'yes' : IDL.Nat64,\n 'total' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const KnownNeuronData = IDL.Record({\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n });\n const KnownNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Spawn = IDL.Record({\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({ 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'topic' : IDL.Int32,\n 'followees' : IDL.Vec(NeuronId),\n });\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'NeuronIdOrSubaccount' : IDL.Record({}),\n 'MemoAndController' : ClaimOrRefreshNeuronFromAccount,\n 'Memo' : IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n 'hot_key_to_remove' : IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ 'new_hot_key' : IDL.Opt(IDL.Principal) });\n const IncreaseDissolveDelay = IDL.Record({\n 'additional_dissolve_delay_seconds' : IDL.Nat32,\n });\n const SetDissolveTimestamp = IDL.Record({\n 'dissolve_timestamp_seconds' : IDL.Nat64,\n });\n const Operation = IDL.Variant({\n 'RemoveHotKey' : RemoveHotKey,\n 'AddHotKey' : AddHotKey,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\n 'JoinCommunityFund' : IDL.Record({}),\n 'SetDissolveTimestamp' : SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ 'operation' : IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal' : IDL.Opt(NeuronId),\n });\n const Merge = IDL.Record({ 'source_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n 'dissolve_delay_seconds' : IDL.Nat64,\n 'kyc_verified' : IDL.Bool,\n 'amount_e8s' : IDL.Nat64,\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Nat64,\n });\n const MergeMaturity = IDL.Record({ 'percentage_to_merge' : IDL.Nat32 });\n const Amount = IDL.Record({ 'e8s' : IDL.Nat64 });\n const Disburse = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n 'amount' : IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Follow' : Follow,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'MakeProposal' : Proposal,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n 'Subaccount' : IDL.Vec(IDL.Nat8),\n 'NeuronId' : NeuronId,\n });\n const ManageNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'command' : IDL.Opt(Command),\n 'neuron_id_or_subaccount' : IDL.Opt(NeuronIdOrSubaccount),\n });\n const ExecuteNnsFunction = IDL.Record({\n 'nns_function' : IDL.Int32,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const RewardToNeuron = IDL.Record({ 'dissolve_delay_seconds' : IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n 'RewardToNeuron' : RewardToNeuron,\n 'RewardToAccount' : RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n 'node_provider' : IDL.Opt(NodeProvider),\n 'reward_mode' : IDL.Opt(RewardMode),\n 'amount_e8s' : IDL.Nat64,\n });\n const SetDefaultFollowees = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n 'rewards' : IDL.Vec(RewardNodeProvider),\n });\n const ApproveGenesisKyc = IDL.Record({\n 'principals' : IDL.Vec(IDL.Principal),\n });\n const Change = IDL.Variant({\n 'ToRemove' : NodeProvider,\n 'ToAdd' : NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ 'change' : IDL.Opt(Change) });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'RegisterKnownNeuron' : KnownNeuron,\n 'ManageNeuron' : ManageNeuron,\n 'ExecuteNnsFunction' : ExecuteNnsFunction,\n 'RewardNodeProvider' : RewardNodeProvider,\n 'SetDefaultFollowees' : SetDefaultFollowees,\n 'RewardNodeProviders' : RewardNodeProviders,\n 'ManageNetworkEconomics' : NetworkEconomics,\n 'ApproveGenesisKyc' : ApproveGenesisKyc,\n 'AddOrRemoveNodeProvider' : AddOrRemoveNodeProvider,\n 'Motion' : Motion,\n });\n Proposal.fill(\n IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Opt(IDL.Text),\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n })\n );\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n 'proposal_timestamp_seconds' : IDL.Nat64,\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'decided_timestamp_seconds' : IDL.Nat64,\n 'proposal' : IDL.Opt(Proposal),\n 'proposer' : IDL.Opt(NeuronId),\n 'wait_for_quiet_state' : IDL.Opt(WaitForQuietState),\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Command_2 = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Configure' : Configure,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n 'command' : IDL.Opt(Command_2),\n 'timestamp' : IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal_id' : IDL.Opt(NeuronId),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'controller' : IDL.Opt(IDL.Principal),\n 'recent_ballots' : IDL.Vec(BallotInfo),\n 'kyc_verified' : IDL.Bool,\n 'not_for_profit' : IDL.Bool,\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'hot_keys' : IDL.Vec(IDL.Principal),\n 'account' : IDL.Vec(IDL.Nat8),\n 'joined_community_fund_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n 'transfer' : IDL.Opt(NeuronStakeTransfer),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Governance = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'wait_for_quiet_threshold_seconds' : IDL.Nat64,\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'node_providers' : IDL.Vec(NodeProvider),\n 'economics' : IDL.Opt(NetworkEconomics),\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),\n 'short_voting_period_seconds' : IDL.Nat64,\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n const Result = IDL.Variant({ 'Ok' : IDL.Null, 'Err' : GovernanceError });\n const Result_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'NeuronId' : NeuronId,\n });\n const ClaimOrRefreshNeuronFromAccountResponse = IDL.Record({\n 'result' : IDL.Opt(Result_1),\n });\n const Result_2 = IDL.Variant({ 'Ok' : Neuron, 'Err' : GovernanceError });\n const Result_3 = IDL.Variant({\n 'Ok' : RewardNodeProviders,\n 'Err' : GovernanceError,\n });\n const NeuronInfo = IDL.Record({\n 'dissolve_delay_seconds' : IDL.Nat64,\n 'recent_ballots' : IDL.Vec(BallotInfo),\n 'created_timestamp_seconds' : IDL.Nat64,\n 'state' : IDL.Int32,\n 'stake_e8s' : IDL.Nat64,\n 'joined_community_fund_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'retrieved_at_timestamp_seconds' : IDL.Nat64,\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n 'voting_power' : IDL.Nat64,\n 'age_seconds' : IDL.Nat64,\n });\n const Result_4 = IDL.Variant({ 'Ok' : NeuronInfo, 'Err' : GovernanceError });\n const ProposalInfo = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'status' : IDL.Int32,\n 'topic' : IDL.Int32,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n 'proposal_timestamp_seconds' : IDL.Nat64,\n 'reward_event_round' : IDL.Nat64,\n 'deadline_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'reward_status' : IDL.Int32,\n 'decided_timestamp_seconds' : IDL.Nat64,\n 'proposal' : IDL.Opt(Proposal),\n 'proposer' : IDL.Opt(NeuronId),\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const ListKnownNeuronsResponse = IDL.Record({\n 'known_neurons' : IDL.Vec(KnownNeuron),\n });\n const ListNeurons = IDL.Record({\n 'neuron_ids' : IDL.Vec(IDL.Nat64),\n 'include_neurons_readable_by_caller' : IDL.Bool,\n });\n const ListNeuronsResponse = IDL.Record({\n 'neuron_infos' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInfo)),\n 'full_neurons' : IDL.Vec(Neuron),\n });\n const ListProposalInfo = IDL.Record({\n 'include_reward_status' : IDL.Vec(IDL.Int32),\n 'before_proposal' : IDL.Opt(NeuronId),\n 'limit' : IDL.Nat32,\n 'exclude_topic' : IDL.Vec(IDL.Int32),\n 'include_status' : IDL.Vec(IDL.Int32),\n });\n const ListProposalInfoResponse = IDL.Record({\n 'proposal_info' : IDL.Vec(ProposalInfo),\n });\n const SpawnResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });\n const ClaimOrRefreshResponse = IDL.Record({\n 'refreshed_neuron_id' : IDL.Opt(NeuronId),\n });\n const MakeProposalResponse = IDL.Record({\n 'proposal_id' : IDL.Opt(NeuronId),\n });\n const MergeMaturityResponse = IDL.Record({\n 'merged_maturity_e8s' : IDL.Nat64,\n 'new_stake_e8s' : IDL.Nat64,\n });\n const DisburseResponse = IDL.Record({ 'transfer_block_height' : IDL.Nat64 });\n const Command_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'Spawn' : SpawnResponse,\n 'Split' : SpawnResponse,\n 'Follow' : IDL.Record({}),\n 'ClaimOrRefresh' : ClaimOrRefreshResponse,\n 'Configure' : IDL.Record({}),\n 'RegisterVote' : IDL.Record({}),\n 'Merge' : IDL.Record({}),\n 'DisburseToNeuron' : SpawnResponse,\n 'MakeProposal' : MakeProposalResponse,\n 'MergeMaturity' : MergeMaturityResponse,\n 'Disburse' : DisburseResponse,\n });\n const ManageNeuronResponse = IDL.Record({ 'command' : IDL.Opt(Command_1) });\n const UpdateNodeProvider = IDL.Record({\n 'reward_account' : IDL.Opt(AccountIdentifier),\n });\n return IDL.Service({\n 'claim_gtc_neurons' : IDL.Func(\n [IDL.Principal, IDL.Vec(NeuronId)],\n [Result],\n [],\n ),\n 'claim_or_refresh_neuron_from_account' : IDL.Func(\n [ClaimOrRefreshNeuronFromAccount],\n [ClaimOrRefreshNeuronFromAccountResponse],\n [],\n ),\n 'get_build_metadata' : IDL.Func([], [IDL.Text], ['query']),\n 'get_full_neuron' : IDL.Func([IDL.Nat64], [Result_2], ['query']),\n 'get_full_neuron_by_id_or_subaccount' : IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_2],\n ['query'],\n ),\n 'get_monthly_node_provider_rewards' : IDL.Func([], [Result_3], []),\n 'get_neuron_ids' : IDL.Func([], [IDL.Vec(IDL.Nat64)], ['query']),\n 'get_neuron_info' : IDL.Func([IDL.Nat64], [Result_4], ['query']),\n 'get_neuron_info_by_id_or_subaccount' : IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_4],\n ['query'],\n ),\n 'get_pending_proposals' : IDL.Func([], [IDL.Vec(ProposalInfo)], ['query']),\n 'get_proposal_info' : IDL.Func(\n [IDL.Nat64],\n [IDL.Opt(ProposalInfo)],\n ['query'],\n ),\n 'list_known_neurons' : IDL.Func([], [ListKnownNeuronsResponse], ['query']),\n 'list_neurons' : IDL.Func([ListNeurons], [ListNeuronsResponse], ['query']),\n 'list_proposals' : IDL.Func(\n [ListProposalInfo],\n [ListProposalInfoResponse],\n ['query'],\n ),\n 'manage_neuron' : IDL.Func([ManageNeuron], [ManageNeuronResponse], []),\n 'transfer_gtc_neuron' : IDL.Func([NeuronId, NeuronId], [Result], []),\n 'update_node_provider' : IDL.Func(\n [UpdateNodeProvider],\n [Result],\n ['query'],\n ),\n });\n};\nexport const init = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ 'id' : IDL.Nat64 });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const GovernanceCachedMetrics = IDL.Record({\n 'not_dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'garbage_collectable_neurons_count' : IDL.Nat64,\n 'neurons_with_invalid_stake_count' : IDL.Nat64,\n 'not_dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'total_supply_icp' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'not_dissolving_neurons_count' : IDL.Nat64,\n 'dissolved_neurons_e8s' : IDL.Nat64,\n 'neurons_with_less_than_6_months_dissolve_delay_e8s' : IDL.Nat64,\n 'dissolving_neurons_count_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64)\n ),\n 'dissolving_neurons_count' : IDL.Nat64,\n 'dissolving_neurons_e8s_buckets' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64)\n ),\n 'community_fund_total_staked_e8s' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const AccountIdentifier = IDL.Record({ 'hash' : IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n 'id' : IDL.Opt(IDL.Principal),\n 'reward_account' : IDL.Opt(AccountIdentifier),\n });\n const NetworkEconomics = IDL.Record({\n 'neuron_minimum_stake_e8s' : IDL.Nat64,\n 'max_proposals_to_keep_per_topic' : IDL.Nat32,\n 'neuron_management_fee_per_proposal_e8s' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'transaction_fee_e8s' : IDL.Nat64,\n 'neuron_spawn_dissolve_delay_seconds' : IDL.Nat64,\n 'minimum_icp_xdr_rate' : IDL.Nat64,\n 'maximum_node_provider_rewards_e8s' : IDL.Nat64,\n });\n const RewardEvent = IDL.Record({\n 'day_after_genesis' : IDL.Nat64,\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(NeuronId),\n });\n const NeuronStakeTransfer = IDL.Record({\n 'to_subaccount' : IDL.Vec(IDL.Nat8),\n 'neuron_stake_e8s' : IDL.Nat64,\n 'from' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n 'from_subaccount' : IDL.Vec(IDL.Nat8),\n 'transfer_timestamp' : IDL.Nat64,\n 'block_height' : IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({ 'vote' : IDL.Int32, 'voting_power' : IDL.Nat64 });\n const Tally = IDL.Record({\n 'no' : IDL.Nat64,\n 'yes' : IDL.Nat64,\n 'total' : IDL.Nat64,\n 'timestamp_seconds' : IDL.Nat64,\n });\n const KnownNeuronData = IDL.Record({\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n });\n const KnownNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Spawn = IDL.Record({\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({ 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'topic' : IDL.Int32,\n 'followees' : IDL.Vec(NeuronId),\n });\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'NeuronIdOrSubaccount' : IDL.Record({}),\n 'MemoAndController' : ClaimOrRefreshNeuronFromAccount,\n 'Memo' : IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n 'hot_key_to_remove' : IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ 'new_hot_key' : IDL.Opt(IDL.Principal) });\n const IncreaseDissolveDelay = IDL.Record({\n 'additional_dissolve_delay_seconds' : IDL.Nat32,\n });\n const SetDissolveTimestamp = IDL.Record({\n 'dissolve_timestamp_seconds' : IDL.Nat64,\n });\n const Operation = IDL.Variant({\n 'RemoveHotKey' : RemoveHotKey,\n 'AddHotKey' : AddHotKey,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\n 'JoinCommunityFund' : IDL.Record({}),\n 'SetDissolveTimestamp' : SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ 'operation' : IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal' : IDL.Opt(NeuronId),\n });\n const Merge = IDL.Record({ 'source_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n 'dissolve_delay_seconds' : IDL.Nat64,\n 'kyc_verified' : IDL.Bool,\n 'amount_e8s' : IDL.Nat64,\n 'new_controller' : IDL.Opt(IDL.Principal),\n 'nonce' : IDL.Nat64,\n });\n const MergeMaturity = IDL.Record({ 'percentage_to_merge' : IDL.Nat32 });\n const Amount = IDL.Record({ 'e8s' : IDL.Nat64 });\n const Disburse = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n 'amount' : IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Follow' : Follow,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'MakeProposal' : Proposal,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n 'Subaccount' : IDL.Vec(IDL.Nat8),\n 'NeuronId' : NeuronId,\n });\n const ManageNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'command' : IDL.Opt(Command),\n 'neuron_id_or_subaccount' : IDL.Opt(NeuronIdOrSubaccount),\n });\n const ExecuteNnsFunction = IDL.Record({\n 'nns_function' : IDL.Int32,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const RewardToNeuron = IDL.Record({ 'dissolve_delay_seconds' : IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n 'to_account' : IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n 'RewardToNeuron' : RewardToNeuron,\n 'RewardToAccount' : RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n 'node_provider' : IDL.Opt(NodeProvider),\n 'reward_mode' : IDL.Opt(RewardMode),\n 'amount_e8s' : IDL.Nat64,\n });\n const SetDefaultFollowees = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n 'rewards' : IDL.Vec(RewardNodeProvider),\n });\n const ApproveGenesisKyc = IDL.Record({\n 'principals' : IDL.Vec(IDL.Principal),\n });\n const Change = IDL.Variant({\n 'ToRemove' : NodeProvider,\n 'ToAdd' : NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ 'change' : IDL.Opt(Change) });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'RegisterKnownNeuron' : KnownNeuron,\n 'ManageNeuron' : ManageNeuron,\n 'ExecuteNnsFunction' : ExecuteNnsFunction,\n 'RewardNodeProvider' : RewardNodeProvider,\n 'SetDefaultFollowees' : SetDefaultFollowees,\n 'RewardNodeProviders' : RewardNodeProviders,\n 'ManageNetworkEconomics' : NetworkEconomics,\n 'ApproveGenesisKyc' : ApproveGenesisKyc,\n 'AddOrRemoveNodeProvider' : AddOrRemoveNodeProvider,\n 'Motion' : Motion,\n });\n Proposal.fill(\n IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Opt(IDL.Text),\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n })\n );\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n 'proposal_timestamp_seconds' : IDL.Nat64,\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'decided_timestamp_seconds' : IDL.Nat64,\n 'proposal' : IDL.Opt(Proposal),\n 'proposer' : IDL.Opt(NeuronId),\n 'wait_for_quiet_state' : IDL.Opt(WaitForQuietState),\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Command_2 = IDL.Variant({\n 'Spawn' : Spawn,\n 'Split' : Split,\n 'Configure' : Configure,\n 'Merge' : Merge,\n 'DisburseToNeuron' : DisburseToNeuron,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n 'command' : IDL.Opt(Command_2),\n 'timestamp' : IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n 'vote' : IDL.Int32,\n 'proposal_id' : IDL.Opt(NeuronId),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'controller' : IDL.Opt(IDL.Principal),\n 'recent_ballots' : IDL.Vec(BallotInfo),\n 'kyc_verified' : IDL.Bool,\n 'not_for_profit' : IDL.Bool,\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'hot_keys' : IDL.Vec(IDL.Principal),\n 'account' : IDL.Vec(IDL.Nat8),\n 'joined_community_fund_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n 'transfer' : IDL.Opt(NeuronStakeTransfer),\n 'known_neuron_data' : IDL.Opt(KnownNeuronData),\n });\n const Governance = IDL.Record({\n 'default_followees' : IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n 'wait_for_quiet_threshold_seconds' : IDL.Nat64,\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'node_providers' : IDL.Vec(NodeProvider),\n 'economics' : IDL.Opt(NetworkEconomics),\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'to_claim_transfers' : IDL.Vec(NeuronStakeTransfer),\n 'short_voting_period_seconds' : IDL.Nat64,\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n return [Governance];\n};\n", "import { DerEncodedPublicKey } from \"@dfinity/agent\";\nimport { Principal } from \"@dfinity/principal\";\nimport {\n AccountIdentifier,\n CanisterIdString,\n E8s,\n NeuronId,\n PrincipalString,\n} from \"./common\";\nimport { Option } from \"./option\";\n\nexport type Action =\n | { RegisterKnownNeuron: KnownNeuron }\n | { ExecuteNnsFunction: ExecuteNnsFunction }\n | { ManageNeuron: ManageNeuron }\n | { ApproveGenesisKyc: ApproveGenesisKyc }\n | { ManageNetworkEconomics: NetworkEconomics }\n | { RewardNodeProvider: RewardNodeProvider }\n | { RewardNodeProviders: RewardNodeProviders }\n | { AddOrRemoveNodeProvider: AddOrRemoveNodeProvider }\n | { SetDefaultFollowees: SetDefaultFollowees }\n | { Motion: Motion };\nexport interface AddHotKey {\n newHotKey: Option<PrincipalString>;\n}\nexport interface AddOrRemoveNodeProvider {\n change: Option<Change>;\n}\nexport interface ApproveGenesisKyc {\n principals: Array<PrincipalString>;\n}\nexport type AuthzChangeOp =\n | { Authorize: { addSelf: boolean } }\n | { Deauthorize: null };\nexport interface Ballot {\n neuronId: bigint;\n vote: Vote;\n votingPower: bigint;\n}\nexport interface BallotInfo {\n vote: Vote;\n proposalId: Option<ProposalId>;\n}\nexport type By =\n | { NeuronIdOrSubaccount: Record<string, never> }\n | { MemoAndController: ClaimOrRefreshNeuronFromAccount }\n | { Memo: bigint };\nexport interface CanisterAuthzInfo {\n methodsAuthz: Array<MethodAuthzInfo>;\n}\nexport type Change = { ToRemove: NodeProvider } | { ToAdd: NodeProvider };\nexport type ClaimOrRefresh = { by: Option<By> };\nexport interface ClaimOrRefreshNeuronFromAccount {\n controller: Option<Principal>;\n memo: bigint;\n}\nexport type ClaimOrRefreshNeuronRequest = {\n neuronId: NeuronId;\n by: Option<By>;\n};\nexport type Command =\n | { Spawn: Spawn }\n | { Split: Split }\n | { Follow: Follow }\n | { ClaimOrRefresh: ClaimOrRefresh }\n | { Configure: Configure }\n | { RegisterVote: RegisterVote }\n | { Merge: Merge }\n | { DisburseToNeuron: DisburseToNeuron }\n | { MergeMaturity: MergeMaturity }\n | { MakeProposal: Proposal }\n | { Disburse: Disburse };\nexport interface Configure {\n operation: Option<Operation>;\n}\nexport interface Disburse {\n toAccountId: Option<AccountIdentifier>;\n amount: Option<E8s>;\n}\nexport interface DisburseResponse {\n transferBlockHeight: bigint;\n}\nexport interface DisburseToNeuron {\n dissolveDelaySeconds: bigint;\n kycVerified: boolean;\n amount: E8s;\n newController: Option<PrincipalString>;\n nonce: bigint;\n}\nexport type DissolveState =\n | { DissolveDelaySeconds: bigint }\n | { WhenDissolvedTimestampSeconds: bigint };\nexport interface ExecuteNnsFunction {\n nnsFunctionId: number;\n nnsFunctionName: Option<string>;\n payload: Option<Record<string, unknown>>;\n payloadBytes: ArrayBuffer;\n}\nexport interface Follow {\n topic: Topic;\n followees: Array<NeuronId>;\n}\nexport interface Followees {\n topic: Topic;\n followees: Array<NeuronId>;\n}\nexport interface GovernanceError {\n errorMessage: string;\n errorType: number;\n}\nexport interface IncreaseDissolveDelay {\n additionalDissolveDelaySeconds: number;\n}\nexport interface KnownNeuron {\n id: NeuronId;\n name: string;\n description: Option<string>;\n}\nexport interface SetDissolveTimestamp {\n dissolveTimestampSeconds: bigint;\n}\nexport interface ListProposalsRequest {\n // Limit on the number of [ProposalInfo] to return. If no value is\n // specified, or if a value greater than 100 is specified, 100\n // will be used.\n limit: number;\n\n // If specified, only return proposals that are stricty earlier than\n // the specified proposal according to the proposal ID. If not\n // specified, start with the most recent proposal.\n beforeProposal: Option<ProposalId>;\n\n // Include proposals that have a reward status in this list (see\n // [ProposalRewardStatus] for more information). If this list is\n // empty, no restriction is applied. For example, many users listing\n // proposals will only be interested in proposals for which they can\n // receive voting rewards, i.e., with reward status\n // PROPOSAL_REWARD_STATUS_ACCEPT_VOTES.\n includeRewardStatus: Array<ProposalRewardStatus>;\n\n // Exclude proposals with a topic in this list. This is particularly\n // useful to exclude proposals on the topics TOPIC_EXCHANGE_RATE and\n // TOPIC_KYC which most users are not likely to be interested in\n // seeing\n excludeTopic: Array<Topic>;\n\n // Include proposals that have a status in this list (see\n // [ProposalStatus] for more information). If this list is empty, no\n // restriction is applied.\n includeStatus: Array<ProposalStatus>;\n}\nexport interface ListProposalsResponse {\n proposals: Array<ProposalInfo>;\n}\nexport interface MakeProposalResponse {\n proposalId: ProposalId;\n}\nexport interface ManageNeuron {\n id: Option<NeuronId>;\n command: Option<Command>;\n neuronIdOrSubaccount: Option<NeuronIdOrSubaccount>;\n}\nexport interface Merge {\n sourceNeuronId: Option<NeuronId>;\n}\nexport interface MergeMaturity {\n percentageToMerge: number;\n}\nexport interface MergeMaturityRequest {\n neuronId: NeuronId;\n percentageToMerge: number;\n}\nexport interface MergeMaturityResponse {\n mergedMaturityE8s: bigint;\n newStakeE8s: bigint;\n}\nexport interface MethodAuthzChange {\n principal: Option<PrincipalString>;\n methodName: string;\n canister: CanisterIdString;\n operation: AuthzChangeOp;\n}\nexport interface MethodAuthzInfo {\n methodName: string;\n principalIds: Array<ArrayBuffer>;\n}\nexport interface Motion {\n motionText: string;\n}\nexport interface NetworkEconomics {\n neuronMinimumStake: E8s;\n maxProposalsToKeepPerTopic: number;\n neuronManagementFeePerProposal: E8s;\n rejectCost: E8s;\n transactionFee: E8s;\n neuronSpawnDissolveDelaySeconds: bigint;\n minimumIcpXdrRate: bigint;\n maximumNodeProviderRewards: bigint;\n}\nexport interface Neuron {\n id: Option<NeuronId>;\n isCurrentUserController: Option<boolean>;\n controller: Option<PrincipalString>;\n recentBallots: Array<BallotInfo>;\n kycVerified: boolean;\n notForProfit: boolean;\n cachedNeuronStake: E8s;\n createdTimestampSeconds: bigint;\n maturityE8sEquivalent: bigint;\n agingSinceTimestampSeconds: bigint;\n neuronFees: E8s;\n hotKeys: Array<PrincipalString>;\n accountIdentifier: AccountIdentifier;\n joinedCommunityFundTimestampSeconds: Option<bigint>;\n dissolveState: Option<DissolveState>;\n followees: Array<Followees>;\n}\nexport type NeuronIdOrSubaccount =\n | { Subaccount: Array<number> }\n | { NeuronId: NeuronId };\nexport enum NeuronState {\n UNSPECIFIED = 0,\n LOCKED = 1,\n DISSOLVING = 2,\n DISSOLVED = 3,\n}\nexport interface NeuronInfo {\n neuronId: NeuronId;\n dissolveDelaySeconds: bigint;\n recentBallots: Array<BallotInfo>;\n createdTimestampSeconds: bigint;\n state: NeuronState;\n joinedCommunityFundTimestampSeconds: Option<bigint>;\n retrievedAtTimestampSeconds: bigint;\n votingPower: bigint;\n ageSeconds: bigint;\n fullNeuron: Option<Neuron>;\n}\nexport interface NeuronInfoForHw {\n id: string;\n amount: string;\n hotKeys: Array<PrincipalString>;\n}\nexport interface NodeProvider {\n id: Option<PrincipalString>;\n rewardAccount: Option<AccountIdentifier>;\n}\nexport type Operation =\n | { RemoveHotKey: RemoveHotKey }\n | { AddHotKey: AddHotKey }\n | { StopDissolving: Record<string, never> }\n | { StartDissolving: Record<string, never> }\n | { IncreaseDissolveDelay: IncreaseDissolveDelay }\n | { JoinCommunityFund: Record<string, never> }\n | { SetDissolveTimestamp: SetDissolveTimestamp };\nexport interface Proposal {\n title: Option<string>;\n url: string;\n action: Option<Action>;\n summary: string;\n}\nexport type ProposalId = bigint;\n\nexport interface ProposalInfo {\n id: Option<ProposalId>;\n ballots: Array<Ballot>;\n rejectCost: E8s;\n proposalTimestampSeconds: bigint;\n rewardEventRound: bigint;\n failedTimestampSeconds: bigint;\n decidedTimestampSeconds: bigint;\n latestTally: Option<Tally>;\n proposal: Option<Proposal>;\n proposer: Option<NeuronId>;\n executedTimestampSeconds: bigint;\n topic: Topic;\n status: ProposalStatus;\n rewardStatus: ProposalRewardStatus;\n}\n\n// The proposal status, with respect to reward distribution.\n// See also ProposalStatus.\nexport enum ProposalRewardStatus {\n PROPOSAL_REWARD_STATUS_UNKNOWN = 0,\n\n // The proposal still accept votes, for the purpose of\n // vote rewards. This implies nothing on the ProposalStatus.\n PROPOSAL_REWARD_STATUS_ACCEPT_VOTES = 1,\n\n // The proposal no longer accepts votes. It is due to settle\n // at the next reward event.\n PROPOSAL_REWARD_STATUS_READY_TO_SETTLE = 2,\n\n // The proposal has been taken into account in a reward event.\n PROPOSAL_REWARD_STATUS_SETTLED = 3,\n\n // The proposal is not eligible to be taken into account in a reward event.\n PROPOSAL_REWARD_STATUS_INELIGIBLE = 4,\n}\n\n// The proposal status, with respect to decision making and execution.\n// See also ProposalRewardStatus.\nexport enum ProposalStatus {\n PROPOSAL_STATUS_UNKNOWN = 0,\n\n // A decision (accept/reject) has yet to be made.\n PROPOSAL_STATUS_OPEN = 1,\n\n // The proposal has been rejected.\n PROPOSAL_STATUS_REJECTED = 2,\n\n // The proposal has been accepted. At this time, either execution\n // as not yet started, or it has but the outcome is not yet known.\n PROPOSAL_STATUS_ACCEPTED = 3,\n\n // The proposal was accepted and successfully executed.\n PROPOSAL_STATUS_EXECUTED = 4,\n\n // The proposal was accepted, but execution failed.\n PROPOSAL_STATUS_FAILED = 5,\n}\n\nexport enum Vote {\n UNSPECIFIED = 0,\n YES = 1,\n NO = 2,\n}\nexport interface RegisterVote {\n vote: Vote;\n proposal: Option<ProposalId>;\n}\nexport interface RemoveHotKey {\n hotKeyToRemove: Option<PrincipalString>;\n}\nexport type RewardMode =\n | { RewardToNeuron: RewardToNeuron }\n | { RewardToAccount: RewardToAccount };\nexport type RewardNodeProviders = { rewards: Array<RewardNodeProvider> };\nexport interface RewardToAccount {\n toAccount: Option<AccountIdentifier>;\n}\nexport interface RewardToNeuron {\n dissolveDelaySeconds: bigint;\n}\n\nexport type ClaimNeuronRequest = {\n publicKey: DerEncodedPublicKey;\n nonce: bigint;\n dissolveDelayInSecs: bigint;\n};\n\nexport type ClaimNeuronResponse = { Ok: null } | { Err: GovernanceError };\nexport type GetFullNeuronResponse = { Ok: Neuron } | { Err: GovernanceError };\nexport type GetNeuronInfoResponse =\n | { Ok: NeuronInfo }\n | { Err: GovernanceError };\nexport interface RewardNodeProvider {\n nodeProvider: Option<NodeProvider>;\n rewardMode: Option<RewardMode>;\n amountE8s: bigint;\n}\nexport interface SetDefaultFollowees {\n defaultFollowees: Array<Followees>;\n}\nexport interface Spawn {\n newController: Option<PrincipalString>;\n}\nexport interface SpawnResponse {\n createdNeuronId: NeuronId;\n}\nexport interface Split {\n amount: E8s;\n}\nexport interface Tally {\n no: bigint;\n yes: bigint;\n total: bigint;\n timestampSeconds: bigint;\n}\nexport enum Topic {\n // https://github.com/dfinity/ic/blob/master/rs/nns/governance/proto/ic_nns_governance/pb/v1/governance.proto#L27\n Unspecified = 0,\n ManageNeuron = 1,\n ExchangeRate = 2,\n NetworkEconomics = 3,\n Governance = 4,\n NodeAdmin = 5,\n ParticipantManagement = 6,\n SubnetManagement = 7,\n NetworkCanisterManagement = 8,\n Kyc = 9,\n NodeProviderRewards = 10,\n}\n\nexport interface AddHotKeyRequest {\n neuronId: NeuronId;\n principal: PrincipalString;\n}\n\nexport interface RemoveHotKeyRequest {\n neuronId: NeuronId;\n principal: PrincipalString;\n}\n\nexport interface StartDissolvingRequest {\n neuronId: NeuronId;\n}\n\nexport interface StopDissolvingRequest {\n neuronId: NeuronId;\n}\n\nexport interface IncreaseDissolveDelayRequest {\n neuronId: NeuronId;\n additionalDissolveDelaySeconds: number;\n}\n\nexport interface FollowRequest {\n neuronId: NeuronId;\n topic: Topic;\n followees: Array<NeuronId>;\n}\n\nexport interface RegisterVoteRequest {\n neuronId: NeuronId;\n vote: Vote;\n proposal: ProposalId;\n}\n\nexport interface SpawnRequest {\n neuronId: NeuronId;\n newController: Option<PrincipalString>;\n}\n\nexport interface SplitRequest {\n neuronId: NeuronId;\n amount: E8s;\n}\n\nexport interface DisburseRequest {\n neuronId: NeuronId;\n toAccountId?: AccountIdentifier;\n amount?: E8s;\n}\n\nexport interface DisburseToNeuronRequest {\n neuronId: NeuronId;\n dissolveDelaySeconds: bigint;\n kycVerified: boolean;\n amount: E8s;\n newController: Option<PrincipalString>;\n nonce: bigint;\n}\n\nexport interface JoinCommunityFundRequest {\n neuronId: NeuronId;\n}\n\nexport interface MakeProposalRequest {\n neuronId: NeuronId;\n title: Option<string>;\n url: string;\n summary: string;\n action: Action;\n}\n\nexport interface MakeMotionProposalRequest {\n neuronId: NeuronId;\n title: Option<string>;\n url: string;\n text: string;\n summary: string;\n}\n\nexport interface MakeNetworkEconomicsProposalRequest {\n neuronId: NeuronId;\n title: Option<string>;\n summary: string;\n url: string;\n networkEconomics: NetworkEconomics;\n}\n\nexport interface MakeRewardNodeProviderProposalRequest {\n neuronId: NeuronId;\n title: Option<string>;\n summary: string;\n url: string;\n nodeProvider: PrincipalString;\n amount: E8s;\n rewardMode: Option<RewardMode>;\n}\n\nexport interface MakeSetDefaultFolloweesProposalRequest {\n neuronId: NeuronId;\n title: Option<string>;\n summary: string;\n url: string;\n followees: Array<Followees>;\n}\n\nexport interface MakeExecuteNnsFunctionProposalRequest {\n neuronId: NeuronId;\n title: Option<string>;\n summary: string;\n url: string;\n nnsFunction: number;\n payload: ArrayBuffer;\n}\n\nexport interface DisburseToNeuronResponse {\n createdNeuronId: NeuronId;\n}\nexport interface SpawnResponse {\n createdNeuronId: NeuronId;\n}\nexport type EmptyResponse = { Ok: null } | { Err: GovernanceError };\n\nexport default interface ServiceInterface {\n getNeurons: (\n certified: boolean,\n neuronIds?: NeuronId[]\n ) => Promise<Array<NeuronInfo>>;\n getNeuronsForHW: () => Promise<Array<NeuronInfoForHw>>;\n getPendingProposals: () => Promise<Array<ProposalInfo>>;\n getProposalInfo: (proposalId: bigint) => Promise<Option<ProposalInfo>>;\n listKnownNeurons: (certified: boolean) => Promise<Array<KnownNeuron>>;\n listProposals: (\n request: ListProposalsRequest\n ) => Promise<ListProposalsResponse>;\n addHotKey: (request: AddHotKeyRequest) => Promise<EmptyResponse>;\n removeHotKey: (request: RemoveHotKeyRequest) => Promise<EmptyResponse>;\n startDissolving: (request: StartDissolvingRequest) => Promise<EmptyResponse>;\n stopDissolving: (request: StopDissolvingRequest) => Promise<EmptyResponse>;\n increaseDissolveDelay: (\n request: IncreaseDissolveDelayRequest\n ) => Promise<EmptyResponse>;\n joinCommunityFund: (\n request: JoinCommunityFundRequest\n ) => Promise<EmptyResponse>;\n follow: (request: FollowRequest) => Promise<EmptyResponse>;\n mergeMaturity: (\n request: MergeMaturityRequest\n ) => Promise<MergeMaturityResponse>;\n registerVote: (request: RegisterVoteRequest) => Promise<EmptyResponse>;\n spawn: (request: SpawnRequest) => Promise<SpawnResponse>;\n split: (request: SplitRequest) => Promise<NeuronId>;\n disburse: (request: DisburseRequest) => Promise<DisburseResponse>;\n disburseToNeuron: (\n request: DisburseToNeuronRequest\n ) => Promise<DisburseToNeuronResponse>;\n makeMotionProposal: (\n request: MakeMotionProposalRequest\n ) => Promise<MakeProposalResponse>;\n makeNetworkEconomicsProposal: (\n request: MakeNetworkEconomicsProposalRequest\n ) => Promise<MakeProposalResponse>;\n makeRewardNodeProviderProposal: (\n request: MakeRewardNodeProviderProposalRequest\n ) => Promise<MakeProposalResponse>;\n makeSetDefaultFolloweesProposal: (\n request: MakeSetDefaultFolloweesProposalRequest\n ) => Promise<MakeProposalResponse>;\n makeExecuteNnsFunctionProposal: (\n request: MakeExecuteNnsFunctionProposalRequest\n ) => Promise<MakeProposalResponse>;\n claimOrRefreshNeuron: (\n request: ClaimOrRefreshNeuronRequest\n ) => Promise<Option<NeuronId>>;\n claimOrRefreshNeuronFromAccount: (\n request: ClaimOrRefreshNeuronFromAccount\n ) => Promise<NeuronId>;\n}\n\n/**\n * An error used to ensure at compile-time that it's never reached.\n */\nexport class UnsupportedValueError extends Error {\n constructor(value: never) {\n super(\"Unsupported value: \" + value);\n }\n}\n", "/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { Principal } from \"@dfinity/principal\";\nimport {\n AccountIdentifier as RawAccountIdentifier,\n Action as RawAction,\n Amount,\n By as RawBy,\n Change as RawChange,\n Command as RawCommand,\n Followees as RawFollowees,\n ListProposalInfo,\n ManageNeuron as RawManageNeuron,\n NeuronId as RawNeuronId,\n NeuronIdOrSubaccount as RawNeuronIdOrSubaccount,\n NodeProvider as RawNodeProvider,\n Operation as RawOperation,\n RewardMode as RawRewardMode,\n} from \"../../../candid/governanceTypes.d\";\nimport { AccountIdentifier, E8s, NeuronId } from \"../../types/common\";\nimport {\n Action,\n By,\n Change,\n ClaimNeuronRequest,\n ClaimOrRefreshNeuronRequest,\n Command,\n DisburseToNeuronRequest,\n ListProposalsRequest,\n MakeProposalRequest,\n ManageNeuron,\n NeuronIdOrSubaccount,\n NodeProvider,\n Operation,\n ProposalId,\n RewardMode,\n SplitRequest,\n UnsupportedValueError,\n} from \"../../types/governance_converters\";\nimport {\n accountIdentifierToBytes,\n arrayBufferToArrayOfNumber,\n} from \"../../utils/converter.utils\";\n// Protobuf is not supported yet.\n// import { AccountIdentifier as PbAccountIdentifier } from \"../../proto/ledger_pb\";\n// import { ManageNeuron as PbManageNeuron } from \"../../proto/governance_pb\";\n// import {\n// NeuronId as PbNeuronId,\n// PrincipalId as PbPrincipalId,\n// ProposalId as PbProposalId,\n// } from \"../../proto/base_types_pb\";\nexport class RequestConverters {\n private readonly principal?: Principal;\n constructor() {\n // Needed only for protobuf.\n // this.principal = principal;\n }\n\n public fromManageNeuron = (manageNeuron: ManageNeuron): RawManageNeuron => {\n return {\n id: manageNeuron.id ? [this.fromNeuronId(manageNeuron.id)] : [],\n command: manageNeuron.command\n ? [this.fromCommand(manageNeuron.command)]\n : [],\n neuron_id_or_subaccount: manageNeuron.neuronIdOrSubaccount\n ? [this.fromNeuronIdOrSubaccount(manageNeuron.neuronIdOrSubaccount)]\n : [],\n };\n };\n\n public fromClaimNeuronRequest = (\n request: ClaimNeuronRequest\n ): [Array<number>, bigint, bigint] => {\n return [\n arrayBufferToArrayOfNumber(request.publicKey),\n request.nonce,\n request.dissolveDelayInSecs,\n ];\n };\n\n public fromListProposalsRequest = (\n request: ListProposalsRequest\n ): ListProposalInfo => {\n return {\n include_reward_status: request.includeRewardStatus,\n before_proposal: request.beforeProposal\n ? [this.fromProposalId(request.beforeProposal)]\n : [],\n limit: request.limit,\n exclude_topic: request.excludeTopic,\n include_status: request.includeStatus,\n };\n };\n\n /* Protobuf is not supported yet\n public fromAddHotKeyRequest = (request: AddHotKeyRequest): PbManageNeuron => {\n const hotkeyPrincipal = new PbPrincipalId();\n hotkeyPrincipal.setSerializedId(\n Principal.fromText(request.principal).toUint8Array()\n );\n\n const hotkey = new PbManageNeuron.AddHotKey();\n hotkey.setNewHotKey(hotkeyPrincipal);\n\n const configure = new PbManageNeuron.Configure();\n configure.setAddHotKey(hotkey);\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n };\n */\n\n public fromClaimOrRefreshNeuronRequest = (\n request: ClaimOrRefreshNeuronRequest\n ): RawManageNeuron => {\n const rawCommand: RawCommand = {\n ClaimOrRefresh: { by: [{ NeuronIdOrSubaccount: {} }] },\n };\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n };\n\n /* Protobuf is not supported yet\n public fromMergeMaturityRequest = (\n request: MergeMaturityRequest\n ): PbManageNeuron => {\n const mergeMaturity = new PbManageNeuron.MergeMaturity();\n mergeMaturity.setPercentageToMerge(request.percentageToMerge);\n const manageNeuron = new PbManageNeuron();\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n manageNeuron.setMergeMaturity(mergeMaturity);\n return manageNeuron;\n };\n */\n\n /* Protobuf is not supported yet\n public fromRemoveHotKeyRequest = (\n request: RemoveHotKeyRequest\n ): PbManageNeuron => {\n const hotkeyPrincipal = new PbPrincipalId();\n hotkeyPrincipal.setSerializedId(\n Principal.fromText(request.principal).toUint8Array()\n );\n\n const command = new PbManageNeuron.RemoveHotKey();\n command.setHotKeyToRemove(hotkeyPrincipal);\n\n const configure = new PbManageNeuron.Configure();\n configure.setRemoveHotKey(command);\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n };\n\n public fromStartDissolvingRequest = (\n request: StartDissolvingRequest\n ): PbManageNeuron => {\n const configure = new PbManageNeuron.Configure();\n configure.setStartDissolving(new PbManageNeuron.StartDissolving());\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n };\n\n public fromStopDissolvingRequest = (\n request: StopDissolvingRequest\n ): PbManageNeuron => {\n const configure = new PbManageNeuron.Configure();\n configure.setStopDissolving(new PbManageNeuron.StopDissolving());\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n };\n\n public fromIncreaseDissolveDelayRequest = (\n request: IncreaseDissolveDelayRequest\n ): PbManageNeuron => {\n const command = new PbManageNeuron.IncreaseDissolveDelay();\n command.setAdditionalDissolveDelaySeconds(\n request.additionalDissolveDelaySeconds\n );\n\n const configure = new PbManageNeuron.Configure();\n configure.setIncreaseDissolveDelay(command);\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n };\n\n public fromFollowRequest = (request: FollowRequest): PbManageNeuron => {\n const follow = new PbManageNeuron.Follow();\n follow.setTopic(request.topic);\n follow.setFolloweesList(\n request.followees.map((followee) => {\n const neuronId = new PbNeuronId();\n neuronId.setId(followee.toString());\n return neuronId;\n })\n );\n const manageNeuron = new PbManageNeuron();\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n manageNeuron.setFollow(follow);\n return manageNeuron;\n };\n\n public fromRegisterVoteRequest = (\n request: RegisterVoteRequest\n ): PbManageNeuron => {\n const registerVote = new PbManageNeuron.RegisterVote();\n registerVote.setVote(request.vote);\n const proposal = new PbProposalId();\n proposal.setId(request.proposal.toString());\n registerVote.setProposal(proposal);\n const manageNeuron = new PbManageNeuron();\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n manageNeuron.setRegisterVote(registerVote);\n return manageNeuron;\n };\n\n public fromSpawnRequest = (request: SpawnRequest): PbManageNeuron => {\n const spawn = new PbManageNeuron.Spawn();\n\n if (request.newController) {\n const newController = new PbPrincipalId();\n newController.setSerializedId(\n Principal.fromText(request.newController).toUint8Array().slice(4)\n );\n spawn.setNewController(newController);\n }\n\n const manageNeuron = new PbManageNeuron();\n manageNeuron.setSpawn(spawn);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n return manageNeuron;\n };\n */\n\n public fromSplitRequest = (request: SplitRequest): RawManageNeuron => {\n const rawCommand: RawCommand = {\n Split: {\n amount_e8s: request.amount,\n },\n };\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n };\n\n /* Protobuf is not supported yet\n public fromDisburseRequest = (request: DisburseRequest): PbManageNeuron => {\n const disburse = new PbManageNeuron.Disburse();\n\n if (request.toAccountId) {\n const toAccountIdentifier = new PbAccountIdentifier();\n toAccountIdentifier.setHash(\n Uint8Array.from(Buffer.from(request.toAccountId, \"hex\"))\n );\n disburse.setToAccount(toAccountIdentifier);\n }\n\n if (request.amount != null) {\n const amount = new PbManageNeuron.Disburse.Amount();\n amount.setE8s(request.amount.toString());\n disburse.setAmount(amount);\n }\n\n const manageNeuron = new PbManageNeuron();\n manageNeuron.setDisburse(disburse);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n return manageNeuron;\n };\n */\n\n public fromDisburseToNeuronRequest = (\n request: DisburseToNeuronRequest\n ): RawManageNeuron => {\n const rawCommand: RawCommand = {\n DisburseToNeuron: {\n dissolve_delay_seconds: request.dissolveDelaySeconds,\n kyc_verified: request.kycVerified,\n amount_e8s: request.amount,\n new_controller:\n request.newController != null\n ? [Principal.fromText(request.newController)]\n : [],\n nonce: request.nonce,\n },\n };\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n };\n\n public fromMakeProposalRequest = (\n request: MakeProposalRequest\n ): RawManageNeuron => {\n const rawCommand: RawCommand = {\n MakeProposal: {\n url: request.url,\n title: request.title != null ? [request.title] : [],\n summary: request.summary,\n action: [this.fromAction(request.action)],\n },\n };\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n };\n\n private fromFollowees(followees: Array<NeuronId>): RawFollowees {\n return {\n followees: followees.map(this.fromNeuronId),\n };\n }\n\n private fromNeuronId = (neuronId: NeuronId): RawNeuronId => {\n return {\n id: neuronId,\n };\n };\n\n private fromNeuronIdOrSubaccount = (\n neuronIdOrSubaccount: NeuronIdOrSubaccount\n ): RawNeuronIdOrSubaccount => {\n if (\"NeuronId\" in neuronIdOrSubaccount) {\n return { NeuronId: { id: neuronIdOrSubaccount.NeuronId } };\n }\n if (\"Subaccount\" in neuronIdOrSubaccount) {\n return { Subaccount: neuronIdOrSubaccount.Subaccount };\n }\n throw new UnsupportedValueError(neuronIdOrSubaccount);\n };\n\n private fromProposalId = (proposalId: ProposalId): RawNeuronId => {\n return {\n id: proposalId,\n };\n };\n\n private fromAction = (action: Action): RawAction => {\n if (\"ExecuteNnsFunction\" in action) {\n const executeNnsFunction = action.ExecuteNnsFunction;\n return {\n ExecuteNnsFunction: {\n nns_function: executeNnsFunction.nnsFunctionId,\n payload: arrayBufferToArrayOfNumber(executeNnsFunction.payloadBytes),\n },\n };\n }\n if (\"ManageNeuron\" in action) {\n const manageNeuron = action.ManageNeuron;\n return {\n ManageNeuron: this.fromManageNeuron(manageNeuron),\n };\n }\n if (\"ApproveGenesisKyc\" in action) {\n const approveGenesisKyc = action.ApproveGenesisKyc;\n return {\n ApproveGenesisKyc: {\n principals: approveGenesisKyc.principals.map(Principal.fromText),\n },\n };\n }\n if (\"ManageNetworkEconomics\" in action) {\n const networkEconomics = action.ManageNetworkEconomics;\n return {\n ManageNetworkEconomics: {\n neuron_minimum_stake_e8s: networkEconomics.neuronMinimumStake,\n max_proposals_to_keep_per_topic:\n networkEconomics.maxProposalsToKeepPerTopic,\n neuron_management_fee_per_proposal_e8s:\n networkEconomics.neuronManagementFeePerProposal,\n reject_cost_e8s: networkEconomics.rejectCost,\n transaction_fee_e8s: networkEconomics.transactionFee,\n neuron_spawn_dissolve_delay_seconds:\n networkEconomics.neuronSpawnDissolveDelaySeconds,\n minimum_icp_xdr_rate: networkEconomics.minimumIcpXdrRate,\n maximum_node_provider_rewards_e8s:\n networkEconomics.maximumNodeProviderRewards,\n },\n };\n }\n if (\"RewardNodeProvider\" in action) {\n const rewardNodeProvider = action.RewardNodeProvider;\n return {\n RewardNodeProvider: {\n node_provider: rewardNodeProvider.nodeProvider\n ? [this.fromNodeProvider(rewardNodeProvider.nodeProvider)]\n : [],\n amount_e8s: rewardNodeProvider.amountE8s,\n reward_mode:\n rewardNodeProvider.rewardMode != null\n ? [this.fromRewardMode(rewardNodeProvider.rewardMode)]\n : [],\n },\n };\n }\n if (\"RewardNodeProviders\" in action) {\n const rewardNodeProviders = action.RewardNodeProviders;\n return {\n RewardNodeProviders: {\n rewards: rewardNodeProviders.rewards.map((r) => ({\n node_provider: r.nodeProvider\n ? [this.fromNodeProvider(r.nodeProvider)]\n : [],\n amount_e8s: r.amountE8s,\n reward_mode:\n r.rewardMode != null ? [this.fromRewardMode(r.rewardMode)] : [],\n })),\n },\n };\n }\n if (\"AddOrRemoveNodeProvider\" in action) {\n const addOrRemoveNodeProvider = action.AddOrRemoveNodeProvider;\n return {\n AddOrRemoveNodeProvider: {\n change: addOrRemoveNodeProvider.change\n ? [this.fromChange(addOrRemoveNodeProvider.change)]\n : [],\n },\n };\n }\n if (\"Motion\" in action) {\n const motion = action.Motion;\n return {\n Motion: {\n motion_text: motion.motionText,\n },\n };\n }\n\n if (\"SetDefaultFollowees\" in action) {\n const setDefaultFollowees = action.SetDefaultFollowees;\n return {\n SetDefaultFollowees: {\n default_followees: setDefaultFollowees.defaultFollowees.map((f) => [\n f.topic as number,\n this.fromFollowees(f.followees),\n ]),\n },\n };\n }\n\n if (\"RegisterKnownNeuron\" in action) {\n const knownNeuron = action.RegisterKnownNeuron;\n return {\n RegisterKnownNeuron: {\n id: [{ id: knownNeuron.id }],\n known_neuron_data: [\n {\n name: knownNeuron.name,\n description:\n knownNeuron.description !== undefined\n ? [knownNeuron.description]\n : [],\n },\n ],\n },\n };\n }\n\n // If there's a missing action, this line will cause a compiler error.\n throw new UnsupportedValueError(action);\n };\n\n private fromCommand = (command: Command): RawCommand => {\n if (\"Split\" in command) {\n const split = command.Split;\n return {\n Split: {\n amount_e8s: split.amount,\n },\n };\n }\n if (\"Follow\" in command) {\n const follow = command.Follow;\n return {\n Follow: {\n topic: follow.topic,\n followees: follow.followees.map(this.fromNeuronId),\n },\n };\n }\n if (\"ClaimOrRefresh\" in command) {\n const claimOrRefresh = command.ClaimOrRefresh;\n return {\n ClaimOrRefresh: {\n by: claimOrRefresh.by\n ? [this.fromClaimOrRefreshBy(claimOrRefresh.by)]\n : [],\n },\n };\n }\n if (\"Configure\" in command) {\n const configure = command.Configure;\n return {\n Configure: {\n operation: configure.operation\n ? [this.fromOperation(configure.operation)]\n : [],\n },\n };\n }\n if (\"RegisterVote\" in command) {\n const registerVote = command.RegisterVote;\n return {\n RegisterVote: {\n vote: registerVote.vote,\n proposal: registerVote.proposal\n ? [this.fromProposalId(registerVote.proposal)]\n : [],\n },\n };\n }\n if (\"DisburseToNeuron\" in command) {\n const disburseToNeuron = command.DisburseToNeuron;\n return {\n DisburseToNeuron: {\n dissolve_delay_seconds: disburseToNeuron.dissolveDelaySeconds,\n kyc_verified: disburseToNeuron.kycVerified,\n amount_e8s: disburseToNeuron.amount,\n new_controller: disburseToNeuron.newController\n ? [Principal.fromText(disburseToNeuron.newController)]\n : [],\n nonce: disburseToNeuron.nonce,\n },\n };\n }\n if (\"MergeMaturity\" in command) {\n const mergeMaturity = command.MergeMaturity;\n return {\n MergeMaturity: {\n percentage_to_merge: mergeMaturity.percentageToMerge,\n },\n };\n }\n if (\"MakeProposal\" in command) {\n const makeProposal = command.MakeProposal;\n return {\n MakeProposal: {\n url: makeProposal.url,\n title: [],\n action: makeProposal.action\n ? [this.fromAction(makeProposal.action)]\n : [],\n summary: makeProposal.summary,\n },\n };\n }\n if (\"Disburse\" in command) {\n const disburse = command.Disburse;\n return {\n Disburse: {\n to_account: disburse.toAccountId\n ? [this.fromAccountIdentifier(disburse.toAccountId)]\n : [],\n amount: disburse.amount ? [this.fromAmount(disburse.amount)] : [],\n },\n };\n }\n if (\"Spawn\" in command) {\n const spawn = command.Spawn;\n return {\n Spawn: {\n new_controller: spawn.newController\n ? [Principal.fromText(spawn.newController)]\n : [],\n nonce: [],\n },\n };\n }\n if (\"Merge\" in command) {\n const merge = command.Merge;\n return {\n Merge: {\n source_neuron_id: merge.sourceNeuronId\n ? [{ id: merge.sourceNeuronId }]\n : [],\n },\n };\n }\n\n // If there's a missing command above, this line will cause a compiler error.\n throw new UnsupportedValueError(command);\n };\n\n private fromOperation = (operation: Operation): RawOperation => {\n if (\"RemoveHotKey\" in operation) {\n const removeHotKey = operation.RemoveHotKey;\n return {\n RemoveHotKey: {\n hot_key_to_remove:\n removeHotKey.hotKeyToRemove != null\n ? [Principal.fromText(removeHotKey.hotKeyToRemove)]\n : [],\n },\n };\n }\n if (\"AddHotKey\" in operation) {\n const addHotKey = operation.AddHotKey;\n return {\n AddHotKey: {\n new_hot_key: addHotKey.newHotKey\n ? [Principal.fromText(addHotKey.newHotKey)]\n : [],\n },\n };\n }\n if (\"StopDissolving\" in operation) {\n return {\n StopDissolving: {},\n };\n }\n if (\"StartDissolving\" in operation) {\n return {\n StartDissolving: {},\n };\n }\n if (\"IncreaseDissolveDelay\" in operation) {\n const increaseDissolveDelay = operation.IncreaseDissolveDelay;\n return {\n IncreaseDissolveDelay: {\n additional_dissolve_delay_seconds:\n increaseDissolveDelay.additionalDissolveDelaySeconds,\n },\n };\n }\n if (\"JoinCommunityFund\" in operation) {\n return operation;\n }\n if (\"SetDissolveTimestamp\" in operation) {\n const setDissolveTimestamp = operation.SetDissolveTimestamp;\n return {\n SetDissolveTimestamp: {\n dissolve_timestamp_seconds:\n setDissolveTimestamp.dissolveTimestampSeconds,\n },\n };\n }\n // If there's a missing operation above, this line will cause a compiler error.\n throw new UnsupportedValueError(operation);\n };\n\n private fromChange = (change: Change): RawChange => {\n if (\"ToRemove\" in change) {\n return {\n ToRemove: this.fromNodeProvider(change.ToRemove),\n };\n }\n if (\"ToAdd\" in change) {\n return {\n ToAdd: this.fromNodeProvider(change.ToAdd),\n };\n }\n // If there's a missing change above, this line will cause a compiler error.\n throw new UnsupportedValueError(change);\n };\n\n private fromNodeProvider = (nodeProvider: NodeProvider): RawNodeProvider => {\n return {\n id: nodeProvider.id != null ? [Principal.fromText(nodeProvider.id)] : [],\n reward_account:\n nodeProvider.rewardAccount != null\n ? [this.fromAccountIdentifier(nodeProvider.rewardAccount)]\n : [],\n };\n };\n\n private fromAmount(amount: E8s): Amount {\n return {\n e8s: amount,\n };\n }\n\n private fromAccountIdentifier(\n accountIdentifier: AccountIdentifier\n ): RawAccountIdentifier {\n const bytes = accountIdentifierToBytes(accountIdentifier);\n return {\n hash: arrayBufferToArrayOfNumber(bytes),\n };\n }\n\n private fromRewardMode(rewardMode: RewardMode): RawRewardMode {\n if (\"RewardToNeuron\" in rewardMode) {\n return {\n RewardToNeuron: {\n dissolve_delay_seconds:\n rewardMode.RewardToNeuron.dissolveDelaySeconds,\n },\n };\n } else if (\"RewardToAccount\" in rewardMode) {\n return {\n RewardToAccount: {\n to_account:\n rewardMode.RewardToAccount.toAccount != null\n ? [\n this.fromAccountIdentifier(\n rewardMode.RewardToAccount.toAccount\n ),\n ]\n : [],\n },\n };\n } else {\n // If there's a missing rewardMode above, this line will cause a compiler error.\n throw new UnsupportedValueError(rewardMode);\n }\n }\n\n private fromClaimOrRefreshBy(by: By): RawBy {\n if (\"NeuronIdOrSubaccount\" in by) {\n return {\n NeuronIdOrSubaccount: {},\n };\n } else if (\"Memo\" in by) {\n return {\n Memo: by.Memo,\n };\n } else if (\"MemoAndController\" in by) {\n return {\n MemoAndController: {\n memo: by.MemoAndController.memo,\n controller: by.MemoAndController.controller\n ? [by.MemoAndController.controller]\n : [],\n },\n };\n } else {\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(by);\n }\n }\n}\n", "import { IDL, JsonObject } from \"@dfinity/candid\";\nimport { Buffer } from \"buffer\";\nimport {\n AddNodeOperatorPayload,\n AddNodesToSubnetPayload,\n AddOrRemoveDataCentersProposalPayload,\n BlessReplicaVersionPayload,\n CreateSubnetPayload,\n RecoverSubnetPayload,\n RemoveNodesFromSubnetPayload,\n SetAuthorizedSubnetworkListArgs,\n SetFirewallConfigPayload,\n StopOrStartNnsCanisterProposalPayload,\n UpdateIcpXdrConversionRatePayload,\n UpdateNodeOperatorConfigPayload,\n UpdateNodeRewardsTableProposalPayload,\n UpdateSubnetPayload,\n UpdateSubnetReplicaVersionPayload,\n UpdateUnassignedNodesConfigPayload,\n} from \"../../../candid/payloads.idl\";\nimport { Option } from \"../../types/option\";\n\nexport const getNnsFunctionName = (nnsFunction: number): string => {\n switch (nnsFunction) {\n case 1:\n return \"Create subnet\";\n case 2:\n return \"Add nodes to subnet\";\n case 3:\n return \"Install NNS canister\";\n case 4:\n return \"Upgrade NNS canister\";\n case 5:\n return \"Bless replica version\";\n case 6:\n return \"Recover subnet\";\n case 7:\n return \"Update subnet config\";\n case 8:\n return \"Assign node operator Id\";\n case 9:\n return \"Update NNS root canister\";\n case 10:\n return \"Update ICP/XDR conversion rate\";\n case 11:\n return \"Update subnet replica version\";\n case 12:\n return \"Clear provisional whitelist\";\n case 13:\n return \"Remove nodes from subnet\";\n case 14:\n return \"Set authorized subnetworks\";\n case 15:\n return \"Change firewall config\";\n case 16:\n return \"Update node operator config\";\n case 17:\n return \"Start or stop NNS canister\";\n case 18:\n return \"Remove nodes from registry\";\n case 19:\n return \"Uninstall code from canister\";\n case 20:\n return \"Update the node rewards table\";\n case 21:\n return \"Add or remove data centers\";\n case 22:\n return \"Update unassigned nodes config\";\n default:\n return \"--Unknown--\";\n }\n};\n\nexport const convertNnsFunctionPayload = (\n nnsFunction: number,\n payload: ArrayBuffer\n): Option<Record<string, unknown>> => {\n const buffer = new Buffer(payload);\n\n try {\n switch (nnsFunction) {\n case 1:\n return IDL.decode([CreateSubnetPayload], buffer)[0] as JsonObject;\n case 2:\n return IDL.decode([AddNodesToSubnetPayload], buffer)[0] as JsonObject;\n case 3:\n return { \"Unable to display payload\": \"Payload too large\" };\n case 4:\n return { \"Unable to display payload\": \"Payload too large\" };\n case 5:\n return IDL.decode(\n [BlessReplicaVersionPayload],\n buffer\n )[0] as JsonObject;\n case 6:\n return IDL.decode([RecoverSubnetPayload], buffer)[0] as JsonObject;\n case 7:\n return IDL.decode([UpdateSubnetPayload], buffer)[0] as JsonObject;\n case 8:\n return IDL.decode([AddNodeOperatorPayload], buffer)[0] as JsonObject;\n case 9:\n return { \"Unable to display payload\": \"Payload too large\" };\n case 10:\n return IDL.decode(\n [UpdateIcpXdrConversionRatePayload],\n buffer\n )[0] as JsonObject;\n case 11:\n return IDL.decode(\n [UpdateSubnetReplicaVersionPayload],\n buffer\n )[0] as JsonObject;\n case 12:\n return {};\n case 13:\n return IDL.decode(\n [RemoveNodesFromSubnetPayload],\n buffer\n )[0] as JsonObject;\n case 14:\n return IDL.decode(\n [SetAuthorizedSubnetworkListArgs],\n buffer\n )[0] as JsonObject;\n case 15:\n return IDL.decode([SetFirewallConfigPayload], buffer)[0] as JsonObject;\n case 16:\n return IDL.decode(\n [UpdateNodeOperatorConfigPayload],\n buffer\n )[0] as JsonObject;\n case 17:\n return IDL.decode(\n [StopOrStartNnsCanisterProposalPayload],\n buffer\n )[0] as JsonObject;\n case 18:\n return IDL.decode(\n [RemoveNodesFromSubnetPayload],\n buffer\n )[0] as JsonObject;\n // case 19: return \"Uninstall code from canister\";\n case 20:\n return IDL.decode(\n [UpdateNodeRewardsTableProposalPayload],\n buffer\n )[0] as JsonObject;\n case 21:\n return IDL.decode(\n [AddOrRemoveDataCentersProposalPayload],\n buffer\n )[0] as JsonObject;\n case 22:\n return IDL.decode(\n [UpdateUnassignedNodesConfigPayload],\n buffer\n )[0] as JsonObject;\n default:\n return undefined;\n }\n } catch (e) {\n console.log(\"Unable to deserialize payload. NNS function: \" + nnsFunction);\n console.log(e);\n return { error: \"Unable to deserialize payload\" };\n }\n};\n", "// We only want to export the types and not the full service.\n// So to update this file, first run 'didc bind -t js payloads.did > payloads.js', then copy the types out from the\n// service factory function, and then export them all (use 'export const' rather than just 'const').\n\nimport { IDL } from \"@dfinity/candid\";\n\nexport const AddNodeOperatorPayload = IDL.Record({\n node_operator_principal_id: IDL.Opt(IDL.Principal),\n node_allowance: IDL.Nat64,\n node_provider_principal_id: IDL.Opt(IDL.Principal),\n});\nexport const AddNodesToSubnetPayload = IDL.Record({\n subnet_id: IDL.Principal,\n node_ids: IDL.Vec(IDL.Principal),\n});\nexport const Gps = IDL.Record({\n latitude: IDL.Float32,\n longitude: IDL.Float32,\n});\nexport const DataCenterRecord = IDL.Record({\n id: IDL.Text,\n gps: IDL.Opt(Gps),\n region: IDL.Text,\n owner: IDL.Text,\n});\nexport const AddOrRemoveDataCentersProposalPayload = IDL.Record({\n data_centers_to_add: IDL.Vec(DataCenterRecord),\n data_centers_to_remove: IDL.Vec(IDL.Text),\n});\nexport const BlessReplicaVersionPayload = IDL.Record({\n node_manager_sha256_hex: IDL.Text,\n release_package_url: IDL.Text,\n sha256_hex: IDL.Text,\n replica_version_id: IDL.Text,\n release_package_sha256_hex: IDL.Text,\n node_manager_binary_url: IDL.Text,\n binary_url: IDL.Text,\n});\nexport const SubnetFeatures = IDL.Record({ ecdsa_signatures: IDL.Bool });\nexport const SubnetType = IDL.Variant({\n application: IDL.Null,\n verified_application: IDL.Null,\n system: IDL.Null,\n});\nexport const CreateSubnetPayload = IDL.Record({\n unit_delay_millis: IDL.Nat64,\n max_instructions_per_round: IDL.Nat64,\n features: SubnetFeatures,\n max_instructions_per_message: IDL.Nat64,\n gossip_registry_poll_period_ms: IDL.Nat32,\n max_ingress_bytes_per_message: IDL.Nat64,\n dkg_dealings_per_block: IDL.Nat64,\n max_block_payload_size: IDL.Nat64,\n max_instructions_per_install_code: IDL.Nat64,\n start_as_nns: IDL.Bool,\n is_halted: IDL.Bool,\n gossip_pfn_evaluation_period_ms: IDL.Nat32,\n max_ingress_messages_per_block: IDL.Nat64,\n gossip_max_artifact_streams_per_peer: IDL.Nat32,\n replica_version_id: IDL.Text,\n gossip_max_duplicity: IDL.Nat32,\n gossip_max_chunk_wait_ms: IDL.Nat32,\n dkg_interval_length: IDL.Nat64,\n subnet_id_override: IDL.Opt(IDL.Principal),\n ingress_bytes_per_block_soft_cap: IDL.Nat64,\n initial_notary_delay_millis: IDL.Nat64,\n gossip_max_chunk_size: IDL.Nat32,\n subnet_type: SubnetType,\n gossip_retransmission_request_ms: IDL.Nat32,\n gossip_receive_check_cache_size: IDL.Nat32,\n node_ids: IDL.Vec(IDL.Principal),\n});\nexport const RecoverSubnetPayload = IDL.Record({\n height: IDL.Nat64,\n replacement_nodes: IDL.Opt(IDL.Vec(IDL.Principal)),\n subnet_id: IDL.Principal,\n registry_store_uri: IDL.Opt(IDL.Tuple(IDL.Text, IDL.Text, IDL.Nat64)),\n state_hash: IDL.Vec(IDL.Nat8),\n time_ns: IDL.Nat64,\n});\nexport const RemoveNodeOperatorsPayload = IDL.Record({\n node_operators_to_remove: IDL.Vec(IDL.Vec(IDL.Nat8)),\n});\nexport const RemoveNodesFromSubnetPayload = IDL.Record({\n node_ids: IDL.Vec(IDL.Principal),\n});\nexport const RerouteCanisterRangePayload = IDL.Record({\n range_end_inclusive: IDL.Principal,\n range_start_inclusive: IDL.Principal,\n destination_subnet: IDL.Principal,\n});\nexport const SetAuthorizedSubnetworkListArgs = IDL.Record({\n who: IDL.Opt(IDL.Principal),\n subnets: IDL.Vec(IDL.Principal),\n});\nexport const SetFirewallConfigPayload = IDL.Record({\n ipv4_prefixes: IDL.Vec(IDL.Text),\n firewall_config: IDL.Text,\n ipv6_prefixes: IDL.Vec(IDL.Text),\n});\nexport const CanisterAction = IDL.Variant({ Start: IDL.Null, Stop: IDL.Null });\nexport const StopOrStartNnsCanisterProposalPayload = IDL.Record({\n action: CanisterAction,\n canister_id: IDL.Principal,\n});\nexport const UpdateIcpXdrConversionRatePayload = IDL.Record({\n data_source: IDL.Text,\n xdr_permyriad_per_icp: IDL.Nat64,\n timestamp_seconds: IDL.Nat64,\n});\nexport const UpdateNodeOperatorConfigPayload = IDL.Record({\n node_operator_id: IDL.Opt(IDL.Principal),\n node_allowance: IDL.Opt(IDL.Nat64),\n rewardable_nodes: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Nat32)),\n dc_id: IDL.Opt(IDL.Text),\n});\nexport const NodeRewardRate = IDL.Record({\n xdr_permyriad_per_node_per_month: IDL.Nat64,\n});\nexport const NodeRewardRates = IDL.Record({\n rates: IDL.Vec(IDL.Tuple(IDL.Text, NodeRewardRate)),\n});\nexport const UpdateNodeRewardsTableProposalPayload = IDL.Record({\n new_entries: IDL.Vec(IDL.Tuple(IDL.Text, NodeRewardRates)),\n});\nexport const UpdateSubnetPayload = IDL.Record({\n unit_delay_millis: IDL.Opt(IDL.Nat64),\n max_duplicity: IDL.Opt(IDL.Nat32),\n max_instructions_per_round: IDL.Opt(IDL.Nat64),\n features: IDL.Opt(SubnetFeatures),\n set_gossip_config_to_default: IDL.Bool,\n max_instructions_per_message: IDL.Opt(IDL.Nat64),\n pfn_evaluation_period_ms: IDL.Opt(IDL.Nat32),\n subnet_id: IDL.Principal,\n max_ingress_bytes_per_message: IDL.Opt(IDL.Nat64),\n dkg_dealings_per_block: IDL.Opt(IDL.Nat64),\n max_block_payload_size: IDL.Opt(IDL.Nat64),\n max_instructions_per_install_code: IDL.Opt(IDL.Nat64),\n start_as_nns: IDL.Opt(IDL.Bool),\n is_halted: IDL.Opt(IDL.Bool),\n max_number_of_canisters: IDL.Opt(IDL.Nat64),\n advert_best_effort_percentage: IDL.Opt(IDL.Nat32),\n retransmission_request_ms: IDL.Opt(IDL.Nat32),\n dkg_interval_length: IDL.Opt(IDL.Nat64),\n registry_poll_period_ms: IDL.Opt(IDL.Nat32),\n max_chunk_wait_ms: IDL.Opt(IDL.Nat32),\n receive_check_cache_size: IDL.Opt(IDL.Nat32),\n ssh_backup_access: IDL.Opt(IDL.Vec(IDL.Text)),\n ingress_bytes_per_block_soft_cap: IDL.Opt(IDL.Nat64),\n max_chunk_size: IDL.Opt(IDL.Nat32),\n initial_notary_delay_millis: IDL.Opt(IDL.Nat64),\n max_artifact_streams_per_peer: IDL.Opt(IDL.Nat32),\n subnet_type: IDL.Opt(SubnetType),\n ssh_readonly_access: IDL.Opt(IDL.Vec(IDL.Text)),\n});\nexport const UpdateSubnetReplicaVersionPayload = IDL.Record({\n subnet_id: IDL.Principal,\n replica_version_id: IDL.Text,\n});\nexport const UpdateUnassignedNodesConfigPayload = IDL.Record({\n replica_version: IDL.Opt(IDL.Text),\n ssh_readonly_access: IDL.Opt(IDL.Vec(IDL.Text)),\n});\n", "// Conversion methods.\n// Note: Protobuf methods have not been imported yet.\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { Principal } from \"@dfinity/principal\";\nimport {\n AccountIdentifier as RawAccountIdentifier,\n Action as RawAction,\n Amount as RawAmount,\n Ballot as RawBallot,\n BallotInfo as RawBallotInfo,\n By as RawBy,\n Change as RawChange,\n Command as RawCommand,\n DissolveState as RawDissolveState,\n Followees as RawFollowees,\n KnownNeuron as RawKnownNeuron,\n ListNeuronsResponse as RawListNeuronsResponse,\n ListProposalInfoResponse as RawListProposalInfoResponse,\n ManageNeuronResponse as RawManageNeuronResponse,\n Neuron as RawNeuron,\n NeuronId as RawNeuronId,\n NeuronIdOrSubaccount as RawNeuronIdOrSubaccount,\n NeuronInfo as RawNeuronInfo,\n NodeProvider as RawNodeProvider,\n Operation as RawOperation,\n Proposal as RawProposal,\n ProposalInfo as RawProposalInfo,\n RewardMode as RawRewardMode,\n Tally as RawTally,\n} from \"../../../candid/governanceTypes.d\";\nimport { GOVERNANCE_CANISTER_ID } from \"../../constants/canister_ids\";\nimport { AccountIdentifier, E8s, NeuronId } from \"../../types/common\";\nimport {\n Action,\n Ballot,\n BallotInfo,\n By,\n Change,\n Command,\n DisburseToNeuronResponse,\n DissolveState,\n Followees,\n KnownNeuron,\n ListProposalsResponse,\n MakeProposalResponse,\n Neuron,\n NeuronIdOrSubaccount,\n NeuronInfo,\n NodeProvider,\n Operation,\n Proposal,\n ProposalInfo,\n RewardMode,\n Tally,\n UnsupportedValueError,\n} from \"../../types/governance_converters\";\nimport { Option } from \"../../types/option\";\nimport {\n accountIdentifierFromBytes,\n arrayOfNumberToArrayBuffer,\n arrayOfNumberToUint8Array,\n principalToAccountIdentifier,\n} from \"../../utils/converter.utils\";\n// Protobuf is not supported yet:\n// import { ManageNeuronResponse as PbManageNeuronResponse } from \"../../proto/governance_pb\";\nimport { convertNnsFunctionPayload, getNnsFunctionName } from \"./payloads\";\n\nexport class ResponseConverters {\n public toProposalInfo = (proposalInfo: RawProposalInfo): ProposalInfo => {\n return {\n id: proposalInfo.id.length\n ? this.toNeuronId(proposalInfo.id[0])\n : undefined,\n ballots: proposalInfo.ballots.map((b) => this.toBallot(b[0], b[1])),\n rejectCost: proposalInfo.reject_cost_e8s,\n proposalTimestampSeconds: proposalInfo.proposal_timestamp_seconds,\n rewardEventRound: proposalInfo.reward_event_round,\n failedTimestampSeconds: proposalInfo.failed_timestamp_seconds,\n decidedTimestampSeconds: proposalInfo.decided_timestamp_seconds,\n proposal: proposalInfo.proposal.length\n ? this.toProposal(proposalInfo.proposal[0])\n : undefined,\n proposer: proposalInfo.proposer.length\n ? this.toNeuronId(proposalInfo.proposer[0])\n : undefined,\n latestTally: proposalInfo.latest_tally.length\n ? this.toTally(proposalInfo.latest_tally[0])\n : undefined,\n executedTimestampSeconds: proposalInfo.executed_timestamp_seconds,\n topic: proposalInfo.topic,\n status: proposalInfo.status,\n rewardStatus: proposalInfo.reward_status,\n };\n };\n\n public toArrayOfNeuronInfo = (\n response: RawListNeuronsResponse,\n principal: Principal\n ): Array<NeuronInfo> => {\n const principalString = principal.toString();\n\n return response.neuron_infos.map(([id, neuronInfo]) =>\n this.toNeuronInfo(\n id,\n principalString,\n neuronInfo,\n response.full_neurons.find(\n (neuron) => neuron.id.length && neuron.id[0].id === id\n )\n )\n );\n };\n\n private toNeuronInfo(\n neuronId: bigint,\n principalString: string,\n neuronInfo: RawNeuronInfo,\n rawNeuron?: RawNeuron\n ): NeuronInfo {\n const fullNeuron = rawNeuron\n ? this.toNeuron(rawNeuron, principalString)\n : undefined;\n return {\n neuronId: neuronId,\n dissolveDelaySeconds: neuronInfo.dissolve_delay_seconds,\n recentBallots: neuronInfo.recent_ballots.map(this.toBallotInfo),\n createdTimestampSeconds: neuronInfo.created_timestamp_seconds,\n state: neuronInfo.state,\n joinedCommunityFundTimestampSeconds: neuronInfo\n .joined_community_fund_timestamp_seconds.length\n ? neuronInfo.joined_community_fund_timestamp_seconds[0]\n : undefined,\n retrievedAtTimestampSeconds: neuronInfo.retrieved_at_timestamp_seconds,\n votingPower: neuronInfo.voting_power,\n ageSeconds: neuronInfo.age_seconds,\n fullNeuron: fullNeuron,\n };\n }\n\n public toListProposalsResponse = (\n response: RawListProposalInfoResponse\n ): ListProposalsResponse => {\n return {\n proposals: response.proposal_info.map(this.toProposalInfo),\n };\n };\n\n public toKnownNeuron = (response: RawKnownNeuron): KnownNeuron => {\n return {\n id: response.id[0]?.id ?? BigInt(0),\n name: response.known_neuron_data[0]?.name ?? \"\",\n description: response.known_neuron_data[0]?.description[0] ?? \"\",\n };\n };\n\n /* Protobuf is not supported yet.\n public toSpawnResponse = (\n response: PbManageNeuronResponse\n ): SpawnResponse => {\n const createdNeuronId = response.getSpawn()?.getCreatedNeuronId();\n\n if (!createdNeuronId) {\n throw this.throwUnrecognisedTypeError(\"response\", response);\n }\n\n return {\n createdNeuronId: BigInt(createdNeuronId.getId()),\n };\n };\n */\n\n public toSplitResponse = (response: RawManageNeuronResponse): NeuronId => {\n const command = response.command.length ? response.command[0] : undefined;\n\n if (command && \"Split\" in command) {\n const createdNeuronId = command.Split.created_neuron_id;\n if (createdNeuronId.length) {\n return createdNeuronId[0].id;\n }\n }\n throw this.throwUnrecognisedTypeError(\"response\", response);\n };\n\n /* Protobuf is not supported yet.\n public toDisburseResponse = (\n response: PbManageNeuronResponse\n ): DisburseResponse => {\n const blockHeight = response.getDisburse()?.getTransferBlockHeight();\n\n if (!blockHeight) {\n throw this.throwUnrecognisedTypeError(\"response\", response);\n }\n\n return {\n transferBlockHeight: BigInt(blockHeight),\n };\n };\n */\n\n public toDisburseToNeuronResult = (\n response: RawManageNeuronResponse\n ): DisburseToNeuronResponse => {\n const command = response.command;\n if (\n command.length &&\n \"Spawn\" in command[0] &&\n command[0].Spawn.created_neuron_id.length\n ) {\n return {\n createdNeuronId: command[0].Spawn.created_neuron_id[0].id,\n };\n }\n throw this.throwUnrecognisedTypeError(\"response\", response);\n };\n\n public toClaimOrRefreshNeuronResponse = (\n response: RawManageNeuronResponse\n ): Option<NeuronId> => {\n const command = response.command;\n if (command.length && \"ClaimOrRefresh\" in command[0]) {\n return command[0].ClaimOrRefresh.refreshed_neuron_id.length\n ? command[0].ClaimOrRefresh.refreshed_neuron_id[0].id\n : undefined;\n }\n throw this.throwUnrecognisedTypeError(\"response\", response);\n };\n\n /* Protobuf is not supported yet.\n public toMergeMaturityResponse = (\n response: PbManageNeuronResponse\n ): MergeMaturityResponse => {\n const error = response.getError();\n if (error) {\n throw error.getErrorMessage();\n }\n\n const mergeMaturityResponse = response.getMergeMaturity();\n if (mergeMaturityResponse) {\n return {\n mergedMaturityE8s: BigInt(mergeMaturityResponse.getMergedMaturityE8s()),\n newStakeE8s: BigInt(mergeMaturityResponse.getNewStakeE8s()),\n };\n }\n\n throw this.throwUnrecognisedTypeError(\"response\", response);\n };\n */\n\n public toMakeProposalResponse = (\n response: RawManageNeuronResponse\n ): MakeProposalResponse => {\n const command = response.command;\n if (\n command.length &&\n \"MakeProposal\" in command[0] &&\n command[0].MakeProposal.proposal_id.length\n ) {\n return {\n proposalId: command[0].MakeProposal.proposal_id[0].id,\n };\n }\n throw this.throwUnrecognisedTypeError(\"response\", response);\n };\n\n private toNeuron = (neuron: RawNeuron, principalString: string): Neuron => {\n return {\n id: neuron.id.length ? this.toNeuronId(neuron.id[0]) : undefined,\n isCurrentUserController: neuron.controller.length\n ? neuron.controller[0].toString() === principalString\n : undefined,\n controller: neuron.controller.length\n ? neuron.controller[0].toString()\n : undefined,\n recentBallots: neuron.recent_ballots.map(this.toBallotInfo),\n kycVerified: neuron.kyc_verified,\n notForProfit: neuron.not_for_profit,\n cachedNeuronStake: neuron.cached_neuron_stake_e8s,\n createdTimestampSeconds: neuron.created_timestamp_seconds,\n maturityE8sEquivalent: neuron.maturity_e8s_equivalent,\n agingSinceTimestampSeconds: neuron.aging_since_timestamp_seconds,\n neuronFees: neuron.neuron_fees_e8s,\n hotKeys: neuron.hot_keys.map((p) => p.toString()),\n accountIdentifier: principalToAccountIdentifier(\n GOVERNANCE_CANISTER_ID,\n arrayOfNumberToUint8Array(neuron.account)\n ),\n joinedCommunityFundTimestampSeconds: neuron\n .joined_community_fund_timestamp_seconds.length\n ? neuron.joined_community_fund_timestamp_seconds[0]\n : undefined,\n dissolveState: neuron.dissolve_state.length\n ? this.toDissolveState(neuron.dissolve_state[0])\n : undefined,\n followees: neuron.followees.map(([n, f]) => this.toFollowees(n, f)),\n };\n };\n\n private toBallotInfo = (ballotInfo: RawBallotInfo): BallotInfo => {\n return {\n vote: ballotInfo.vote,\n proposalId: ballotInfo.proposal_id.length\n ? this.toNeuronId(ballotInfo.proposal_id[0])\n : undefined,\n };\n };\n\n private toDissolveState = (\n dissolveState: RawDissolveState\n ): DissolveState => {\n if (\"DissolveDelaySeconds\" in dissolveState) {\n return {\n DissolveDelaySeconds: dissolveState.DissolveDelaySeconds,\n };\n } else {\n return {\n WhenDissolvedTimestampSeconds:\n dissolveState.WhenDissolvedTimestampSeconds,\n };\n }\n };\n\n private toFollowees = (topic: number, followees: RawFollowees): Followees => {\n return {\n topic: topic,\n followees: followees.followees.map(this.toNeuronId),\n };\n };\n\n private toNeuronId = (neuronId: RawNeuronId): NeuronId => {\n return neuronId.id;\n };\n\n private toNeuronIdOrSubaccount = (\n neuronIdOrSubaccount: RawNeuronIdOrSubaccount\n ): NeuronIdOrSubaccount => {\n if (\"NeuronId\" in neuronIdOrSubaccount) {\n return { NeuronId: neuronIdOrSubaccount.NeuronId.id };\n }\n if (\"Subaccount\" in neuronIdOrSubaccount) {\n return { Subaccount: neuronIdOrSubaccount.Subaccount };\n }\n throw new UnsupportedValueError(neuronIdOrSubaccount);\n };\n\n private toBallot = (neuronId: bigint, ballot: RawBallot): Ballot => {\n return {\n neuronId: neuronId,\n vote: ballot.vote,\n votingPower: ballot.voting_power,\n };\n };\n\n private toProposal = (proposal: RawProposal): Proposal => {\n return {\n title: proposal.title.length ? proposal.title[0] : undefined,\n url: proposal.url,\n action: proposal.action.length\n ? this.toAction(proposal.action[0])\n : undefined,\n summary: proposal.summary,\n };\n };\n\n private toAction = (action: RawAction): Action => {\n if (\"ExecuteNnsFunction\" in action) {\n const executeNnsFunction = action.ExecuteNnsFunction;\n const payloadBytes = arrayOfNumberToArrayBuffer(\n executeNnsFunction.payload\n );\n const payload = payloadBytes.byteLength\n ? convertNnsFunctionPayload(\n executeNnsFunction.nns_function,\n payloadBytes\n )\n : undefined;\n\n return {\n ExecuteNnsFunction: {\n nnsFunctionId: executeNnsFunction.nns_function,\n nnsFunctionName: getNnsFunctionName(executeNnsFunction.nns_function),\n payload,\n payloadBytes,\n },\n };\n }\n if (\"ManageNeuron\" in action) {\n const manageNeuron = action.ManageNeuron;\n return {\n ManageNeuron: {\n id: manageNeuron.id.length\n ? this.toNeuronId(manageNeuron.id[0])\n : undefined,\n command: manageNeuron.command.length\n ? this.toCommand(manageNeuron.command[0])\n : undefined,\n neuronIdOrSubaccount: manageNeuron.neuron_id_or_subaccount.length\n ? this.toNeuronIdOrSubaccount(\n manageNeuron.neuron_id_or_subaccount[0]\n )\n : undefined,\n },\n };\n }\n if (\"ApproveGenesisKyc\" in action) {\n const approveKyc = action.ApproveGenesisKyc;\n return {\n ApproveGenesisKyc: {\n principals: approveKyc.principals.map((p) => p.toString()),\n },\n };\n }\n if (\"ManageNetworkEconomics\" in action) {\n const networkEconomics = action.ManageNetworkEconomics;\n return {\n ManageNetworkEconomics: {\n neuronMinimumStake: networkEconomics.neuron_minimum_stake_e8s,\n maxProposalsToKeepPerTopic:\n networkEconomics.max_proposals_to_keep_per_topic,\n neuronManagementFeePerProposal:\n networkEconomics.neuron_management_fee_per_proposal_e8s,\n rejectCost: networkEconomics.reject_cost_e8s,\n transactionFee: networkEconomics.transaction_fee_e8s,\n neuronSpawnDissolveDelaySeconds:\n networkEconomics.neuron_spawn_dissolve_delay_seconds,\n minimumIcpXdrRate: networkEconomics.minimum_icp_xdr_rate,\n maximumNodeProviderRewards:\n networkEconomics.maximum_node_provider_rewards_e8s,\n },\n };\n }\n if (\"RewardNodeProvider\" in action) {\n const rewardNodeProvider = action.RewardNodeProvider;\n return {\n RewardNodeProvider: {\n nodeProvider: rewardNodeProvider.node_provider.length\n ? this.toNodeProvider(rewardNodeProvider.node_provider[0])\n : undefined,\n amountE8s: rewardNodeProvider.amount_e8s,\n rewardMode: rewardNodeProvider.reward_mode.length\n ? this.toRewardMode(rewardNodeProvider.reward_mode[0])\n : undefined,\n },\n };\n }\n if (\"RewardNodeProviders\" in action) {\n const rewardNodeProviders = action.RewardNodeProviders;\n return {\n RewardNodeProviders: {\n rewards: rewardNodeProviders.rewards.map((r) => ({\n nodeProvider: r.node_provider.length\n ? this.toNodeProvider(r.node_provider[0])\n : undefined,\n amountE8s: r.amount_e8s,\n rewardMode: r.reward_mode.length\n ? this.toRewardMode(r.reward_mode[0])\n : undefined,\n })),\n },\n };\n }\n if (\"AddOrRemoveNodeProvider\" in action) {\n const addOrRemoveNodeProvider = action.AddOrRemoveNodeProvider;\n return {\n AddOrRemoveNodeProvider: {\n change: addOrRemoveNodeProvider.change.length\n ? this.toChange(addOrRemoveNodeProvider.change[0])\n : undefined,\n },\n };\n }\n if (\"Motion\" in action) {\n const motion = action.Motion;\n return {\n Motion: {\n motionText: motion.motion_text,\n },\n };\n }\n if (\"SetDefaultFollowees\" in action) {\n const setDefaultFollowees = action.SetDefaultFollowees;\n return {\n SetDefaultFollowees: {\n defaultFollowees: setDefaultFollowees.default_followees.map(\n ([n, f]) => this.toFollowees(n, f)\n ),\n },\n };\n }\n if (\"RegisterKnownNeuron\" in action) {\n const knownNeuron = action.RegisterKnownNeuron;\n return {\n RegisterKnownNeuron: this.toKnownNeuron(knownNeuron),\n };\n }\n\n throw new UnsupportedValueError(action);\n };\n\n private toTally = (tally: RawTally): Tally => {\n return {\n no: tally.no,\n yes: tally.yes,\n total: tally.total,\n timestampSeconds: tally.timestamp_seconds,\n };\n };\n\n private toCommand = (command: RawCommand): Command => {\n if (\"Spawn\" in command) {\n const spawn = command.Spawn;\n return {\n Spawn: {\n newController: spawn.new_controller.length\n ? spawn.new_controller[0].toString()\n : undefined,\n },\n };\n }\n if (\"Split\" in command) {\n const split = command.Split;\n return {\n Split: {\n amount: split.amount_e8s,\n },\n };\n }\n if (\"Follow\" in command) {\n const follow = command.Follow;\n return {\n Follow: {\n topic: follow.topic,\n followees: follow.followees.map(this.toNeuronId),\n },\n };\n }\n if (\"ClaimOrRefresh\" in command) {\n const claimOrRefresh = command.ClaimOrRefresh;\n return {\n ClaimOrRefresh: {\n by: claimOrRefresh.by.length\n ? this.toClaimOrRefreshBy(claimOrRefresh.by[0])\n : undefined,\n },\n };\n }\n if (\"Configure\" in command) {\n const configure = command.Configure;\n return {\n Configure: {\n operation: configure.operation.length\n ? this.toOperation(configure.operation[0])\n : undefined,\n },\n };\n }\n if (\"RegisterVote\" in command) {\n const registerVote = command.RegisterVote;\n return {\n RegisterVote: {\n vote: registerVote.vote,\n proposal: registerVote.proposal.length\n ? this.toNeuronId(registerVote.proposal[0])\n : undefined,\n },\n };\n }\n if (\"DisburseToNeuron\" in command) {\n const disburseToNeuron = command.DisburseToNeuron;\n return {\n DisburseToNeuron: {\n dissolveDelaySeconds: disburseToNeuron.dissolve_delay_seconds,\n kycVerified: disburseToNeuron.kyc_verified,\n amount: disburseToNeuron.amount_e8s,\n newController: disburseToNeuron.new_controller.length\n ? disburseToNeuron.new_controller[0].toString()\n : undefined,\n nonce: disburseToNeuron.nonce,\n },\n };\n }\n if (\"MergeMaturity\" in command) {\n const mergeMaturity = command.MergeMaturity;\n return {\n MergeMaturity: {\n percentageToMerge: mergeMaturity.percentage_to_merge,\n },\n };\n }\n if (\"MakeProposal\" in command) {\n const makeProposal = command.MakeProposal;\n return {\n MakeProposal: {\n title: makeProposal.title.length ? makeProposal.title[0] : undefined,\n url: makeProposal.url,\n action: makeProposal.action.length\n ? this.toAction(makeProposal.action[0])\n : undefined,\n summary: makeProposal.summary,\n },\n };\n }\n if (\"Disburse\" in command) {\n const disburse = command.Disburse;\n return {\n Disburse: {\n toAccountId: disburse.to_account.length\n ? this.toAccountIdentifier(disburse.to_account[0])\n : undefined,\n amount: disburse.amount.length\n ? this.toAmount(disburse.amount[0])\n : undefined,\n },\n };\n }\n if (\"Merge\" in command) {\n const merge = command.Merge;\n return {\n Merge: {\n sourceNeuronId: merge.source_neuron_id.length\n ? merge.source_neuron_id[0].id\n : undefined,\n },\n };\n }\n throw new UnsupportedValueError(command);\n };\n\n private toOperation = (operation: RawOperation): Operation => {\n if (\"RemoveHotKey\" in operation) {\n const removeHotKey = operation.RemoveHotKey;\n return {\n RemoveHotKey: {\n hotKeyToRemove: removeHotKey.hot_key_to_remove.length\n ? removeHotKey.hot_key_to_remove[0].toString()\n : undefined,\n },\n };\n }\n if (\"AddHotKey\" in operation) {\n const addHotKey = operation.AddHotKey;\n return {\n AddHotKey: {\n newHotKey: addHotKey.new_hot_key.length\n ? addHotKey.new_hot_key[0].toString()\n : undefined,\n },\n };\n }\n if (\"StopDissolving\" in operation) {\n return {\n StopDissolving: {},\n };\n }\n if (\"StartDissolving\" in operation) {\n return {\n StartDissolving: {},\n };\n }\n if (\"IncreaseDissolveDelay\" in operation) {\n const increaseDissolveDelay = operation.IncreaseDissolveDelay;\n return {\n IncreaseDissolveDelay: {\n additionalDissolveDelaySeconds:\n increaseDissolveDelay.additional_dissolve_delay_seconds,\n },\n };\n }\n if (\"JoinCommunityFund\" in operation) {\n return operation;\n }\n if (\"SetDissolveTimestamp\" in operation) {\n const setDissolveTimestamp = operation.SetDissolveTimestamp;\n return {\n SetDissolveTimestamp: {\n dissolveTimestampSeconds:\n setDissolveTimestamp.dissolve_timestamp_seconds,\n },\n };\n }\n throw new UnsupportedValueError(operation);\n };\n\n private toChange = (change: RawChange): Change => {\n if (\"ToRemove\" in change) {\n return {\n ToRemove: this.toNodeProvider(change.ToRemove),\n };\n }\n if (\"ToAdd\" in change) {\n return {\n ToAdd: this.toNodeProvider(change.ToAdd),\n };\n }\n throw new UnsupportedValueError(change);\n };\n\n private toNodeProvider = (nodeProvider: RawNodeProvider): NodeProvider => {\n return {\n id: nodeProvider.id.length ? nodeProvider.id[0].toString() : undefined,\n rewardAccount: nodeProvider.reward_account.length\n ? this.toAccountIdentifier(nodeProvider.reward_account[0])\n : undefined,\n };\n };\n\n private toAmount = (amount: RawAmount): E8s => {\n return amount.e8s;\n };\n\n private toAccountIdentifier(\n accountIdentifier: RawAccountIdentifier\n ): AccountIdentifier {\n return accountIdentifierFromBytes(new Uint8Array(accountIdentifier.hash));\n }\n\n private toRewardMode(rewardMode: RawRewardMode): RewardMode {\n if (\"RewardToNeuron\" in rewardMode) {\n return {\n RewardToNeuron: {\n dissolveDelaySeconds:\n rewardMode.RewardToNeuron.dissolve_delay_seconds,\n },\n };\n } else if (\"RewardToAccount\" in rewardMode) {\n return {\n RewardToAccount: {\n toAccount:\n rewardMode.RewardToAccount.to_account != undefined &&\n rewardMode.RewardToAccount.to_account.length\n ? this.toAccountIdentifier(\n rewardMode.RewardToAccount.to_account[0]\n )\n : undefined,\n },\n };\n } else {\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(rewardMode);\n }\n }\n\n private toClaimOrRefreshBy(by: RawBy): By {\n if (\"NeuronIdOrSubaccount\" in by) {\n return {\n NeuronIdOrSubaccount: {},\n };\n } else if (\"Memo\" in by) {\n return {\n Memo: by.Memo,\n };\n } else if (\"MemoAndController\" in by) {\n return {\n MemoAndController: {\n memo: by.MemoAndController.memo,\n controller: by.MemoAndController.controller.length\n ? by.MemoAndController.controller[0]\n : undefined,\n },\n };\n } else {\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(by);\n }\n }\n\n // eslint-disable-next-line\n private throwUnrecognisedTypeError(name: string, value: any): Error {\n return new Error(`Unrecognised ${name} type - ${JSON.stringify(value)}`);\n }\n}\n", "import { Actor } from \"@dfinity/agent\";\nimport { idlFactory as certifiedIdlFactory } from \"../candid/governance.certified.idl\";\nimport { GovernanceService, idlFactory } from \"../candid/governance.idl\";\nimport { RequestConverters } from \"./canisters/governance/request.converters\";\nimport { ResponseConverters } from \"./canisters/governance/response.converters\";\nimport { MAINNET_GOVERNANCE_CANISTER_ID } from \"./constants/canister_ids\";\nimport { GovernanceCanisterOptions } from \"./types/governance\";\nimport {\n KnownNeuron,\n ListProposalsRequest,\n ListProposalsResponse,\n} from \"./types/governance_converters\";\nimport { defaultAgent } from \"./utils/agent.utils\";\n\nexport class GovernanceCanister {\n private constructor(\n private readonly service: GovernanceService,\n private readonly certifiedService: GovernanceService,\n private readonly requestConverters: RequestConverters,\n private readonly responseConverters: ResponseConverters\n ) {\n this.service = service;\n this.certifiedService = certifiedService;\n this.requestConverters = requestConverters;\n this.responseConverters = responseConverters;\n }\n\n public static create(options: GovernanceCanisterOptions = {}) {\n const agent = options.agent ?? defaultAgent();\n const canisterId = options.canisterId ?? MAINNET_GOVERNANCE_CANISTER_ID;\n\n const service =\n options.serviceOverride ??\n Actor.createActor<GovernanceService>(idlFactory, {\n agent,\n canisterId,\n });\n\n const certifiedService =\n options.certifiedServiceOverride ??\n Actor.createActor<GovernanceService>(certifiedIdlFactory, {\n agent,\n canisterId,\n });\n\n const requestConverters = new RequestConverters();\n const responseConverters = new ResponseConverters();\n\n return new GovernanceCanister(\n service,\n certifiedService,\n requestConverters,\n responseConverters\n );\n }\n\n /**\n * Returns the list of neurons who have been approved by the community to\n * appear as the default followee options.\n *\n * If `certified` is true, the request is fetched as an update call, otherwise\n * it is fetched using a query call.\n */\n public listKnownNeurons = async (\n certified = true\n ): Promise<KnownNeuron[]> => {\n const service = certified ? this.certifiedService : this.service;\n const response = await service.list_known_neurons();\n\n return response.known_neurons.map((n) => ({\n id: n.id[0]?.id ?? BigInt(0),\n name: n.known_neuron_data[0]?.name ?? \"\",\n description: n.known_neuron_data[0]?.description[0],\n }));\n };\n\n /**\n * Returns the list of proposals made for the community to vote on,\n * paginated and filtered by the request.\n *\n * If `certified` is true (default), the request is fetched as an update call, otherwise\n * it is fetched using a query call.\n */\n public listProposals = async ({\n request,\n certified = true,\n }: {\n request: ListProposalsRequest;\n certified?: boolean;\n }): Promise<ListProposalsResponse> => {\n const rawRequest = this.requestConverters.fromListProposalsRequest(request);\n const service = certified ? this.certifiedService : this.service;\n const rawResponse = await service.list_proposals(rawRequest);\n return this.responseConverters.toListProposalsResponse(rawResponse);\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|