@dfinity/nns 0.4.0 → 0.4.1

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 (66) hide show
  1. package/dist/candid/genesis_token.certified.idl.js +37 -0
  2. package/dist/candid/genesis_token.did +30 -0
  3. package/dist/candid/genesis_token.idl.d.ts +10 -0
  4. package/dist/candid/genesis_token.idl.js +37 -0
  5. package/dist/candid/governance.certified.idl.js +14 -0
  6. package/dist/candid/governance.did +18 -4
  7. package/dist/candid/governance.idl.js +23 -5
  8. package/dist/candid/governanceTypes.d.ts +19 -13
  9. package/dist/candid/payloads.did +127 -21
  10. package/dist/candid/payloads.idl.d.ts +28 -1
  11. package/dist/candid/payloads.idl.js +97 -3
  12. package/dist/cjs/index.cjs.js +36 -33
  13. package/dist/cjs/index.cjs.js.map +3 -3
  14. package/dist/esm/account_identifier.js +1 -1
  15. package/dist/esm/{chunk-L4BUBLWY.js → chunk-E6UFXMWU.js} +20 -20
  16. package/dist/esm/{chunk-L4BUBLWY.js.map → chunk-E6UFXMWU.js.map} +2 -2
  17. package/dist/esm/{chunk-PKY54KPG.js → chunk-FL7E4DL3.js} +3 -3
  18. package/dist/esm/{chunk-PKY54KPG.js.map → chunk-FL7E4DL3.js.map} +1 -1
  19. package/dist/esm/chunk-HPCMNLTU.js +2 -0
  20. package/dist/esm/{chunk-7RUPLQYT.js.map → chunk-HPCMNLTU.js.map} +3 -3
  21. package/dist/esm/chunk-KUIJF2IJ.js +4 -0
  22. package/dist/esm/chunk-KUIJF2IJ.js.map +7 -0
  23. package/dist/esm/chunk-KXYKDST6.js +17 -0
  24. package/dist/esm/{chunk-BRAPLAM7.js.map → chunk-KXYKDST6.js.map} +3 -3
  25. package/dist/esm/chunk-MTPVFXPH.js +2 -0
  26. package/dist/esm/{chunk-EWMNJTAM.js.map → chunk-MTPVFXPH.js.map} +1 -1
  27. package/dist/esm/chunk-NOBP3Q32.js +7 -0
  28. package/dist/esm/chunk-NOBP3Q32.js.map +7 -0
  29. package/dist/esm/chunk-ONAVPXOT.js +2 -0
  30. package/dist/esm/chunk-ONAVPXOT.js.map +7 -0
  31. package/dist/esm/chunk-QNJXXPDD.js +2 -0
  32. package/dist/esm/chunk-QNJXXPDD.js.map +7 -0
  33. package/dist/esm/{chunk-CY2PTZ5N.js → chunk-XMQ7XZ3Q.js} +2 -2
  34. package/dist/esm/{chunk-CY2PTZ5N.js.map → chunk-XMQ7XZ3Q.js.map} +1 -1
  35. package/dist/esm/genesis_token.js +2 -0
  36. package/dist/esm/genesis_token.js.map +7 -0
  37. package/dist/esm/governance.js +1 -1
  38. package/dist/esm/icp.js +1 -1
  39. package/dist/esm/index.js +1 -1
  40. package/dist/esm/index.js.map +3 -3
  41. package/dist/esm/ledger.js +1 -1
  42. package/dist/proto/governance.proto +287 -0
  43. package/dist/proto/governance_pb.d.ts +1055 -0
  44. package/dist/proto/governance_pb.js +7806 -0
  45. package/dist/types/canisters/governance/request.converters.d.ts +15 -0
  46. package/dist/types/canisters/governance/request.proto.converters.d.ts +15 -0
  47. package/dist/types/canisters/governance/response.converters.d.ts +2 -0
  48. package/dist/types/canisters/governance/response.proto.converters.d.ts +1 -0
  49. package/dist/types/canisters/governance/services.d.ts +7 -1
  50. package/dist/types/constants/canister_ids.d.ts +1 -0
  51. package/dist/types/errors/governance.errors.d.ts +7 -1
  52. package/dist/types/genesis_token.d.ts +17 -0
  53. package/dist/types/governance.d.ts +49 -1
  54. package/dist/types/index.d.ts +2 -0
  55. package/dist/types/types/governance.d.ts +1 -0
  56. package/dist/types/types/governance_converters.d.ts +10 -5
  57. package/dist/types/utils/account_identifier.utils.d.ts +5 -0
  58. package/dist/types/utils/accounts.utils.d.ts +6 -0
  59. package/dist/types/utils/converter.utils.d.ts +0 -5
  60. package/dist/types/utils/number.utils.d.ts +1 -0
  61. package/package.json +17 -17
  62. package/dist/esm/chunk-7RUPLQYT.js +0 -4
  63. package/dist/esm/chunk-BRAPLAM7.js +0 -18
  64. package/dist/esm/chunk-DEPEAMHA.js +0 -3
  65. package/dist/esm/chunk-DEPEAMHA.js.map +0 -7
  66. package/dist/esm/chunk-EWMNJTAM.js +0 -2
@@ -1,3 +0,0 @@
1
- import{a as io,b as co}from"./chunk-CY2PTZ5N.js";import{a as _,b as t,d as Je,e as uo,f as lo,h as mo}from"./chunk-L4BUBLWY.js";import{a as mt,d as Le,e as eo,f as He,g as oo,h as to,j as no,k as ro,l as so,m as ao}from"./chunk-BRAPLAM7.js";import{b as _o,d as po}from"./chunk-EWMNJTAM.js";import{a as De,c as je}from"./chunk-PKY54KPG.js";var fo=De((We,Ro)=>{var z=Le(),p=z.Buffer;function No(e,o){for(var n in e)o[n]=e[n]}p.from&&p.alloc&&p.allocUnsafe&&p.allocUnsafeSlow?Ro.exports=z:(No(z,We),We.Buffer=h);function h(e,o,n){return p(e,o,n)}No(p,h);h.from=function(e,o,n){if(typeof e=="number")throw new TypeError("Argument must not be a number");return p(e,o,n)};h.alloc=function(e,o,n){if(typeof e!="number")throw new TypeError("Argument must be a number");var r=p(e);return o!==void 0?typeof n=="string"?r.fill(o,n):r.fill(o):r.fill(0),r};h.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return p(e)};h.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return z.SlowBuffer(e)}});var wo=De((Xt,ze)=>{"use strict";var Xe=65536,Nt=4294967295;function Rt(){throw new Error(`Secure random number generation is not supported by this browser.
2
- Use Chrome, Firefox or Internet Explorer 11`)}var ft=fo().Buffer,Q=window.crypto||window.msCrypto;Q&&Q.getRandomValues?ze.exports=wt:ze.exports=Rt;function wt(e,o){if(e>Nt)throw new RangeError("requested too many random bytes");var n=ft.allocUnsafe(e);if(e>0)if(e>Xe)for(var r=0;r<e;r+=Xe)Q.getRandomValues(n.slice(r,r+Xe));else Q.getRandomValues(n);return typeof o=="function"?process.nextTick(function(){o(null,n)}):n}});var lt=je(mt()),_t=je(wo());var vo=({IDL:e})=>{let o=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)}),d=e.Record({id:e.Opt(e.Principal),reward_account:e.Opt(a)}),R=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}),P=e.Record({day_after_genesis:e.Nat64,actual_timestamp_seconds:e.Nat64,distributed_e8s_equivalent:e.Nat64,settled_proposals:e.Vec(n)}),m=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}),c=e.Record({error_message:e.Text,error_type:e.Int32}),S=e.Record({vote:e.Int32,voting_power:e.Nat64}),T=e.Record({no:e.Nat64,yes:e.Nat64,total:e.Nat64,timestamp_seconds:e.Nat64}),f=e.Record({name:e.Text,description:e.Opt(e.Text)}),V=e.Record({id:e.Opt(n),known_neuron_data:e.Opt(f)}),x=e.Record({new_controller:e.Opt(e.Principal),nonce:e.Opt(e.Nat64)}),M=e.Record({amount_e8s:e.Nat64}),oe=e.Record({topic:e.Int32,followees:e.Vec(n)}),k=e.Record({controller:e.Opt(e.Principal),memo:e.Nat64}),te=e.Variant({NeuronIdOrSubaccount:e.Record({}),MemoAndController:k,Memo:e.Nat64}),C=e.Record({by:e.Opt(te)}),ne=e.Record({hot_key_to_remove:e.Opt(e.Principal)}),re=e.Record({new_hot_key:e.Opt(e.Principal)}),se=e.Record({additional_dissolve_delay_seconds:e.Nat32}),ae=e.Record({dissolve_timestamp_seconds:e.Nat64}),ie=e.Variant({RemoveHotKey:ne,AddHotKey:re,StopDissolving:e.Record({}),StartDissolving:e.Record({}),IncreaseDissolveDelay:se,JoinCommunityFund:e.Record({}),SetDissolveTimestamp:ae}),A=e.Record({operation:e.Opt(ie)}),ce=e.Record({vote:e.Int32,proposal:e.Opt(n)}),F=e.Record({source_neuron_id:e.Opt(n)}),E=e.Record({dissolve_delay_seconds:e.Nat64,kyc_verified:e.Bool,amount_e8s:e.Nat64,new_controller:e.Opt(e.Principal),nonce:e.Nat64}),q=e.Record({percentage_to_merge:e.Nat32}),de=e.Record({e8s:e.Nat64}),K=e.Record({to_account:e.Opt(a),amount:e.Opt(de)}),ue=e.Variant({Spawn:x,Split:M,Follow:oe,ClaimOrRefresh:C,Configure:A,RegisterVote:ce,Merge:F,DisburseToNeuron:E,MakeProposal:o,MergeMaturity:q,Disburse:K}),w=e.Variant({Subaccount:e.Vec(e.Nat8),NeuronId:n}),B=e.Record({id:e.Opt(n),command:e.Opt(ue),neuron_id_or_subaccount:e.Opt(w)}),le=e.Record({nns_function:e.Int32,payload:e.Vec(e.Nat8)}),_e=e.Record({dissolve_delay_seconds:e.Nat64}),pe=e.Record({to_account:e.Opt(a)}),me=e.Variant({RewardToNeuron:_e,RewardToAccount:pe}),U=e.Record({node_provider:e.Opt(d),reward_mode:e.Opt(me),amount_e8s:e.Nat64}),Ne=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r))}),G=e.Record({rewards:e.Vec(U)}),Re=e.Record({principals:e.Vec(e.Principal)}),fe=e.Variant({ToRemove:d,ToAdd:d}),we=e.Record({change:e.Opt(fe)}),ve=e.Record({motion_text:e.Text}),ge=e.Variant({RegisterKnownNeuron:V,ManageNeuron:B,ExecuteNnsFunction:le,RewardNodeProvider:U,SetDefaultFollowees:Ne,RewardNodeProviders:G,ManageNetworkEconomics:R,ApproveGenesisKyc:Re,AddOrRemoveNodeProvider:we,Motion:ve});o.fill(e.Record({url:e.Text,title:e.Opt(e.Text),action:e.Opt(ge),summary:e.Text}));let ye=e.Record({current_deadline_timestamp_seconds:e.Nat64}),Oe=e.Record({id:e.Opt(n),failure_reason:e.Opt(c),ballots:e.Vec(e.Tuple(e.Nat64,S)),proposal_timestamp_seconds:e.Nat64,reward_event_round:e.Nat64,failed_timestamp_seconds:e.Nat64,reject_cost_e8s:e.Nat64,latest_tally:e.Opt(T),decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(n),wait_for_quiet_state:e.Opt(ye),executed_timestamp_seconds:e.Nat64}),he=e.Variant({Spawn:x,Split:M,Configure:A,Merge:F,DisburseToNeuron:E,ClaimOrRefreshNeuron:C,MergeMaturity:q,Disburse:K}),be=e.Record({command:e.Opt(he),timestamp:e.Nat64}),j=e.Record({vote:e.Int32,proposal_id:e.Opt(n)}),Pe=e.Variant({DissolveDelaySeconds:e.Nat64,WhenDissolvedTimestampSeconds:e.Nat64}),v=e.Record({id:e.Opt(n),controller:e.Opt(e.Principal),recent_ballots:e.Vec(j),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(Pe),followees:e.Vec(e.Tuple(e.Int32,r)),neuron_fees_e8s:e.Nat64,transfer:e.Opt(m),known_neuron_data:e.Opt(f)}),pt=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(d),economics:e.Opt(R),latest_reward_event:e.Opt(P),to_claim_transfers:e.Vec(m),short_voting_period_seconds:e.Nat64,proposals:e.Vec(e.Tuple(e.Nat64,Oe)),in_flight_commands:e.Vec(e.Tuple(e.Nat64,be)),neurons:e.Vec(e.Tuple(e.Nat64,v)),genesis_timestamp_seconds:e.Nat64}),g=e.Variant({Ok:e.Null,Err:c}),Se=e.Variant({Error:c,NeuronId:n}),Te=e.Record({result:e.Opt(Se)}),H=e.Variant({Ok:v,Err:c}),Ve=e.Variant({Ok:G,Err:c}),J=e.Record({dissolve_delay_seconds:e.Nat64,recent_ballots:e.Vec(j),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(f),voting_power:e.Nat64,age_seconds:e.Nat64}),W=e.Variant({Ok:J,Err:c}),y=e.Record({id:e.Opt(n),status:e.Int32,topic:e.Int32,failure_reason:e.Opt(c),ballots:e.Vec(e.Tuple(e.Nat64,S)),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(T),reward_status:e.Int32,decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(n),executed_timestamp_seconds:e.Nat64}),xe=e.Record({known_neurons:e.Vec(V)}),Me=e.Record({neuron_ids:e.Vec(e.Nat64),include_neurons_readable_by_caller:e.Bool}),ke=e.Record({neuron_infos:e.Vec(e.Tuple(e.Nat64,J)),full_neurons:e.Vec(v)}),Ce=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)}),Ae=e.Record({proposal_info:e.Vec(y)}),O=e.Record({created_neuron_id:e.Opt(n)}),Fe=e.Record({refreshed_neuron_id:e.Opt(n)}),Ee=e.Record({proposal_id:e.Opt(n)}),qe=e.Record({merged_maturity_e8s:e.Nat64,new_stake_e8s:e.Nat64}),Ke=e.Record({transfer_block_height:e.Nat64}),Be=e.Variant({Error:c,Spawn:O,Split:O,Follow:e.Record({}),ClaimOrRefresh:Fe,Configure:e.Record({}),RegisterVote:e.Record({}),Merge:e.Record({}),DisburseToNeuron:O,MakeProposal:Ee,MergeMaturity:qe,Disburse:Ke}),Ue=e.Record({command:e.Opt(Be)}),Ge=e.Record({reward_account:e.Opt(a)});return e.Service({claim_gtc_neurons:e.Func([e.Principal,e.Vec(n)],[g],[]),claim_or_refresh_neuron_from_account:e.Func([k],[Te],[]),get_build_metadata:e.Func([],[e.Text],[]),get_full_neuron:e.Func([e.Nat64],[H],[]),get_full_neuron_by_id_or_subaccount:e.Func([w],[H],[]),get_monthly_node_provider_rewards:e.Func([],[Ve],[]),get_neuron_ids:e.Func([],[e.Vec(e.Nat64)],[]),get_neuron_info:e.Func([e.Nat64],[W],[]),get_neuron_info_by_id_or_subaccount:e.Func([w],[W],[]),get_pending_proposals:e.Func([],[e.Vec(y)],[]),get_proposal_info:e.Func([e.Nat64],[e.Opt(y)],[]),list_known_neurons:e.Func([],[xe],[]),list_neurons:e.Func([Me],[ke],[]),list_proposals:e.Func([Ce],[Ae],[]),manage_neuron:e.Func([B],[Ue],[]),transfer_gtc_neuron:e.Func([n,n],[g],[]),update_node_provider:e.Func([Ge],[g],[])})};var go=({IDL:e})=>{let o=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)}),d=e.Record({id:e.Opt(e.Principal),reward_account:e.Opt(a)}),R=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}),P=e.Record({day_after_genesis:e.Nat64,actual_timestamp_seconds:e.Nat64,distributed_e8s_equivalent:e.Nat64,settled_proposals:e.Vec(n)}),m=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}),c=e.Record({error_message:e.Text,error_type:e.Int32}),S=e.Record({vote:e.Int32,voting_power:e.Nat64}),T=e.Record({no:e.Nat64,yes:e.Nat64,total:e.Nat64,timestamp_seconds:e.Nat64}),f=e.Record({name:e.Text,description:e.Opt(e.Text)}),V=e.Record({id:e.Opt(n),known_neuron_data:e.Opt(f)}),x=e.Record({new_controller:e.Opt(e.Principal),nonce:e.Opt(e.Nat64)}),M=e.Record({amount_e8s:e.Nat64}),oe=e.Record({topic:e.Int32,followees:e.Vec(n)}),k=e.Record({controller:e.Opt(e.Principal),memo:e.Nat64}),te=e.Variant({NeuronIdOrSubaccount:e.Record({}),MemoAndController:k,Memo:e.Nat64}),C=e.Record({by:e.Opt(te)}),ne=e.Record({hot_key_to_remove:e.Opt(e.Principal)}),re=e.Record({new_hot_key:e.Opt(e.Principal)}),se=e.Record({additional_dissolve_delay_seconds:e.Nat32}),ae=e.Record({dissolve_timestamp_seconds:e.Nat64}),ie=e.Variant({RemoveHotKey:ne,AddHotKey:re,StopDissolving:e.Record({}),StartDissolving:e.Record({}),IncreaseDissolveDelay:se,JoinCommunityFund:e.Record({}),SetDissolveTimestamp:ae}),A=e.Record({operation:e.Opt(ie)}),ce=e.Record({vote:e.Int32,proposal:e.Opt(n)}),F=e.Record({source_neuron_id:e.Opt(n)}),E=e.Record({dissolve_delay_seconds:e.Nat64,kyc_verified:e.Bool,amount_e8s:e.Nat64,new_controller:e.Opt(e.Principal),nonce:e.Nat64}),q=e.Record({percentage_to_merge:e.Nat32}),de=e.Record({e8s:e.Nat64}),K=e.Record({to_account:e.Opt(a),amount:e.Opt(de)}),ue=e.Variant({Spawn:x,Split:M,Follow:oe,ClaimOrRefresh:C,Configure:A,RegisterVote:ce,Merge:F,DisburseToNeuron:E,MakeProposal:o,MergeMaturity:q,Disburse:K}),w=e.Variant({Subaccount:e.Vec(e.Nat8),NeuronId:n}),B=e.Record({id:e.Opt(n),command:e.Opt(ue),neuron_id_or_subaccount:e.Opt(w)}),le=e.Record({nns_function:e.Int32,payload:e.Vec(e.Nat8)}),_e=e.Record({dissolve_delay_seconds:e.Nat64}),pe=e.Record({to_account:e.Opt(a)}),me=e.Variant({RewardToNeuron:_e,RewardToAccount:pe}),U=e.Record({node_provider:e.Opt(d),reward_mode:e.Opt(me),amount_e8s:e.Nat64}),Ne=e.Record({default_followees:e.Vec(e.Tuple(e.Int32,r))}),G=e.Record({rewards:e.Vec(U)}),Re=e.Record({principals:e.Vec(e.Principal)}),fe=e.Variant({ToRemove:d,ToAdd:d}),we=e.Record({change:e.Opt(fe)}),ve=e.Record({motion_text:e.Text}),ge=e.Variant({RegisterKnownNeuron:V,ManageNeuron:B,ExecuteNnsFunction:le,RewardNodeProvider:U,SetDefaultFollowees:Ne,RewardNodeProviders:G,ManageNetworkEconomics:R,ApproveGenesisKyc:Re,AddOrRemoveNodeProvider:we,Motion:ve});o.fill(e.Record({url:e.Text,title:e.Opt(e.Text),action:e.Opt(ge),summary:e.Text}));let ye=e.Record({current_deadline_timestamp_seconds:e.Nat64}),Oe=e.Record({id:e.Opt(n),failure_reason:e.Opt(c),ballots:e.Vec(e.Tuple(e.Nat64,S)),proposal_timestamp_seconds:e.Nat64,reward_event_round:e.Nat64,failed_timestamp_seconds:e.Nat64,reject_cost_e8s:e.Nat64,latest_tally:e.Opt(T),decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(n),wait_for_quiet_state:e.Opt(ye),executed_timestamp_seconds:e.Nat64}),he=e.Variant({Spawn:x,Split:M,Configure:A,Merge:F,DisburseToNeuron:E,ClaimOrRefreshNeuron:C,MergeMaturity:q,Disburse:K}),be=e.Record({command:e.Opt(he),timestamp:e.Nat64}),j=e.Record({vote:e.Int32,proposal_id:e.Opt(n)}),Pe=e.Variant({DissolveDelaySeconds:e.Nat64,WhenDissolvedTimestampSeconds:e.Nat64}),v=e.Record({id:e.Opt(n),controller:e.Opt(e.Principal),recent_ballots:e.Vec(j),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(Pe),followees:e.Vec(e.Tuple(e.Int32,r)),neuron_fees_e8s:e.Nat64,transfer:e.Opt(m),known_neuron_data:e.Opt(f)}),pt=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(d),economics:e.Opt(R),latest_reward_event:e.Opt(P),to_claim_transfers:e.Vec(m),short_voting_period_seconds:e.Nat64,proposals:e.Vec(e.Tuple(e.Nat64,Oe)),in_flight_commands:e.Vec(e.Tuple(e.Nat64,be)),neurons:e.Vec(e.Tuple(e.Nat64,v)),genesis_timestamp_seconds:e.Nat64}),g=e.Variant({Ok:e.Null,Err:c}),Se=e.Variant({Error:c,NeuronId:n}),Te=e.Record({result:e.Opt(Se)}),H=e.Variant({Ok:v,Err:c}),Ve=e.Variant({Ok:G,Err:c}),J=e.Record({dissolve_delay_seconds:e.Nat64,recent_ballots:e.Vec(j),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(f),voting_power:e.Nat64,age_seconds:e.Nat64}),W=e.Variant({Ok:J,Err:c}),y=e.Record({id:e.Opt(n),status:e.Int32,topic:e.Int32,failure_reason:e.Opt(c),ballots:e.Vec(e.Tuple(e.Nat64,S)),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(T),reward_status:e.Int32,decided_timestamp_seconds:e.Nat64,proposal:e.Opt(o),proposer:e.Opt(n),executed_timestamp_seconds:e.Nat64}),xe=e.Record({known_neurons:e.Vec(V)}),Me=e.Record({neuron_ids:e.Vec(e.Nat64),include_neurons_readable_by_caller:e.Bool}),ke=e.Record({neuron_infos:e.Vec(e.Tuple(e.Nat64,J)),full_neurons:e.Vec(v)}),Ce=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)}),Ae=e.Record({proposal_info:e.Vec(y)}),O=e.Record({created_neuron_id:e.Opt(n)}),Fe=e.Record({refreshed_neuron_id:e.Opt(n)}),Ee=e.Record({proposal_id:e.Opt(n)}),qe=e.Record({merged_maturity_e8s:e.Nat64,new_stake_e8s:e.Nat64}),Ke=e.Record({transfer_block_height:e.Nat64}),Be=e.Variant({Error:c,Spawn:O,Split:O,Follow:e.Record({}),ClaimOrRefresh:Fe,Configure:e.Record({}),RegisterVote:e.Record({}),Merge:e.Record({}),DisburseToNeuron:O,MakeProposal:Ee,MergeMaturity:qe,Disburse:Ke}),Ue=e.Record({command:e.Opt(Be)}),Ge=e.Record({reward_account:e.Opt(a)});return e.Service({claim_gtc_neurons:e.Func([e.Principal,e.Vec(n)],[g],[]),claim_or_refresh_neuron_from_account:e.Func([k],[Te],[]),get_build_metadata:e.Func([],[e.Text],["query"]),get_full_neuron:e.Func([e.Nat64],[H],["query"]),get_full_neuron_by_id_or_subaccount:e.Func([w],[H],["query"]),get_monthly_node_provider_rewards:e.Func([],[Ve],[]),get_neuron_ids:e.Func([],[e.Vec(e.Nat64)],["query"]),get_neuron_info:e.Func([e.Nat64],[W],["query"]),get_neuron_info_by_id_or_subaccount:e.Func([w],[W],["query"]),get_pending_proposals:e.Func([],[e.Vec(y)],["query"]),get_proposal_info:e.Func([e.Nat64],[e.Opt(y)],["query"]),list_known_neurons:e.Func([],[xe],["query"]),list_neurons:e.Func([Me],[ke],["query"]),list_proposals:e.Func([Ce],[Ae],["query"]),manage_neuron:e.Func([B],[Ue],[]),transfer_gtc_neuron:e.Func([n,n],[g],[]),update_node_provider:e.Func([Ge],[g],["query"])})};var $=class extends Error{},Y=class extends ${},Z=class extends ${constructor(n){super();this.minimumAmount=n}},X=class extends Error{},l=class extends Error{constructor(n){super();this.detail=n}},i=class extends Error{constructor(o){super("Unsupported value: "+o)}};var Oo=e=>({id:e}),Qe=e=>({id:e}),vt=e=>({followees:e.map(Qe)}),gt=e=>{if("NeuronId"in e)return{NeuronId:{id:e.NeuronId}};if("Subaccount"in e)return{Subaccount:e.Subaccount};throw new i(e)},ho=e=>{if("ExecuteNnsFunction"in e){let o=e.ExecuteNnsFunction;return{ExecuteNnsFunction:{nns_function:o.nnsFunctionId,payload:He(o.payloadBytes)}}}if("ManageNeuron"in e){let o=e.ManageNeuron;return{ManageNeuron:St(o)}}if("ApproveGenesisKyc"in e)return{ApproveGenesisKyc:{principals:e.ApproveGenesisKyc.principals.map(_.fromText)}};if("ManageNetworkEconomics"in e){let o=e.ManageNetworkEconomics;return{ManageNetworkEconomics:{neuron_minimum_stake_e8s:o.neuronMinimumStake,max_proposals_to_keep_per_topic:o.maxProposalsToKeepPerTopic,neuron_management_fee_per_proposal_e8s:o.neuronManagementFeePerProposal,reject_cost_e8s:o.rejectCost,transaction_fee_e8s:o.transactionFee,neuron_spawn_dissolve_delay_seconds:o.neuronSpawnDissolveDelaySeconds,minimum_icp_xdr_rate:o.minimumIcpXdrRate,maximum_node_provider_rewards_e8s:o.maximumNodeProviderRewards}}}if("RewardNodeProvider"in e){let o=e.RewardNodeProvider;return{RewardNodeProvider:{node_provider:o.nodeProvider?[I(o.nodeProvider)]:[],amount_e8s:o.amountE8s,reward_mode:o.rewardMode!=null?[yo(o.rewardMode)]:[]}}}if("RewardNodeProviders"in e)return{RewardNodeProviders:{rewards:e.RewardNodeProviders.rewards.map(n=>({node_provider:n.nodeProvider?[I(n.nodeProvider)]:[],amount_e8s:n.amountE8s,reward_mode:n.rewardMode!=null?[yo(n.rewardMode)]:[]}))}};if("AddOrRemoveNodeProvider"in e){let o=e.AddOrRemoveNodeProvider;return{AddOrRemoveNodeProvider:{change:o.change?[ht(o.change)]:[]}}}if("Motion"in e)return{Motion:{motion_text:e.Motion.motionText}};if("SetDefaultFollowees"in e)return{SetDefaultFollowees:{default_followees:e.SetDefaultFollowees.defaultFollowees.map(n=>[n.topic,vt(n.followees)])}};if("RegisterKnownNeuron"in e){let o=e.RegisterKnownNeuron;return{RegisterKnownNeuron:{id:[{id:o.id}],known_neuron_data:[{name:o.name,description:o.description!==void 0?[o.description]:[]}]}}}throw new i(e)},yt=e=>{if("Split"in e)return{Split:{amount_e8s:e.Split.amount}};if("Follow"in e){let o=e.Follow;return{Follow:{topic:o.topic,followees:o.followees.map(Qe)}}}if("ClaimOrRefresh"in e){let o=e.ClaimOrRefresh;return{ClaimOrRefresh:{by:o.by?[Pt(o.by)]:[]}}}if("Configure"in e){let o=e.Configure;return{Configure:{operation:o.operation?[Ot(o.operation)]:[]}}}if("RegisterVote"in e){let o=e.RegisterVote;return{RegisterVote:{vote:o.vote,proposal:o.proposal?[Oo(o.proposal)]:[]}}}if("DisburseToNeuron"in e){let o=e.DisburseToNeuron;return{DisburseToNeuron:{dissolve_delay_seconds:o.dissolveDelaySeconds,kyc_verified:o.kycVerified,amount_e8s:o.amount,new_controller:o.newController?[_.fromText(o.newController)]:[],nonce:o.nonce}}}if("MergeMaturity"in e)return{MergeMaturity:{percentage_to_merge:e.MergeMaturity.percentageToMerge}};if("MakeProposal"in e){let o=e.MakeProposal;return{MakeProposal:{url:o.url,title:[],action:o.action?[ho(o.action)]:[],summary:o.summary}}}if("Disburse"in e){let o=e.Disburse;return{Disburse:{to_account:o.toAccountId?[$e(o.toAccountId)]:[],amount:o.amount?[bt(o.amount)]:[]}}}if("Spawn"in e){let o=e.Spawn;return{Spawn:{new_controller:o.newController?[_.fromText(o.newController)]:[],nonce:[]}}}if("Merge"in e){let o=e.Merge;return{Merge:{source_neuron_id:o.sourceNeuronId?[{id:o.sourceNeuronId}]:[]}}}throw new i(e)},Ot=e=>{if("RemoveHotKey"in e){let o=e.RemoveHotKey;return{RemoveHotKey:{hot_key_to_remove:o.hotKeyToRemove!=null?[_.fromText(o.hotKeyToRemove)]:[]}}}if("AddHotKey"in e){let o=e.AddHotKey;return{AddHotKey:{new_hot_key:o.newHotKey?[_.fromText(o.newHotKey)]:[]}}}if("StopDissolving"in e)return{StopDissolving:{}};if("StartDissolving"in e)return{StartDissolving:{}};if("IncreaseDissolveDelay"in e)return{IncreaseDissolveDelay:{additional_dissolve_delay_seconds:e.IncreaseDissolveDelay.additionalDissolveDelaySeconds}};if("JoinCommunityFund"in e)return e;if("SetDissolveTimestamp"in e)return{SetDissolveTimestamp:{dissolve_timestamp_seconds:e.SetDissolveTimestamp.dissolveTimestampSeconds}};throw new i(e)},ht=e=>{if("ToRemove"in e)return{ToRemove:I(e.ToRemove)};if("ToAdd"in e)return{ToAdd:I(e.ToAdd)};throw new i(e)},I=e=>({id:e.id!=null?[_.fromText(e.id)]:[],reward_account:e.rewardAccount!=null?[$e(e.rewardAccount)]:[]}),bt=e=>({e8s:e}),$e=e=>{let o=ro(e);return{hash:He(o)}},yo=e=>{if("RewardToNeuron"in e)return{RewardToNeuron:{dissolve_delay_seconds:e.RewardToNeuron.dissolveDelaySeconds}};if("RewardToAccount"in e)return{RewardToAccount:{to_account:e.RewardToAccount.toAccount!=null?[$e(e.RewardToAccount.toAccount)]:[]}};throw new i(e)},Pt=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?[e.MemoAndController.controller]:[]}};throw new i(e)},bo=e=>({neuron_ids:e??[],include_neurons_readable_by_caller:!e}),St=({id:e,command:o,neuronIdOrSubaccount:n})=>({id:e?[Qe(e)]:[],command:o?[yt(o)]:[],neuron_id_or_subaccount:n?[gt(n)]:[]});var Po=({includeRewardStatus:e,beforeProposal:o,excludeTopic:n,includeStatus:r,limit:s})=>({include_reward_status:e,before_proposal:o?[Oo(o)]:[],limit:s,exclude_topic:n,include_status:r}),So=e=>({id:[],command:[{ClaimOrRefresh:{by:[{NeuronIdOrSubaccount:{}}]}}],neuron_id_or_subaccount:[{NeuronId:{id:e.neuronId}}]}),To=({memo:e,controller:o})=>{let n={ClaimOrRefresh:{by:[{MemoAndController:{controller:o==null?[]:[o],memo:e}}]}};return{id:[],command:[n],neuron_id_or_subaccount:[]}},Vo=({neuronId:e,amount:o})=>({id:[],command:[{Split:{amount_e8s:o}}],neuron_id_or_subaccount:[{NeuronId:{id:e}}]});var xo=({neuronId:e,vote:o,proposalId:n})=>D({neuronId:e,command:{RegisterVote:{vote:o,proposal:[{id:n}]}}}),Mo=e=>{let o={MakeProposal:{url:e.url,title:e.title!=null?[e.title]:[],summary:e.summary,action:[ho(e.action)]}};return{id:[],command:[o],neuron_id_or_subaccount:[{NeuronId:{id:e.neuronId}}]}},ko=({neuronId:e,topic:o,followees:n})=>D({neuronId:e,command:{Follow:{topic:o,followees:n.map(r=>({id:r}))}}}),Co=({neuronId:e,principal:o})=>b({neuronId:e,operation:{AddHotKey:{new_hot_key:[o]}}}),Ao=({neuronId:e,principal:o})=>b({neuronId:e,operation:{RemoveHotKey:{hot_key_to_remove:[o]}}}),Fo=({neuronId:e,additionalDissolveDelaySeconds:o})=>b({neuronId:e,operation:{IncreaseDissolveDelay:{additional_dissolve_delay_seconds:o}}}),Eo=e=>b({neuronId:e,operation:{JoinCommunityFund:{}}}),qo=({sourceNeuronId:e,targetNeuronId:o})=>D({neuronId:o,command:{Merge:{source_neuron_id:[{id:e}]}}}),Ko=e=>b({neuronId:e,operation:{StartDissolving:{}}}),Bo=e=>b({neuronId:e,operation:{StopDissolving:{}}}),D=({neuronId:e,command:o})=>({id:[{id:e}],command:[o],neuron_id_or_subaccount:[]}),b=({neuronId:e,operation:o})=>D({neuronId:e,command:{Configure:{operation:[o]}}});var tt=je(Le());var Uo=t.Record({node_operator_principal_id:t.Opt(t.Principal),node_allowance:t.Nat64,node_provider_principal_id:t.Opt(t.Principal)}),Go=t.Record({subnet_id:t.Principal,node_ids:t.Vec(t.Principal)}),Tt=t.Record({latitude:t.Float32,longitude:t.Float32}),Vt=t.Record({id:t.Text,gps:t.Opt(Tt),region:t.Text,owner:t.Text}),jo=t.Record({data_centers_to_add:t.Vec(Vt),data_centers_to_remove:t.Vec(t.Text)}),Ho=t.Record({node_manager_sha256_hex:t.Text,release_package_url:t.Text,sha256_hex:t.Text,replica_version_id:t.Text,release_package_sha256_hex:t.Text,node_manager_binary_url:t.Text,binary_url:t.Text}),Jo=t.Record({ecdsa_signatures:t.Bool}),Wo=t.Variant({application:t.Null,verified_application:t.Null,system:t.Null}),Xo=t.Record({unit_delay_millis:t.Nat64,max_instructions_per_round:t.Nat64,features:Jo,max_instructions_per_message:t.Nat64,gossip_registry_poll_period_ms:t.Nat32,max_ingress_bytes_per_message:t.Nat64,dkg_dealings_per_block:t.Nat64,max_block_payload_size:t.Nat64,max_instructions_per_install_code:t.Nat64,start_as_nns:t.Bool,is_halted:t.Bool,gossip_pfn_evaluation_period_ms:t.Nat32,max_ingress_messages_per_block:t.Nat64,gossip_max_artifact_streams_per_peer:t.Nat32,replica_version_id:t.Text,gossip_max_duplicity:t.Nat32,gossip_max_chunk_wait_ms:t.Nat32,dkg_interval_length:t.Nat64,subnet_id_override:t.Opt(t.Principal),ingress_bytes_per_block_soft_cap:t.Nat64,initial_notary_delay_millis:t.Nat64,gossip_max_chunk_size:t.Nat32,subnet_type:Wo,gossip_retransmission_request_ms:t.Nat32,gossip_receive_check_cache_size:t.Nat32,node_ids:t.Vec(t.Principal)}),zo=t.Record({height:t.Nat64,replacement_nodes:t.Opt(t.Vec(t.Principal)),subnet_id:t.Principal,registry_store_uri:t.Opt(t.Tuple(t.Text,t.Text,t.Nat64)),state_hash:t.Vec(t.Nat8),time_ns:t.Nat64}),en=t.Record({node_operators_to_remove:t.Vec(t.Vec(t.Nat8))}),Ye=t.Record({node_ids:t.Vec(t.Principal)}),on=t.Record({range_end_inclusive:t.Principal,range_start_inclusive:t.Principal,destination_subnet:t.Principal}),Qo=t.Record({who:t.Opt(t.Principal),subnets:t.Vec(t.Principal)}),$o=t.Record({ipv4_prefixes:t.Vec(t.Text),firewall_config:t.Text,ipv6_prefixes:t.Vec(t.Text)}),xt=t.Variant({Start:t.Null,Stop:t.Null}),Yo=t.Record({action:xt,canister_id:t.Principal}),Zo=t.Record({data_source:t.Text,xdr_permyriad_per_icp:t.Nat64,timestamp_seconds:t.Nat64}),Io=t.Record({node_operator_id:t.Opt(t.Principal),node_allowance:t.Opt(t.Nat64),rewardable_nodes:t.Vec(t.Tuple(t.Text,t.Nat32)),dc_id:t.Opt(t.Text)}),Mt=t.Record({xdr_permyriad_per_node_per_month:t.Nat64}),kt=t.Record({rates:t.Vec(t.Tuple(t.Text,Mt))}),Do=t.Record({new_entries:t.Vec(t.Tuple(t.Text,kt))}),Lo=t.Record({unit_delay_millis:t.Opt(t.Nat64),max_duplicity:t.Opt(t.Nat32),max_instructions_per_round:t.Opt(t.Nat64),features:t.Opt(Jo),set_gossip_config_to_default:t.Bool,max_instructions_per_message:t.Opt(t.Nat64),pfn_evaluation_period_ms:t.Opt(t.Nat32),subnet_id:t.Principal,max_ingress_bytes_per_message:t.Opt(t.Nat64),dkg_dealings_per_block:t.Opt(t.Nat64),max_block_payload_size:t.Opt(t.Nat64),max_instructions_per_install_code:t.Opt(t.Nat64),start_as_nns:t.Opt(t.Bool),is_halted:t.Opt(t.Bool),max_number_of_canisters:t.Opt(t.Nat64),advert_best_effort_percentage:t.Opt(t.Nat32),retransmission_request_ms:t.Opt(t.Nat32),dkg_interval_length:t.Opt(t.Nat64),registry_poll_period_ms:t.Opt(t.Nat32),max_chunk_wait_ms:t.Opt(t.Nat32),receive_check_cache_size:t.Opt(t.Nat32),ssh_backup_access:t.Opt(t.Vec(t.Text)),ingress_bytes_per_block_soft_cap:t.Opt(t.Nat64),max_chunk_size:t.Opt(t.Nat32),initial_notary_delay_millis:t.Opt(t.Nat64),max_artifact_streams_per_peer:t.Opt(t.Nat32),subnet_type:t.Opt(Wo),ssh_readonly_access:t.Opt(t.Vec(t.Text))}),et=t.Record({subnet_id:t.Principal,replica_version_id:t.Text}),ot=t.Record({replica_version:t.Opt(t.Text),ssh_readonly_access:t.Opt(t.Vec(t.Text))});_.prototype.toJSON=function(){return this.toString()};var nt=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--"}},rt=(e,o)=>{let n=new tt.Buffer(o);try{switch(e){case 1:return t.decode([Xo],n)[0];case 2:return t.decode([Go],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 t.decode([Ho],n)[0];case 6:return t.decode([zo],n)[0];case 7:return t.decode([Lo],n)[0];case 8:return t.decode([Uo],n)[0];case 9:return{"Unable to display payload":"Payload too large"};case 10:return t.decode([Zo],n)[0];case 11:return t.decode([et],n)[0];case 12:return{};case 13:return t.decode([Ye],n)[0];case 14:return t.decode([Qo],n)[0];case 15:return t.decode([$o],n)[0];case 16:return t.decode([Io],n)[0];case 17:return t.decode([Yo],n)[0];case 18:return t.decode([Ye],n)[0];case 20:return t.decode([Do],n)[0];case 21:return t.decode([jo],n)[0];case 22:return t.decode([ot],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 Ct=({neuronId:e,neuronInfo:o,rawNeuron:n})=>{let r=n?At(n):void 0;return{neuronId:e,dissolveDelaySeconds:o.dissolve_delay_seconds,recentBallots:o.recent_ballots.map(at),createdTimestampSeconds:o.created_timestamp_seconds,state:o.state,joinedCommunityFundTimestampSeconds:o.joined_community_fund_timestamp_seconds.length?o.joined_community_fund_timestamp_seconds[0]:void 0,retrievedAtTimestampSeconds:o.retrieved_at_timestamp_seconds,votingPower:o.voting_power,ageSeconds:o.age_seconds,fullNeuron:r}},At=e=>({id:e.id.length?N(e.id[0]):void 0,controller:e.controller.length?e.controller[0].toString():void 0,recentBallots:e.recent_ballots.map(at),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(o=>o.toString()),accountIdentifier:ao(uo,oo(e.account)),joinedCommunityFundTimestampSeconds:e.joined_community_fund_timestamp_seconds.length?e.joined_community_fund_timestamp_seconds[0]:void 0,dissolveState:e.dissolve_state.length?Ft(e.dissolve_state[0]):void 0,followees:e.followees.map(([o,n])=>it({topic:o,followees:n}))}),at=({vote:e,proposal_id:o})=>({vote:e,proposalId:o.length?N(o[0]):void 0}),Ft=e=>"DissolveDelaySeconds"in e?{DissolveDelaySeconds:e.DissolveDelaySeconds}:{WhenDissolvedTimestampSeconds:e.WhenDissolvedTimestampSeconds},it=({topic:e,followees:o})=>({topic:e,followees:o.followees.map(N)}),N=({id:e})=>e,Et=e=>{if("NeuronId"in e)return{NeuronId:e.NeuronId.id};if("Subaccount"in e)return{Subaccount:e.Subaccount};throw new i(e)},qt=({neuronId:e,ballot:o})=>{let{vote:n,voting_power:r}=o;return{neuronId:e,vote:n,votingPower:r}},Kt=({title:e,url:o,action:n,summary:r})=>({title:e.length?e[0]:void 0,url:o,action:n.length?ct(n[0]):void 0,summary:r}),ct=e=>{if("ExecuteNnsFunction"in e){let o=e.ExecuteNnsFunction,n=to(o.payload),r=n.byteLength?rt(o.nns_function,n):void 0;return{ExecuteNnsFunction:{nnsFunctionId:o.nns_function,nnsFunctionName:nt(o.nns_function),payload:r,payloadBytes:n}}}if("ManageNeuron"in e){let o=e.ManageNeuron;return{ManageNeuron:{id:o.id.length?N(o.id[0]):void 0,command:o.command.length?Ut(o.command[0]):void 0,neuronIdOrSubaccount:o.neuron_id_or_subaccount.length?Et(o.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 o=e.ManageNetworkEconomics;return{ManageNetworkEconomics:{neuronMinimumStake:o.neuron_minimum_stake_e8s,maxProposalsToKeepPerTopic:o.max_proposals_to_keep_per_topic,neuronManagementFeePerProposal:o.neuron_management_fee_per_proposal_e8s,rejectCost:o.reject_cost_e8s,transactionFee:o.transaction_fee_e8s,neuronSpawnDissolveDelaySeconds:o.neuron_spawn_dissolve_delay_seconds,minimumIcpXdrRate:o.minimum_icp_xdr_rate,maximumNodeProviderRewards:o.maximum_node_provider_rewards_e8s}}}if("RewardNodeProvider"in e){let o=e.RewardNodeProvider;return{RewardNodeProvider:{nodeProvider:o.node_provider.length?L(o.node_provider[0]):void 0,amountE8s:o.amount_e8s,rewardMode:o.reward_mode.length?st(o.reward_mode[0]):void 0}}}if("RewardNodeProviders"in e)return{RewardNodeProviders:{rewards:e.RewardNodeProviders.rewards.map(n=>({nodeProvider:n.node_provider.length?L(n.node_provider[0]):void 0,amountE8s:n.amount_e8s,rewardMode:n.reward_mode.length?st(n.reward_mode[0]):void 0}))}};if("AddOrRemoveNodeProvider"in e){let o=e.AddOrRemoveNodeProvider;return{AddOrRemoveNodeProvider:{change:o.change.length?jt(o.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])=>it({topic:n,followees:r}))}};if("RegisterKnownNeuron"in e){let o=e.RegisterKnownNeuron;return{RegisterKnownNeuron:Wt(o)}}throw new i(e)},Bt=e=>({no:e.no,yes:e.yes,total:e.total,timestampSeconds:e.timestamp_seconds}),Ut=e=>{if("Spawn"in e){let o=e.Spawn;return{Spawn:{newController:o.new_controller.length?o.new_controller[0].toString():void 0}}}if("Split"in e)return{Split:{amount:e.Split.amount_e8s}};if("Follow"in e){let o=e.Follow;return{Follow:{topic:o.topic,followees:o.followees.map(N)}}}if("ClaimOrRefresh"in e){let o=e.ClaimOrRefresh;return{ClaimOrRefresh:{by:o.by.length?Jt(o.by[0]):void 0}}}if("Configure"in e){let o=e.Configure;return{Configure:{operation:o.operation.length?Gt(o.operation[0]):void 0}}}if("RegisterVote"in e){let o=e.RegisterVote;return{RegisterVote:{vote:o.vote,proposal:o.proposal.length?N(o.proposal[0]):void 0}}}if("DisburseToNeuron"in e){let o=e.DisburseToNeuron;return{DisburseToNeuron:{dissolveDelaySeconds:o.dissolve_delay_seconds,kycVerified:o.kyc_verified,amount:o.amount_e8s,newController:o.new_controller.length?o.new_controller[0].toString():void 0,nonce:o.nonce}}}if("MergeMaturity"in e)return{MergeMaturity:{percentageToMerge:e.MergeMaturity.percentage_to_merge}};if("MakeProposal"in e){let o=e.MakeProposal;return{MakeProposal:{title:o.title.length?o.title[0]:void 0,url:o.url,action:o.action.length?ct(o.action[0]):void 0,summary:o.summary}}}if("Disburse"in e){let o=e.Disburse;return{Disburse:{toAccountId:o.to_account.length?Ze(o.to_account[0]):void 0,amount:o.amount.length?Ht(o.amount[0]):void 0}}}if("Merge"in e){let o=e.Merge;return{Merge:{sourceNeuronId:o.source_neuron_id.length?o.source_neuron_id[0].id:void 0}}}throw new i(e)},Gt=e=>{if("RemoveHotKey"in e){let o=e.RemoveHotKey;return{RemoveHotKey:{hotKeyToRemove:o.hot_key_to_remove.length?o.hot_key_to_remove[0].toString():void 0}}}if("AddHotKey"in e){let o=e.AddHotKey;return{AddHotKey:{newHotKey:o.new_hot_key.length?o.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 i(e)},jt=e=>{if("ToRemove"in e)return{ToRemove:L(e.ToRemove)};if("ToAdd"in e)return{ToAdd:L(e.ToAdd)};throw new i(e)},L=e=>({id:e.id.length?e.id[0].toString():void 0,rewardAccount:e.reward_account.length?Ze(e.reward_account[0]):void 0}),Ht=e=>e.e8s,Ze=e=>so(new Uint8Array(e.hash)),st=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?Ze(e.RewardToAccount.to_account[0]):void 0}};throw new i(e)},Jt=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 i(e)},Ie=e=>({id:e.id.length?N(e.id[0]):void 0,ballots:e.ballots.map(o=>qt({neuronId:o[0],ballot:o[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?Kt(e.proposal[0]):void 0,proposer:e.proposer.length?N(e.proposer[0]):void 0,latestTally:e.latest_tally.length?Bt(e.latest_tally[0]):void 0,executedTimestampSeconds:e.executed_timestamp_seconds,topic:e.topic,status:e.status,rewardStatus:e.reward_status}),dt=({neuron_infos:e,full_neurons:o})=>e.map(([n,r])=>Ct({neuronId:n,neuronInfo:r,rawNeuron:o.find(s=>s.id.length&&s.id[0].id===n)})),ut=({proposal_info:e})=>({proposals:e.map(Ie)}),Wt=({id:e,known_neuron_data:o})=>({id:e[0]?.id??BigInt(0),name:o[0]?.name??"",description:o[0]?.description[0]??""});var u=async({request:e,service:o})=>{let{command:n}=await o.manage_neuron(e),r=n[0];if(!r)throw new l({error_message:"Error updating neuron",error_type:0});if("Error"in r)throw new l(r.Error)};var ee=class{constructor(o,n,r){this.canisterId=o;this.service=n;this.certifiedService=r;this.canisterId=o,this.service=n,this.certifiedService=r}static create(o={}){let n=o.agent??mo(),r=o.canisterId??lo,s=o.serviceOverride??Je.createActor(go,{agent:n,canisterId:r}),a=o.certifiedServiceOverride??Je.createActor(vo,{agent:n,canisterId:r});return new ee(r,s,a)}listNeurons=async({certified:o=!0,neuronIds:n})=>{let r=bo(n),s=await this.getGovernanceService(o).list_neurons(r);return dt(s)};listKnownNeurons=async(o=!0)=>(await this.getGovernanceService(o).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:o,certified:n=!0})=>{let r=Po(o),s=await this.getGovernanceService(n).list_proposals(r);return ut(s)};stakeNeuron=async({stake:o,principal:n,fromSubAccountId:r,ledgerCanister:s})=>{if(o.toE8s()<_o)throw new Z(po.fromString("1"));let a=new Uint8Array((0,_t.default)(8)),d=eo(a),R=this.buildNeuronStakeSubAccount(a,n),P=io.fromPrincipal({principal:this.canisterId,subAccount:R});await s.transfer({memo:d,amount:o,fromSubAccountId:r,to:P});let m=await this.claimOrRefreshNeuronFromAccount({controller:n,memo:d});if(m===void 0)throw new Y;return m};increaseDissolveDelay=async({neuronId:o,additionalDissolveDelaySeconds:n})=>{let r=Fo({neuronId:o,additionalDissolveDelaySeconds:n});return u({request:r,service:this.certifiedService})};startDissolving=async o=>{let n=Ko(o);return u({request:n,service:this.certifiedService})};stopDissolving=async o=>{let n=Bo(o);return u({request:n,service:this.certifiedService})};joinCommunityFund=async o=>{let n=Eo(o);return u({request:n,service:this.certifiedService})};mergeNeurons=async o=>{let n=qo(o);return u({request:n,service:this.certifiedService})};splitNeuron=async({neuronId:o,amount:n})=>{let r=Vo({neuronId:o,amount:n.toE8s()}),{command:s}=await this.certifiedService.manage_neuron(r),a=s[0];if(!a)throw new l({error_message:"Error updating neuron",error_type:0});if("Error"in a)throw new l(a.Error);if("Split"in a){let d=a.Split.created_neuron_id[0];if(d===void 0)throw new l({error_message:"Unexpected error splitting neuron. No neuronId in Split response.",error_type:0});return d.id}throw new l({error_message:"Unexpected error splitting neuron. Response type not expected.",error_type:0})};getProposal=async({proposalId:o,certified:n=!0})=>{let[r]=await this.getGovernanceService(n).get_proposal_info(o);return r?Ie(r):void 0};makeProposal=async o=>{let n=Mo(o);return u({request:n,service:this.certifiedService})};registerVote=async({neuronId:o,vote:n,proposalId:r})=>{let s=xo({neuronId:o,vote:n,proposalId:r});return u({request:s,service:this.certifiedService})};setFollowees=async o=>{let n=ko(o);return u({request:n,service:this.certifiedService})};addHotkey=async({neuronId:o,principal:n})=>{let r=Co({neuronId:o,principal:n});return u({request:r,service:this.certifiedService})};removeHotkey=async({neuronId:o,principal:n})=>{let r=Ao({neuronId:o,principal:n});return u({request:r,service:this.certifiedService})};claimOrRefreshNeuronFromAccount=async({memo:o,controller:n})=>{let r=To({memo:o,controller:n}),s=await this.certifiedService.manage_neuron(r),{command:a}=s;if(a.length&&"ClaimOrRefresh"in a[0])return a[0].ClaimOrRefresh.refreshed_neuron_id[0]?.id;throw new X(`Unrecognized ClaimOrRefresh error in ${JSON.stringify(s)}`)};claimOrRefreshNeuron=async o=>{let n=So(o),r=await this.service.manage_neuron(n),{command:s}=r;if(s.length&&"ClaimOrRefresh"in s[0])return s[0].ClaimOrRefresh.refreshed_neuron_id[0]?.id;throw new X(`Unrecognized ClaimOrRefresh error in ${JSON.stringify(r)}`)};buildNeuronStakeSubAccount=(o,n)=>{let r=no("neuron-stake"),s=lt.sha256.create();return s.update([12,...r,...n.toUint8Array(),...o]),co.fromBytes(new Uint8Array(s.array()))};getGovernanceService(o){return o?this.certifiedService:this.service}getNeuron=async({certified:o=!0,neuronId:n})=>{let[r]=await this.listNeurons({certified:o,neuronIds:[n]});return r}};export{$ as a,Y as b,Z as c,X as d,l as e,i as f,ee as g};
3
- //# sourceMappingURL=chunk-DEPEAMHA.js.map
@@ -1,7 +0,0 @@
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/errors/governance.errors.ts", "../../src/canisters/governance/request.converters.ts", "../../src/canisters/governance/payloads.ts", "../../candid/payloads.idl.js", "../../src/canisters/governance/response.converters.ts", "../../src/canisters/governance/services.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 fromClaimOrRefreshNeuronRequest,\n fromListNeurons,\n fromListProposalsRequest,\n toAddHotkeyRequest,\n toClaimOrRefreshRequest,\n toIncreaseDissolveDelayRequest,\n toJoinCommunityFundRequest,\n toMakeProposalRawRequest,\n toManageNeuronsFollowRequest,\n toMergeRequest,\n toRegisterVoteRequest,\n toRemoveHotkeyRequest,\n toSplitRawRequest,\n toStartDissolvingRequest,\n toStopDissolvingRequest,\n} from \"./canisters/governance/request.converters\";\nimport {\n toArrayOfNeuronInfo,\n toListProposalsResponse,\n toProposalInfo,\n} from \"./canisters/governance/response.converters\";\nimport { manageNeuron } from \"./canisters/governance/services\";\nimport { MAINNET_GOVERNANCE_CANISTER_ID } from \"./constants/canister_ids\";\nimport { E8S_PER_ICP } from \"./constants/constants\";\nimport {\n CouldNotClaimNeuronError,\n GovernanceError,\n InsufficientAmountError,\n UnrecognizedTypeError,\n} from \"./errors/governance.errors\";\nimport { ICP } from \"./icp\";\nimport { LedgerCanister } from \"./ledger\";\nimport { NeuronId } from \"./types/common\";\nimport { GovernanceCanisterOptions } from \"./types/governance\";\nimport {\n ClaimOrRefreshNeuronRequest,\n FollowRequest,\n KnownNeuron,\n ListProposalsRequest,\n ListProposalsResponse,\n MakeProposalRequest,\n NeuronInfo,\n ProposalId,\n ProposalInfo,\n Vote,\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 */\n public listNeurons = async ({\n certified = true,\n neuronIds,\n }: {\n certified: boolean;\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);\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 /**\n * @throws {@link InsufficientAmountError}\n * @throws {@link StakeNeuronTransferError}\n * @throws {@link CouldNotClaimNeuronError}\n * @throws {@link TransferError}\n */\n public stakeNeuron = async ({\n stake,\n principal,\n fromSubAccountId,\n ledgerCanister,\n }: {\n stake: ICP;\n principal: Principal;\n fromSubAccountId?: number;\n ledgerCanister: LedgerCanister;\n }): Promise<NeuronId> => {\n if (stake.toE8s() < E8S_PER_ICP) {\n throw new InsufficientAmountError(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 await ledgerCanister.transfer({\n memo: nonce,\n amount: stake,\n fromSubAccountId,\n to: accountIdentifier,\n });\n\n // Notify the governance of the transaction so that the neuron is created.\n const neuronId: NeuronId | undefined =\n await 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 if (neuronId === undefined) {\n throw new CouldNotClaimNeuronError();\n }\n\n return neuronId;\n };\n\n /**\n * Increases dissolve delay of a neuron\n *\n * @throws {@link GovernanceError}\n */\n public increaseDissolveDelay = async ({\n neuronId,\n additionalDissolveDelaySeconds,\n }: {\n neuronId: NeuronId;\n additionalDissolveDelaySeconds: number;\n }): Promise<void> => {\n const request = toIncreaseDissolveDelayRequest({\n neuronId,\n additionalDissolveDelaySeconds,\n });\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Start dissolving process of a neuron\n *\n * @throws {@link GovernanceError}\n */\n public startDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request = toStartDissolvingRequest(neuronId);\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Stop dissolving process of a neuron\n *\n * @throws {@link GovernanceError}\n */\n public stopDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request = toStopDissolvingRequest(neuronId);\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Neuron joins the community fund\n *\n * @throws {@link GovernanceError}\n */\n public joinCommunityFund = async (neuronId: NeuronId): Promise<void> => {\n const request = toJoinCommunityFundRequest(neuronId);\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Merge two neurons\n *\n * @throws {@link GovernanceError}\n */\n public mergeNeurons = async (request: {\n sourceNeuronId: NeuronId;\n targetNeuronId: NeuronId;\n }): Promise<void> => {\n const rawRequest = toMergeRequest(request);\n\n return manageNeuron({\n request: rawRequest,\n service: this.certifiedService,\n });\n };\n\n /**\n * Splits a neuron creating a new one\n *\n * @returns newNeuronId\n * @throws {@link GovernanceError}\n */\n public splitNeuron = async ({\n neuronId,\n amount,\n }: {\n neuronId: NeuronId;\n amount: ICP;\n }): Promise<NeuronId> => {\n const request = toSplitRawRequest({\n neuronId,\n amount: amount.toE8s(),\n });\n\n const { command } = await this.certifiedService.manage_neuron(request);\n const response = command[0];\n\n if (!response) {\n throw new GovernanceError({\n error_message: \"Error updating neuron\",\n error_type: 0,\n });\n }\n\n if (\"Error\" in response) {\n throw new GovernanceError(response.Error);\n }\n\n if (\"Split\" in response) {\n const neuron = response.Split.created_neuron_id[0];\n if (neuron === undefined) {\n // Edge case\n throw new GovernanceError({\n error_message:\n \"Unexpected error splitting neuron. No neuronId in Split response.\",\n error_type: 0,\n });\n }\n return neuron.id;\n }\n\n // Edge case\n throw new GovernanceError({\n error_message:\n \"Unexpected error splitting neuron. Response type not expected.\",\n error_type: 0,\n });\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 getProposal = 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 * Create new proposal\n *\n * @throws {@link GovernanceError}\n */\n public makeProposal = async (request: MakeProposalRequest): Promise<void> => {\n const rawRequest = toMakeProposalRawRequest(request);\n\n return manageNeuron({\n request: rawRequest,\n service: this.certifiedService,\n });\n };\n\n /**\n *\n * Registers vote for a proposal from the neuron passed.\n *\n * @throws {@link GovernanceError}\n */\n public registerVote = async ({\n neuronId,\n vote,\n proposalId,\n }: {\n neuronId: NeuronId;\n vote: Vote;\n proposalId: ProposalId;\n }): Promise<void> => {\n const request = toRegisterVoteRequest({ neuronId, vote, proposalId });\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Edit neuron followees per topic\n *\n * @throws {@link GovernanceError}\n */\n public setFollowees = async (followRequest: FollowRequest): Promise<void> => {\n const request = toManageNeuronsFollowRequest(followRequest);\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Add hotkey to neuron\n *\n * @throws {@link GovernanceError}\n */\n public addHotkey = async ({\n neuronId,\n principal,\n }: {\n neuronId: NeuronId;\n principal: Principal;\n }): Promise<void> => {\n const request = toAddHotkeyRequest({ neuronId, principal });\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Remove hotkey to neuron\n *\n * @throws {@link GovernanceError}\n */\n public removeHotkey = async ({\n neuronId,\n principal,\n }: {\n neuronId: NeuronId;\n principal: Principal;\n }): Promise<void> => {\n const request = toRemoveHotkeyRequest({ neuronId, principal });\n\n return manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Gets the NeuronID of a newly created neuron.\n */\n public claimOrRefreshNeuronFromAccount = async ({\n memo,\n controller,\n }: {\n memo: bigint;\n controller?: Principal;\n }): Promise<NeuronId | undefined> => {\n const rawRequest = toClaimOrRefreshRequest({\n memo,\n controller,\n });\n const rawResponse = await this.certifiedService.manage_neuron(rawRequest);\n const { command } = rawResponse;\n if (command.length && \"ClaimOrRefresh\" in command[0]) {\n const claim = command[0].ClaimOrRefresh;\n return claim.refreshed_neuron_id[0]?.id;\n }\n\n throw new UnrecognizedTypeError(\n `Unrecognized ClaimOrRefresh error in ${JSON.stringify(rawResponse)}`\n );\n };\n\n /**\n * Refreshes neuron and returns neuronId when successful\n * Uses query call only.\n *\n * @throws {@link UnrecognizedTypeError}\n */\n public claimOrRefreshNeuron = async (\n request: ClaimOrRefreshNeuronRequest\n ): Promise<NeuronId | undefined> => {\n const rawRequest = fromClaimOrRefreshNeuronRequest(request);\n const rawResponse = await this.service.manage_neuron(rawRequest);\n const { command } = rawResponse;\n if (command.length && \"ClaimOrRefresh\" in command[0]) {\n const claim = command[0].ClaimOrRefresh;\n return claim.refreshed_neuron_id[0]?.id;\n }\n\n throw new UnrecognizedTypeError(\n `Unrecognized ClaimOrRefresh error in ${JSON.stringify(rawResponse)}`\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 /**\n * Return the data of the neuron provided as id.\n */\n public getNeuron = async ({\n certified = true,\n neuronId,\n }: {\n certified: boolean;\n neuronId: NeuronId;\n }): Promise<NeuronInfo | undefined> => {\n // The governance canister exposes two functions \"get_neuron_info\" and \"get_full_neuron\" that could probably be used to fetch the neuron details too.\n // However historically this function has been resolved with a single call \"list_neurons\".\n\n const [neuron]: NeuronInfo[] = await this.listNeurons({\n certified,\n neuronIds: [neuronId],\n });\n\n return neuron;\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 { GovernanceErrorDetail } from \"../../candid/governanceTypes\";\nimport { ICP } from \"../icp\";\n\nexport abstract class StakeNeuronError extends Error {}\n\nexport class CouldNotClaimNeuronError extends StakeNeuronError {}\n\nexport class InsufficientAmountError extends StakeNeuronError {\n constructor(public readonly minimumAmount: ICP) {\n super();\n }\n}\n\nexport class UnrecognizedTypeError extends Error {}\nexport class GovernanceError extends Error {\n constructor(public readonly detail: GovernanceErrorDetail) {\n super();\n }\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 { UnsupportedValueError } from \"../../errors/governance.errors\";\nimport { AccountIdentifier, E8s, NeuronId } from \"../../types/common\";\nimport {\n Action,\n By,\n Change,\n ClaimNeuronRequest,\n ClaimOrRefreshNeuronRequest,\n Command,\n DisburseToNeuronRequest,\n FollowRequest,\n ListProposalsRequest,\n MakeProposalRequest,\n ManageNeuron,\n NeuronIdOrSubaccount,\n NodeProvider,\n Operation,\n ProposalId,\n RewardMode,\n Vote,\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\nexport const toClaimOrRefreshRequest = ({\n memo,\n controller,\n}: {\n memo: bigint;\n controller?: Principal;\n}): RawManageNeuron => {\n const rawCommand: RawCommand = {\n ClaimOrRefresh: {\n by: [\n {\n MemoAndController: {\n controller: controller == undefined ? [] : [controller],\n memo,\n },\n },\n ],\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [],\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 toSplitRawRequest = ({\n neuronId,\n amount,\n}: {\n neuronId: NeuronId;\n amount: E8s;\n}): RawManageNeuron => {\n const rawCommand: RawCommand = {\n Split: {\n amount_e8s: amount,\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: 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\nexport const toRegisterVoteRequest = ({\n neuronId,\n vote,\n proposalId,\n}: {\n neuronId: NeuronId;\n vote: Vote;\n proposalId: ProposalId;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n RegisterVote: {\n vote,\n proposal: [{ id: proposalId }],\n },\n },\n });\n\nexport const toMakeProposalRawRequest = (\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 return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n};\n\nexport const toManageNeuronsFollowRequest = ({\n neuronId,\n topic,\n followees,\n}: FollowRequest): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n Follow: {\n topic,\n followees: followees.map((followeeId) => ({ id: followeeId })),\n },\n },\n });\n\nexport const toAddHotkeyRequest = ({\n neuronId,\n principal,\n}: {\n neuronId: NeuronId;\n principal: Principal;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n AddHotKey: {\n new_hot_key: [principal],\n },\n },\n });\n\nexport const toRemoveHotkeyRequest = ({\n neuronId,\n principal,\n}: {\n neuronId: NeuronId;\n principal: Principal;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n RemoveHotKey: {\n hot_key_to_remove: [principal],\n },\n },\n });\n\nexport const toIncreaseDissolveDelayRequest = ({\n neuronId,\n additionalDissolveDelaySeconds,\n}: {\n neuronId: NeuronId;\n additionalDissolveDelaySeconds: number;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n IncreaseDissolveDelay: {\n additional_dissolve_delay_seconds: additionalDissolveDelaySeconds,\n },\n },\n });\n\nexport const toJoinCommunityFundRequest = (\n neuronId: NeuronId\n): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n JoinCommunityFund: {},\n },\n });\n\nexport const toMergeRequest = ({\n sourceNeuronId,\n targetNeuronId,\n}: {\n sourceNeuronId: NeuronId;\n targetNeuronId: NeuronId;\n}): RawManageNeuron =>\n toCommand({\n neuronId: targetNeuronId,\n command: {\n Merge: { source_neuron_id: [{ id: sourceNeuronId }] },\n },\n });\n\nexport const toStartDissolvingRequest = (neuronId: NeuronId): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n StartDissolving: {},\n },\n });\n\nexport const toStopDissolvingRequest = (neuronId: NeuronId): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n StopDissolving: {},\n },\n });\n\nexport const toCommand = ({\n neuronId,\n command,\n}: {\n neuronId: NeuronId;\n command: RawCommand;\n}): RawManageNeuron => ({\n id: [{ id: neuronId }],\n command: [command],\n neuron_id_or_subaccount: [],\n});\n\nexport const toConfigureOperation = ({\n neuronId,\n operation,\n}: {\n neuronId: NeuronId;\n operation: RawOperation;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n Configure: {\n operation: [operation],\n },\n },\n });\n", "import { IDL, JsonObject } from \"@dfinity/candid\";\nimport { Principal } from \"@dfinity/principal\";\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/common\";\n\n// Represent Principals as strings rather than as byte arrays when serializing to JSON strings\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n(Principal.prototype as any).toJSON = function () {\n return this.toString();\n};\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 {\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 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 { UnsupportedValueError } from \"../../errors/governance.errors\";\nimport { AccountIdentifier, E8s, NeuronId } from \"../../types/common\";\nimport {\n Action,\n Ballot,\n BallotInfo,\n By,\n Change,\n Command,\n DissolveState,\n Followees,\n KnownNeuron,\n ListProposalsResponse,\n Neuron,\n NeuronIdOrSubaccount,\n NeuronInfo,\n NodeProvider,\n Operation,\n Proposal,\n ProposalInfo,\n RewardMode,\n Tally,\n} from \"../../types/governance_converters\";\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 neuronInfo,\n rawNeuron,\n}: {\n neuronId: bigint;\n neuronInfo: RawNeuronInfo;\n rawNeuron?: RawNeuron;\n}): NeuronInfo => {\n const fullNeuron = rawNeuron ? toNeuron(rawNeuron) : 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 = (neuron: RawNeuron): Neuron => ({\n id: neuron.id.length ? toNeuronId(neuron.id[0]) : 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\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,\n full_neurons,\n}: RawListNeuronsResponse): Array<NeuronInfo> =>\n neuron_infos.map(([id, neuronInfo]) =>\n toNeuronInfo({\n neuronId: id,\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", "import { GovernanceService } from \"../../../candid/governance.idl\";\nimport { ManageNeuron } from \"../../../candid/governanceTypes\";\nimport { GovernanceError } from \"../../errors/governance.errors\";\n\n/**\n * @throws {@link GovernanceError}\n */\nexport const manageNeuron = async ({\n request,\n service,\n}: {\n request: ManageNeuron;\n service: GovernanceService;\n}): Promise<void> => {\n const { command } = await service.manage_neuron(request);\n const response = command[0];\n\n if (!response) {\n throw new GovernanceError({\n error_message: \"Error updating neuron\",\n error_type: 0,\n });\n }\n\n if (\"Error\" in response) {\n throw new GovernanceError(response.Error);\n }\n};\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,2 +0,0 @@
1
- import{c as I,e as A}from"./chunk-PKY54KPG.js";var _=I(A());var p=BigInt(1095062083),E=BigInt(1347768404),T=BigInt(1e4),c=BigInt(1e8);var o=(r=>(r[r.FRACTIONAL_MORE_THAN_8_DECIMALS=0]="FRACTIONAL_MORE_THAN_8_DECIMALS",r[r.INVALID_FORMAT=1]="INVALID_FORMAT",r))(o||{});var i=class{constructor(t){this.e8s=t}static fromE8s(t){return new i(t)}static fromString(t){t=t.trim().replace(/[,']/g,"");let r=t.match(/\d*(\.\d*)?/);if(!r||r[0]!==t)return 1;let[s,e]=t.split("."),n=BigInt(0);if(s)try{n+=BigInt(s)*c}catch{return 1}if(e){if(e.length>8)return 0;try{n+=BigInt(e.padEnd(8,"0"))}catch{return 1}}return new i(n)}toE8s(){return this.e8s}toProto(){let t=new _.ICPTs;return t.setE8s(this.e8s.toString()),t}};export{T as a,c as b,o as c,i as d};
2
- //# sourceMappingURL=chunk-EWMNJTAM.js.map