@dfinity/nns 0.2.1 → 0.2.2-nightly-2022-03-03

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/candid/governance.certified.idl.d.ts +2 -0
  2. package/dist/candid/governance.certified.idl.js +704 -0
  3. package/dist/candid/governance.did +338 -0
  4. package/dist/candid/governance.idl.d.ts +5 -0
  5. package/dist/candid/governance.idl.js +712 -0
  6. package/dist/candid/governanceTypes.d.ts +413 -0
  7. package/dist/candid/payloads.did +168 -0
  8. package/dist/candid/payloads.idl.d.ts +20 -0
  9. package/dist/candid/payloads.idl.js +163 -0
  10. package/dist/cjs/index.cjs.js +24 -24
  11. package/dist/cjs/index.cjs.js.map +3 -3
  12. package/dist/esm/account_identifier.js +1 -1
  13. package/dist/esm/chunk-23KBPF6P.js +4 -0
  14. package/dist/esm/chunk-23KBPF6P.js.map +7 -0
  15. package/dist/esm/chunk-6OQVGWT6.js +2 -0
  16. package/dist/esm/{chunk-X2SHUWG3.js.map → chunk-6OQVGWT6.js.map} +1 -1
  17. package/dist/esm/{chunk-NYI672WX.js → chunk-7EVRADY2.js} +3 -3
  18. package/dist/esm/{chunk-NYI672WX.js.map → chunk-7EVRADY2.js.map} +3 -3
  19. package/dist/esm/chunk-G4YDAU7G.js +3 -0
  20. package/dist/esm/chunk-G4YDAU7G.js.map +7 -0
  21. package/dist/esm/{chunk-HMU24NWJ.js → chunk-I56YMTHW.js} +3 -3
  22. package/dist/esm/{chunk-HMU24NWJ.js.map → chunk-I56YMTHW.js.map} +0 -0
  23. package/dist/esm/{chunk-FVDRR6PO.js → chunk-L3JQ3U5O.js} +2 -2
  24. package/dist/esm/{chunk-FVDRR6PO.js.map → chunk-L3JQ3U5O.js.map} +0 -0
  25. package/dist/esm/{chunk-YL3F3CIN.js → chunk-PFJHLT6T.js} +2 -2
  26. package/dist/esm/{chunk-YL3F3CIN.js.map → chunk-PFJHLT6T.js.map} +2 -2
  27. package/dist/esm/governance.js +1 -1
  28. package/dist/esm/icp.js +1 -1
  29. package/dist/esm/index.js +1 -1
  30. package/dist/esm/index.js.map +3 -3
  31. package/dist/esm/ledger.js +1 -1
  32. package/dist/proto/base_types.proto +60 -0
  33. package/dist/proto/base_types_pb.d.ts +144 -0
  34. package/dist/proto/base_types_pb.js +1071 -0
  35. package/dist/proto/ledger.proto +277 -0
  36. package/dist/proto/ledger_pb.d.ts +911 -0
  37. package/dist/proto/ledger_pb.js +6555 -0
  38. package/dist/types/canisters/governance/request.converters.d.ts +8 -25
  39. package/dist/types/canisters/governance/response.converters.d.ts +8 -30
  40. package/dist/types/governance.d.ts +29 -6
  41. package/dist/types/index.d.ts +2 -0
  42. package/dist/types/types/governance.d.ts +14 -0
  43. package/dist/types/types/ledger.d.ts +1 -1
  44. package/dist/types/utils/neurons.utils.d.ts +13 -0
  45. package/package.json +6 -4
  46. package/dist/esm/chunk-4FZAJTYF.js +0 -2
  47. package/dist/esm/chunk-4FZAJTYF.js.map +0 -7
  48. package/dist/esm/chunk-LNMGZ6W7.js +0 -3
  49. package/dist/esm/chunk-LNMGZ6W7.js.map +0 -7
  50. package/dist/esm/chunk-RPOIUQZO.js +0 -2
  51. package/dist/esm/chunk-RPOIUQZO.js.map +0 -7
  52. package/dist/esm/chunk-SO23SIWX.js +0 -3
  53. package/dist/esm/chunk-SO23SIWX.js.map +0 -7
  54. package/dist/esm/chunk-X2SHUWG3.js +0 -2
@@ -0,0 +1,3 @@
1
+ import{a as Xe,b as Qe,c as Ye,d as $e,e as Ze,f as Ie,g as De,h as Le}from"./chunk-23KBPF6P.js";import{a as o,c as Ce,d as eo,e as oo,g as no}from"./chunk-I56YMTHW.js";import{a as Ho,c as We}from"./chunk-L3JQ3U5O.js";import{b as to}from"./chunk-6OQVGWT6.js";import{a as Je,c as ke,f as ze}from"./chunk-7EVRADY2.js";var ao=Je((Ve,so)=>{var j=We(),l=j.Buffer;function ro(e,t){for(var n in e)t[n]=e[n]}l.from&&l.alloc&&l.allocUnsafe&&l.allocUnsafeSlow?so.exports=j:(ro(j,Ve),Ve.Buffer=O);function O(e,t,n){return l(e,t,n)}ro(l,O);O.from=function(e,t,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return l(e,t,n)};O.alloc=function(e,t,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=l(e);return t!==void 0?typeof n=="string"?r.fill(t,n):r.fill(t):r.fill(0),r};O.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return l(e)};O.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return j.SlowBuffer(e)}});var io=Je((Rt,Ee)=>{"use strict";var Fe=65536,Jo=4294967295;function Wo(){throw new Error(`Secure random number generation is not supported by this browser.
2
+ Use Chrome, Firefox or Internet Explorer 11`)}var zo=ao().Buffer,H=window.crypto||window.msCrypto;H&&H.getRandomValues?Ee.exports=Xo:Ee.exports=Wo;function Xo(e,t){if(e>Jo)throw new RangeError("requested too many random bytes");var n=zo.allocUnsafe(e);if(e>0)if(e>Fe)for(var r=0;r<e;r+=Fe)H.getRandomValues(n.slice(r,r+Fe));else H.getRandomValues(n);return typeof t=="function"?process.nextTick(function(){t(null,n)}):n}});var Uo=ke(Ho()),Go=ke(io());var co=({IDL:e})=>{let t=e.Rec(),n=e.Record({id:e.Nat64}),r=e.Record({followees:e.Vec(n)}),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)}),m=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}),y=e.Record({day_after_genesis:e.Nat64,actual_timestamp_seconds:e.Nat64,distributed_e8s_equivalent:e.Nat64,settled_proposals:e.Vec(n)}),p=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}),P=e.Record({no:e.Nat64,yes:e.Nat64,total:e.Nat64,timestamp_seconds:e.Nat64}),N=e.Record({name:e.Text,description:e.Opt(e.Text)}),b=e.Record({id:e.Opt(n),known_neuron_data:e.Opt(N)}),S=e.Record({new_controller:e.Opt(e.Principal),nonce:e.Opt(e.Nat64)}),h=e.Record({amount_e8s:e.Nat64}),z=e.Record({topic:e.Int32,followees:e.Vec(n)}),T=e.Record({controller:e.Opt(e.Principal),memo:e.Nat64}),X=e.Variant({NeuronIdOrSubaccount:e.Record({}),MemoAndController:T,Memo:e.Nat64}),x=e.Record({by:e.Opt(X)}),Q=e.Record({hot_key_to_remove:e.Opt(e.Principal)}),Y=e.Record({new_hot_key:e.Opt(e.Principal)}),$=e.Record({additional_dissolve_delay_seconds:e.Nat32}),Z=e.Record({dissolve_timestamp_seconds:e.Nat64}),I=e.Variant({RemoveHotKey:Q,AddHotKey:Y,StopDissolving:e.Record({}),StartDissolving:e.Record({}),IncreaseDissolveDelay:$,JoinCommunityFund:e.Record({}),SetDissolveTimestamp:Z}),A=e.Record({operation:e.Opt(I)}),D=e.Record({vote:e.Int32,proposal:e.Opt(n)}),M=e.Record({source_neuron_id:e.Opt(n)}),k=e.Record({dissolve_delay_seconds:e.Nat64,kyc_verified:e.Bool,amount_e8s:e.Nat64,new_controller:e.Opt(e.Principal),nonce:e.Nat64}),C=e.Record({percentage_to_merge:e.Nat32}),L=e.Record({e8s:e.Nat64}),V=e.Record({to_account:e.Opt(a),amount:e.Opt(L)}),ee=e.Variant({Spawn:S,Split:h,Follow:z,ClaimOrRefresh:x,Configure:A,RegisterVote:D,Merge:M,DisburseToNeuron:k,MakeProposal:t,MergeMaturity:C,Disburse:V}),f=e.Variant({Subaccount:e.Vec(e.Nat8),NeuronId:n}),F=e.Record({id:e.Opt(n),command:e.Opt(ee),neuron_id_or_subaccount:e.Opt(f)}),oe=e.Record({nns_function:e.Int32,payload:e.Vec(e.Nat8)}),te=e.Record({dissolve_delay_seconds:e.Nat64}),ne=e.Record({to_account:e.Opt(a)}),re=e.Variant({RewardToNeuron:te,RewardToAccount:ne}),E=e.Record({node_provider:e.Opt(c),reward_mode:e.Opt(re),amount_e8s:e.Nat64}),se=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r))}),K=e.Record({rewards:e.Vec(E)}),ae=e.Record({principals:e.Vec(e.Principal)}),ie=e.Variant({ToRemove:c,ToAdd:c}),ce=e.Record({change:e.Opt(ie)}),de=e.Record({motion_text:e.Text}),ue=e.Variant({RegisterKnownNeuron:b,ManageNeuron:F,ExecuteNnsFunction:oe,RewardNodeProvider:E,SetDefaultFollowees:se,RewardNodeProviders:K,ManageNetworkEconomics:m,ApproveGenesisKyc:ae,AddOrRemoveNodeProvider:ce,Motion:de});t.fill(e.Record({url:e.Text,title:e.Opt(e.Text),action:e.Opt(ue),summary:e.Text}));let le=e.Record({current_deadline_timestamp_seconds:e.Nat64}),pe=e.Record({id:e.Opt(n),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(P),decided_timestamp_seconds:e.Nat64,proposal:e.Opt(t),proposer:e.Opt(n),wait_for_quiet_state:e.Opt(le),executed_timestamp_seconds:e.Nat64}),_e=e.Variant({Spawn:S,Split:h,Configure:A,Merge:M,DisburseToNeuron:k,ClaimOrRefreshNeuron:x,MergeMaturity:C,Disburse:V}),me=e.Record({command:e.Opt(_e),timestamp:e.Nat64}),q=e.Record({vote:e.Int32,proposal_id:e.Opt(n)}),Ne=e.Variant({DissolveDelaySeconds:e.Nat64,WhenDissolvedTimestampSeconds:e.Nat64}),R=e.Record({id:e.Opt(n),controller:e.Opt(e.Principal),recent_ballots:e.Vec(q),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(Ne),followees:e.Vec(e.Tuple(e.Int32,r)),neuron_fees_e8s:e.Nat64,transfer:e.Opt(p),known_neuron_data:e.Opt(N)}),jo=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(m),latest_reward_event:e.Opt(y),to_claim_transfers:e.Vec(p),short_voting_period_seconds:e.Nat64,proposals:e.Vec(e.Tuple(e.Nat64,pe)),in_flight_commands:e.Vec(e.Tuple(e.Nat64,me)),neurons:e.Vec(e.Tuple(e.Nat64,R)),genesis_timestamp_seconds:e.Nat64}),w=e.Variant({Ok:e.Null,Err:d}),fe=e.Variant({Error:d,NeuronId:n}),Re=e.Record({result:e.Opt(fe)}),B=e.Variant({Ok:R,Err:d}),we=e.Variant({Ok:K,Err:d}),U=e.Record({dissolve_delay_seconds:e.Nat64,recent_ballots:e.Vec(q),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(N),voting_power:e.Nat64,age_seconds:e.Nat64}),G=e.Variant({Ok:U,Err:d}),g=e.Record({id:e.Opt(n),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(P),reward_status:e.Int32,decided_timestamp_seconds:e.Nat64,proposal:e.Opt(t),proposer:e.Opt(n),executed_timestamp_seconds:e.Nat64}),ge=e.Record({known_neurons:e.Vec(b)}),ve=e.Record({neuron_ids:e.Vec(e.Nat64),include_neurons_readable_by_caller:e.Bool}),ye=e.Record({neuron_infos:e.Vec(e.Tuple(e.Nat64,U)),full_neurons:e.Vec(R)}),Oe=e.Record({include_reward_status:e.Vec(e.Int32),before_proposal:e.Opt(n),limit:e.Nat32,exclude_topic:e.Vec(e.Int32),include_status:e.Vec(e.Int32)}),Pe=e.Record({proposal_info:e.Vec(g)}),v=e.Record({created_neuron_id:e.Opt(n)}),be=e.Record({refreshed_neuron_id:e.Opt(n)}),Se=e.Record({proposal_id:e.Opt(n)}),he=e.Record({merged_maturity_e8s:e.Nat64,new_stake_e8s:e.Nat64}),Te=e.Record({transfer_block_height:e.Nat64}),xe=e.Variant({Error:d,Spawn:v,Split:v,Follow:e.Record({}),ClaimOrRefresh:be,Configure:e.Record({}),RegisterVote:e.Record({}),Merge:e.Record({}),DisburseToNeuron:v,MakeProposal:Se,MergeMaturity:he,Disburse:Te}),Ae=e.Record({command:e.Opt(xe)}),Me=e.Record({reward_account:e.Opt(a)});return e.Service({claim_gtc_neurons:e.Func([e.Principal,e.Vec(n)],[w],[]),claim_or_refresh_neuron_from_account:e.Func([T],[Re],[]),get_build_metadata:e.Func([],[e.Text],[]),get_full_neuron:e.Func([e.Nat64],[B],[]),get_full_neuron_by_id_or_subaccount:e.Func([f],[B],[]),get_monthly_node_provider_rewards:e.Func([],[we],[]),get_neuron_ids:e.Func([],[e.Vec(e.Nat64)],[]),get_neuron_info:e.Func([e.Nat64],[G],[]),get_neuron_info_by_id_or_subaccount:e.Func([f],[G],[]),get_pending_proposals:e.Func([],[e.Vec(g)],[]),get_proposal_info:e.Func([e.Nat64],[e.Opt(g)],[]),list_known_neurons:e.Func([],[ge],[]),list_neurons:e.Func([ve],[ye],[]),list_proposals:e.Func([Oe],[Pe],[]),manage_neuron:e.Func([F],[Ae],[]),transfer_gtc_neuron:e.Func([n,n],[w],[]),update_node_provider:e.Func([Me],[w],[])})};var uo=({IDL:e})=>{let t=e.Rec(),n=e.Record({id:e.Nat64}),r=e.Record({followees:e.Vec(n)}),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)}),m=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}),y=e.Record({day_after_genesis:e.Nat64,actual_timestamp_seconds:e.Nat64,distributed_e8s_equivalent:e.Nat64,settled_proposals:e.Vec(n)}),p=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}),P=e.Record({no:e.Nat64,yes:e.Nat64,total:e.Nat64,timestamp_seconds:e.Nat64}),N=e.Record({name:e.Text,description:e.Opt(e.Text)}),b=e.Record({id:e.Opt(n),known_neuron_data:e.Opt(N)}),S=e.Record({new_controller:e.Opt(e.Principal),nonce:e.Opt(e.Nat64)}),h=e.Record({amount_e8s:e.Nat64}),z=e.Record({topic:e.Int32,followees:e.Vec(n)}),T=e.Record({controller:e.Opt(e.Principal),memo:e.Nat64}),X=e.Variant({NeuronIdOrSubaccount:e.Record({}),MemoAndController:T,Memo:e.Nat64}),x=e.Record({by:e.Opt(X)}),Q=e.Record({hot_key_to_remove:e.Opt(e.Principal)}),Y=e.Record({new_hot_key:e.Opt(e.Principal)}),$=e.Record({additional_dissolve_delay_seconds:e.Nat32}),Z=e.Record({dissolve_timestamp_seconds:e.Nat64}),I=e.Variant({RemoveHotKey:Q,AddHotKey:Y,StopDissolving:e.Record({}),StartDissolving:e.Record({}),IncreaseDissolveDelay:$,JoinCommunityFund:e.Record({}),SetDissolveTimestamp:Z}),A=e.Record({operation:e.Opt(I)}),D=e.Record({vote:e.Int32,proposal:e.Opt(n)}),M=e.Record({source_neuron_id:e.Opt(n)}),k=e.Record({dissolve_delay_seconds:e.Nat64,kyc_verified:e.Bool,amount_e8s:e.Nat64,new_controller:e.Opt(e.Principal),nonce:e.Nat64}),C=e.Record({percentage_to_merge:e.Nat32}),L=e.Record({e8s:e.Nat64}),V=e.Record({to_account:e.Opt(a),amount:e.Opt(L)}),ee=e.Variant({Spawn:S,Split:h,Follow:z,ClaimOrRefresh:x,Configure:A,RegisterVote:D,Merge:M,DisburseToNeuron:k,MakeProposal:t,MergeMaturity:C,Disburse:V}),f=e.Variant({Subaccount:e.Vec(e.Nat8),NeuronId:n}),F=e.Record({id:e.Opt(n),command:e.Opt(ee),neuron_id_or_subaccount:e.Opt(f)}),oe=e.Record({nns_function:e.Int32,payload:e.Vec(e.Nat8)}),te=e.Record({dissolve_delay_seconds:e.Nat64}),ne=e.Record({to_account:e.Opt(a)}),re=e.Variant({RewardToNeuron:te,RewardToAccount:ne}),E=e.Record({node_provider:e.Opt(c),reward_mode:e.Opt(re),amount_e8s:e.Nat64}),se=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r))}),K=e.Record({rewards:e.Vec(E)}),ae=e.Record({principals:e.Vec(e.Principal)}),ie=e.Variant({ToRemove:c,ToAdd:c}),ce=e.Record({change:e.Opt(ie)}),de=e.Record({motion_text:e.Text}),ue=e.Variant({RegisterKnownNeuron:b,ManageNeuron:F,ExecuteNnsFunction:oe,RewardNodeProvider:E,SetDefaultFollowees:se,RewardNodeProviders:K,ManageNetworkEconomics:m,ApproveGenesisKyc:ae,AddOrRemoveNodeProvider:ce,Motion:de});t.fill(e.Record({url:e.Text,title:e.Opt(e.Text),action:e.Opt(ue),summary:e.Text}));let le=e.Record({current_deadline_timestamp_seconds:e.Nat64}),pe=e.Record({id:e.Opt(n),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(P),decided_timestamp_seconds:e.Nat64,proposal:e.Opt(t),proposer:e.Opt(n),wait_for_quiet_state:e.Opt(le),executed_timestamp_seconds:e.Nat64}),_e=e.Variant({Spawn:S,Split:h,Configure:A,Merge:M,DisburseToNeuron:k,ClaimOrRefreshNeuron:x,MergeMaturity:C,Disburse:V}),me=e.Record({command:e.Opt(_e),timestamp:e.Nat64}),q=e.Record({vote:e.Int32,proposal_id:e.Opt(n)}),Ne=e.Variant({DissolveDelaySeconds:e.Nat64,WhenDissolvedTimestampSeconds:e.Nat64}),R=e.Record({id:e.Opt(n),controller:e.Opt(e.Principal),recent_ballots:e.Vec(q),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(Ne),followees:e.Vec(e.Tuple(e.Int32,r)),neuron_fees_e8s:e.Nat64,transfer:e.Opt(p),known_neuron_data:e.Opt(N)}),jo=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(m),latest_reward_event:e.Opt(y),to_claim_transfers:e.Vec(p),short_voting_period_seconds:e.Nat64,proposals:e.Vec(e.Tuple(e.Nat64,pe)),in_flight_commands:e.Vec(e.Tuple(e.Nat64,me)),neurons:e.Vec(e.Tuple(e.Nat64,R)),genesis_timestamp_seconds:e.Nat64}),w=e.Variant({Ok:e.Null,Err:d}),fe=e.Variant({Error:d,NeuronId:n}),Re=e.Record({result:e.Opt(fe)}),B=e.Variant({Ok:R,Err:d}),we=e.Variant({Ok:K,Err:d}),U=e.Record({dissolve_delay_seconds:e.Nat64,recent_ballots:e.Vec(q),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(N),voting_power:e.Nat64,age_seconds:e.Nat64}),G=e.Variant({Ok:U,Err:d}),g=e.Record({id:e.Opt(n),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(P),reward_status:e.Int32,decided_timestamp_seconds:e.Nat64,proposal:e.Opt(t),proposer:e.Opt(n),executed_timestamp_seconds:e.Nat64}),ge=e.Record({known_neurons:e.Vec(b)}),ve=e.Record({neuron_ids:e.Vec(e.Nat64),include_neurons_readable_by_caller:e.Bool}),ye=e.Record({neuron_infos:e.Vec(e.Tuple(e.Nat64,U)),full_neurons:e.Vec(R)}),Oe=e.Record({include_reward_status:e.Vec(e.Int32),before_proposal:e.Opt(n),limit:e.Nat32,exclude_topic:e.Vec(e.Int32),include_status:e.Vec(e.Int32)}),Pe=e.Record({proposal_info:e.Vec(g)}),v=e.Record({created_neuron_id:e.Opt(n)}),be=e.Record({refreshed_neuron_id:e.Opt(n)}),Se=e.Record({proposal_id:e.Opt(n)}),he=e.Record({merged_maturity_e8s:e.Nat64,new_stake_e8s:e.Nat64}),Te=e.Record({transfer_block_height:e.Nat64}),xe=e.Variant({Error:d,Spawn:v,Split:v,Follow:e.Record({}),ClaimOrRefresh:be,Configure:e.Record({}),RegisterVote:e.Record({}),Merge:e.Record({}),DisburseToNeuron:v,MakeProposal:Se,MergeMaturity:he,Disburse:Te}),Ae=e.Record({command:e.Opt(xe)}),Me=e.Record({reward_account:e.Opt(a)});return e.Service({claim_gtc_neurons:e.Func([e.Principal,e.Vec(n)],[w],[]),claim_or_refresh_neuron_from_account:e.Func([T],[Re],[]),get_build_metadata:e.Func([],[e.Text],["query"]),get_full_neuron:e.Func([e.Nat64],[B],["query"]),get_full_neuron_by_id_or_subaccount:e.Func([f],[B],["query"]),get_monthly_node_provider_rewards:e.Func([],[we],[]),get_neuron_ids:e.Func([],[e.Vec(e.Nat64)],["query"]),get_neuron_info:e.Func([e.Nat64],[G],["query"]),get_neuron_info_by_id_or_subaccount:e.Func([f],[G],["query"]),get_pending_proposals:e.Func([],[e.Vec(g)],["query"]),get_proposal_info:e.Func([e.Nat64],[e.Opt(g)],["query"]),list_known_neurons:e.Func([],[ge],["query"]),list_neurons:e.Func([ve],[ye],["query"]),list_proposals:e.Func([Oe],[Pe],["query"]),manage_neuron:e.Func([F],[Ae],[]),transfer_gtc_neuron:e.Func([n,n],[w],[]),update_node_provider:e.Func([Me],[w],["query"])})};var Qo=(s=>(s[s.UNSPECIFIED=0]="UNSPECIFIED",s[s.LOCKED=1]="LOCKED",s[s.DISSOLVING=2]="DISSOLVING",s[s.DISSOLVED=3]="DISSOLVED",s))(Qo||{}),Yo=(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))(Yo||{}),$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||{}),Zo=(r=>(r[r.UNSPECIFIED=0]="UNSPECIFIED",r[r.YES=1]="YES",r[r.NO=2]="NO",r))(Zo||{}),Io=(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))(Io||{}),u=class extends Error{constructor(t){super("Unsupported value: "+t)}};var Do=e=>({id:e});var lo=e=>({neuron_ids:e??[],include_neurons_readable_by_caller:!e});var po=({includeRewardStatus:e,beforeProposal:t,excludeTopic:n,includeStatus:r,limit:s})=>({include_reward_status:e,before_proposal:t?[Do(t)]:[],limit:s,exclude_topic:n,include_status:r});var Mo=ke(We());var _o=o.Record({node_operator_principal_id:o.Opt(o.Principal),node_allowance:o.Nat64,node_provider_principal_id:o.Opt(o.Principal)}),mo=o.Record({subnet_id:o.Principal,node_ids:o.Vec(o.Principal)}),Lo=o.Record({latitude:o.Float32,longitude:o.Float32}),et=o.Record({id:o.Text,gps:o.Opt(Lo),region:o.Text,owner:o.Text}),No=o.Record({data_centers_to_add:o.Vec(et),data_centers_to_remove:o.Vec(o.Text)}),fo=o.Record({node_manager_sha256_hex:o.Text,release_package_url:o.Text,sha256_hex:o.Text,replica_version_id:o.Text,release_package_sha256_hex:o.Text,node_manager_binary_url:o.Text,binary_url:o.Text}),Ro=o.Record({ecdsa_signatures:o.Bool}),wo=o.Variant({application:o.Null,verified_application:o.Null,system:o.Null}),go=o.Record({unit_delay_millis:o.Nat64,max_instructions_per_round:o.Nat64,features:Ro,max_instructions_per_message:o.Nat64,gossip_registry_poll_period_ms:o.Nat32,max_ingress_bytes_per_message:o.Nat64,dkg_dealings_per_block:o.Nat64,max_block_payload_size:o.Nat64,max_instructions_per_install_code:o.Nat64,start_as_nns:o.Bool,is_halted:o.Bool,gossip_pfn_evaluation_period_ms:o.Nat32,max_ingress_messages_per_block:o.Nat64,gossip_max_artifact_streams_per_peer:o.Nat32,replica_version_id:o.Text,gossip_max_duplicity:o.Nat32,gossip_max_chunk_wait_ms:o.Nat32,dkg_interval_length:o.Nat64,subnet_id_override:o.Opt(o.Principal),ingress_bytes_per_block_soft_cap:o.Nat64,initial_notary_delay_millis:o.Nat64,gossip_max_chunk_size:o.Nat32,subnet_type:wo,gossip_retransmission_request_ms:o.Nat32,gossip_receive_check_cache_size:o.Nat32,node_ids:o.Vec(o.Principal)}),vo=o.Record({height:o.Nat64,replacement_nodes:o.Opt(o.Vec(o.Principal)),subnet_id:o.Principal,registry_store_uri:o.Opt(o.Tuple(o.Text,o.Text,o.Nat64)),state_hash:o.Vec(o.Nat8),time_ns:o.Nat64}),zt=o.Record({node_operators_to_remove:o.Vec(o.Vec(o.Nat8))}),Ke=o.Record({node_ids:o.Vec(o.Principal)}),Xt=o.Record({range_end_inclusive:o.Principal,range_start_inclusive:o.Principal,destination_subnet:o.Principal}),yo=o.Record({who:o.Opt(o.Principal),subnets:o.Vec(o.Principal)}),Oo=o.Record({ipv4_prefixes:o.Vec(o.Text),firewall_config:o.Text,ipv6_prefixes:o.Vec(o.Text)}),ot=o.Variant({Start:o.Null,Stop:o.Null}),Po=o.Record({action:ot,canister_id:o.Principal}),bo=o.Record({data_source:o.Text,xdr_permyriad_per_icp:o.Nat64,timestamp_seconds:o.Nat64}),So=o.Record({node_operator_id:o.Opt(o.Principal),node_allowance:o.Opt(o.Nat64),rewardable_nodes:o.Vec(o.Tuple(o.Text,o.Nat32)),dc_id:o.Opt(o.Text)}),tt=o.Record({xdr_permyriad_per_node_per_month:o.Nat64}),nt=o.Record({rates:o.Vec(o.Tuple(o.Text,tt))}),ho=o.Record({new_entries:o.Vec(o.Tuple(o.Text,nt))}),To=o.Record({unit_delay_millis:o.Opt(o.Nat64),max_duplicity:o.Opt(o.Nat32),max_instructions_per_round:o.Opt(o.Nat64),features:o.Opt(Ro),set_gossip_config_to_default:o.Bool,max_instructions_per_message:o.Opt(o.Nat64),pfn_evaluation_period_ms:o.Opt(o.Nat32),subnet_id:o.Principal,max_ingress_bytes_per_message:o.Opt(o.Nat64),dkg_dealings_per_block:o.Opt(o.Nat64),max_block_payload_size:o.Opt(o.Nat64),max_instructions_per_install_code:o.Opt(o.Nat64),start_as_nns:o.Opt(o.Bool),is_halted:o.Opt(o.Bool),max_number_of_canisters:o.Opt(o.Nat64),advert_best_effort_percentage:o.Opt(o.Nat32),retransmission_request_ms:o.Opt(o.Nat32),dkg_interval_length:o.Opt(o.Nat64),registry_poll_period_ms:o.Opt(o.Nat32),max_chunk_wait_ms:o.Opt(o.Nat32),receive_check_cache_size:o.Opt(o.Nat32),ssh_backup_access:o.Opt(o.Vec(o.Text)),ingress_bytes_per_block_soft_cap:o.Opt(o.Nat64),max_chunk_size:o.Opt(o.Nat32),initial_notary_delay_millis:o.Opt(o.Nat64),max_artifact_streams_per_peer:o.Opt(o.Nat32),subnet_type:o.Opt(wo),ssh_readonly_access:o.Opt(o.Vec(o.Text))}),xo=o.Record({subnet_id:o.Principal,replica_version_id:o.Text}),Ao=o.Record({replica_version:o.Opt(o.Text),ssh_readonly_access:o.Opt(o.Vec(o.Text))});var ko=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--"}},Co=(e,t)=>{let n=new Mo.Buffer(t);try{switch(e){case 1:return o.decode([go],n)[0];case 2:return o.decode([mo],n)[0];case 3:return{"Unable to display payload":"Payload too large"};case 4:return{"Unable to display payload":"Payload too large"};case 5:return o.decode([fo],n)[0];case 6:return o.decode([vo],n)[0];case 7:return o.decode([To],n)[0];case 8:return o.decode([_o],n)[0];case 9:return{"Unable to display payload":"Payload too large"};case 10:return o.decode([bo],n)[0];case 11:return o.decode([xo],n)[0];case 12:return{};case 13:return o.decode([Ke],n)[0];case 14:return o.decode([yo],n)[0];case 15:return o.decode([Oo],n)[0];case 16:return o.decode([So],n)[0];case 17:return o.decode([Po],n)[0];case 18:return o.decode([Ke],n)[0];case 20:return o.decode([ho],n)[0];case 21:return o.decode([No],n)[0];case 22:return o.decode([Ao],n)[0];default:return}}catch(r){return console.log("Unable to deserialize payload. NNS function: "+e),console.log(r),{error:"Unable to deserialize payload"}}};var rt=({neuronId:e,principalString:t,neuronInfo:n,rawNeuron:r})=>{let s=r?st({neuron:r,principalString:t}):void 0;return{neuronId:e,dissolveDelaySeconds:n.dissolve_delay_seconds,recentBallots:n.recent_ballots.map(Vo),createdTimestampSeconds:n.created_timestamp_seconds,state:n.state,joinedCommunityFundTimestampSeconds:n.joined_community_fund_timestamp_seconds.length?n.joined_community_fund_timestamp_seconds[0]:void 0,retrievedAtTimestampSeconds:n.retrieved_at_timestamp_seconds,votingPower:n.voting_power,ageSeconds:n.age_seconds,fullNeuron:s}},st=({neuron:e,principalString:t})=>({id:e.id.length?_(e.id[0]):void 0,isCurrentUserController:e.controller.length?e.controller[0].toString()===t:void 0,controller:e.controller.length?e.controller[0].toString():void 0,recentBallots:e.recent_ballots.map(Vo),kycVerified:e.kyc_verified,notForProfit:e.not_for_profit,cachedNeuronStake:e.cached_neuron_stake_e8s,createdTimestampSeconds:e.created_timestamp_seconds,maturityE8sEquivalent:e.maturity_e8s_equivalent,agingSinceTimestampSeconds:e.aging_since_timestamp_seconds,neuronFees:e.neuron_fees_e8s,hotKeys:e.hot_keys.map(n=>n.toString()),accountIdentifier:Ie(eo,Qe(e.account)),joinedCommunityFundTimestampSeconds:e.joined_community_fund_timestamp_seconds.length?e.joined_community_fund_timestamp_seconds[0]:void 0,dissolveState:e.dissolve_state.length?at(e.dissolve_state[0]):void 0,followees:e.followees.map(([n,r])=>Fo({topic:n,followees:r}))}),Vo=({vote:e,proposal_id:t})=>({vote:e,proposalId:t.length?_(t[0]):void 0}),at=e=>"DissolveDelaySeconds"in e?{DissolveDelaySeconds:e.DissolveDelaySeconds}:{WhenDissolvedTimestampSeconds:e.WhenDissolvedTimestampSeconds},Fo=({topic:e,followees:t})=>({topic:e,followees:t.followees.map(_)}),_=({id:e})=>e,it=e=>{if("NeuronId"in e)return{NeuronId:e.NeuronId.id};if("Subaccount"in e)return{Subaccount:e.Subaccount};throw new u(e)},ct=({neuronId:e,ballot:t})=>{let{vote:n,voting_power:r}=t;return{neuronId:e,vote:n,votingPower:r}},dt=({title:e,url:t,action:n,summary:r})=>({title:e.length?e[0]:void 0,url:t,action:n.length?Eo(n[0]):void 0,summary:r}),Eo=e=>{if("ExecuteNnsFunction"in e){let t=e.ExecuteNnsFunction,n=Ye(t.payload),r=n.byteLength?Co(t.nns_function,n):void 0;return{ExecuteNnsFunction:{nnsFunctionId:t.nns_function,nnsFunctionName:ko(t.nns_function),payload:r,payloadBytes:n}}}if("ManageNeuron"in e){let t=e.ManageNeuron;return{ManageNeuron:{id:t.id.length?_(t.id[0]):void 0,command:t.command.length?lt(t.command[0]):void 0,neuronIdOrSubaccount:t.neuron_id_or_subaccount.length?it(t.neuron_id_or_subaccount[0]):void 0}}}if("ApproveGenesisKyc"in e)return{ApproveGenesisKyc:{principals:e.ApproveGenesisKyc.principals.map(n=>n.toString())}};if("ManageNetworkEconomics"in e){let t=e.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 e){let t=e.RewardNodeProvider;return{RewardNodeProvider:{nodeProvider:t.node_provider.length?J(t.node_provider[0]):void 0,amountE8s:t.amount_e8s,rewardMode:t.reward_mode.length?Ko(t.reward_mode[0]):void 0}}}if("RewardNodeProviders"in e)return{RewardNodeProviders:{rewards:e.RewardNodeProviders.rewards.map(n=>({nodeProvider:n.node_provider.length?J(n.node_provider[0]):void 0,amountE8s:n.amount_e8s,rewardMode:n.reward_mode.length?Ko(n.reward_mode[0]):void 0}))}};if("AddOrRemoveNodeProvider"in e){let t=e.AddOrRemoveNodeProvider;return{AddOrRemoveNodeProvider:{change:t.change.length?_t(t.change[0]):void 0}}}if("Motion"in e)return{Motion:{motionText:e.Motion.motion_text}};if("SetDefaultFollowees"in e)return{SetDefaultFollowees:{defaultFollowees:e.SetDefaultFollowees.default_followees.map(([n,r])=>Fo({topic:n,followees:r}))}};if("RegisterKnownNeuron"in e){let t=e.RegisterKnownNeuron;return{RegisterKnownNeuron:ft(t)}}throw new u(e)},ut=e=>({no:e.no,yes:e.yes,total:e.total,timestampSeconds:e.timestamp_seconds}),lt=e=>{if("Spawn"in e){let t=e.Spawn;return{Spawn:{newController:t.new_controller.length?t.new_controller[0].toString():void 0}}}if("Split"in e)return{Split:{amount:e.Split.amount_e8s}};if("Follow"in e){let t=e.Follow;return{Follow:{topic:t.topic,followees:t.followees.map(_)}}}if("ClaimOrRefresh"in e){let t=e.ClaimOrRefresh;return{ClaimOrRefresh:{by:t.by.length?Nt(t.by[0]):void 0}}}if("Configure"in e){let t=e.Configure;return{Configure:{operation:t.operation.length?pt(t.operation[0]):void 0}}}if("RegisterVote"in e){let t=e.RegisterVote;return{RegisterVote:{vote:t.vote,proposal:t.proposal.length?_(t.proposal[0]):void 0}}}if("DisburseToNeuron"in e){let t=e.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 e)return{MergeMaturity:{percentageToMerge:e.MergeMaturity.percentage_to_merge}};if("MakeProposal"in e){let t=e.MakeProposal;return{MakeProposal:{title:t.title.length?t.title[0]:void 0,url:t.url,action:t.action.length?Eo(t.action[0]):void 0,summary:t.summary}}}if("Disburse"in e){let t=e.Disburse;return{Disburse:{toAccountId:t.to_account.length?qe(t.to_account[0]):void 0,amount:t.amount.length?mt(t.amount[0]):void 0}}}if("Merge"in e){let t=e.Merge;return{Merge:{sourceNeuronId:t.source_neuron_id.length?t.source_neuron_id[0].id:void 0}}}throw new u(e)},pt=e=>{if("RemoveHotKey"in e){let t=e.RemoveHotKey;return{RemoveHotKey:{hotKeyToRemove:t.hot_key_to_remove.length?t.hot_key_to_remove[0].toString():void 0}}}if("AddHotKey"in e){let t=e.AddHotKey;return{AddHotKey:{newHotKey:t.new_hot_key.length?t.new_hot_key[0].toString():void 0}}}if("StopDissolving"in e)return{StopDissolving:{}};if("StartDissolving"in e)return{StartDissolving:{}};if("IncreaseDissolveDelay"in e)return{IncreaseDissolveDelay:{additionalDissolveDelaySeconds:e.IncreaseDissolveDelay.additional_dissolve_delay_seconds}};if("JoinCommunityFund"in e)return e;if("SetDissolveTimestamp"in e)return{SetDissolveTimestamp:{dissolveTimestampSeconds:e.SetDissolveTimestamp.dissolve_timestamp_seconds}};throw new u(e)},_t=e=>{if("ToRemove"in e)return{ToRemove:J(e.ToRemove)};if("ToAdd"in e)return{ToAdd:J(e.ToAdd)};throw new u(e)},J=e=>({id:e.id.length?e.id[0].toString():void 0,rewardAccount:e.reward_account.length?qe(e.reward_account[0]):void 0}),mt=e=>e.e8s,qe=e=>Ze(new Uint8Array(e.hash)),Ko=e=>{if("RewardToNeuron"in e)return{RewardToNeuron:{dissolveDelaySeconds:e.RewardToNeuron.dissolve_delay_seconds}};if("RewardToAccount"in e)return{RewardToAccount:{toAccount:e.RewardToAccount.to_account!=null&&e.RewardToAccount.to_account.length?qe(e.RewardToAccount.to_account[0]):void 0}};throw new u(e)},Nt=e=>{if("NeuronIdOrSubaccount"in e)return{NeuronIdOrSubaccount:{}};if("Memo"in e)return{Memo:e.Memo};if("MemoAndController"in e)return{MemoAndController:{memo:e.MemoAndController.memo,controller:e.MemoAndController.controller.length?e.MemoAndController.controller[0]:void 0}};throw new u(e)};var Be=e=>({id:e.id.length?_(e.id[0]):void 0,ballots:e.ballots.map(t=>ct({neuronId:t[0],ballot:t[1]})),rejectCost:e.reject_cost_e8s,proposalTimestampSeconds:e.proposal_timestamp_seconds,rewardEventRound:e.reward_event_round,failedTimestampSeconds:e.failed_timestamp_seconds,decidedTimestampSeconds:e.decided_timestamp_seconds,proposal:e.proposal.length?dt(e.proposal[0]):void 0,proposer:e.proposer.length?_(e.proposer[0]):void 0,latestTally:e.latest_tally.length?ut(e.latest_tally[0]):void 0,executedTimestampSeconds:e.executed_timestamp_seconds,topic:e.topic,status:e.status,rewardStatus:e.reward_status}),qo=({neuron_infos:e,full_neurons:t},n)=>e.map(([r,s])=>rt({neuronId:r,principalString:n.toString(),neuronInfo:s,rawNeuron:t.find(a=>a.id.length&&a.id[0].id===r)})),Bo=({proposal_info:e})=>({proposals:e.map(Be)}),ft=({id:e,known_neuron_data:t})=>({id:e[0]?.id??BigInt(0),name:t[0]?.name??"",description:t[0]?.description[0]??""});var W=class{},Ue=class extends W{constructor(t){super();this.err=t}},Ge=class extends W{},je=class extends W{constructor(t){super();this.minimumAmount=t}};var He=class{constructor(t,n,r){this.canisterId=t;this.service=n;this.certifiedService=r;this.canisterId=t,this.service=n,this.certifiedService=r}static create(t={}){let n=t.agent??no(),r=t.canisterId??oo,s=t.serviceOverride??Ce.createActor(uo,{agent:n,canisterId:r}),a=t.certifiedServiceOverride??Ce.createActor(co,{agent:n,canisterId:r});return new He(r,s,a)}getNeurons=async({certified:t=!0,principal:n,neuronIds:r})=>{let s=lo(r),a=await this.getGovernanceService(t).list_neurons(s);return qo(a,n)};listKnownNeurons=async(t=!0)=>(await this.getGovernanceService(t).list_known_neurons()).known_neurons.map(r=>({id:r.id[0]?.id??BigInt(0),name:r.known_neuron_data[0]?.name??"",description:r.known_neuron_data[0]?.description[0]}));listProposals=async({request:t,certified:n=!0})=>{let r=po(t),s=await this.getGovernanceService(n).list_proposals(r);return Bo(s)};stakeNeuron=async({stake:t,principal:n,ledgerCanister:r})=>{if(t.toE8s()<ze)return new je(to.fromString("1"));let s=new Uint8Array((0,Go.default)(8)),a=Xe(s),c=this.buildNeuronStakeSubAccount(s,n),m=De.fromPrincipal({principal:this.canisterId,subAccount:c}),y=await r.transfer({memo:a,amount:t,to:m});if(typeof y!="bigint")return new Ue(y);let p=this.claimOrRefreshNeuronFromAccount({controller:n,memo:a});return p===void 0?new Ge:p};getProposalInfo=async({proposalId:t,certified:n=!0})=>{let[r]=await this.getGovernanceService(n).get_proposal_info(t);return r?Be(r):void 0};claimOrRefreshNeuronFromAccount=async t=>{let s=(await this.certifiedService.claim_or_refresh_neuron_from_account({controller:t.controller?[t.controller]:[],memo:t.memo})).result;if(s.length&&"NeuronId"in s[0])return s[0].NeuronId.id};buildNeuronStakeSubAccount=(t,n)=>{let r=$e("neuron-stake"),s=Uo.sha256.create();return s.update([12,...r,...n.toUint8Array(),...t]),Le.fromBytes(new Uint8Array(s.array()))};getGovernanceService(t){return t?this.certifiedService:this.service}};export{Qo as a,Yo as b,$o as c,Zo as d,Io as e,u as f,W as g,Ue as h,Ge as i,je as j,He as k};
3
+ //# sourceMappingURL=chunk-G4YDAU7G.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/safe-buffer/index.js", "../../node_modules/randombytes/browser.js", "../../src/governance.ts", "../../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/types/governance.ts"],
4
+ "sourcesContent": ["/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n", "'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n", "import { Actor } from \"@dfinity/agent\";\nimport { Principal } from \"@dfinity/principal\";\nimport { sha256 } from \"js-sha256\";\nimport randomBytes from \"randombytes\";\nimport { idlFactory as certifiedIdlFactory } from \"../candid/governance.certified.idl\";\nimport { GovernanceService, idlFactory } from \"../candid/governance.idl\";\nimport {\n ListProposalInfo,\n ProposalInfo as RawProposalInfo,\n} from \"../candid/governanceTypes\";\nimport { AccountIdentifier, SubAccount } from \"./account_identifier\";\nimport {\n fromListNeurons,\n fromListProposalsRequest,\n} from \"./canisters/governance/request.converters\";\nimport {\n toArrayOfNeuronInfo,\n toListProposalsResponse,\n toProposalInfo,\n} from \"./canisters/governance/response.converters\";\nimport { MAINNET_GOVERNANCE_CANISTER_ID } from \"./constants/canister_ids\";\nimport { E8S_PER_ICP } from \"./constants/constants\";\nimport { ICP } from \"./icp\";\nimport { LedgerCanister } from \"./ledger\";\nimport { NeuronId } from \"./types/common\";\nimport {\n CouldNotClaimNeuronError,\n GovernanceCanisterOptions,\n InsufficientAmount,\n StakeNeuronError,\n StakeNeuronTransferError,\n} from \"./types/governance\";\nimport {\n ClaimOrRefreshNeuronFromAccount,\n KnownNeuron,\n ListProposalsRequest,\n ListProposalsResponse,\n NeuronInfo,\n ProposalInfo,\n} from \"./types/governance_converters\";\nimport { defaultAgent } from \"./utils/agent.utils\";\nimport {\n asciiStringToByteArray,\n uint8ArrayToBigInt,\n} from \"./utils/converter.utils\";\n\nexport class GovernanceCanister {\n private constructor(\n private readonly canisterId: Principal,\n private readonly service: GovernanceService,\n private readonly certifiedService: GovernanceService\n ) {\n this.canisterId = canisterId;\n this.service = service;\n this.certifiedService = certifiedService;\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 return new GovernanceCanister(canisterId, service, certifiedService);\n }\n\n /**\n * Returns the list of neurons controlled by the caller.\n *\n * If an array of neuron IDs is provided, precisely those neurons will be fetched.\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 * TODO: Decide: The library method is getNeurons but the raw method is list_neurons. Do we want this inconsistency?\n */\n public getNeurons = async ({\n certified = true,\n principal,\n neuronIds,\n }: {\n certified: boolean;\n principal: Principal;\n neuronIds?: NeuronId[];\n }): Promise<NeuronInfo[]> => {\n const rawRequest = fromListNeurons(neuronIds);\n const raw_response = await this.getGovernanceService(\n certified\n ).list_neurons(rawRequest);\n return toArrayOfNeuronInfo(raw_response, principal);\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 response = await this.getGovernanceService(\n certified\n ).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: ListProposalInfo = fromListProposalsRequest(request);\n const rawResponse = await this.getGovernanceService(\n certified\n ).list_proposals(rawRequest);\n return toListProposalsResponse(rawResponse);\n };\n\n public stakeNeuron = async ({\n stake,\n principal,\n ledgerCanister,\n }: {\n stake: ICP;\n principal: Principal;\n ledgerCanister: LedgerCanister;\n }): Promise<NeuronId | StakeNeuronError> => {\n if (stake.toE8s() < E8S_PER_ICP) {\n return new InsufficientAmount(ICP.fromString(\"1\") as ICP);\n }\n\n const nonceBytes = new Uint8Array(randomBytes(8));\n const nonce = uint8ArrayToBigInt(nonceBytes);\n const toSubAccount = this.buildNeuronStakeSubAccount(nonceBytes, principal);\n const accountIdentifier = AccountIdentifier.fromPrincipal({\n principal: this.canisterId,\n subAccount: toSubAccount,\n });\n\n // Send amount to the ledger.\n const response = await ledgerCanister.transfer({\n memo: nonce,\n amount: stake,\n to: accountIdentifier,\n // TODO: Support subaccounts\n });\n\n if (typeof response !== \"bigint\") {\n // TransferError\n return new StakeNeuronTransferError(response);\n }\n\n // Notify the governance of the transaction so that the neuron is created.\n const neuronId = this.claimOrRefreshNeuronFromAccount({\n controller: principal,\n memo: nonce,\n });\n\n // Typescript was complaining with `neuronId || new NeuronNotFound()`:\n // \"Type 'undefined' is not assignable to type 'bigint | StakeNeuronError | TransferError'\"\n // hence the explicit check.\n return neuronId === undefined ? new CouldNotClaimNeuronError() : neuronId;\n };\n\n /**\n * Returns single proposal info\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 getProposalInfo = async ({\n proposalId,\n certified = true,\n }: {\n proposalId: bigint;\n certified?: boolean;\n }): Promise<ProposalInfo | undefined> => {\n const [proposalInfo]: [] | [RawProposalInfo] =\n await this.getGovernanceService(certified).get_proposal_info(proposalId);\n return proposalInfo ? toProposalInfo(proposalInfo) : undefined;\n };\n\n /**\n * Gets the NeuronID of a newly created neuron.\n */\n public claimOrRefreshNeuronFromAccount = async (\n request: ClaimOrRefreshNeuronFromAccount\n ): Promise<NeuronId | undefined> => {\n // Note: This is an update call so the certified and uncertified services are identical in this case,\n // however using the certified service provides protection in case that changes.\n const service = this.certifiedService;\n const response = await service.claim_or_refresh_neuron_from_account({\n controller: request.controller ? [request.controller] : [],\n memo: request.memo,\n });\n\n const result = response.result;\n if (result.length && \"NeuronId\" in result[0]) {\n return result[0].NeuronId.id;\n }\n };\n\n private buildNeuronStakeSubAccount = (\n nonce: Uint8Array,\n principal: Principal\n ): SubAccount => {\n const padding = asciiStringToByteArray(\"neuron-stake\");\n const shaObj = sha256.create();\n shaObj.update([0x0c, ...padding, ...principal.toUint8Array(), ...nonce]);\n return SubAccount.fromBytes(new Uint8Array(shaObj.array())) as SubAccount;\n };\n\n private getGovernanceService(certified: boolean): GovernanceService {\n return certified ? this.certifiedService : this.service;\n }\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], []),\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", "import { 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 ListNeurons as RawListNeurons,\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\nconst fromProposalId = (proposalId: ProposalId): RawNeuronId => ({\n id: proposalId,\n});\n\nconst fromNeuronId = (neuronId: NeuronId): RawNeuronId => ({\n id: neuronId,\n});\n\nconst fromFollowees = (followees: Array<NeuronId>): RawFollowees => ({\n followees: followees.map(fromNeuronId),\n});\n\nconst 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\nconst 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: 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 ? [fromNodeProvider(rewardNodeProvider.nodeProvider)]\n : [],\n amount_e8s: rewardNodeProvider.amountE8s,\n reward_mode:\n rewardNodeProvider.rewardMode != null\n ? [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 ? [fromNodeProvider(r.nodeProvider)]\n : [],\n amount_e8s: r.amountE8s,\n reward_mode:\n r.rewardMode != null ? [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 ? [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 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\nconst 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(fromNeuronId),\n },\n };\n }\n if (\"ClaimOrRefresh\" in command) {\n const claimOrRefresh = command.ClaimOrRefresh;\n return {\n ClaimOrRefresh: {\n by: claimOrRefresh.by ? [fromClaimOrRefreshBy(claimOrRefresh.by)] : [],\n },\n };\n }\n if (\"Configure\" in command) {\n const configure = command.Configure;\n return {\n Configure: {\n operation: configure.operation\n ? [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 ? [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 ? [fromAction(makeProposal.action)] : [],\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 ? [fromAccountIdentifier(disburse.toAccountId)]\n : [],\n amount: disburse.amount ? [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\nconst 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\nconst fromChange = (change: Change): RawChange => {\n if (\"ToRemove\" in change) {\n return {\n ToRemove: fromNodeProvider(change.ToRemove),\n };\n }\n if (\"ToAdd\" in change) {\n return {\n ToAdd: 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\nconst fromNodeProvider = (nodeProvider: NodeProvider): RawNodeProvider => {\n return {\n id: nodeProvider.id != null ? [Principal.fromText(nodeProvider.id)] : [],\n reward_account:\n nodeProvider.rewardAccount != null\n ? [fromAccountIdentifier(nodeProvider.rewardAccount)]\n : [],\n };\n};\n\nconst fromAmount = (amount: E8s): Amount => ({\n e8s: amount,\n});\n\nconst fromAccountIdentifier = (\n accountIdentifier: AccountIdentifier\n): RawAccountIdentifier => {\n const bytes: Uint8Array = accountIdentifierToBytes(accountIdentifier);\n return {\n hash: arrayBufferToArrayOfNumber(bytes),\n };\n};\n\nconst fromRewardMode = (rewardMode: RewardMode): RawRewardMode => {\n if (\"RewardToNeuron\" in rewardMode) {\n return {\n RewardToNeuron: {\n dissolve_delay_seconds: rewardMode.RewardToNeuron.dissolveDelaySeconds,\n },\n };\n } else if (\"RewardToAccount\" in rewardMode) {\n return {\n RewardToAccount: {\n to_account:\n rewardMode.RewardToAccount.toAccount != null\n ? [fromAccountIdentifier(rewardMode.RewardToAccount.toAccount)]\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\nconst 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\nexport const fromListNeurons = (neuronIds?: NeuronId[]): RawListNeurons => ({\n neuron_ids: neuronIds ?? [],\n include_neurons_readable_by_caller: neuronIds ? false : true,\n});\n\nexport const fromManageNeuron = ({\n id,\n command,\n neuronIdOrSubaccount,\n}: ManageNeuron): RawManageNeuron => ({\n id: id ? [fromNeuronId(id)] : [],\n command: command ? [fromCommand(command)] : [],\n neuron_id_or_subaccount: neuronIdOrSubaccount\n ? [fromNeuronIdOrSubaccount(neuronIdOrSubaccount)]\n : [],\n});\n\nexport const fromClaimNeuronRequest = ({\n publicKey,\n nonce,\n dissolveDelayInSecs,\n}: ClaimNeuronRequest): [Array<number>, bigint, bigint] => [\n arrayBufferToArrayOfNumber(publicKey),\n nonce,\n dissolveDelayInSecs,\n];\n\nexport const fromListProposalsRequest = ({\n includeRewardStatus,\n beforeProposal,\n excludeTopic,\n includeStatus,\n limit,\n}: ListProposalsRequest): ListProposalInfo => {\n return {\n include_reward_status: includeRewardStatus,\n before_proposal: beforeProposal ? [fromProposalId(beforeProposal)] : [],\n limit: limit,\n exclude_topic: excludeTopic,\n include_status: includeStatus,\n };\n};\n\n/* Protobuf is not supported yet\nexport const 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\nexport const fromClaimOrRefreshNeuronRequest = (\n request: ClaimOrRefreshNeuronRequest\n): RawManageNeuron => {\n const rawCommand: RawCommand = {\n ClaimOrRefresh: { by: [{ NeuronIdOrSubaccount: {} }] },\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\nexport const 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\nexport const 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\nexport const 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\nexport const 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\nexport const 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\nexport const 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\nexport const 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\nexport const 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\nexport const fromSplitRequest = (request: SplitRequest): RawManageNeuron => {\n const rawCommand: RawCommand = {\n Split: {\n amount_e8s: request.amount,\n },\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\nexport const 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\nexport const 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\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n};\n\nexport const 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: [fromAction(request.action)],\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\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", "import { 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\nconst toNeuronInfo = ({\n neuronId,\n principalString,\n neuronInfo,\n rawNeuron,\n}: {\n neuronId: bigint;\n principalString: string;\n neuronInfo: RawNeuronInfo;\n rawNeuron?: RawNeuron;\n}): NeuronInfo => {\n const fullNeuron = rawNeuron\n ? toNeuron({ neuron: rawNeuron, principalString })\n : undefined;\n return {\n neuronId: neuronId,\n dissolveDelaySeconds: neuronInfo.dissolve_delay_seconds,\n recentBallots: neuronInfo.recent_ballots.map(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\nconst toNeuron = ({\n neuron,\n principalString,\n}: {\n neuron: RawNeuron;\n principalString: string;\n}): Neuron => ({\n id: neuron.id.length ? 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(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 ? toDissolveState(neuron.dissolve_state[0])\n : undefined,\n followees: neuron.followees.map(([topic, followees]) =>\n toFollowees({ topic, followees })\n ),\n});\n\nconst toBallotInfo = ({ vote, proposal_id }: RawBallotInfo): BallotInfo => ({\n vote,\n proposalId: proposal_id.length ? toNeuronId(proposal_id[0]) : undefined,\n});\n\nconst toDissolveState = (dissolveState: RawDissolveState): 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\nconst toFollowees = ({\n topic,\n followees,\n}: {\n topic: number;\n followees: RawFollowees;\n}): Followees => ({\n topic,\n followees: followees.followees.map(toNeuronId),\n});\n\nconst toNeuronId = ({ id }: RawNeuronId): NeuronId => id;\n\nconst 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\nconst toBallot = ({\n neuronId,\n ballot,\n}: {\n neuronId: bigint;\n ballot: RawBallot;\n}): Ballot => {\n const { vote, voting_power: votingPower } = ballot;\n\n return {\n neuronId,\n vote,\n votingPower,\n };\n};\n\nconst toProposal = ({\n title,\n url,\n action,\n summary,\n}: RawProposal): Proposal => ({\n title: title.length ? title[0] : undefined,\n url,\n action: action.length ? toAction(action[0]) : undefined,\n summary,\n});\n\nconst toAction = (action: RawAction): Action => {\n if (\"ExecuteNnsFunction\" in action) {\n const executeNnsFunction = action.ExecuteNnsFunction;\n const payloadBytes = arrayOfNumberToArrayBuffer(executeNnsFunction.payload);\n const payload = payloadBytes.byteLength\n ? convertNnsFunctionPayload(executeNnsFunction.nns_function, payloadBytes)\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 ? toNeuronId(manageNeuron.id[0]) : undefined,\n command: manageNeuron.command.length\n ? toCommand(manageNeuron.command[0])\n : undefined,\n neuronIdOrSubaccount: manageNeuron.neuron_id_or_subaccount.length\n ? toNeuronIdOrSubaccount(manageNeuron.neuron_id_or_subaccount[0])\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 ? toNodeProvider(rewardNodeProvider.node_provider[0])\n : undefined,\n amountE8s: rewardNodeProvider.amount_e8s,\n rewardMode: rewardNodeProvider.reward_mode.length\n ? 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 ? toNodeProvider(r.node_provider[0])\n : undefined,\n amountE8s: r.amount_e8s,\n rewardMode: r.reward_mode.length\n ? 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 ? 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 ([topic, followees]) => toFollowees({ topic, followees })\n ),\n },\n };\n }\n if (\"RegisterKnownNeuron\" in action) {\n const knownNeuron = action.RegisterKnownNeuron;\n return {\n RegisterKnownNeuron: toKnownNeuron(knownNeuron),\n };\n }\n\n throw new UnsupportedValueError(action);\n};\n\nconst 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\nconst 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(toNeuronId),\n },\n };\n }\n if (\"ClaimOrRefresh\" in command) {\n const claimOrRefresh = command.ClaimOrRefresh;\n return {\n ClaimOrRefresh: {\n by: claimOrRefresh.by.length\n ? 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 ? 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 ? 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 ? 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 ? toAccountIdentifier(disburse.to_account[0])\n : undefined,\n amount: disburse.amount.length\n ? 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\nconst 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\nconst toChange = (change: RawChange): Change => {\n if (\"ToRemove\" in change) {\n return {\n ToRemove: toNodeProvider(change.ToRemove),\n };\n }\n if (\"ToAdd\" in change) {\n return {\n ToAdd: toNodeProvider(change.ToAdd),\n };\n }\n throw new UnsupportedValueError(change);\n};\n\nconst toNodeProvider = (nodeProvider: RawNodeProvider): NodeProvider => {\n return {\n id: nodeProvider.id.length ? nodeProvider.id[0].toString() : undefined,\n rewardAccount: nodeProvider.reward_account.length\n ? toAccountIdentifier(nodeProvider.reward_account[0])\n : undefined,\n };\n};\n\nconst toAmount = (amount: RawAmount): E8s => {\n return amount.e8s;\n};\n\nconst toAccountIdentifier = (\n accountIdentifier: RawAccountIdentifier\n): AccountIdentifier =>\n accountIdentifierFromBytes(new Uint8Array(accountIdentifier.hash));\n\nconst toRewardMode = (rewardMode: RawRewardMode): RewardMode => {\n if (\"RewardToNeuron\" in rewardMode) {\n return {\n RewardToNeuron: {\n dissolveDelaySeconds: 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 ? toAccountIdentifier(rewardMode.RewardToAccount.to_account[0])\n : undefined,\n },\n };\n } else {\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(rewardMode);\n }\n};\n\nconst 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// prettier-ignore\n// eslint-disable-next-line\nconst throwUnrecognisedTypeError = ({ name, value, }: { name: string; value: any; }): Error => {\n return new Error(`Unrecognised ${name} type - ${JSON.stringify(value)}`);\n};\n\nexport const toProposalInfo = (\n proposalInfo: RawProposalInfo\n): ProposalInfo => ({\n id: proposalInfo.id.length ? toNeuronId(proposalInfo.id[0]) : undefined,\n ballots: proposalInfo.ballots.map((b) =>\n toBallot({ neuronId: b[0], ballot: b[1] })\n ),\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 ? toProposal(proposalInfo.proposal[0])\n : undefined,\n proposer: proposalInfo.proposer.length\n ? toNeuronId(proposalInfo.proposer[0])\n : undefined,\n latestTally: proposalInfo.latest_tally.length\n ? 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\nexport const toArrayOfNeuronInfo = (\n { neuron_infos, full_neurons }: RawListNeuronsResponse,\n principal: Principal\n): Array<NeuronInfo> =>\n neuron_infos.map(([id, neuronInfo]) =>\n toNeuronInfo({\n neuronId: id,\n principalString: principal.toString(),\n neuronInfo,\n rawNeuron: full_neurons.find(\n (neuron) => neuron.id.length && neuron.id[0].id === id\n ),\n })\n );\n\nexport const toListProposalsResponse = ({\n proposal_info,\n}: RawListProposalInfoResponse): ListProposalsResponse => ({\n proposals: proposal_info.map(toProposalInfo),\n});\n\nexport const toKnownNeuron = ({\n id,\n known_neuron_data,\n}: RawKnownNeuron): KnownNeuron => {\n return {\n id: id[0]?.id ?? BigInt(0),\n name: known_neuron_data[0]?.name ?? \"\",\n description: known_neuron_data[0]?.description[0] ?? \"\",\n };\n};\n\n/* Protobuf is not supported yet.\nexport const toSpawnResponse = (\n response: PbManageNeuronResponse\n): SpawnResponse => {\n const createdNeuronId = response.getSpawn()?.getCreatedNeuronId();\n\n if (!createdNeuronId) {\n throw throwUnrecognisedTypeError(\"response\", response);\n }\n\n return {\n createdNeuronId: BigInt(createdNeuronId.getId()),\n };\n};\n*/\n\nexport const toSplitResponse = (\n response: RawManageNeuronResponse\n): 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 throwUnrecognisedTypeError({ name: \"response\", value: response });\n};\n\n/* Protobuf is not supported yet.\nexport const toDisburseResponse = (\n response: PbManageNeuronResponse\n): DisburseResponse => {\n const blockHeight = response.getDisburse()?.getTransferBlockHeight();\n\n if (!blockHeight) {\n throw throwUnrecognisedTypeError(\"response\", response);\n }\n\n return {\n transferBlockHeight: BigInt(blockHeight),\n };\n};\n*/\n\nexport const 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 throwUnrecognisedTypeError({ name: \"response\", value: response });\n};\n\nexport const 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 throwUnrecognisedTypeError({ name: \"response\", value: response });\n};\n\n/* Protobuf is not supported yet.\nexport const 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 throwUnrecognisedTypeError(\"response\", response);\n};\n*/\n\nexport const 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 throwUnrecognisedTypeError({ name: \"response\", value: response });\n};\n", "// HttpAgent options that can be used at construction.\nimport { Agent } from \"@dfinity/agent\";\nimport { Principal } from \"@dfinity/principal\";\nimport { GovernanceService } from \"../../candid/governance.idl\";\nimport { ICP } from \"../icp\";\nimport { TransferError } from \"./ledger\";\n\nexport class StakeNeuronError {}\n\nexport class StakeNeuronTransferError extends StakeNeuronError {\n constructor(public readonly err: TransferError) {\n super();\n }\n}\nexport class CouldNotClaimNeuronError extends StakeNeuronError {}\nexport class InsufficientAmount extends StakeNeuronError {\n constructor(public readonly minimumAmount: ICP) {\n super();\n }\n}\nexport interface GovernanceCanisterOptions {\n // The agent to use when communicating with the governance canister.\n agent?: Agent;\n // The governance canister's ID.\n canisterId?: Principal;\n // The default service to use when calling into the IC. Primarily overridden\n // in test for mocking.\n serviceOverride?: GovernanceService;\n // The service to use when making 'certified' calls into the IC (as in, using\n // update calls in place of queries). Primarily overridden in test for\n // mocking.\n certifiedServiceOverride?: GovernanceService;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }