@dfinity/sns 1.0.0 → 1.0.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/governance.canister.ts", "../../candid/sns_governance.certified.idl.js", "../../candid/sns_governance.idl.js", "../../src/converters/governance.converters.ts"],
4
- "sourcesContent": ["import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"@dfinity/utils\";\nimport {\n assertPercentageNumber,\n Canister,\n createServices,\n fromNullable,\n toNullable,\n} from \"@dfinity/utils\";\nimport type {\n GetMetadataResponse,\n ListNervousSystemFunctionsResponse,\n ManageNeuron,\n ManageNeuronResponse,\n NervousSystemParameters,\n Neuron,\n NeuronId,\n ProposalData,\n _SERVICE as SnsGovernanceService,\n SplitResponse,\n} from \"../candid/sns_governance\";\nimport { idlFactory as certifiedIdlFactory } from \"../candid/sns_governance.certified.idl\";\nimport { idlFactory } from \"../candid/sns_governance.idl\";\nimport { MAX_LIST_NEURONS_RESULTS } from \"./constants/governance.constants\";\nimport {\n toAddPermissionsRequest,\n toAutoStakeMaturityNeuronRequest,\n toClaimOrRefreshRequest,\n toDisburseMaturityRequest,\n toDisburseNeuronRequest,\n toFollowRequest,\n toIncreaseDissolveDelayRequest,\n toListProposalRequest,\n toRegisterVoteRequest,\n toRemovePermissionsRequest,\n toSetDissolveTimestampRequest,\n toSplitNeuronRequest,\n toStakeMaturityRequest,\n toStartDissolvingNeuronRequest,\n toStopDissolvingNeuronRequest,\n} from \"./converters/governance.converters\";\nimport { SnsGovernanceError } from \"./errors/governance.errors\";\nimport type { SnsCanisterOptions } from \"./types/canister.options\";\nimport type {\n SnsClaimNeuronParams,\n SnsDisburseNeuronParams,\n SnsGetNeuronParams,\n SnsGetProposalParams,\n SnsIncreaseDissolveDelayParams,\n SnsListNeuronsParams,\n SnsListProposalsParams,\n SnsNeuronAutoStakeMaturityParams,\n SnsNeuronDisburseMaturityParams,\n SnsNeuronPermissionsParams,\n SnsNeuronStakeMaturityParams,\n SnsRegisterVoteParams,\n SnsSetDissolveTimestampParams,\n SnsSetTopicFollowees,\n SnsSplitNeuronParams,\n} from \"./types/governance.params\";\n\nexport class SnsGovernanceCanister extends Canister<SnsGovernanceService> {\n /**\n * Instantiate a canister to interact with the governance of a Sns project.\n *\n * @param {SnsCanisterOptions} options Miscellaneous options to initialize the canister. Its ID being the only mandatory parammeter.\n */\n static create(options: SnsCanisterOptions<SnsGovernanceService>) {\n const { service, certifiedService, canisterId } =\n createServices<SnsGovernanceService>({\n options,\n idlFactory,\n certifiedIdlFactory,\n });\n\n return new SnsGovernanceCanister(canisterId, service, certifiedService);\n }\n\n /**\n * List the neurons of the Sns\n */\n listNeurons = async (params: SnsListNeuronsParams): Promise<Neuron[]> => {\n const { principal, limit, beforeNeuronId } = params;\n\n const { neurons } = await this.caller(params).list_neurons({\n of_principal: toNullable<Principal>(principal),\n limit: limit ?? MAX_LIST_NEURONS_RESULTS,\n start_page_at: toNullable<NeuronId>(beforeNeuronId),\n });\n return neurons;\n };\n\n /**\n * List the proposals of the Sns\n */\n listProposals = async (\n params: SnsListProposalsParams,\n ): Promise<ProposalData[]> => {\n const { certified } = params;\n\n const { proposals } = await this.caller({ certified }).list_proposals(\n toListProposalRequest(params),\n );\n return proposals;\n };\n\n /**\n * Get the proposal of the Sns\n */\n getProposal = async (params: SnsGetProposalParams): Promise<ProposalData> => {\n const { proposalId } = params;\n\n const { result } = await this.caller(params).get_proposal({\n proposal_id: toNullable(proposalId),\n });\n const data = fromNullable(result);\n if (data === undefined || \"Error\" in data) {\n throw new SnsGovernanceError(\n data?.Error.error_message ?? \"Response type not supported\",\n );\n }\n return data.Proposal;\n };\n\n /**\n * List Nervous System Functions\n * Neurons can follow other neurons in specific Nervous System Functions.\n */\n listNervousSystemFunctions = async (\n params: QueryParams,\n ): Promise<ListNervousSystemFunctionsResponse> =>\n this.caller(params).list_nervous_system_functions();\n\n /**\n * Get the Sns metadata (title, description, etc.)\n */\n metadata = (params: QueryParams): Promise<GetMetadataResponse> =>\n this.caller(params).get_metadata({});\n\n /**\n * Get the Sns nervous system parameters (default followees, max dissolve delay, max number of neurons, etc.)\n */\n nervousSystemParameters = (\n params: QueryParams,\n ): Promise<NervousSystemParameters> =>\n this.caller(params).get_nervous_system_parameters(null);\n\n /**\n * Get the neuron of the Sns\n */\n getNeuron = async (params: SnsGetNeuronParams): Promise<Neuron> => {\n const { neuronId } = params;\n\n const { result } = await this.caller(params).get_neuron({\n neuron_id: toNullable(neuronId),\n });\n const data = fromNullable(result);\n if (data === undefined || \"Error\" in data) {\n throw new SnsGovernanceError(\n data?.Error.error_message ?? \"Response type not supported\",\n );\n }\n return data.Neuron;\n };\n\n /**\n * Same as `getNeuron` but returns undefined instead of raising error when not found.\n */\n queryNeuron = async (\n params: SnsGetNeuronParams,\n ): Promise<Neuron | undefined> => {\n try {\n return await this.getNeuron(params);\n } catch (error: unknown) {\n // Source: https://github.com/dfinity/ic/blob/master/rs/sns/governance/src/governance.rs#L914\n if (\n error instanceof Error &&\n error.message.includes(\"No neuron for given NeuronId\")\n ) {\n return undefined;\n }\n throw error;\n }\n };\n\n /**\n * Manage neuron. For advanced users.\n */\n manageNeuron = async (\n request: ManageNeuron,\n ): Promise<ManageNeuronResponse> => {\n const response = await this.caller({ certified: true }).manage_neuron(\n request,\n );\n this.assertManageNeuronError(response);\n return response;\n };\n\n /**\n * Add permissions to a neuron for a specific principal\n */\n addNeuronPermissions = async (\n params: SnsNeuronPermissionsParams,\n ): Promise<void> => {\n const request: ManageNeuron = toAddPermissionsRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Remove permissions to a neuron for a specific principal\n */\n removeNeuronPermissions = async (\n params: SnsNeuronPermissionsParams,\n ): Promise<void> => {\n const request: ManageNeuron = toRemovePermissionsRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Split neuron\n */\n public splitNeuron = async (\n params: SnsSplitNeuronParams,\n ): Promise<NeuronId | undefined> => {\n const request: ManageNeuron = toSplitNeuronRequest(params);\n const { command } = await this.manageNeuron(request);\n const response = fromNullable(command);\n const errorMessage = (details: string) =>\n `Split neuron failed (${details})`;\n\n // Validate response\n if (response === undefined) {\n throw new SnsGovernanceError(errorMessage(\"no response\"));\n }\n\n if (\"Split\" in response) {\n const split = response.Split as SplitResponse;\n const neuronId = fromNullable(split.created_neuron_id) as NeuronId;\n\n if (neuronId !== undefined) {\n return neuronId;\n }\n\n throw new SnsGovernanceError(errorMessage(\"no id\"));\n }\n\n throw new SnsGovernanceError(errorMessage(\"unknown\"));\n };\n\n /**\n * Disburse neuron on Account\n */\n disburse = async (params: SnsDisburseNeuronParams): Promise<void> => {\n const request: ManageNeuron = toDisburseNeuronRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Start dissolving process of a neuron\n */\n startDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request: ManageNeuron = toStartDissolvingNeuronRequest(neuronId);\n await this.manageNeuron(request);\n };\n\n /**\n * Stop dissolving process of a neuron\n */\n stopDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request: ManageNeuron = toStopDissolvingNeuronRequest(neuronId);\n await this.manageNeuron(request);\n };\n\n /**\n * Stake the maturity of a neuron.\n *\n * @param {neuronId: NeuronId; percentageToStake: number;} params\n * @param {NeuronId} neuronId The id of the neuron for which to stake the maturity\n * @param {number} percentageToStake Optional. Percentage of the current maturity to stake. If not provided, all of the neuron's current maturity will be staked.\n */\n stakeMaturity = async ({\n neuronId,\n percentageToStake,\n }: SnsNeuronStakeMaturityParams): Promise<void> => {\n assertPercentageNumber(percentageToStake ?? 100);\n\n const request: ManageNeuron = toStakeMaturityRequest({\n neuronId,\n percentageToStake,\n });\n await this.manageNeuron(request);\n };\n\n /**\n * Disburse the maturity of a neuron.\n *\n * @param {neuronId: NeuronId; toAccount?: IcrcAccount; percentageToDisburse: number; } params\n * @param {IcrcAccount} toAccount. Account to disburse maturity.\n * @param {NeuronId} neuronId The id of the neuron for which to disburse the maturity\n * @param {number} percentageToDisburse What percentage of the available maturity to disburse.\n */\n disburseMaturity = async (\n params: SnsNeuronDisburseMaturityParams,\n ): Promise<void> => {\n assertPercentageNumber(params.percentageToDisburse);\n\n const request: ManageNeuron = toDisburseMaturityRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Changes auto-stake maturity for a Neuron.\n *\n * @param {neuronId: NeuronId; autoStake: boolean;} params\n * @param {NeuronId} neuronId The id of the neuron for which to request a change of the auto stake feature\n * @param {number} autoStake `true` to enable the auto-stake maturity for this neuron, `false` to turn it off\n */\n autoStakeMaturity = async (\n params: SnsNeuronAutoStakeMaturityParams,\n ): Promise<void> => {\n const request: ManageNeuron = toAutoStakeMaturityNeuronRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Increase dissolve delay of a neuron\n */\n setDissolveTimestamp = async (\n params: SnsSetDissolveTimestampParams,\n ): Promise<void> => {\n const request: ManageNeuron = toSetDissolveTimestampRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Increase dissolve delay of a neuron\n */\n increaseDissolveDelay = async (\n params: SnsIncreaseDissolveDelayParams,\n ): Promise<void> => {\n const request: ManageNeuron = toIncreaseDissolveDelayRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Sets followees of a neuron for a specific Nervous System Function (topic)\n */\n setTopicFollowees = async (params: SnsSetTopicFollowees): Promise<void> => {\n const request: ManageNeuron = toFollowRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Registers vote for a proposal from the neuron passed.\n */\n registerVote = async (params: SnsRegisterVoteParams): Promise<void> => {\n const request: ManageNeuron = toRegisterVoteRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Refresh neuron\n */\n refreshNeuron = async (neuronId: NeuronId): Promise<void> => {\n const request: ManageNeuron = toClaimOrRefreshRequest({\n subaccount: neuronId.id,\n });\n await this.manageNeuron(request);\n };\n\n /**\n * Claim neuron\n */\n claimNeuron = async ({\n memo,\n controller,\n subaccount,\n }: SnsClaimNeuronParams): Promise<NeuronId> => {\n const request: ManageNeuron = toClaimOrRefreshRequest({\n subaccount,\n memo,\n controller,\n });\n const { command } = await this.manageNeuron(request);\n const response = fromNullable(command);\n // Edge case. This should not happen\n if (response === undefined) {\n throw new SnsGovernanceError(\"Claim neuron failed\");\n }\n if (\"ClaimOrRefresh\" in response) {\n const neuronId = fromNullable(\n response.ClaimOrRefresh.refreshed_neuron_id,\n );\n // This might happen.\n if (neuronId === undefined) {\n throw new SnsGovernanceError(\"Claim neuron failed\");\n }\n return neuronId;\n }\n // Edge case. manage_neuron for ClaimOrRefresh returns only ClaimOrRefresh response.\n throw new SnsGovernanceError(\"Claim neuron failed\");\n };\n\n /**\n *\n * @param response ManageNeuronResponse\n * @throws SnsGovernanceError\n */\n private assertManageNeuronError = ({\n command,\n }: ManageNeuronResponse): void => {\n // TODO: use upcoming fromDefinedNullable\n const firstCommand = command[0];\n if (firstCommand !== undefined && \"Error\" in firstCommand) {\n throw new SnsGovernanceError(firstCommand.Error.error_message);\n }\n };\n}\n", "/* Do not edit. Compiled with ./scripts/compile-idl-js from packages/sns/candid/sns_governance.did */\nexport const idlFactory = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n const NeuronParameters = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'stake_e8s' : IDL.Opt(IDL.Nat64),\n 'followees' : IDL.Vec(NeuronId),\n 'hotkey' : IDL.Opt(IDL.Principal),\n 'neuron_id' : IDL.Opt(NeuronId),\n });\n const ClaimSwapNeuronsRequest = IDL.Record({\n 'neuron_parameters' : IDL.Vec(NeuronParameters),\n });\n const SwapNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'status' : IDL.Int32,\n });\n const ClaimedSwapNeurons = IDL.Record({\n 'swap_neurons' : IDL.Vec(SwapNeuron),\n });\n const ClaimSwapNeuronsResult = IDL.Variant({\n 'Ok' : ClaimedSwapNeurons,\n 'Err' : IDL.Int32,\n });\n const ClaimSwapNeuronsResponse = IDL.Record({\n 'claim_swap_neurons_result' : IDL.Opt(ClaimSwapNeuronsResult),\n });\n const GetMaturityModulationResponse = IDL.Record({\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n });\n const GetMetadataResponse = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const GetModeResponse = IDL.Record({ 'mode' : IDL.Opt(IDL.Int32) });\n const GetNeuron = IDL.Record({ 'neuron_id' : IDL.Opt(NeuronId) });\n const Result = IDL.Variant({ 'Error' : GovernanceError, 'Neuron' : Neuron });\n const GetNeuronResponse = IDL.Record({ 'result' : IDL.Opt(Result) });\n const GetProposal = IDL.Record({ 'proposal_id' : IDL.Opt(ProposalId) });\n const Result_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'Proposal' : ProposalData,\n });\n const GetProposalResponse = IDL.Record({ 'result' : IDL.Opt(Result_1) });\n const CanisterStatusType = IDL.Variant({\n 'stopped' : IDL.Null,\n 'stopping' : IDL.Null,\n 'running' : IDL.Null,\n });\n const DefiniteCanisterSettingsArgs = IDL.Record({\n 'freezing_threshold' : IDL.Nat,\n 'controllers' : IDL.Vec(IDL.Principal),\n 'memory_allocation' : IDL.Nat,\n 'compute_allocation' : IDL.Nat,\n });\n const CanisterStatusResultV2 = IDL.Record({\n 'status' : CanisterStatusType,\n 'memory_size' : IDL.Nat,\n 'cycles' : IDL.Nat,\n 'settings' : DefiniteCanisterSettingsArgs,\n 'idle_cycles_burned_per_day' : IDL.Nat,\n 'module_hash' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const GetRunningSnsVersionResponse = IDL.Record({\n 'deployed_version' : IDL.Opt(Version),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n });\n const GetSnsInitializationParametersResponse = IDL.Record({\n 'sns_initialization_parameters' : IDL.Text,\n });\n const ListNervousSystemFunctionsResponse = IDL.Record({\n 'reserved_ids' : IDL.Vec(IDL.Nat64),\n 'functions' : IDL.Vec(NervousSystemFunction),\n });\n const ListNeurons = IDL.Record({\n 'of_principal' : IDL.Opt(IDL.Principal),\n 'limit' : IDL.Nat32,\n 'start_page_at' : IDL.Opt(NeuronId),\n });\n const ListNeuronsResponse = IDL.Record({ 'neurons' : IDL.Vec(Neuron) });\n const ListProposals = IDL.Record({\n 'include_reward_status' : IDL.Vec(IDL.Int32),\n 'before_proposal' : IDL.Opt(ProposalId),\n 'limit' : IDL.Nat32,\n 'exclude_type' : IDL.Vec(IDL.Nat64),\n 'include_status' : IDL.Vec(IDL.Int32),\n });\n const ListProposalsResponse = IDL.Record({\n 'proposals' : IDL.Vec(ProposalData),\n });\n const StakeMaturity = IDL.Record({\n 'percentage_to_stake' : IDL.Opt(IDL.Nat32),\n });\n const Command = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'MakeProposal' : Proposal,\n 'StakeMaturity' : StakeMaturity,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const ManageNeuron = IDL.Record({\n 'subaccount' : IDL.Vec(IDL.Nat8),\n 'command' : IDL.Opt(Command),\n });\n const SplitResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n 'amount_disbursed_e8s' : IDL.Nat64,\n 'amount_deducted_e8s' : IDL.Opt(IDL.Nat64),\n });\n const ClaimOrRefreshResponse = IDL.Record({\n 'refreshed_neuron_id' : IDL.Opt(NeuronId),\n });\n const StakeMaturityResponse = IDL.Record({\n 'maturity_e8s' : IDL.Nat64,\n 'staked_maturity_e8s' : IDL.Nat64,\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 'Split' : SplitResponse,\n 'Follow' : IDL.Record({}),\n 'DisburseMaturity' : DisburseMaturityResponse,\n 'ClaimOrRefresh' : ClaimOrRefreshResponse,\n 'Configure' : IDL.Record({}),\n 'RegisterVote' : IDL.Record({}),\n 'MakeProposal' : GetProposal,\n 'RemoveNeuronPermission' : IDL.Record({}),\n 'StakeMaturity' : StakeMaturityResponse,\n 'MergeMaturity' : MergeMaturityResponse,\n 'Disburse' : DisburseResponse,\n 'AddNeuronPermission' : IDL.Record({}),\n });\n const ManageNeuronResponse = IDL.Record({ 'command' : IDL.Opt(Command_1) });\n const SetMode = IDL.Record({ 'mode' : IDL.Int32 });\n return IDL.Service({\n 'claim_swap_neurons' : IDL.Func(\n [ClaimSwapNeuronsRequest],\n [ClaimSwapNeuronsResponse],\n [],\n ),\n 'fail_stuck_upgrade_in_progress' : IDL.Func(\n [IDL.Record({})],\n [IDL.Record({})],\n [],\n ),\n 'get_build_metadata' : IDL.Func([], [IDL.Text], []),\n 'get_latest_reward_event' : IDL.Func([], [RewardEvent], []),\n 'get_maturity_modulation' : IDL.Func(\n [IDL.Record({})],\n [GetMaturityModulationResponse],\n [],\n ),\n 'get_metadata' : IDL.Func([IDL.Record({})], [GetMetadataResponse], []),\n 'get_mode' : IDL.Func([IDL.Record({})], [GetModeResponse], []),\n 'get_nervous_system_parameters' : IDL.Func(\n [IDL.Null],\n [NervousSystemParameters],\n [],\n ),\n 'get_neuron' : IDL.Func([GetNeuron], [GetNeuronResponse], []),\n 'get_proposal' : IDL.Func([GetProposal], [GetProposalResponse], []),\n 'get_root_canister_status' : IDL.Func(\n [IDL.Null],\n [CanisterStatusResultV2],\n [],\n ),\n 'get_running_sns_version' : IDL.Func(\n [IDL.Record({})],\n [GetRunningSnsVersionResponse],\n [],\n ),\n 'get_sns_initialization_parameters' : IDL.Func(\n [IDL.Record({})],\n [GetSnsInitializationParametersResponse],\n [],\n ),\n 'list_nervous_system_functions' : IDL.Func(\n [],\n [ListNervousSystemFunctionsResponse],\n [],\n ),\n 'list_neurons' : IDL.Func([ListNeurons], [ListNeuronsResponse], []),\n 'list_proposals' : IDL.Func([ListProposals], [ListProposalsResponse], []),\n 'manage_neuron' : IDL.Func([ManageNeuron], [ManageNeuronResponse], []),\n 'set_mode' : IDL.Func([SetMode], [IDL.Record({})], []),\n });\n};\nexport const init = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n return [Governance];\n};\n", "/* Do not edit. Compiled with ./scripts/compile-idl-js from packages/sns/candid/sns_governance.did */\nexport const idlFactory = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n const NeuronParameters = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'stake_e8s' : IDL.Opt(IDL.Nat64),\n 'followees' : IDL.Vec(NeuronId),\n 'hotkey' : IDL.Opt(IDL.Principal),\n 'neuron_id' : IDL.Opt(NeuronId),\n });\n const ClaimSwapNeuronsRequest = IDL.Record({\n 'neuron_parameters' : IDL.Vec(NeuronParameters),\n });\n const SwapNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'status' : IDL.Int32,\n });\n const ClaimedSwapNeurons = IDL.Record({\n 'swap_neurons' : IDL.Vec(SwapNeuron),\n });\n const ClaimSwapNeuronsResult = IDL.Variant({\n 'Ok' : ClaimedSwapNeurons,\n 'Err' : IDL.Int32,\n });\n const ClaimSwapNeuronsResponse = IDL.Record({\n 'claim_swap_neurons_result' : IDL.Opt(ClaimSwapNeuronsResult),\n });\n const GetMaturityModulationResponse = IDL.Record({\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n });\n const GetMetadataResponse = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const GetModeResponse = IDL.Record({ 'mode' : IDL.Opt(IDL.Int32) });\n const GetNeuron = IDL.Record({ 'neuron_id' : IDL.Opt(NeuronId) });\n const Result = IDL.Variant({ 'Error' : GovernanceError, 'Neuron' : Neuron });\n const GetNeuronResponse = IDL.Record({ 'result' : IDL.Opt(Result) });\n const GetProposal = IDL.Record({ 'proposal_id' : IDL.Opt(ProposalId) });\n const Result_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'Proposal' : ProposalData,\n });\n const GetProposalResponse = IDL.Record({ 'result' : IDL.Opt(Result_1) });\n const CanisterStatusType = IDL.Variant({\n 'stopped' : IDL.Null,\n 'stopping' : IDL.Null,\n 'running' : IDL.Null,\n });\n const DefiniteCanisterSettingsArgs = IDL.Record({\n 'freezing_threshold' : IDL.Nat,\n 'controllers' : IDL.Vec(IDL.Principal),\n 'memory_allocation' : IDL.Nat,\n 'compute_allocation' : IDL.Nat,\n });\n const CanisterStatusResultV2 = IDL.Record({\n 'status' : CanisterStatusType,\n 'memory_size' : IDL.Nat,\n 'cycles' : IDL.Nat,\n 'settings' : DefiniteCanisterSettingsArgs,\n 'idle_cycles_burned_per_day' : IDL.Nat,\n 'module_hash' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const GetRunningSnsVersionResponse = IDL.Record({\n 'deployed_version' : IDL.Opt(Version),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n });\n const GetSnsInitializationParametersResponse = IDL.Record({\n 'sns_initialization_parameters' : IDL.Text,\n });\n const ListNervousSystemFunctionsResponse = IDL.Record({\n 'reserved_ids' : IDL.Vec(IDL.Nat64),\n 'functions' : IDL.Vec(NervousSystemFunction),\n });\n const ListNeurons = IDL.Record({\n 'of_principal' : IDL.Opt(IDL.Principal),\n 'limit' : IDL.Nat32,\n 'start_page_at' : IDL.Opt(NeuronId),\n });\n const ListNeuronsResponse = IDL.Record({ 'neurons' : IDL.Vec(Neuron) });\n const ListProposals = IDL.Record({\n 'include_reward_status' : IDL.Vec(IDL.Int32),\n 'before_proposal' : IDL.Opt(ProposalId),\n 'limit' : IDL.Nat32,\n 'exclude_type' : IDL.Vec(IDL.Nat64),\n 'include_status' : IDL.Vec(IDL.Int32),\n });\n const ListProposalsResponse = IDL.Record({\n 'proposals' : IDL.Vec(ProposalData),\n });\n const StakeMaturity = IDL.Record({\n 'percentage_to_stake' : IDL.Opt(IDL.Nat32),\n });\n const Command = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'MakeProposal' : Proposal,\n 'StakeMaturity' : StakeMaturity,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const ManageNeuron = IDL.Record({\n 'subaccount' : IDL.Vec(IDL.Nat8),\n 'command' : IDL.Opt(Command),\n });\n const SplitResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n 'amount_disbursed_e8s' : IDL.Nat64,\n 'amount_deducted_e8s' : IDL.Opt(IDL.Nat64),\n });\n const ClaimOrRefreshResponse = IDL.Record({\n 'refreshed_neuron_id' : IDL.Opt(NeuronId),\n });\n const StakeMaturityResponse = IDL.Record({\n 'maturity_e8s' : IDL.Nat64,\n 'staked_maturity_e8s' : IDL.Nat64,\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 'Split' : SplitResponse,\n 'Follow' : IDL.Record({}),\n 'DisburseMaturity' : DisburseMaturityResponse,\n 'ClaimOrRefresh' : ClaimOrRefreshResponse,\n 'Configure' : IDL.Record({}),\n 'RegisterVote' : IDL.Record({}),\n 'MakeProposal' : GetProposal,\n 'RemoveNeuronPermission' : IDL.Record({}),\n 'StakeMaturity' : StakeMaturityResponse,\n 'MergeMaturity' : MergeMaturityResponse,\n 'Disburse' : DisburseResponse,\n 'AddNeuronPermission' : IDL.Record({}),\n });\n const ManageNeuronResponse = IDL.Record({ 'command' : IDL.Opt(Command_1) });\n const SetMode = IDL.Record({ 'mode' : IDL.Int32 });\n return IDL.Service({\n 'claim_swap_neurons' : IDL.Func(\n [ClaimSwapNeuronsRequest],\n [ClaimSwapNeuronsResponse],\n [],\n ),\n 'fail_stuck_upgrade_in_progress' : IDL.Func(\n [IDL.Record({})],\n [IDL.Record({})],\n [],\n ),\n 'get_build_metadata' : IDL.Func([], [IDL.Text], ['query']),\n 'get_latest_reward_event' : IDL.Func([], [RewardEvent], ['query']),\n 'get_maturity_modulation' : IDL.Func(\n [IDL.Record({})],\n [GetMaturityModulationResponse],\n [],\n ),\n 'get_metadata' : IDL.Func(\n [IDL.Record({})],\n [GetMetadataResponse],\n ['query'],\n ),\n 'get_mode' : IDL.Func([IDL.Record({})], [GetModeResponse], ['query']),\n 'get_nervous_system_parameters' : IDL.Func(\n [IDL.Null],\n [NervousSystemParameters],\n ['query'],\n ),\n 'get_neuron' : IDL.Func([GetNeuron], [GetNeuronResponse], ['query']),\n 'get_proposal' : IDL.Func([GetProposal], [GetProposalResponse], ['query']),\n 'get_root_canister_status' : IDL.Func(\n [IDL.Null],\n [CanisterStatusResultV2],\n [],\n ),\n 'get_running_sns_version' : IDL.Func(\n [IDL.Record({})],\n [GetRunningSnsVersionResponse],\n ['query'],\n ),\n 'get_sns_initialization_parameters' : IDL.Func(\n [IDL.Record({})],\n [GetSnsInitializationParametersResponse],\n ['query'],\n ),\n 'list_nervous_system_functions' : IDL.Func(\n [],\n [ListNervousSystemFunctionsResponse],\n ['query'],\n ),\n 'list_neurons' : IDL.Func([ListNeurons], [ListNeuronsResponse], ['query']),\n 'list_proposals' : IDL.Func(\n [ListProposals],\n [ListProposalsResponse],\n ['query'],\n ),\n 'manage_neuron' : IDL.Func([ManageNeuron], [ManageNeuronResponse], []),\n 'set_mode' : IDL.Func([SetMode], [IDL.Record({})], []),\n });\n};\nexport const init = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n return [Governance];\n};\n", "import type { IcrcAccount } from \"@dfinity/ledger\";\nimport { fromNullable, toNullable } from \"@dfinity/utils\";\nimport type {\n Account,\n Action as ActionCandid,\n Command,\n FunctionType as FunctionTypeCandid,\n GenericNervousSystemFunction as GenericNervousSystemFunctionCandid,\n ListProposals,\n ManageNeuron,\n ManageSnsMetadata as ManageSnsMetadataCandid,\n NervousSystemFunction as NervousSystemFunctionCandid,\n NervousSystemParameters as NervousSystemParametersCandid,\n NeuronId,\n Operation,\n TransferSnsTreasuryFunds as TransferSnsTreasuryFundsCandid,\n UpgradeSnsControlledCanister as UpgradeSnsControlledCanisterCandid,\n VotingRewardsParameters as VotingRewardsParametersCandid,\n} from \"../../candid/sns_governance\";\nimport { DEFAULT_PROPOSALS_LIMIT } from \"../constants/governance.constants\";\nimport type {\n Action,\n FunctionType,\n GenericNervousSystemFunction,\n ManageSnsMetadata,\n NervousSystemFunction,\n NervousSystemParameters,\n TransferSnsTreasuryFunds,\n UpgradeSnsControlledCanister,\n VotingRewardsParameters,\n} from \"../types/actions\";\nimport type {\n SnsClaimOrRefreshArgs,\n SnsDisburseNeuronParams,\n SnsIncreaseDissolveDelayParams,\n SnsListProposalsParams,\n SnsNeuronAutoStakeMaturityParams,\n SnsNeuronDisburseMaturityParams,\n SnsNeuronPermissionsParams,\n SnsNeuronStakeMaturityParams,\n SnsRegisterVoteParams,\n SnsSetDissolveTimestampParams,\n SnsSetTopicFollowees,\n SnsSplitNeuronParams,\n} from \"../types/governance.params\";\n\n// Helper for building `ManageNeuron` structure\nconst toManageNeuronCommand = ({\n neuronId: { id },\n command,\n}: {\n neuronId: NeuronId;\n command: Command;\n}): ManageNeuron => ({\n subaccount: id,\n command: [command],\n});\n\n// Helper for building `ManageNeuron` structure for type `Operation` commands\nconst toManageNeuronConfigureCommand = ({\n neuronId,\n operation,\n}: {\n neuronId: NeuronId;\n operation: Operation;\n}): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n Configure: {\n operation: [operation],\n },\n },\n });\n\nexport const toCandidAccount = ({\n owner,\n subaccount,\n}: IcrcAccount): Account => ({\n owner: toNullable(owner),\n subaccount: subaccount === undefined ? [] : toNullable({ subaccount }),\n});\n\nexport const toAddPermissionsRequest = ({\n neuronId,\n permissions,\n principal,\n}: SnsNeuronPermissionsParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n AddNeuronPermissions: {\n permissions_to_add: [{ permissions: Int32Array.from(permissions) }],\n principal_id: [principal],\n },\n },\n });\n\nexport const toRemovePermissionsRequest = ({\n neuronId,\n permissions,\n principal,\n}: SnsNeuronPermissionsParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n RemoveNeuronPermissions: {\n permissions_to_remove: [{ permissions: Int32Array.from(permissions) }],\n principal_id: [principal],\n },\n },\n });\n\nexport const toSplitNeuronRequest = ({\n neuronId,\n memo,\n amount: amount_e8s,\n}: SnsSplitNeuronParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n Split: {\n memo,\n amount_e8s,\n },\n },\n });\n\nexport const toDisburseNeuronRequest = ({\n neuronId,\n amount,\n toAccount,\n}: SnsDisburseNeuronParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n Disburse: {\n // currently there is a main account only support\n to_account:\n toAccount === undefined ? [] : toNullable(toCandidAccount(toAccount)),\n amount:\n amount === undefined\n ? []\n : [\n {\n e8s: amount,\n },\n ],\n },\n },\n });\n\nexport const toStartDissolvingNeuronRequest = (\n neuronId: NeuronId,\n): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: { StartDissolving: {} },\n });\n\nexport const toStopDissolvingNeuronRequest = (\n neuronId: NeuronId,\n): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: { StopDissolving: {} },\n });\n\nexport const toStakeMaturityRequest = ({\n neuronId,\n percentageToStake,\n}: SnsNeuronStakeMaturityParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n StakeMaturity: {\n percentage_to_stake: toNullable(percentageToStake),\n },\n },\n });\n\nexport const toDisburseMaturityRequest = ({\n neuronId,\n percentageToDisburse,\n toAccount,\n}: SnsNeuronDisburseMaturityParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n DisburseMaturity: {\n // currently there is a main account only support\n to_account:\n toAccount === undefined ? [] : toNullable(toCandidAccount(toAccount)),\n percentage_to_disburse: percentageToDisburse,\n },\n },\n });\n\nexport const toAutoStakeMaturityNeuronRequest = ({\n neuronId,\n autoStake: requested_setting_for_auto_stake_maturity,\n}: SnsNeuronAutoStakeMaturityParams): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: {\n ChangeAutoStakeMaturity: {\n requested_setting_for_auto_stake_maturity,\n },\n },\n });\n\nexport const toSetDissolveTimestampRequest = ({\n neuronId,\n dissolveTimestampSeconds,\n}: SnsSetDissolveTimestampParams): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: {\n SetDissolveTimestamp: {\n dissolve_timestamp_seconds: dissolveTimestampSeconds,\n },\n },\n });\n\nexport const toIncreaseDissolveDelayRequest = ({\n neuronId,\n additionalDissolveDelaySeconds,\n}: SnsIncreaseDissolveDelayParams): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: {\n IncreaseDissolveDelay: {\n additional_dissolve_delay_seconds: additionalDissolveDelaySeconds,\n },\n },\n });\n\nexport const toFollowRequest = ({\n neuronId,\n functionId,\n followees,\n}: SnsSetTopicFollowees): ManageNeuron => ({\n subaccount: neuronId.id,\n command: [\n {\n Follow: {\n function_id: functionId,\n followees,\n },\n },\n ],\n});\n\nexport const toRegisterVoteRequest = ({\n neuronId,\n proposalId,\n vote,\n}: SnsRegisterVoteParams): ManageNeuron => ({\n subaccount: neuronId.id,\n command: [\n {\n RegisterVote: {\n vote,\n proposal: [proposalId],\n },\n },\n ],\n});\n\nexport const toClaimOrRefreshRequest = ({\n subaccount,\n memo,\n controller,\n}: SnsClaimOrRefreshArgs): ManageNeuron => ({\n subaccount,\n command: [\n {\n ClaimOrRefresh: {\n by: [\n // If memo is not passed, we consider it a neuronId request because the memo is mandatory for MemoAndController\n memo === undefined\n ? { NeuronId: {} }\n : {\n MemoAndController: { memo, controller: toNullable(controller) },\n },\n ],\n },\n },\n ],\n});\n\nexport const toListProposalRequest = ({\n excludeType,\n beforeProposal,\n includeRewardStatus,\n includeStatus,\n limit,\n}: SnsListProposalsParams): ListProposals => ({\n exclude_type: BigUint64Array.from(excludeType ?? []),\n before_proposal: toNullable(beforeProposal),\n include_reward_status: Int32Array.from(includeRewardStatus ?? []),\n include_status: Int32Array.from(includeStatus ?? []),\n limit: limit ?? DEFAULT_PROPOSALS_LIMIT,\n});\n\nexport const fromCandidAction = (action: ActionCandid): Action => {\n if (\"ManageNervousSystemParameters\" in action) {\n return {\n ManageNervousSystemParameters: convertNervousSystemParams(\n action.ManageNervousSystemParameters,\n ),\n };\n }\n\n if (\"AddGenericNervousSystemFunction\" in action) {\n return {\n AddGenericNervousSystemFunction: convertNervousSystemFunction(\n action.AddGenericNervousSystemFunction,\n ),\n };\n }\n\n if (\"RemoveGenericNervousSystemFunction\" in action) {\n return {\n RemoveGenericNervousSystemFunction:\n action.RemoveGenericNervousSystemFunction,\n };\n }\n\n if (\"UpgradeSnsToNextVersion\" in action) {\n return { UpgradeSnsToNextVersion: action.UpgradeSnsToNextVersion };\n }\n\n if (\"RegisterDappCanisters\" in action) {\n return { RegisterDappCanisters: action.RegisterDappCanisters };\n }\n\n if (\"TransferSnsTreasuryFunds\" in action) {\n return {\n TransferSnsTreasuryFunds: convertTransferSnsTreasuryFunds(\n action.TransferSnsTreasuryFunds,\n ),\n };\n }\n\n if (\"UpgradeSnsControlledCanister\" in action) {\n return {\n UpgradeSnsControlledCanister: convertUpgradeSnsControlledCanister(\n action.UpgradeSnsControlledCanister,\n ),\n };\n }\n\n if (\"DeregisterDappCanisters\" in action) {\n return { DeregisterDappCanisters: action.DeregisterDappCanisters };\n }\n\n if (\"Unspecified\" in action) {\n return { Unspecified: action.Unspecified };\n }\n\n if (\"ManageSnsMetadata\" in action) {\n return {\n ManageSnsMetadata: convertManageSnsMetadata(action.ManageSnsMetadata),\n };\n }\n\n if (\"ExecuteGenericNervousSystemFunction\" in action) {\n return {\n ExecuteGenericNervousSystemFunction:\n action.ExecuteGenericNervousSystemFunction,\n };\n }\n\n if (\"Motion\" in action) {\n return { Motion: action.Motion };\n }\n\n throw new Error(`Unknown action type ${JSON.stringify(action)}`);\n};\n\nconst convertManageSnsMetadata = (\n params: ManageSnsMetadataCandid,\n): ManageSnsMetadata => ({\n url: fromNullable(params.url),\n logo: fromNullable(params.logo),\n name: fromNullable(params.name),\n description: fromNullable(params.description),\n});\n\nconst convertUpgradeSnsControlledCanister = (\n params: UpgradeSnsControlledCanisterCandid,\n): UpgradeSnsControlledCanister => ({\n new_canister_wasm: params.new_canister_wasm,\n canister_id: fromNullable(params.canister_id),\n canister_upgrade_arg: fromNullable(params.canister_upgrade_arg),\n mode: fromNullable(params.mode),\n});\n\nconst convertTransferSnsTreasuryFunds = (\n params: TransferSnsTreasuryFundsCandid,\n): TransferSnsTreasuryFunds => ({\n from_treasury: params.from_treasury,\n to_principal: fromNullable(params.to_principal),\n to_subaccount: fromNullable(params.to_subaccount),\n memo: fromNullable(params.memo),\n amount_e8s: params.amount_e8s,\n});\n\nconst convertGenericNervousSystemFunction = (\n params: GenericNervousSystemFunctionCandid,\n): GenericNervousSystemFunction => ({\n validator_canister_id: fromNullable(params.validator_canister_id),\n target_canister_id: fromNullable(params.target_canister_id),\n validator_method_name: fromNullable(params.validator_method_name),\n target_method_name: fromNullable(params.target_method_name),\n});\n\nconst convertFunctionType = (\n params: FunctionTypeCandid | undefined,\n): FunctionType | undefined => {\n if (params === undefined) {\n return undefined;\n }\n\n if (\"NativeNervousSystemFunction\" in params) {\n return { NativeNervousSystemFunction: params.NativeNervousSystemFunction };\n }\n\n if (\"GenericNervousSystemFunction\" in params) {\n return {\n GenericNervousSystemFunction: convertGenericNervousSystemFunction(\n params.GenericNervousSystemFunction,\n ),\n };\n }\n\n throw new Error(`Unknown FunctionType ${JSON.stringify(params)}`);\n};\n\nconst convertNervousSystemFunction = (\n params: NervousSystemFunctionCandid,\n): NervousSystemFunction => ({\n id: params.id,\n name: params.name,\n description: fromNullable(params.description),\n function_type: convertFunctionType(fromNullable(params.function_type)),\n});\n\nconst convertVotingRewardsParameters = (\n params: VotingRewardsParametersCandid | undefined,\n): VotingRewardsParameters | undefined =>\n params && {\n final_reward_rate_basis_points: fromNullable(\n params.final_reward_rate_basis_points,\n ),\n initial_reward_rate_basis_points: fromNullable(\n params.initial_reward_rate_basis_points,\n ),\n reward_rate_transition_duration_seconds: fromNullable(\n params.reward_rate_transition_duration_seconds,\n ),\n round_duration_seconds: fromNullable(params.round_duration_seconds),\n };\n\nconst convertNervousSystemParams = (\n params: NervousSystemParametersCandid,\n): NervousSystemParameters => ({\n default_followees: fromNullable(params.default_followees),\n max_dissolve_delay_seconds: fromNullable(params.max_dissolve_delay_seconds),\n max_dissolve_delay_bonus_percentage: fromNullable(\n params.max_dissolve_delay_bonus_percentage,\n ),\n max_followees_per_function: fromNullable(params.max_followees_per_function),\n neuron_claimer_permissions: fromNullable(params.neuron_claimer_permissions),\n neuron_minimum_stake_e8s: fromNullable(params.neuron_minimum_stake_e8s),\n max_neuron_age_for_age_bonus: fromNullable(\n params.max_neuron_age_for_age_bonus,\n ),\n initial_voting_period_seconds: fromNullable(\n params.initial_voting_period_seconds,\n ),\n neuron_minimum_dissolve_delay_to_vote_seconds: fromNullable(\n params.neuron_minimum_dissolve_delay_to_vote_seconds,\n ),\n reject_cost_e8s: fromNullable(params.reject_cost_e8s),\n max_proposals_to_keep_per_action: fromNullable(\n params.max_proposals_to_keep_per_action,\n ),\n wait_for_quiet_deadline_increase_seconds: fromNullable(\n params.wait_for_quiet_deadline_increase_seconds,\n ),\n max_number_of_neurons: fromNullable(params.max_number_of_neurons),\n transaction_fee_e8s: fromNullable(params.transaction_fee_e8s),\n max_number_of_proposals_with_ballots: fromNullable(\n params.max_number_of_proposals_with_ballots,\n ),\n max_age_bonus_percentage: fromNullable(params.max_age_bonus_percentage),\n neuron_grantable_permissions: fromNullable(\n params.neuron_grantable_permissions,\n ),\n voting_rewards_parameters: convertVotingRewardsParameters(\n fromNullable(params.voting_rewards_parameters),\n ),\n max_number_of_principals_per_neuron: fromNullable(\n params.max_number_of_principals_per_neuron,\n ),\n});\n"],
4
+ "sourcesContent": ["import type { Principal } from \"@dfinity/principal\";\nimport type { QueryParams } from \"@dfinity/utils\";\nimport {\n assertPercentageNumber,\n Canister,\n createServices,\n fromNullable,\n toNullable,\n} from \"@dfinity/utils\";\nimport type {\n GetMetadataResponse,\n ListNervousSystemFunctionsResponse,\n ManageNeuron,\n ManageNeuronResponse,\n NervousSystemParameters,\n Neuron,\n NeuronId,\n ProposalData,\n _SERVICE as SnsGovernanceService,\n SplitResponse,\n} from \"../candid/sns_governance\";\nimport { idlFactory as certifiedIdlFactory } from \"../candid/sns_governance.certified.idl\";\nimport { idlFactory } from \"../candid/sns_governance.idl\";\nimport { MAX_LIST_NEURONS_RESULTS } from \"./constants/governance.constants\";\nimport {\n toAddPermissionsRequest,\n toAutoStakeMaturityNeuronRequest,\n toClaimOrRefreshRequest,\n toDisburseMaturityRequest,\n toDisburseNeuronRequest,\n toFollowRequest,\n toIncreaseDissolveDelayRequest,\n toListProposalRequest,\n toRegisterVoteRequest,\n toRemovePermissionsRequest,\n toSetDissolveTimestampRequest,\n toSplitNeuronRequest,\n toStakeMaturityRequest,\n toStartDissolvingNeuronRequest,\n toStopDissolvingNeuronRequest,\n} from \"./converters/governance.converters\";\nimport { SnsGovernanceError } from \"./errors/governance.errors\";\nimport type { SnsCanisterOptions } from \"./types/canister.options\";\nimport type {\n SnsClaimNeuronParams,\n SnsDisburseNeuronParams,\n SnsGetNeuronParams,\n SnsGetProposalParams,\n SnsIncreaseDissolveDelayParams,\n SnsListNeuronsParams,\n SnsListProposalsParams,\n SnsNeuronAutoStakeMaturityParams,\n SnsNeuronDisburseMaturityParams,\n SnsNeuronPermissionsParams,\n SnsNeuronStakeMaturityParams,\n SnsRegisterVoteParams,\n SnsSetDissolveTimestampParams,\n SnsSetTopicFollowees,\n SnsSplitNeuronParams,\n} from \"./types/governance.params\";\n\nexport class SnsGovernanceCanister extends Canister<SnsGovernanceService> {\n /**\n * Instantiate a canister to interact with the governance of a Sns project.\n *\n * @param {SnsCanisterOptions} options Miscellaneous options to initialize the canister. Its ID being the only mandatory parammeter.\n */\n static create(options: SnsCanisterOptions<SnsGovernanceService>) {\n const { service, certifiedService, canisterId } =\n createServices<SnsGovernanceService>({\n options,\n idlFactory,\n certifiedIdlFactory,\n });\n\n return new SnsGovernanceCanister(canisterId, service, certifiedService);\n }\n\n /**\n * List the neurons of the Sns\n */\n listNeurons = async (params: SnsListNeuronsParams): Promise<Neuron[]> => {\n const { principal, limit, beforeNeuronId } = params;\n\n const { neurons } = await this.caller(params).list_neurons({\n of_principal: toNullable<Principal>(principal),\n limit: limit ?? MAX_LIST_NEURONS_RESULTS,\n start_page_at: toNullable<NeuronId>(beforeNeuronId),\n });\n return neurons;\n };\n\n /**\n * List the proposals of the Sns\n */\n listProposals = async (\n params: SnsListProposalsParams,\n ): Promise<ProposalData[]> => {\n const { certified } = params;\n\n const { proposals } = await this.caller({ certified }).list_proposals(\n toListProposalRequest(params),\n );\n return proposals;\n };\n\n /**\n * Get the proposal of the Sns\n */\n getProposal = async (params: SnsGetProposalParams): Promise<ProposalData> => {\n const { proposalId } = params;\n\n const { result } = await this.caller(params).get_proposal({\n proposal_id: toNullable(proposalId),\n });\n const data = fromNullable(result);\n if (data === undefined || \"Error\" in data) {\n throw new SnsGovernanceError(\n data?.Error.error_message ?? \"Response type not supported\",\n );\n }\n return data.Proposal;\n };\n\n /**\n * List Nervous System Functions\n * Neurons can follow other neurons in specific Nervous System Functions.\n */\n listNervousSystemFunctions = async (\n params: QueryParams,\n ): Promise<ListNervousSystemFunctionsResponse> =>\n this.caller(params).list_nervous_system_functions();\n\n /**\n * Get the Sns metadata (title, description, etc.)\n */\n metadata = (params: QueryParams): Promise<GetMetadataResponse> =>\n this.caller(params).get_metadata({});\n\n /**\n * Get the Sns nervous system parameters (default followees, max dissolve delay, max number of neurons, etc.)\n */\n nervousSystemParameters = (\n params: QueryParams,\n ): Promise<NervousSystemParameters> =>\n this.caller(params).get_nervous_system_parameters(null);\n\n /**\n * Get the neuron of the Sns\n */\n getNeuron = async (params: SnsGetNeuronParams): Promise<Neuron> => {\n const { neuronId } = params;\n\n const { result } = await this.caller(params).get_neuron({\n neuron_id: toNullable(neuronId),\n });\n const data = fromNullable(result);\n if (data === undefined || \"Error\" in data) {\n throw new SnsGovernanceError(\n data?.Error.error_message ?? \"Response type not supported\",\n );\n }\n return data.Neuron;\n };\n\n /**\n * Same as `getNeuron` but returns undefined instead of raising error when not found.\n */\n queryNeuron = async (\n params: SnsGetNeuronParams,\n ): Promise<Neuron | undefined> => {\n try {\n return await this.getNeuron(params);\n } catch (error: unknown) {\n // Source: https://github.com/dfinity/ic/blob/master/rs/sns/governance/src/governance.rs#L914\n if (\n error instanceof Error &&\n error.message.includes(\"No neuron for given NeuronId\")\n ) {\n return undefined;\n }\n throw error;\n }\n };\n\n /**\n * Manage neuron. For advanced users.\n */\n manageNeuron = async (\n request: ManageNeuron,\n ): Promise<ManageNeuronResponse> => {\n const response = await this.caller({ certified: true }).manage_neuron(\n request,\n );\n this.assertManageNeuronError(response);\n return response;\n };\n\n /**\n * Add permissions to a neuron for a specific principal\n */\n addNeuronPermissions = async (\n params: SnsNeuronPermissionsParams,\n ): Promise<void> => {\n const request: ManageNeuron = toAddPermissionsRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Remove permissions to a neuron for a specific principal\n */\n removeNeuronPermissions = async (\n params: SnsNeuronPermissionsParams,\n ): Promise<void> => {\n const request: ManageNeuron = toRemovePermissionsRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Split neuron\n */\n public splitNeuron = async (\n params: SnsSplitNeuronParams,\n ): Promise<NeuronId | undefined> => {\n const request: ManageNeuron = toSplitNeuronRequest(params);\n const { command } = await this.manageNeuron(request);\n const response = fromNullable(command);\n const errorMessage = (details: string) =>\n `Split neuron failed (${details})`;\n\n // Validate response\n if (response === undefined) {\n throw new SnsGovernanceError(errorMessage(\"no response\"));\n }\n\n if (\"Split\" in response) {\n const split = response.Split as SplitResponse;\n const neuronId = fromNullable(split.created_neuron_id) as NeuronId;\n\n if (neuronId !== undefined) {\n return neuronId;\n }\n\n throw new SnsGovernanceError(errorMessage(\"no id\"));\n }\n\n throw new SnsGovernanceError(errorMessage(\"unknown\"));\n };\n\n /**\n * Disburse neuron on Account\n */\n disburse = async (params: SnsDisburseNeuronParams): Promise<void> => {\n const request: ManageNeuron = toDisburseNeuronRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Start dissolving process of a neuron\n */\n startDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request: ManageNeuron = toStartDissolvingNeuronRequest(neuronId);\n await this.manageNeuron(request);\n };\n\n /**\n * Stop dissolving process of a neuron\n */\n stopDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request: ManageNeuron = toStopDissolvingNeuronRequest(neuronId);\n await this.manageNeuron(request);\n };\n\n /**\n * Stake the maturity of a neuron.\n *\n * @param {neuronId: NeuronId; percentageToStake: number;} params\n * @param {NeuronId} neuronId The id of the neuron for which to stake the maturity\n * @param {number} percentageToStake Optional. Percentage of the current maturity to stake. If not provided, all of the neuron's current maturity will be staked.\n */\n stakeMaturity = async ({\n neuronId,\n percentageToStake,\n }: SnsNeuronStakeMaturityParams): Promise<void> => {\n assertPercentageNumber(percentageToStake ?? 100);\n\n const request: ManageNeuron = toStakeMaturityRequest({\n neuronId,\n percentageToStake,\n });\n await this.manageNeuron(request);\n };\n\n /**\n * Disburse the maturity of a neuron.\n *\n * @param {neuronId: NeuronId; toAccount?: IcrcAccount; percentageToDisburse: number; } params\n * @param {IcrcAccount} toAccount. Account to disburse maturity.\n * @param {NeuronId} neuronId The id of the neuron for which to disburse the maturity\n * @param {number} percentageToDisburse What percentage of the available maturity to disburse.\n */\n disburseMaturity = async (\n params: SnsNeuronDisburseMaturityParams,\n ): Promise<void> => {\n assertPercentageNumber(params.percentageToDisburse);\n\n const request: ManageNeuron = toDisburseMaturityRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Changes auto-stake maturity for a Neuron.\n *\n * @param {neuronId: NeuronId; autoStake: boolean;} params\n * @param {NeuronId} neuronId The id of the neuron for which to request a change of the auto stake feature\n * @param {number} autoStake `true` to enable the auto-stake maturity for this neuron, `false` to turn it off\n */\n autoStakeMaturity = async (\n params: SnsNeuronAutoStakeMaturityParams,\n ): Promise<void> => {\n const request: ManageNeuron = toAutoStakeMaturityNeuronRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Increase dissolve delay of a neuron\n */\n setDissolveTimestamp = async (\n params: SnsSetDissolveTimestampParams,\n ): Promise<void> => {\n const request: ManageNeuron = toSetDissolveTimestampRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Increase dissolve delay of a neuron\n */\n increaseDissolveDelay = async (\n params: SnsIncreaseDissolveDelayParams,\n ): Promise<void> => {\n const request: ManageNeuron = toIncreaseDissolveDelayRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Sets followees of a neuron for a specific Nervous System Function (topic)\n */\n setTopicFollowees = async (params: SnsSetTopicFollowees): Promise<void> => {\n const request: ManageNeuron = toFollowRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Registers vote for a proposal from the neuron passed.\n */\n registerVote = async (params: SnsRegisterVoteParams): Promise<void> => {\n const request: ManageNeuron = toRegisterVoteRequest(params);\n await this.manageNeuron(request);\n };\n\n /**\n * Refresh neuron\n */\n refreshNeuron = async (neuronId: NeuronId): Promise<void> => {\n const request: ManageNeuron = toClaimOrRefreshRequest({\n subaccount: neuronId.id,\n });\n await this.manageNeuron(request);\n };\n\n /**\n * Claim neuron\n */\n claimNeuron = async ({\n memo,\n controller,\n subaccount,\n }: SnsClaimNeuronParams): Promise<NeuronId> => {\n const request: ManageNeuron = toClaimOrRefreshRequest({\n subaccount,\n memo,\n controller,\n });\n const { command } = await this.manageNeuron(request);\n const response = fromNullable(command);\n // Edge case. This should not happen\n if (response === undefined) {\n throw new SnsGovernanceError(\"Claim neuron failed\");\n }\n if (\"ClaimOrRefresh\" in response) {\n const neuronId = fromNullable(\n response.ClaimOrRefresh.refreshed_neuron_id,\n );\n // This might happen.\n if (neuronId === undefined) {\n throw new SnsGovernanceError(\"Claim neuron failed\");\n }\n return neuronId;\n }\n // Edge case. manage_neuron for ClaimOrRefresh returns only ClaimOrRefresh response.\n throw new SnsGovernanceError(\"Claim neuron failed\");\n };\n\n /**\n *\n * @param response ManageNeuronResponse\n * @throws SnsGovernanceError\n */\n private assertManageNeuronError = ({\n command,\n }: ManageNeuronResponse): void => {\n // TODO: use upcoming fromDefinedNullable\n const firstCommand = command[0];\n if (firstCommand !== undefined && \"Error\" in firstCommand) {\n throw new SnsGovernanceError(firstCommand.Error.error_message);\n }\n };\n}\n", "/* Do not edit. Compiled with ./scripts/compile-idl-js from packages/sns/candid/sns_governance.did */\nexport const idlFactory = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n const NeuronParameters = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'stake_e8s' : IDL.Opt(IDL.Nat64),\n 'followees' : IDL.Vec(NeuronId),\n 'hotkey' : IDL.Opt(IDL.Principal),\n 'neuron_id' : IDL.Opt(NeuronId),\n });\n const ClaimSwapNeuronsRequest = IDL.Record({\n 'neuron_parameters' : IDL.Vec(NeuronParameters),\n });\n const SwapNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'status' : IDL.Int32,\n });\n const ClaimedSwapNeurons = IDL.Record({\n 'swap_neurons' : IDL.Vec(SwapNeuron),\n });\n const ClaimSwapNeuronsResult = IDL.Variant({\n 'Ok' : ClaimedSwapNeurons,\n 'Err' : IDL.Int32,\n });\n const ClaimSwapNeuronsResponse = IDL.Record({\n 'claim_swap_neurons_result' : IDL.Opt(ClaimSwapNeuronsResult),\n });\n const GetMaturityModulationResponse = IDL.Record({\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n });\n const GetMetadataResponse = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const GetModeResponse = IDL.Record({ 'mode' : IDL.Opt(IDL.Int32) });\n const GetNeuron = IDL.Record({ 'neuron_id' : IDL.Opt(NeuronId) });\n const Result = IDL.Variant({ 'Error' : GovernanceError, 'Neuron' : Neuron });\n const GetNeuronResponse = IDL.Record({ 'result' : IDL.Opt(Result) });\n const GetProposal = IDL.Record({ 'proposal_id' : IDL.Opt(ProposalId) });\n const Result_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'Proposal' : ProposalData,\n });\n const GetProposalResponse = IDL.Record({ 'result' : IDL.Opt(Result_1) });\n const CanisterStatusType = IDL.Variant({\n 'stopped' : IDL.Null,\n 'stopping' : IDL.Null,\n 'running' : IDL.Null,\n });\n const DefiniteCanisterSettingsArgs = IDL.Record({\n 'freezing_threshold' : IDL.Nat,\n 'controllers' : IDL.Vec(IDL.Principal),\n 'memory_allocation' : IDL.Nat,\n 'compute_allocation' : IDL.Nat,\n });\n const CanisterStatusResultV2 = IDL.Record({\n 'status' : CanisterStatusType,\n 'memory_size' : IDL.Nat,\n 'cycles' : IDL.Nat,\n 'settings' : DefiniteCanisterSettingsArgs,\n 'idle_cycles_burned_per_day' : IDL.Nat,\n 'module_hash' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const GetRunningSnsVersionResponse = IDL.Record({\n 'deployed_version' : IDL.Opt(Version),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n });\n const GetSnsInitializationParametersResponse = IDL.Record({\n 'sns_initialization_parameters' : IDL.Text,\n });\n const ListNervousSystemFunctionsResponse = IDL.Record({\n 'reserved_ids' : IDL.Vec(IDL.Nat64),\n 'functions' : IDL.Vec(NervousSystemFunction),\n });\n const ListNeurons = IDL.Record({\n 'of_principal' : IDL.Opt(IDL.Principal),\n 'limit' : IDL.Nat32,\n 'start_page_at' : IDL.Opt(NeuronId),\n });\n const ListNeuronsResponse = IDL.Record({ 'neurons' : IDL.Vec(Neuron) });\n const ListProposals = IDL.Record({\n 'include_reward_status' : IDL.Vec(IDL.Int32),\n 'before_proposal' : IDL.Opt(ProposalId),\n 'limit' : IDL.Nat32,\n 'exclude_type' : IDL.Vec(IDL.Nat64),\n 'include_status' : IDL.Vec(IDL.Int32),\n });\n const ListProposalsResponse = IDL.Record({\n 'proposals' : IDL.Vec(ProposalData),\n });\n const StakeMaturity = IDL.Record({\n 'percentage_to_stake' : IDL.Opt(IDL.Nat32),\n });\n const Command = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'MakeProposal' : Proposal,\n 'StakeMaturity' : StakeMaturity,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const ManageNeuron = IDL.Record({\n 'subaccount' : IDL.Vec(IDL.Nat8),\n 'command' : IDL.Opt(Command),\n });\n const SplitResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n 'amount_disbursed_e8s' : IDL.Nat64,\n 'amount_deducted_e8s' : IDL.Opt(IDL.Nat64),\n });\n const ClaimOrRefreshResponse = IDL.Record({\n 'refreshed_neuron_id' : IDL.Opt(NeuronId),\n });\n const StakeMaturityResponse = IDL.Record({\n 'maturity_e8s' : IDL.Nat64,\n 'staked_maturity_e8s' : IDL.Nat64,\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 'Split' : SplitResponse,\n 'Follow' : IDL.Record({}),\n 'DisburseMaturity' : DisburseMaturityResponse,\n 'ClaimOrRefresh' : ClaimOrRefreshResponse,\n 'Configure' : IDL.Record({}),\n 'RegisterVote' : IDL.Record({}),\n 'MakeProposal' : GetProposal,\n 'RemoveNeuronPermission' : IDL.Record({}),\n 'StakeMaturity' : StakeMaturityResponse,\n 'MergeMaturity' : MergeMaturityResponse,\n 'Disburse' : DisburseResponse,\n 'AddNeuronPermission' : IDL.Record({}),\n });\n const ManageNeuronResponse = IDL.Record({ 'command' : IDL.Opt(Command_1) });\n const SetMode = IDL.Record({ 'mode' : IDL.Int32 });\n return IDL.Service({\n 'claim_swap_neurons' : IDL.Func(\n [ClaimSwapNeuronsRequest],\n [ClaimSwapNeuronsResponse],\n [],\n ),\n 'fail_stuck_upgrade_in_progress' : IDL.Func(\n [IDL.Record({})],\n [IDL.Record({})],\n [],\n ),\n 'get_build_metadata' : IDL.Func([], [IDL.Text], []),\n 'get_latest_reward_event' : IDL.Func([], [RewardEvent], []),\n 'get_maturity_modulation' : IDL.Func(\n [IDL.Record({})],\n [GetMaturityModulationResponse],\n [],\n ),\n 'get_metadata' : IDL.Func([IDL.Record({})], [GetMetadataResponse], []),\n 'get_mode' : IDL.Func([IDL.Record({})], [GetModeResponse], []),\n 'get_nervous_system_parameters' : IDL.Func(\n [IDL.Null],\n [NervousSystemParameters],\n [],\n ),\n 'get_neuron' : IDL.Func([GetNeuron], [GetNeuronResponse], []),\n 'get_proposal' : IDL.Func([GetProposal], [GetProposalResponse], []),\n 'get_root_canister_status' : IDL.Func(\n [IDL.Null],\n [CanisterStatusResultV2],\n [],\n ),\n 'get_running_sns_version' : IDL.Func(\n [IDL.Record({})],\n [GetRunningSnsVersionResponse],\n [],\n ),\n 'get_sns_initialization_parameters' : IDL.Func(\n [IDL.Record({})],\n [GetSnsInitializationParametersResponse],\n [],\n ),\n 'list_nervous_system_functions' : IDL.Func(\n [],\n [ListNervousSystemFunctionsResponse],\n [],\n ),\n 'list_neurons' : IDL.Func([ListNeurons], [ListNeuronsResponse], []),\n 'list_proposals' : IDL.Func([ListProposals], [ListProposalsResponse], []),\n 'manage_neuron' : IDL.Func([ManageNeuron], [ManageNeuronResponse], []),\n 'set_mode' : IDL.Func([SetMode], [IDL.Record({})], []),\n });\n};\nexport const init = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n return [Governance];\n};\n", "/* Do not edit. Compiled with ./scripts/compile-idl-js from packages/sns/candid/sns_governance.did */\nexport const idlFactory = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n const NeuronParameters = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'stake_e8s' : IDL.Opt(IDL.Nat64),\n 'followees' : IDL.Vec(NeuronId),\n 'hotkey' : IDL.Opt(IDL.Principal),\n 'neuron_id' : IDL.Opt(NeuronId),\n });\n const ClaimSwapNeuronsRequest = IDL.Record({\n 'neuron_parameters' : IDL.Vec(NeuronParameters),\n });\n const SwapNeuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'status' : IDL.Int32,\n });\n const ClaimedSwapNeurons = IDL.Record({\n 'swap_neurons' : IDL.Vec(SwapNeuron),\n });\n const ClaimSwapNeuronsResult = IDL.Variant({\n 'Ok' : ClaimedSwapNeurons,\n 'Err' : IDL.Int32,\n });\n const ClaimSwapNeuronsResponse = IDL.Record({\n 'claim_swap_neurons_result' : IDL.Opt(ClaimSwapNeuronsResult),\n });\n const GetMaturityModulationResponse = IDL.Record({\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n });\n const GetMetadataResponse = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const GetModeResponse = IDL.Record({ 'mode' : IDL.Opt(IDL.Int32) });\n const GetNeuron = IDL.Record({ 'neuron_id' : IDL.Opt(NeuronId) });\n const Result = IDL.Variant({ 'Error' : GovernanceError, 'Neuron' : Neuron });\n const GetNeuronResponse = IDL.Record({ 'result' : IDL.Opt(Result) });\n const GetProposal = IDL.Record({ 'proposal_id' : IDL.Opt(ProposalId) });\n const Result_1 = IDL.Variant({\n 'Error' : GovernanceError,\n 'Proposal' : ProposalData,\n });\n const GetProposalResponse = IDL.Record({ 'result' : IDL.Opt(Result_1) });\n const CanisterStatusType = IDL.Variant({\n 'stopped' : IDL.Null,\n 'stopping' : IDL.Null,\n 'running' : IDL.Null,\n });\n const DefiniteCanisterSettingsArgs = IDL.Record({\n 'freezing_threshold' : IDL.Nat,\n 'controllers' : IDL.Vec(IDL.Principal),\n 'memory_allocation' : IDL.Nat,\n 'compute_allocation' : IDL.Nat,\n });\n const CanisterStatusResultV2 = IDL.Record({\n 'status' : CanisterStatusType,\n 'memory_size' : IDL.Nat,\n 'cycles' : IDL.Nat,\n 'settings' : DefiniteCanisterSettingsArgs,\n 'idle_cycles_burned_per_day' : IDL.Nat,\n 'module_hash' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const GetRunningSnsVersionResponse = IDL.Record({\n 'deployed_version' : IDL.Opt(Version),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n });\n const GetSnsInitializationParametersResponse = IDL.Record({\n 'sns_initialization_parameters' : IDL.Text,\n });\n const ListNervousSystemFunctionsResponse = IDL.Record({\n 'reserved_ids' : IDL.Vec(IDL.Nat64),\n 'functions' : IDL.Vec(NervousSystemFunction),\n });\n const ListNeurons = IDL.Record({\n 'of_principal' : IDL.Opt(IDL.Principal),\n 'limit' : IDL.Nat32,\n 'start_page_at' : IDL.Opt(NeuronId),\n });\n const ListNeuronsResponse = IDL.Record({ 'neurons' : IDL.Vec(Neuron) });\n const ListProposals = IDL.Record({\n 'include_reward_status' : IDL.Vec(IDL.Int32),\n 'before_proposal' : IDL.Opt(ProposalId),\n 'limit' : IDL.Nat32,\n 'exclude_type' : IDL.Vec(IDL.Nat64),\n 'include_status' : IDL.Vec(IDL.Int32),\n });\n const ListProposalsResponse = IDL.Record({\n 'proposals' : IDL.Vec(ProposalData),\n });\n const StakeMaturity = IDL.Record({\n 'percentage_to_stake' : IDL.Opt(IDL.Nat32),\n });\n const Command = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'ClaimOrRefresh' : ClaimOrRefresh,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'MakeProposal' : Proposal,\n 'StakeMaturity' : StakeMaturity,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\n 'MergeMaturity' : MergeMaturity,\n 'Disburse' : Disburse,\n });\n const ManageNeuron = IDL.Record({\n 'subaccount' : IDL.Vec(IDL.Nat8),\n 'command' : IDL.Opt(Command),\n });\n const SplitResponse = IDL.Record({ 'created_neuron_id' : IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n 'amount_disbursed_e8s' : IDL.Nat64,\n 'amount_deducted_e8s' : IDL.Opt(IDL.Nat64),\n });\n const ClaimOrRefreshResponse = IDL.Record({\n 'refreshed_neuron_id' : IDL.Opt(NeuronId),\n });\n const StakeMaturityResponse = IDL.Record({\n 'maturity_e8s' : IDL.Nat64,\n 'staked_maturity_e8s' : IDL.Nat64,\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 'Split' : SplitResponse,\n 'Follow' : IDL.Record({}),\n 'DisburseMaturity' : DisburseMaturityResponse,\n 'ClaimOrRefresh' : ClaimOrRefreshResponse,\n 'Configure' : IDL.Record({}),\n 'RegisterVote' : IDL.Record({}),\n 'MakeProposal' : GetProposal,\n 'RemoveNeuronPermission' : IDL.Record({}),\n 'StakeMaturity' : StakeMaturityResponse,\n 'MergeMaturity' : MergeMaturityResponse,\n 'Disburse' : DisburseResponse,\n 'AddNeuronPermission' : IDL.Record({}),\n });\n const ManageNeuronResponse = IDL.Record({ 'command' : IDL.Opt(Command_1) });\n const SetMode = IDL.Record({ 'mode' : IDL.Int32 });\n return IDL.Service({\n 'claim_swap_neurons' : IDL.Func(\n [ClaimSwapNeuronsRequest],\n [ClaimSwapNeuronsResponse],\n [],\n ),\n 'fail_stuck_upgrade_in_progress' : IDL.Func(\n [IDL.Record({})],\n [IDL.Record({})],\n [],\n ),\n 'get_build_metadata' : IDL.Func([], [IDL.Text], ['query']),\n 'get_latest_reward_event' : IDL.Func([], [RewardEvent], ['query']),\n 'get_maturity_modulation' : IDL.Func(\n [IDL.Record({})],\n [GetMaturityModulationResponse],\n [],\n ),\n 'get_metadata' : IDL.Func(\n [IDL.Record({})],\n [GetMetadataResponse],\n ['query'],\n ),\n 'get_mode' : IDL.Func([IDL.Record({})], [GetModeResponse], ['query']),\n 'get_nervous_system_parameters' : IDL.Func(\n [IDL.Null],\n [NervousSystemParameters],\n ['query'],\n ),\n 'get_neuron' : IDL.Func([GetNeuron], [GetNeuronResponse], ['query']),\n 'get_proposal' : IDL.Func([GetProposal], [GetProposalResponse], ['query']),\n 'get_root_canister_status' : IDL.Func(\n [IDL.Null],\n [CanisterStatusResultV2],\n [],\n ),\n 'get_running_sns_version' : IDL.Func(\n [IDL.Record({})],\n [GetRunningSnsVersionResponse],\n ['query'],\n ),\n 'get_sns_initialization_parameters' : IDL.Func(\n [IDL.Record({})],\n [GetSnsInitializationParametersResponse],\n ['query'],\n ),\n 'list_nervous_system_functions' : IDL.Func(\n [],\n [ListNervousSystemFunctionsResponse],\n ['query'],\n ),\n 'list_neurons' : IDL.Func([ListNeurons], [ListNeuronsResponse], ['query']),\n 'list_proposals' : IDL.Func(\n [ListProposals],\n [ListProposalsResponse],\n ['query'],\n ),\n 'manage_neuron' : IDL.Func([ManageNeuron], [ManageNeuronResponse], []),\n 'set_mode' : IDL.Func([SetMode], [IDL.Record({})], []),\n });\n};\nexport const init = ({ IDL }) => {\n const GenericNervousSystemFunction = IDL.Record({\n 'validator_canister_id' : IDL.Opt(IDL.Principal),\n 'target_canister_id' : IDL.Opt(IDL.Principal),\n 'validator_method_name' : IDL.Opt(IDL.Text),\n 'target_method_name' : IDL.Opt(IDL.Text),\n });\n const FunctionType = IDL.Variant({\n 'NativeNervousSystemFunction' : IDL.Record({}),\n 'GenericNervousSystemFunction' : GenericNervousSystemFunction,\n });\n const NervousSystemFunction = IDL.Record({\n 'id' : IDL.Nat64,\n 'name' : IDL.Text,\n 'description' : IDL.Opt(IDL.Text),\n 'function_type' : IDL.Opt(FunctionType),\n });\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 'neurons_with_less_than_6_months_dissolve_delay_count' : IDL.Nat64,\n 'dissolved_neurons_count' : IDL.Nat64,\n 'total_staked_e8s' : IDL.Nat64,\n 'total_supply_governance_tokens' : 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 'timestamp_seconds' : IDL.Nat64,\n });\n const MaturityModulation = IDL.Record({\n 'current_basis_points' : IDL.Opt(IDL.Int32),\n 'updated_at_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NeuronId = IDL.Record({ 'id' : IDL.Vec(IDL.Nat8) });\n const Followees = IDL.Record({ 'followees' : IDL.Vec(NeuronId) });\n const DefaultFollowees = IDL.Record({\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n });\n const NeuronPermissionList = IDL.Record({\n 'permissions' : IDL.Vec(IDL.Int32),\n });\n const VotingRewardsParameters = IDL.Record({\n 'final_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'initial_reward_rate_basis_points' : IDL.Opt(IDL.Nat64),\n 'reward_rate_transition_duration_seconds' : IDL.Opt(IDL.Nat64),\n 'round_duration_seconds' : IDL.Opt(IDL.Nat64),\n });\n const NervousSystemParameters = IDL.Record({\n 'default_followees' : IDL.Opt(DefaultFollowees),\n 'max_dissolve_delay_seconds' : IDL.Opt(IDL.Nat64),\n 'max_dissolve_delay_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'max_followees_per_function' : IDL.Opt(IDL.Nat64),\n 'neuron_claimer_permissions' : IDL.Opt(NeuronPermissionList),\n 'neuron_minimum_stake_e8s' : IDL.Opt(IDL.Nat64),\n 'max_neuron_age_for_age_bonus' : IDL.Opt(IDL.Nat64),\n 'initial_voting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'neuron_minimum_dissolve_delay_to_vote_seconds' : IDL.Opt(IDL.Nat64),\n 'reject_cost_e8s' : IDL.Opt(IDL.Nat64),\n 'max_proposals_to_keep_per_action' : IDL.Opt(IDL.Nat32),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Opt(IDL.Nat64),\n 'max_number_of_neurons' : IDL.Opt(IDL.Nat64),\n 'transaction_fee_e8s' : IDL.Opt(IDL.Nat64),\n 'max_number_of_proposals_with_ballots' : IDL.Opt(IDL.Nat64),\n 'max_age_bonus_percentage' : IDL.Opt(IDL.Nat64),\n 'neuron_grantable_permissions' : IDL.Opt(NeuronPermissionList),\n 'voting_rewards_parameters' : IDL.Opt(VotingRewardsParameters),\n 'maturity_modulation_disabled' : IDL.Opt(IDL.Bool),\n 'max_number_of_principals_per_neuron' : IDL.Opt(IDL.Nat64),\n });\n const Version = IDL.Record({\n 'archive_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'root_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'swap_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'ledger_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'governance_wasm_hash' : IDL.Vec(IDL.Nat8),\n 'index_wasm_hash' : IDL.Vec(IDL.Nat8),\n });\n const ProposalId = IDL.Record({ 'id' : IDL.Nat64 });\n const RewardEvent = IDL.Record({\n 'rounds_since_last_distribution' : IDL.Opt(IDL.Nat64),\n 'actual_timestamp_seconds' : IDL.Nat64,\n 'end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'distributed_e8s_equivalent' : IDL.Nat64,\n 'round' : IDL.Nat64,\n 'settled_proposals' : IDL.Vec(ProposalId),\n });\n const UpgradeInProgress = IDL.Record({\n 'mark_failed_at_seconds' : IDL.Nat64,\n 'checking_upgrade_lock' : IDL.Nat64,\n 'proposal_id' : IDL.Nat64,\n 'target_version' : IDL.Opt(Version),\n });\n const GovernanceError = IDL.Record({\n 'error_message' : IDL.Text,\n 'error_type' : IDL.Int32,\n });\n const Ballot = IDL.Record({\n 'vote' : IDL.Int32,\n 'cast_timestamp_seconds' : IDL.Nat64,\n 'voting_power' : IDL.Nat64,\n });\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 RegisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n });\n const Subaccount = IDL.Record({ 'subaccount' : IDL.Vec(IDL.Nat8) });\n const TransferSnsTreasuryFunds = IDL.Record({\n 'from_treasury' : IDL.Int32,\n 'to_principal' : IDL.Opt(IDL.Principal),\n 'to_subaccount' : IDL.Opt(Subaccount),\n 'memo' : IDL.Opt(IDL.Nat64),\n 'amount_e8s' : IDL.Nat64,\n });\n const UpgradeSnsControlledCanister = IDL.Record({\n 'new_canister_wasm' : IDL.Vec(IDL.Nat8),\n 'mode' : IDL.Opt(IDL.Int32),\n 'canister_id' : IDL.Opt(IDL.Principal),\n 'canister_upgrade_arg' : IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DeregisterDappCanisters = IDL.Record({\n 'canister_ids' : IDL.Vec(IDL.Principal),\n 'new_controllers' : IDL.Vec(IDL.Principal),\n });\n const ManageSnsMetadata = IDL.Record({\n 'url' : IDL.Opt(IDL.Text),\n 'logo' : IDL.Opt(IDL.Text),\n 'name' : IDL.Opt(IDL.Text),\n 'description' : IDL.Opt(IDL.Text),\n });\n const ExecuteGenericNervousSystemFunction = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'payload' : IDL.Vec(IDL.Nat8),\n });\n const Motion = IDL.Record({ 'motion_text' : IDL.Text });\n const Action = IDL.Variant({\n 'ManageNervousSystemParameters' : NervousSystemParameters,\n 'AddGenericNervousSystemFunction' : NervousSystemFunction,\n 'RemoveGenericNervousSystemFunction' : IDL.Nat64,\n 'UpgradeSnsToNextVersion' : IDL.Record({}),\n 'RegisterDappCanisters' : RegisterDappCanisters,\n 'TransferSnsTreasuryFunds' : TransferSnsTreasuryFunds,\n 'UpgradeSnsControlledCanister' : UpgradeSnsControlledCanister,\n 'DeregisterDappCanisters' : DeregisterDappCanisters,\n 'Unspecified' : IDL.Record({}),\n 'ManageSnsMetadata' : ManageSnsMetadata,\n 'ExecuteGenericNervousSystemFunction' : ExecuteGenericNervousSystemFunction,\n 'Motion' : Motion,\n });\n const Proposal = IDL.Record({\n 'url' : IDL.Text,\n 'title' : IDL.Text,\n 'action' : IDL.Opt(Action),\n 'summary' : IDL.Text,\n });\n const WaitForQuietState = IDL.Record({\n 'current_deadline_timestamp_seconds' : IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n 'id' : IDL.Opt(ProposalId),\n 'payload_text_rendering' : IDL.Opt(IDL.Text),\n 'action' : IDL.Nat64,\n 'failure_reason' : IDL.Opt(GovernanceError),\n 'ballots' : IDL.Vec(IDL.Tuple(IDL.Text, Ballot)),\n 'reward_event_round' : IDL.Nat64,\n 'failed_timestamp_seconds' : IDL.Nat64,\n 'reward_event_end_timestamp_seconds' : IDL.Opt(IDL.Nat64),\n 'proposal_creation_timestamp_seconds' : IDL.Nat64,\n 'initial_voting_period_seconds' : IDL.Nat64,\n 'reject_cost_e8s' : IDL.Nat64,\n 'latest_tally' : IDL.Opt(Tally),\n 'wait_for_quiet_deadline_increase_seconds' : IDL.Nat64,\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 'is_eligible_for_rewards' : IDL.Bool,\n 'executed_timestamp_seconds' : IDL.Nat64,\n });\n const Split = IDL.Record({ 'memo' : IDL.Nat64, 'amount_e8s' : IDL.Nat64 });\n const Follow = IDL.Record({\n 'function_id' : IDL.Nat64,\n 'followees' : IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n 'owner' : IDL.Opt(IDL.Principal),\n 'subaccount' : IDL.Opt(Subaccount),\n });\n const DisburseMaturity = IDL.Record({\n 'to_account' : IDL.Opt(Account),\n 'percentage_to_disburse' : IDL.Nat32,\n });\n const ChangeAutoStakeMaturity = IDL.Record({\n 'requested_setting_for_auto_stake_maturity' : IDL.Bool,\n });\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 'ChangeAutoStakeMaturity' : ChangeAutoStakeMaturity,\n 'StopDissolving' : IDL.Record({}),\n 'StartDissolving' : IDL.Record({}),\n 'IncreaseDissolveDelay' : IncreaseDissolveDelay,\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(ProposalId),\n });\n const FinalizeDisburseMaturity = IDL.Record({\n 'amount_to_be_disbursed_e8s' : IDL.Nat64,\n 'to_account' : IDL.Opt(Account),\n });\n const MemoAndController = IDL.Record({\n 'controller' : IDL.Opt(IDL.Principal),\n 'memo' : IDL.Nat64,\n });\n const By = IDL.Variant({\n 'MemoAndController' : MemoAndController,\n 'NeuronId' : IDL.Record({}),\n });\n const ClaimOrRefresh = IDL.Record({ 'by' : IDL.Opt(By) });\n const RemoveNeuronPermissions = IDL.Record({\n 'permissions_to_remove' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\n });\n const AddNeuronPermissions = IDL.Record({\n 'permissions_to_add' : IDL.Opt(NeuronPermissionList),\n 'principal_id' : IDL.Opt(IDL.Principal),\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(Account),\n 'amount' : IDL.Opt(Amount),\n });\n const Command_2 = IDL.Variant({\n 'Split' : Split,\n 'Follow' : Follow,\n 'DisburseMaturity' : DisburseMaturity,\n 'Configure' : Configure,\n 'RegisterVote' : RegisterVote,\n 'SyncCommand' : IDL.Record({}),\n 'MakeProposal' : Proposal,\n 'FinalizeDisburseMaturity' : FinalizeDisburseMaturity,\n 'ClaimOrRefreshNeuron' : ClaimOrRefresh,\n 'RemoveNeuronPermissions' : RemoveNeuronPermissions,\n 'AddNeuronPermissions' : AddNeuronPermissions,\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 NeuronPermission = IDL.Record({\n 'principal' : IDL.Opt(IDL.Principal),\n 'permission_type' : IDL.Vec(IDL.Int32),\n });\n const DissolveState = IDL.Variant({\n 'DissolveDelaySeconds' : IDL.Nat64,\n 'WhenDissolvedTimestampSeconds' : IDL.Nat64,\n });\n const DisburseMaturityInProgress = IDL.Record({\n 'timestamp_of_disbursement_seconds' : IDL.Nat64,\n 'amount_e8s' : IDL.Nat64,\n 'account_to_disburse_to' : IDL.Opt(Account),\n });\n const Neuron = IDL.Record({\n 'id' : IDL.Opt(NeuronId),\n 'staked_maturity_e8s_equivalent' : IDL.Opt(IDL.Nat64),\n 'permissions' : IDL.Vec(NeuronPermission),\n 'maturity_e8s_equivalent' : IDL.Nat64,\n 'cached_neuron_stake_e8s' : IDL.Nat64,\n 'created_timestamp_seconds' : IDL.Nat64,\n 'source_nns_neuron_id' : IDL.Opt(IDL.Nat64),\n 'auto_stake_maturity' : IDL.Opt(IDL.Bool),\n 'aging_since_timestamp_seconds' : IDL.Nat64,\n 'dissolve_state' : IDL.Opt(DissolveState),\n 'voting_power_percentage_multiplier' : IDL.Nat64,\n 'vesting_period_seconds' : IDL.Opt(IDL.Nat64),\n 'disburse_maturity_in_progress' : IDL.Vec(DisburseMaturityInProgress),\n 'followees' : IDL.Vec(IDL.Tuple(IDL.Nat64, Followees)),\n 'neuron_fees_e8s' : IDL.Nat64,\n });\n const Governance = IDL.Record({\n 'root_canister_id' : IDL.Opt(IDL.Principal),\n 'id_to_nervous_system_functions' : IDL.Vec(\n IDL.Tuple(IDL.Nat64, NervousSystemFunction)\n ),\n 'metrics' : IDL.Opt(GovernanceCachedMetrics),\n 'maturity_modulation' : IDL.Opt(MaturityModulation),\n 'mode' : IDL.Int32,\n 'parameters' : IDL.Opt(NervousSystemParameters),\n 'is_finalizing_disburse_maturity' : IDL.Opt(IDL.Bool),\n 'deployed_version' : IDL.Opt(Version),\n 'sns_initialization_parameters' : IDL.Text,\n 'latest_reward_event' : IDL.Opt(RewardEvent),\n 'pending_version' : IDL.Opt(UpgradeInProgress),\n 'swap_canister_id' : IDL.Opt(IDL.Principal),\n 'ledger_canister_id' : IDL.Opt(IDL.Principal),\n 'proposals' : IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n 'in_flight_commands' : IDL.Vec(IDL.Tuple(IDL.Text, NeuronInFlightCommand)),\n 'sns_metadata' : IDL.Opt(ManageSnsMetadata),\n 'neurons' : IDL.Vec(IDL.Tuple(IDL.Text, Neuron)),\n 'genesis_timestamp_seconds' : IDL.Nat64,\n });\n return [Governance];\n};\n", "import type { IcrcAccount } from \"@dfinity/ledger-icrc\";\nimport { fromNullable, toNullable } from \"@dfinity/utils\";\nimport type {\n Account,\n Action as ActionCandid,\n Command,\n FunctionType as FunctionTypeCandid,\n GenericNervousSystemFunction as GenericNervousSystemFunctionCandid,\n ListProposals,\n ManageNeuron,\n ManageSnsMetadata as ManageSnsMetadataCandid,\n NervousSystemFunction as NervousSystemFunctionCandid,\n NervousSystemParameters as NervousSystemParametersCandid,\n NeuronId,\n Operation,\n TransferSnsTreasuryFunds as TransferSnsTreasuryFundsCandid,\n UpgradeSnsControlledCanister as UpgradeSnsControlledCanisterCandid,\n VotingRewardsParameters as VotingRewardsParametersCandid,\n} from \"../../candid/sns_governance\";\nimport { DEFAULT_PROPOSALS_LIMIT } from \"../constants/governance.constants\";\nimport type {\n Action,\n FunctionType,\n GenericNervousSystemFunction,\n ManageSnsMetadata,\n NervousSystemFunction,\n NervousSystemParameters,\n TransferSnsTreasuryFunds,\n UpgradeSnsControlledCanister,\n VotingRewardsParameters,\n} from \"../types/actions\";\nimport type {\n SnsClaimOrRefreshArgs,\n SnsDisburseNeuronParams,\n SnsIncreaseDissolveDelayParams,\n SnsListProposalsParams,\n SnsNeuronAutoStakeMaturityParams,\n SnsNeuronDisburseMaturityParams,\n SnsNeuronPermissionsParams,\n SnsNeuronStakeMaturityParams,\n SnsRegisterVoteParams,\n SnsSetDissolveTimestampParams,\n SnsSetTopicFollowees,\n SnsSplitNeuronParams,\n} from \"../types/governance.params\";\n\n// Helper for building `ManageNeuron` structure\nconst toManageNeuronCommand = ({\n neuronId: { id },\n command,\n}: {\n neuronId: NeuronId;\n command: Command;\n}): ManageNeuron => ({\n subaccount: id,\n command: [command],\n});\n\n// Helper for building `ManageNeuron` structure for type `Operation` commands\nconst toManageNeuronConfigureCommand = ({\n neuronId,\n operation,\n}: {\n neuronId: NeuronId;\n operation: Operation;\n}): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n Configure: {\n operation: [operation],\n },\n },\n });\n\nexport const toCandidAccount = ({\n owner,\n subaccount,\n}: IcrcAccount): Account => ({\n owner: toNullable(owner),\n subaccount: subaccount === undefined ? [] : toNullable({ subaccount }),\n});\n\nexport const toAddPermissionsRequest = ({\n neuronId,\n permissions,\n principal,\n}: SnsNeuronPermissionsParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n AddNeuronPermissions: {\n permissions_to_add: [{ permissions: Int32Array.from(permissions) }],\n principal_id: [principal],\n },\n },\n });\n\nexport const toRemovePermissionsRequest = ({\n neuronId,\n permissions,\n principal,\n}: SnsNeuronPermissionsParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n RemoveNeuronPermissions: {\n permissions_to_remove: [{ permissions: Int32Array.from(permissions) }],\n principal_id: [principal],\n },\n },\n });\n\nexport const toSplitNeuronRequest = ({\n neuronId,\n memo,\n amount: amount_e8s,\n}: SnsSplitNeuronParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n Split: {\n memo,\n amount_e8s,\n },\n },\n });\n\nexport const toDisburseNeuronRequest = ({\n neuronId,\n amount,\n toAccount,\n}: SnsDisburseNeuronParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n Disburse: {\n // currently there is a main account only support\n to_account:\n toAccount === undefined ? [] : toNullable(toCandidAccount(toAccount)),\n amount:\n amount === undefined\n ? []\n : [\n {\n e8s: amount,\n },\n ],\n },\n },\n });\n\nexport const toStartDissolvingNeuronRequest = (\n neuronId: NeuronId,\n): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: { StartDissolving: {} },\n });\n\nexport const toStopDissolvingNeuronRequest = (\n neuronId: NeuronId,\n): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: { StopDissolving: {} },\n });\n\nexport const toStakeMaturityRequest = ({\n neuronId,\n percentageToStake,\n}: SnsNeuronStakeMaturityParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n StakeMaturity: {\n percentage_to_stake: toNullable(percentageToStake),\n },\n },\n });\n\nexport const toDisburseMaturityRequest = ({\n neuronId,\n percentageToDisburse,\n toAccount,\n}: SnsNeuronDisburseMaturityParams): ManageNeuron =>\n toManageNeuronCommand({\n neuronId,\n command: {\n DisburseMaturity: {\n // currently there is a main account only support\n to_account:\n toAccount === undefined ? [] : toNullable(toCandidAccount(toAccount)),\n percentage_to_disburse: percentageToDisburse,\n },\n },\n });\n\nexport const toAutoStakeMaturityNeuronRequest = ({\n neuronId,\n autoStake: requested_setting_for_auto_stake_maturity,\n}: SnsNeuronAutoStakeMaturityParams): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: {\n ChangeAutoStakeMaturity: {\n requested_setting_for_auto_stake_maturity,\n },\n },\n });\n\nexport const toSetDissolveTimestampRequest = ({\n neuronId,\n dissolveTimestampSeconds,\n}: SnsSetDissolveTimestampParams): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: {\n SetDissolveTimestamp: {\n dissolve_timestamp_seconds: dissolveTimestampSeconds,\n },\n },\n });\n\nexport const toIncreaseDissolveDelayRequest = ({\n neuronId,\n additionalDissolveDelaySeconds,\n}: SnsIncreaseDissolveDelayParams): ManageNeuron =>\n toManageNeuronConfigureCommand({\n neuronId,\n operation: {\n IncreaseDissolveDelay: {\n additional_dissolve_delay_seconds: additionalDissolveDelaySeconds,\n },\n },\n });\n\nexport const toFollowRequest = ({\n neuronId,\n functionId,\n followees,\n}: SnsSetTopicFollowees): ManageNeuron => ({\n subaccount: neuronId.id,\n command: [\n {\n Follow: {\n function_id: functionId,\n followees,\n },\n },\n ],\n});\n\nexport const toRegisterVoteRequest = ({\n neuronId,\n proposalId,\n vote,\n}: SnsRegisterVoteParams): ManageNeuron => ({\n subaccount: neuronId.id,\n command: [\n {\n RegisterVote: {\n vote,\n proposal: [proposalId],\n },\n },\n ],\n});\n\nexport const toClaimOrRefreshRequest = ({\n subaccount,\n memo,\n controller,\n}: SnsClaimOrRefreshArgs): ManageNeuron => ({\n subaccount,\n command: [\n {\n ClaimOrRefresh: {\n by: [\n // If memo is not passed, we consider it a neuronId request because the memo is mandatory for MemoAndController\n memo === undefined\n ? { NeuronId: {} }\n : {\n MemoAndController: { memo, controller: toNullable(controller) },\n },\n ],\n },\n },\n ],\n});\n\nexport const toListProposalRequest = ({\n excludeType,\n beforeProposal,\n includeRewardStatus,\n includeStatus,\n limit,\n}: SnsListProposalsParams): ListProposals => ({\n exclude_type: BigUint64Array.from(excludeType ?? []),\n before_proposal: toNullable(beforeProposal),\n include_reward_status: Int32Array.from(includeRewardStatus ?? []),\n include_status: Int32Array.from(includeStatus ?? []),\n limit: limit ?? DEFAULT_PROPOSALS_LIMIT,\n});\n\nexport const fromCandidAction = (action: ActionCandid): Action => {\n if (\"ManageNervousSystemParameters\" in action) {\n return {\n ManageNervousSystemParameters: convertNervousSystemParams(\n action.ManageNervousSystemParameters,\n ),\n };\n }\n\n if (\"AddGenericNervousSystemFunction\" in action) {\n return {\n AddGenericNervousSystemFunction: convertNervousSystemFunction(\n action.AddGenericNervousSystemFunction,\n ),\n };\n }\n\n if (\"RemoveGenericNervousSystemFunction\" in action) {\n return {\n RemoveGenericNervousSystemFunction:\n action.RemoveGenericNervousSystemFunction,\n };\n }\n\n if (\"UpgradeSnsToNextVersion\" in action) {\n return { UpgradeSnsToNextVersion: action.UpgradeSnsToNextVersion };\n }\n\n if (\"RegisterDappCanisters\" in action) {\n return { RegisterDappCanisters: action.RegisterDappCanisters };\n }\n\n if (\"TransferSnsTreasuryFunds\" in action) {\n return {\n TransferSnsTreasuryFunds: convertTransferSnsTreasuryFunds(\n action.TransferSnsTreasuryFunds,\n ),\n };\n }\n\n if (\"UpgradeSnsControlledCanister\" in action) {\n return {\n UpgradeSnsControlledCanister: convertUpgradeSnsControlledCanister(\n action.UpgradeSnsControlledCanister,\n ),\n };\n }\n\n if (\"DeregisterDappCanisters\" in action) {\n return { DeregisterDappCanisters: action.DeregisterDappCanisters };\n }\n\n if (\"Unspecified\" in action) {\n return { Unspecified: action.Unspecified };\n }\n\n if (\"ManageSnsMetadata\" in action) {\n return {\n ManageSnsMetadata: convertManageSnsMetadata(action.ManageSnsMetadata),\n };\n }\n\n if (\"ExecuteGenericNervousSystemFunction\" in action) {\n return {\n ExecuteGenericNervousSystemFunction:\n action.ExecuteGenericNervousSystemFunction,\n };\n }\n\n if (\"Motion\" in action) {\n return { Motion: action.Motion };\n }\n\n throw new Error(`Unknown action type ${JSON.stringify(action)}`);\n};\n\nconst convertManageSnsMetadata = (\n params: ManageSnsMetadataCandid,\n): ManageSnsMetadata => ({\n url: fromNullable(params.url),\n logo: fromNullable(params.logo),\n name: fromNullable(params.name),\n description: fromNullable(params.description),\n});\n\nconst convertUpgradeSnsControlledCanister = (\n params: UpgradeSnsControlledCanisterCandid,\n): UpgradeSnsControlledCanister => ({\n new_canister_wasm: params.new_canister_wasm,\n canister_id: fromNullable(params.canister_id),\n canister_upgrade_arg: fromNullable(params.canister_upgrade_arg),\n mode: fromNullable(params.mode),\n});\n\nconst convertTransferSnsTreasuryFunds = (\n params: TransferSnsTreasuryFundsCandid,\n): TransferSnsTreasuryFunds => ({\n from_treasury: params.from_treasury,\n to_principal: fromNullable(params.to_principal),\n to_subaccount: fromNullable(params.to_subaccount),\n memo: fromNullable(params.memo),\n amount_e8s: params.amount_e8s,\n});\n\nconst convertGenericNervousSystemFunction = (\n params: GenericNervousSystemFunctionCandid,\n): GenericNervousSystemFunction => ({\n validator_canister_id: fromNullable(params.validator_canister_id),\n target_canister_id: fromNullable(params.target_canister_id),\n validator_method_name: fromNullable(params.validator_method_name),\n target_method_name: fromNullable(params.target_method_name),\n});\n\nconst convertFunctionType = (\n params: FunctionTypeCandid | undefined,\n): FunctionType | undefined => {\n if (params === undefined) {\n return undefined;\n }\n\n if (\"NativeNervousSystemFunction\" in params) {\n return { NativeNervousSystemFunction: params.NativeNervousSystemFunction };\n }\n\n if (\"GenericNervousSystemFunction\" in params) {\n return {\n GenericNervousSystemFunction: convertGenericNervousSystemFunction(\n params.GenericNervousSystemFunction,\n ),\n };\n }\n\n throw new Error(`Unknown FunctionType ${JSON.stringify(params)}`);\n};\n\nconst convertNervousSystemFunction = (\n params: NervousSystemFunctionCandid,\n): NervousSystemFunction => ({\n id: params.id,\n name: params.name,\n description: fromNullable(params.description),\n function_type: convertFunctionType(fromNullable(params.function_type)),\n});\n\nconst convertVotingRewardsParameters = (\n params: VotingRewardsParametersCandid | undefined,\n): VotingRewardsParameters | undefined =>\n params && {\n final_reward_rate_basis_points: fromNullable(\n params.final_reward_rate_basis_points,\n ),\n initial_reward_rate_basis_points: fromNullable(\n params.initial_reward_rate_basis_points,\n ),\n reward_rate_transition_duration_seconds: fromNullable(\n params.reward_rate_transition_duration_seconds,\n ),\n round_duration_seconds: fromNullable(params.round_duration_seconds),\n };\n\nconst convertNervousSystemParams = (\n params: NervousSystemParametersCandid,\n): NervousSystemParameters => ({\n default_followees: fromNullable(params.default_followees),\n max_dissolve_delay_seconds: fromNullable(params.max_dissolve_delay_seconds),\n max_dissolve_delay_bonus_percentage: fromNullable(\n params.max_dissolve_delay_bonus_percentage,\n ),\n max_followees_per_function: fromNullable(params.max_followees_per_function),\n neuron_claimer_permissions: fromNullable(params.neuron_claimer_permissions),\n neuron_minimum_stake_e8s: fromNullable(params.neuron_minimum_stake_e8s),\n max_neuron_age_for_age_bonus: fromNullable(\n params.max_neuron_age_for_age_bonus,\n ),\n initial_voting_period_seconds: fromNullable(\n params.initial_voting_period_seconds,\n ),\n neuron_minimum_dissolve_delay_to_vote_seconds: fromNullable(\n params.neuron_minimum_dissolve_delay_to_vote_seconds,\n ),\n reject_cost_e8s: fromNullable(params.reject_cost_e8s),\n max_proposals_to_keep_per_action: fromNullable(\n params.max_proposals_to_keep_per_action,\n ),\n wait_for_quiet_deadline_increase_seconds: fromNullable(\n params.wait_for_quiet_deadline_increase_seconds,\n ),\n max_number_of_neurons: fromNullable(params.max_number_of_neurons),\n transaction_fee_e8s: fromNullable(params.transaction_fee_e8s),\n max_number_of_proposals_with_ballots: fromNullable(\n params.max_number_of_proposals_with_ballots,\n ),\n max_age_bonus_percentage: fromNullable(params.max_age_bonus_percentage),\n neuron_grantable_permissions: fromNullable(\n params.neuron_grantable_permissions,\n ),\n voting_rewards_parameters: convertVotingRewardsParameters(\n fromNullable(params.voting_rewards_parameters),\n ),\n max_number_of_principals_per_neuron: fromNullable(\n params.max_number_of_principals_per_neuron,\n ),\n});\n"],
5
5
  "mappings": "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",
6
6
  "names": ["assertPercentageNumber", "Canister", "createServices", "fromNullable", "toNullable", "idlFactory", "IDL", "GenericNervousSystemFunction", "FunctionType", "NervousSystemFunction", "GovernanceCachedMetrics", "MaturityModulation", "NeuronId", "Followees", "DefaultFollowees", "NeuronPermissionList", "VotingRewardsParameters", "NervousSystemParameters", "Version", "ProposalId", "RewardEvent", "UpgradeInProgress", "GovernanceError", "Ballot", "Tally", "RegisterDappCanisters", "Subaccount", "TransferSnsTreasuryFunds", "UpgradeSnsControlledCanister", "DeregisterDappCanisters", "ManageSnsMetadata", "ExecuteGenericNervousSystemFunction", "Motion", "Action", "Proposal", "WaitForQuietState", "ProposalData", "Split", "Follow", "Account", "DisburseMaturity", "ChangeAutoStakeMaturity", "IncreaseDissolveDelay", "SetDissolveTimestamp", "Operation", "Configure", "RegisterVote", "FinalizeDisburseMaturity", "MemoAndController", "By", "ClaimOrRefresh", "RemoveNeuronPermissions", "AddNeuronPermissions", "MergeMaturity", "Amount", "Disburse", "Command_2", "NeuronInFlightCommand", "NeuronPermission", "DissolveState", "DisburseMaturityInProgress", "Neuron", "Governance", "NeuronParameters", "ClaimSwapNeuronsRequest", "SwapNeuron", "ClaimedSwapNeurons", "ClaimSwapNeuronsResult", "ClaimSwapNeuronsResponse", "GetMaturityModulationResponse", "GetMetadataResponse", "GetModeResponse", "GetNeuron", "Result", "GetNeuronResponse", "GetProposal", "Result_1", "GetProposalResponse", "CanisterStatusType", "DefiniteCanisterSettingsArgs", "CanisterStatusResultV2", "GetRunningSnsVersionResponse", "GetSnsInitializationParametersResponse", "ListNervousSystemFunctionsResponse", "ListNeurons", "ListNeuronsResponse", "ListProposals", "ListProposalsResponse", "StakeMaturity", "Command", "ManageNeuron", "SplitResponse", "DisburseMaturityResponse", "ClaimOrRefreshResponse", "StakeMaturityResponse", "MergeMaturityResponse", "DisburseResponse", "Command_1", "ManageNeuronResponse", "SetMode", "idlFactory", "IDL", "GenericNervousSystemFunction", "FunctionType", "NervousSystemFunction", "GovernanceCachedMetrics", "MaturityModulation", "NeuronId", "Followees", "DefaultFollowees", "NeuronPermissionList", "VotingRewardsParameters", "NervousSystemParameters", "Version", "ProposalId", "RewardEvent", "UpgradeInProgress", "GovernanceError", "Ballot", "Tally", "RegisterDappCanisters", "Subaccount", "TransferSnsTreasuryFunds", "UpgradeSnsControlledCanister", "DeregisterDappCanisters", "ManageSnsMetadata", "ExecuteGenericNervousSystemFunction", "Motion", "Action", "Proposal", "WaitForQuietState", "ProposalData", "Split", "Follow", "Account", "DisburseMaturity", "ChangeAutoStakeMaturity", "IncreaseDissolveDelay", "SetDissolveTimestamp", "Operation", "Configure", "RegisterVote", "FinalizeDisburseMaturity", "MemoAndController", "By", "ClaimOrRefresh", "RemoveNeuronPermissions", "AddNeuronPermissions", "MergeMaturity", "Amount", "Disburse", "Command_2", "NeuronInFlightCommand", "NeuronPermission", "DissolveState", "DisburseMaturityInProgress", "Neuron", "Governance", "NeuronParameters", "ClaimSwapNeuronsRequest", "SwapNeuron", "ClaimedSwapNeurons", "ClaimSwapNeuronsResult", "ClaimSwapNeuronsResponse", "GetMaturityModulationResponse", "GetMetadataResponse", "GetModeResponse", "GetNeuron", "Result", "GetNeuronResponse", "GetProposal", "Result_1", "GetProposalResponse", "CanisterStatusType", "DefiniteCanisterSettingsArgs", "CanisterStatusResultV2", "GetRunningSnsVersionResponse", "GetSnsInitializationParametersResponse", "ListNervousSystemFunctionsResponse", "ListNeurons", "ListNeuronsResponse", "ListProposals", "ListProposalsResponse", "StakeMaturity", "Command", "ManageNeuron", "SplitResponse", "DisburseMaturityResponse", "ClaimOrRefreshResponse", "StakeMaturityResponse", "MergeMaturityResponse", "DisburseResponse", "Command_1", "ManageNeuronResponse", "SetMode", "fromNullable", "toNullable", "toManageNeuronCommand", "id", "command", "toManageNeuronConfigureCommand", "neuronId", "operation", "toCandidAccount", "owner", "subaccount", "toNullable", "toAddPermissionsRequest", "permissions", "principal", "toRemovePermissionsRequest", "toSplitNeuronRequest", "memo", "amount_e8s", "toDisburseNeuronRequest", "amount", "toAccount", "toStartDissolvingNeuronRequest", "toStopDissolvingNeuronRequest", "toStakeMaturityRequest", "percentageToStake", "toDisburseMaturityRequest", "percentageToDisburse", "toAutoStakeMaturityNeuronRequest", "requested_setting_for_auto_stake_maturity", "toSetDissolveTimestampRequest", "dissolveTimestampSeconds", "toIncreaseDissolveDelayRequest", "additionalDissolveDelaySeconds", "toFollowRequest", "functionId", "followees", "toRegisterVoteRequest", "proposalId", "vote", "toClaimOrRefreshRequest", "controller", "toListProposalRequest", "excludeType", "beforeProposal", "includeRewardStatus", "includeStatus", "limit", "fromCandidAction", "action", "convertNervousSystemParams", "convertNervousSystemFunction", "convertTransferSnsTreasuryFunds", "convertUpgradeSnsControlledCanister", "convertManageSnsMetadata", "params", "fromNullable", "convertGenericNervousSystemFunction", "convertFunctionType", "convertVotingRewardsParameters", "SnsGovernanceCanister", "_SnsGovernanceCanister", "Canister", "params", "principal", "limit", "beforeNeuronId", "neurons", "toNullable", "certified", "proposals", "toListProposalRequest", "proposalId", "result", "data", "fromNullable", "SnsGovernanceError", "neuronId", "error", "request", "response", "toAddPermissionsRequest", "toRemovePermissionsRequest", "toSplitNeuronRequest", "command", "errorMessage", "details", "split", "toDisburseNeuronRequest", "toStartDissolvingNeuronRequest", "toStopDissolvingNeuronRequest", "percentageToStake", "assertPercentageNumber", "toStakeMaturityRequest", "toDisburseMaturityRequest", "toAutoStakeMaturityNeuronRequest", "toSetDissolveTimestampRequest", "toIncreaseDissolveDelayRequest", "toFollowRequest", "toRegisterVoteRequest", "toClaimOrRefreshRequest", "memo", "controller", "subaccount", "firstCommand", "options", "service", "certifiedService", "canisterId", "createServices", "idlFactory"]
7
7
  }