@dfinity/nns 11.1.4 → 12.0.0-beta-2025-12-18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/index.d.ts +10 -15
- package/dist/index.js +1 -7
- package/dist/index.js.map +4 -4
- package/dist/index.mjs +1 -7
- package/dist/index.mjs.map +4 -4
- package/package.json +4 -9
- package/dist/candid/genesis_token.certified.idl.d.ts +0 -2
- package/dist/candid/genesis_token.certified.idl.js +0 -49
- package/dist/candid/genesis_token.d.ts +0 -46
- package/dist/candid/genesis_token.did +0 -49
- package/dist/candid/genesis_token.idl.d.ts +0 -2
- package/dist/candid/genesis_token.idl.js +0 -49
- package/dist/candid/governance.certified.idl.d.ts +0 -2
- package/dist/candid/governance.certified.idl.js +0 -1788
- package/dist/candid/governance.d.ts +0 -1339
- package/dist/candid/governance.did +0 -1478
- package/dist/candid/governance.idl.d.ts +0 -2
- package/dist/candid/governance.idl.js +0 -1796
- package/dist/candid/governance_test.certified.idl.d.ts +0 -2
- package/dist/candid/governance_test.certified.idl.js +0 -1789
- package/dist/candid/governance_test.d.ts +0 -1343
- package/dist/candid/governance_test.did +0 -1481
- package/dist/candid/governance_test.idl.d.ts +0 -2
- package/dist/candid/governance_test.idl.js +0 -1797
- package/dist/candid/old_list_neurons_service.certified.idl.d.ts +0 -2
- package/dist/candid/old_list_neurons_service.certified.idl.js +0 -87
- package/dist/candid/sns_wasm.certified.idl.d.ts +0 -2
- package/dist/candid/sns_wasm.certified.idl.js +0 -331
- package/dist/candid/sns_wasm.d.ts +0 -315
- package/dist/candid/sns_wasm.did +0 -350
- package/dist/candid/sns_wasm.idl.d.ts +0 -2
- package/dist/candid/sns_wasm.idl.js +0 -331
- package/dist/canisters/governance/request.converters.d.ts +0 -108
- package/dist/canisters/governance/response.converters.d.ts +0 -26
- package/dist/canisters/governance/services.d.ts +0 -21
- package/dist/constants/canister_ids.d.ts +0 -5
- package/dist/constants/constants.d.ts +0 -1
- package/dist/enums/governance.enums.d.ts +0 -138
- package/dist/errors/governance.errors.d.ts +0 -21
- package/dist/genesis_token.canister.d.ts +0 -11
- package/dist/governance.canister.d.ts +0 -361
- package/dist/governance_test.canister.d.ts +0 -15
- package/dist/sns_wasm.canister.d.ts +0 -11
- package/dist/types/common.d.ts +0 -6
- package/dist/types/governance.options.d.ts +0 -7
- package/dist/types/governance_converters.d.ts +0 -821
- package/dist/types/sns_wasm.options.d.ts +0 -3
- package/dist/utils/account_identifier.utils.d.ts +0 -5
- package/dist/utils/neurons.utils.d.ts +0 -50
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/
|
|
4
|
-
"sourcesContent": ["// The Candid files are generated from Proto. That's why the enums are currently lost in the conversion process.\n// These enums are used to map back numbers provided by the backend through the Candid declaration.\n// We use Pascal case for consistency reason.\n//\n// Proto source: https://github.com/dfinity/ic/blob/master/rs/nns/governance/proto/ic_nns_governance/pb/v1/governance.proto\n\nexport enum NeuronState {\n Unspecified = 0,\n Locked = 1,\n Dissolving = 2,\n Dissolved = 3,\n Spawning = 4,\n}\n\nexport enum Topic {\n Unspecified = 0,\n NeuronManagement = 1,\n ExchangeRate = 2,\n NetworkEconomics = 3,\n Governance = 4,\n NodeAdmin = 5,\n ParticipantManagement = 6,\n SubnetManagement = 7,\n NetworkCanisterManagement = 8,\n Kyc = 9,\n NodeProviderRewards = 10,\n /**\n * @deprecated\n */\n SnsDecentralizationSale = 11,\n IcOsVersionDeployment = 12,\n IcOsVersionElection = 13,\n SnsAndCommunityFund = 14,\n ApiBoundaryNodeManagement = 15,\n SubnetRental = 16,\n ProtocolCanisterManagement = 17,\n ServiceNervousSystemManagement = 18,\n}\n\n// The proposal status, with respect to reward distribution.\n// See also ProposalStatus.\nexport enum ProposalRewardStatus {\n Unknown = 0,\n\n // The proposal still accept votes, for the purpose of\n // vote rewards. This implies nothing on the ProposalStatus.\n AcceptVotes = 1,\n\n // The proposal no longer accepts votes. It is due to settle\n // at the next reward event.\n ReadyToSettle = 2,\n\n // The proposal has been taken into account in a reward event.\n Settled = 3,\n\n // The proposal is not eligible to be taken into account in a reward event.\n Ineligible = 4,\n}\n\n// The proposal status, with respect to decision making and execution.\n// See also ProposalRewardStatus.\nexport enum ProposalStatus {\n Unknown = 0,\n\n // A decision (accept/reject) has yet to be made.\n Open = 1,\n\n // The proposal has been rejected.\n Rejected = 2,\n\n // The proposal has been accepted. At this time, either execution\n // as not yet started, or it has but the outcome is not yet known.\n Accepted = 3,\n\n // The proposal was accepted and successfully executed.\n Executed = 4,\n\n // The proposal was accepted, but execution failed.\n Failed = 5,\n}\n\nexport enum Vote {\n Unspecified = 0,\n Yes = 1,\n No = 2,\n}\n\nexport enum NnsFunction {\n Unspecified = 0,\n CreateSubnet = 1,\n AddNodeToSubnet = 2,\n NnsCanisterInstall = 3,\n NnsCanisterUpgrade = 4,\n BlessReplicaVersion = 5,\n RecoverSubnet = 6,\n UpdateConfigOfSubnet = 7,\n AssignNoid = 8,\n NnsRootUpgrade = 9,\n IcpXdrConversionRate = 10,\n DeployGuestosToAllSubnetNodes = 11,\n ClearProvisionalWhitelist = 12,\n RemoveNodesFromSubnet = 13,\n SetAuthorizedSubnetworks = 14,\n SetFirewallConfig = 15,\n UpdateNodeOperatorConfig = 16,\n StopOrStartNnsCanister = 17,\n RemoveNodes = 18,\n UninstallCode = 19,\n UpdateNodeRewardsTable = 20,\n AddOrRemoveDataCenters = 21,\n UpdateUnassignedNodesConfig = 22,\n RemoveNodeOperators = 23,\n RerouteCanisterRanges = 24,\n AddFirewallRules = 25,\n RemoveFirewallRules = 26,\n UpdateFirewallRules = 27,\n PrepareCanisterMigration = 28,\n CompleteCanisterMigration = 29,\n AddSnsWasm = 30,\n ChangeSubnetMembership = 31,\n UpdateSubnetType = 32,\n ChangeSubnetTypeAssignment = 33,\n UpdateSnsWasmSnsSubnetIds = 34,\n UpdateAllowedPrincipals = 35,\n RetireReplicaVersion = 36,\n InsertSnsWasmUpgradePathEntries = 37,\n ReviseElectedGuestosVersions = 38,\n BitcoinSetConfig = 39,\n UpdateElectedHostosVersions = 40,\n UpdateNodesHostosVersion = 41,\n HardResetNnsRootToVersion = 42,\n AddApiBoundaryNodes = 43,\n RemoveApiBoundaryNodes = 44,\n /**\n * @deprecated\n */\n UpdateApiBoundaryNodeDomain = 45,\n UpdateApiBoundaryNodesVersion = 46,\n DeployGuestosToSomeApiBoundaryNodes = 47,\n DeployGuestosToAllUnassignedNodes = 48,\n UpdateSshReadOnlyAccessForAllUnassignedNodes = 49,\n ReviseElectedHostosVersions = 50,\n DeployHostosToSomeNodes = 51,\n SubnetRentalRequest = 52,\n PauseCanisterMigrations = 53,\n UnpauseCanisterMigrations = 54,\n SetSubnetOperationalLevel = 55,\n}\n\n// Reference: https://github.com/dfinity/ic/blob/f4b2e28525ae9b030bd9edfc982e796417db2b80/rs/nns/governance/src/gen/ic_nns_governance.pb.v1.rs#L3286-L3287\nexport enum NeuronType {\n // Placeholder value due to the proto3 requirement for a zero default.\n // This is an invalid type; neurons should not be assigned this value.\n Unspecified = 0,\n // Represents neurons initially created for Seed accounts in the\n // Genesis Token Canister, or those descended from such neurons.\n Seed = 1,\n // Represents neurons initially created for Early Contributor Token (ECT)\n // accounts in the Genesis Token Canister, or those descended from such neurons.\n Ect = 2,\n}\n\n// Reference: https://github.com/dfinity/ic/blob/3b3ffedc6aa481fd9b92eefaf46beded9e51a344/rs/nns/governance/src/gen/ic_nns_governance.pb.v1.rs#L2506-L2512\nexport enum LogVisibility {\n Unspecified = 0,\n /// The log is visible to the controllers of the dapp canister.\n Controllers = 1,\n /// The log is visible to the public.\n Public = 2,\n}\n\n// Reference: https://github.com/dfinity/ic/blob/3b3ffedc6aa481fd9b92eefaf46beded9e51a344/rs/nns/governance/src/gen/ic_nns_governance.pb.v1.rs#L2419-L2423\nexport enum CanisterAction {\n Unspecified = 0,\n // Stop a canister.\n Stop = 1,\n // Start a canister.\n Start = 2,\n}\n\n// Reference: https://github.com/dfinity/ic/blob/3b3ffedc6aa481fd9b92eefaf46beded9e51a344/rs/nns/governance/src/gen/ic_nns_governance.pb.v1.rs#L3929-L3958\nexport enum NeuronVisibility {\n Unspecified = 0,\n Private = 1,\n Public = 2,\n}\n\n// Reference: https://github.com/dfinity/ic/blob/3b3ffedc6aa481fd9b92eefaf46beded9e51a344/rs/nns/governance/src/gen/ic_nns_governance.pb.v1.rs#L2354-L2359\nexport enum CanisterInstallMode {\n Unspecified = 0,\n Install = 1,\n Reinstall = 2,\n Upgrade = 3,\n}\n", "import type { GovernanceError as GovernanceErrorDetail } from \"../candid/governance\";\n\nexport abstract class StakeNeuronError extends Error {}\n\nexport class CouldNotClaimNeuronError extends StakeNeuronError {}\n\nexport class InsufficientAmountError extends StakeNeuronError {\n constructor(public readonly minimumAmount: bigint) {\n super();\n }\n}\n\nexport class UnrecognizedTypeError extends Error {}\nexport class GovernanceError extends Error {\n constructor(public readonly detail: GovernanceErrorDetail) {\n super();\n }\n}\n\n/**\n * An error used to ensure at compile-time that it's never reached.\n */\nexport class UnsupportedValueError extends Error {\n constructor(value: never) {\n super(`Unsupported value: ${value}`);\n }\n}\n", "import { createServices, type CanisterOptions } from \"@dfinity/utils\";\nimport type { ActorSubclass } from \"@icp-sdk/core/agent\";\nimport type { _SERVICE as GenesisTokenService } from \"./candid/genesis_token\";\nimport { idlFactory as certifiedIdlFactory } from \"./candid/genesis_token.certified.idl\";\nimport { idlFactory } from \"./candid/genesis_token.idl\";\nimport { MAINNET_GENESIS_TOKEN_CANISTER_ID } from \"./constants/canister_ids\";\nimport type { NeuronId } from \"./types/common\";\n\nexport class GenesisTokenCanister {\n private constructor(\n private readonly service: ActorSubclass<GenesisTokenService>,\n ) {}\n\n public static create(options: CanisterOptions<GenesisTokenService> = {}) {\n const { service } = createServices<GenesisTokenService>({\n options: {\n ...options,\n canisterId: options.canisterId ?? MAINNET_GENESIS_TOKEN_CANISTER_ID,\n },\n idlFactory,\n certifiedIdlFactory,\n });\n\n return new GenesisTokenCanister(service);\n }\n\n public claimNeurons = async ({\n hexPubKey,\n }: {\n hexPubKey: string;\n }): Promise<NeuronId[]> => {\n const response = await this.service.claim_neurons(hexPubKey);\n if (\"Ok\" in response) {\n return response.Ok.map((neuronId) => neuronId.id);\n }\n\n throw new Error(response.Err);\n };\n}\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Result = IDL.Variant({ Ok: IDL.Vec(NeuronId), Err: IDL.Text });\n const Result_1 = IDL.Variant({ Ok: IDL.Null, Err: IDL.Text });\n const TransferredNeuron = IDL.Record({\n error: IDL.Opt(IDL.Text),\n timestamp_seconds: IDL.Nat64,\n neuron_id: IDL.Opt(NeuronId),\n });\n const AccountState = IDL.Record({\n authenticated_principal_id: IDL.Opt(IDL.Principal),\n successfully_transferred_neurons: IDL.Vec(TransferredNeuron),\n is_whitelisted_for_forwarding: IDL.Bool,\n has_donated: IDL.Bool,\n failed_transferred_neurons: IDL.Vec(TransferredNeuron),\n neuron_ids: IDL.Vec(NeuronId),\n has_claimed: IDL.Bool,\n has_forwarded: IDL.Bool,\n icpts: IDL.Nat32,\n });\n const Result_2 = IDL.Variant({ Ok: AccountState, Err: IDL.Text });\n\n return IDL.Service({\n balance: IDL.Func([IDL.Text], [IDL.Nat32], []),\n claim_neurons: IDL.Func([IDL.Text], [Result], []),\n donate_account: IDL.Func([IDL.Text], [Result_1], []),\n forward_whitelisted_unclaimed_accounts: IDL.Func(\n [IDL.Null],\n [Result_1],\n [],\n ),\n get_account: IDL.Func([IDL.Text], [Result_2], []),\n get_build_metadata: IDL.Func([], [IDL.Text], []),\n len: IDL.Func([], [IDL.Nat16], []),\n total: IDL.Func([], [IDL.Nat32], []),\n });\n};\n\nexport const init = ({ IDL }) => {\n return [];\n};\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Result = IDL.Variant({ Ok: IDL.Vec(NeuronId), Err: IDL.Text });\n const Result_1 = IDL.Variant({ Ok: IDL.Null, Err: IDL.Text });\n const TransferredNeuron = IDL.Record({\n error: IDL.Opt(IDL.Text),\n timestamp_seconds: IDL.Nat64,\n neuron_id: IDL.Opt(NeuronId),\n });\n const AccountState = IDL.Record({\n authenticated_principal_id: IDL.Opt(IDL.Principal),\n successfully_transferred_neurons: IDL.Vec(TransferredNeuron),\n is_whitelisted_for_forwarding: IDL.Bool,\n has_donated: IDL.Bool,\n failed_transferred_neurons: IDL.Vec(TransferredNeuron),\n neuron_ids: IDL.Vec(NeuronId),\n has_claimed: IDL.Bool,\n has_forwarded: IDL.Bool,\n icpts: IDL.Nat32,\n });\n const Result_2 = IDL.Variant({ Ok: AccountState, Err: IDL.Text });\n\n return IDL.Service({\n balance: IDL.Func([IDL.Text], [IDL.Nat32], [\"query\"]),\n claim_neurons: IDL.Func([IDL.Text], [Result], []),\n donate_account: IDL.Func([IDL.Text], [Result_1], []),\n forward_whitelisted_unclaimed_accounts: IDL.Func(\n [IDL.Null],\n [Result_1],\n [],\n ),\n get_account: IDL.Func([IDL.Text], [Result_2], [\"query\"]),\n get_build_metadata: IDL.Func([], [IDL.Text], [\"query\"]),\n len: IDL.Func([], [IDL.Nat16], [\"query\"]),\n total: IDL.Func([], [IDL.Nat32], [\"query\"]),\n });\n};\n\nexport const init = ({ IDL }) => {\n return [];\n};\n", "import { Principal } from \"@icp-sdk/core/principal\";\n\nexport const GOVERNANCE_CANISTER_ID = Principal.fromText(\n \"rrkah-fqaaa-aaaaa-aaaaq-cai\",\n);\n\nexport const MAINNET_GOVERNANCE_CANISTER_ID = Principal.fromText(\n \"rrkah-fqaaa-aaaaa-aaaaq-cai\",\n);\n\nexport const MAINNET_GENESIS_TOKEN_CANISTER_ID = Principal.fromText(\n \"renrk-eyaaa-aaaaa-aaada-cai\",\n);\n\n// TODO(L2-828): Sns-wasm canister is not yet deployed on mainnet\nexport const MAINNET_SNS_WASM_CANISTER_ID = Principal.fromText(\n \"r7inp-6aaaa-aaaaa-aaabq-cai\",\n);\n", "import {\n AccountIdentifier,\n checkAccountId,\n type AccountIdentifierHex,\n type LedgerCanister,\n} from \"@dfinity/ledger-icp\";\nimport {\n assertPercentageNumber,\n createServices,\n fromNullable,\n isNullish,\n nonNullish,\n uint8ArrayToBigInt,\n type Nullable,\n} from \"@dfinity/utils\";\nimport { Actor, type ActorSubclass, type Agent } from \"@icp-sdk/core/agent\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\nimport type {\n Command_1,\n _SERVICE as GovernanceService,\n MergeResponse,\n NeuronSubaccount,\n Neuron as RawNeuron,\n NeuronInfo as RawNeuronInfo,\n ProposalInfo as RawProposalInfo,\n RewardEvent,\n} from \"./candid/governance\";\nimport { idlFactory as certifiedIdlFactory } from \"./candid/governance.certified.idl\";\nimport { idlFactory } from \"./candid/governance.idl\";\nimport { idlFactory as oldListNeuronsCertifiedIdlFactory } from \"./candid/old_list_neurons_service.certified.idl\";\nimport {\n fromClaimOrRefreshNeuronRequest,\n fromListNeurons,\n fromListProposalsRequest,\n toAddHotkeyRequest,\n toAutoStakeMaturityRequest,\n toClaimOrRefreshRequest,\n toDisburseMaturityRequest,\n toDisburseNeuronRequest,\n toIncreaseDissolveDelayRequest,\n toJoinCommunityFundRequest,\n toLeaveCommunityFundRequest,\n toMakeProposalRawRequest,\n toManageNeuronsFollowRequest,\n toMergeMaturityRequest,\n toMergeRequest,\n toRefreshVotingPowerRequest,\n toRegisterVoteRequest,\n toRemoveHotkeyRequest,\n toSetDissolveDelayRequest,\n toSetFollowingRequest,\n toSetVisibilityRequest,\n toSpawnNeuronRequest,\n toSplitRawRequest,\n toStakeMaturityRequest,\n toStartDissolvingRequest,\n toStopDissolvingRequest,\n} from \"./canisters/governance/request.converters\";\nimport {\n toArrayOfNeuronInfo,\n toListProposalsResponse,\n toMetrics,\n toNetworkEconomics,\n toNeuronInfo,\n toProposalInfo,\n} from \"./canisters/governance/response.converters\";\nimport {\n getSuccessfulCommandFromResponse,\n manageNeuron,\n simulateManageNeuron,\n} from \"./canisters/governance/services\";\nimport { MAINNET_GOVERNANCE_CANISTER_ID } from \"./constants/canister_ids\";\nimport { E8S_PER_TOKEN } from \"./constants/constants\";\nimport type { NeuronVisibility, Vote } from \"./enums/governance.enums\";\nimport {\n CouldNotClaimNeuronError,\n GovernanceError,\n InsufficientAmountError,\n UnrecognizedTypeError,\n} from \"./errors/governance.errors\";\nimport type { E8s, NeuronId } from \"./types/common\";\nimport type { GovernanceCanisterOptions } from \"./types/governance.options\";\nimport type {\n Account,\n ClaimOrRefreshNeuronRequest,\n FollowRequest,\n FolloweesForTopic,\n GovernanceCachedMetrics,\n KnownNeuron,\n ListProposalsRequest,\n ListProposalsResponse,\n MakeProposalRequest,\n NetworkEconomics,\n NeuronInfo,\n ProposalId,\n ProposalInfo,\n} from \"./types/governance_converters\";\nimport { memoToNeuronAccountIdentifier } from \"./utils/neurons.utils\";\n\nexport class GovernanceCanister {\n private constructor(\n private readonly canisterId: Principal,\n private readonly service: ActorSubclass<GovernanceService>,\n private readonly certifiedService: ActorSubclass<GovernanceService>,\n private readonly oldListNeuronsCertifiedService: ActorSubclass<GovernanceService>,\n private readonly agent: Agent,\n ) {\n this.canisterId = canisterId;\n this.service = service;\n this.certifiedService = certifiedService;\n this.oldListNeuronsCertifiedService = oldListNeuronsCertifiedService;\n this.agent = agent;\n }\n\n public static create(options: GovernanceCanisterOptions = {}) {\n const canisterId: Principal =\n options.canisterId ?? MAINNET_GOVERNANCE_CANISTER_ID;\n\n const { service, certifiedService, agent } =\n createServices<GovernanceService>({\n options: {\n ...options,\n canisterId,\n },\n idlFactory,\n certifiedIdlFactory,\n });\n\n const oldListNeuronsCertifiedService =\n options.oldListNeuronsServiceOverride ??\n Actor.createActor<GovernanceService>(oldListNeuronsCertifiedIdlFactory, {\n agent,\n canisterId,\n });\n\n return new GovernanceCanister(\n canisterId,\n service,\n certifiedService,\n oldListNeuronsCertifiedService,\n agent,\n );\n }\n\n /**\n * Returns the list of neurons controlled by the caller.\n *\n * If an array of neuron IDs is provided, precisely those neurons will be fetched.\n *\n * If `certified` is true, the request is fetched as an update call, otherwise\n * it is fetched using a query call.\n *\n * The backend treats `includeEmptyNeurons` as false if absent.\n *\n * The response from the canister might be paginated. In this case, all pages will be fetched in parallel and\n * combined into a single return value.\n */\n public listNeurons = async ({\n certified = true,\n neuronIds,\n includeEmptyNeurons,\n includePublicNeurons,\n neuronSubaccounts,\n }: {\n certified: boolean;\n neuronIds?: NeuronId[];\n includeEmptyNeurons?: boolean;\n includePublicNeurons?: boolean;\n neuronSubaccounts?: NeuronSubaccount[];\n }): Promise<NeuronInfo[]> => {\n const useOldMethod =\n isNullish(includeEmptyNeurons) &&\n isNullish(includePublicNeurons) &&\n certified;\n\n if (useOldMethod) {\n return this.fetchNeuronsWithOldMethodAndNoPagination({\n neuronIds,\n });\n }\n\n // Fetch the first page to get the total number of pages\n const firstPageResult = await this.fetchNeuronsPage({\n certified,\n neuronIds,\n includeEmptyNeurons,\n includePublicNeurons,\n neuronSubaccounts,\n pageNumber: 0n,\n });\n const { neurons: firstPageNeurons, totalPages } = firstPageResult;\n\n // https://github.com/dfinity/ic/blob/de17b0d718d6f279e9da8cd0f1b5de17036a6102/rs/nns/governance/api/src/ic_nns_governance.pb.v1.rs#L3543\n if (totalPages < 2n) {\n return firstPageNeurons;\n }\n\n const pagePromises: Promise<{\n neurons: NeuronInfo[];\n totalPages: bigint;\n }>[] = [];\n for (let pageNumber = 1n; pageNumber < totalPages; pageNumber++) {\n pagePromises.push(\n this.fetchNeuronsPage({\n certified,\n neuronIds,\n includeEmptyNeurons,\n includePublicNeurons,\n pageNumber,\n neuronSubaccounts,\n }),\n );\n }\n\n const pageResults = [firstPageResult, ...(await Promise.all(pagePromises))];\n const allNeurons = pageResults.flatMap(({ neurons }) => neurons);\n\n return allNeurons;\n };\n\n // The Ledger app version 2.4.9 does not support\n // include_empty_neurons_readable_by_caller nor include_public_neurons_in_full_neurons,\n // even when the field is absent,\n // so we use the old service (which does not have these fields) if possible,\n // in case the call will be signed by the Ledger device. We only have a\n // certified version of the old service.\n private fetchNeuronsWithOldMethodAndNoPagination = async ({\n neuronIds,\n }: {\n neuronIds?: NeuronId[];\n }): Promise<NeuronInfo[]> => {\n const rawRequest = fromListNeurons({\n neuronIds,\n });\n\n const service = this.oldListNeuronsCertifiedService;\n const rawResponse = await service.list_neurons(rawRequest);\n\n return toArrayOfNeuronInfo({\n response: rawResponse,\n canisterId: this.canisterId,\n });\n };\n\n private fetchNeuronsPage = async ({\n certified,\n neuronIds,\n includeEmptyNeurons,\n includePublicNeurons,\n pageNumber,\n neuronSubaccounts,\n }: {\n certified: boolean;\n neuronIds?: NeuronId[];\n includeEmptyNeurons?: boolean;\n includePublicNeurons?: boolean;\n pageNumber: bigint;\n neuronSubaccounts?: NeuronSubaccount[];\n }): Promise<{ neurons: NeuronInfo[]; totalPages: bigint }> => {\n // https://github.com/dfinity/ic/blob/59c4b87a337f1bd52a076c0f3e99acf155b79803/rs/nns/governance/src/governance.rs#L223\n const PAGE_SIZE = 500n;\n\n const rawRequest = fromListNeurons({\n neuronIds,\n includeEmptyNeurons,\n includePublicNeurons,\n neuronSubaccounts,\n pageNumber,\n pageSize: PAGE_SIZE,\n });\n\n const service = this.getGovernanceService(certified);\n const rawResponse = await service.list_neurons(rawRequest);\n const neurons = toArrayOfNeuronInfo({\n response: rawResponse,\n canisterId: this.canisterId,\n });\n\n const totalPages = fromNullable(rawResponse.total_pages_available) ?? 1n;\n\n return { neurons, totalPages };\n };\n\n /**\n * Returns the list of neurons who have been approved by the community to\n * appear as the default followee options.\n *\n * If `certified` is true, the request is fetched as an update call, otherwise\n * it is fetched using a query call.\n */\n public listKnownNeurons = async (\n certified = true,\n ): Promise<KnownNeuron[]> => {\n const response =\n await this.getGovernanceService(certified).list_known_neurons();\n\n return response.known_neurons.map((n) => {\n const knownNeuronData = fromNullable(n.known_neuron_data);\n\n // Note: We are defaulting id and name to not the same values as the API.\n return {\n id: fromNullable(n.id)?.id ?? BigInt(0),\n name: knownNeuronData?.name ?? \"\",\n description: fromNullable(knownNeuronData?.description ?? []),\n links: fromNullable(knownNeuronData?.links ?? []),\n committed_topics: fromNullable(knownNeuronData?.committed_topics ?? []),\n };\n });\n };\n\n /**\n * Returns the latest reward event.\n *\n * If `certified` is true, the request is fetched as an update call, otherwise\n * it's fetched using a query call.\n *\n */\n public getLatestRewardEvent = (certified = true): Promise<RewardEvent> =>\n this.getGovernanceService(certified).get_latest_reward_event();\n\n /**\n * Returns the list of proposals made for the community to vote on,\n * paginated and filtered by the request.\n *\n * If `certified` is true (default), the request is fetched as an update call, otherwise\n * it is fetched using a query call.\n *\n * @param request the options to list the proposals (limit number of results, topics to search for, etc.)\n * @param certified query or update calls\n */\n public listProposals = async ({\n request,\n certified = true,\n }: {\n request: ListProposalsRequest;\n certified?: boolean;\n }): Promise<ListProposalsResponse> => {\n const rawRequest = fromListProposalsRequest(request);\n const rawResponse =\n await this.getGovernanceService(certified).list_proposals(rawRequest);\n return toListProposalsResponse(rawResponse);\n };\n\n /**\n * @throws {@link InsufficientAmountError}\n * @throws {@link StakeNeuronTransferError}\n * @throws {@link CouldNotClaimNeuronError}\n * @throws {@link TransferError}\n */\n public stakeNeuron = async ({\n stake,\n principal,\n fromSubAccount,\n ledgerCanister,\n createdAt,\n fee,\n }: {\n stake: bigint;\n principal: Principal;\n fromSubAccount?: number[];\n ledgerCanister: LedgerCanister;\n // Used for the TransferRequest parameters.\n // Check the TransferRequest type for more information.\n createdAt?: bigint;\n fee?: E8s;\n }): Promise<NeuronId> => {\n if (stake < E8S_PER_TOKEN) {\n throw new InsufficientAmountError(stake);\n }\n\n const nonceBytes = crypto.getRandomValues(new Uint8Array(8));\n const nonce = uint8ArrayToBigInt(nonceBytes);\n const accountIdentifier = memoToNeuronAccountIdentifier({\n controller: principal,\n memo: nonce,\n governanceCanisterId: this.canisterId,\n });\n\n // Send amount to the ledger.\n await ledgerCanister.transfer({\n memo: nonce,\n amount: stake,\n fromSubAccount,\n to: accountIdentifier,\n createdAt,\n fee,\n });\n\n // Notify the governance of the transaction so that the neuron is created.\n const neuronId: NeuronId | undefined =\n await this.claimOrRefreshNeuronFromAccount({\n controller: principal,\n memo: nonce,\n });\n\n // Typescript was complaining with `neuronId || new NeuronNotFound()`:\n // \"Type 'undefined' is not assignable to type 'bigint | StakeNeuronError | TransferError'\"\n // hence the explicit check.\n if (isNullish(neuronId)) {\n throw new CouldNotClaimNeuronError();\n }\n\n return neuronId;\n };\n\n /**\n * Increases dissolve delay of a neuron\n *\n * @throws {@link GovernanceError}\n */\n public increaseDissolveDelay = async ({\n neuronId,\n additionalDissolveDelaySeconds,\n }: {\n neuronId: NeuronId;\n additionalDissolveDelaySeconds: number;\n }): Promise<void> => {\n const request = toIncreaseDissolveDelayRequest({\n neuronId,\n additionalDissolveDelaySeconds,\n });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Sets dissolve delay of a neuron.\n * The new date is now + dissolveDelaySeconds.\n *\n * @param {NeuronId} neuronId\n * @param {number} dissolveDelaySeconds\n * @throws {@link GovernanceError}\n */\n public setDissolveDelay = async ({\n neuronId,\n dissolveDelaySeconds,\n }: {\n neuronId: NeuronId;\n dissolveDelaySeconds: number;\n }): Promise<void> => {\n const request = toSetDissolveDelayRequest({\n neuronId,\n dissolveDelaySeconds,\n });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Start dissolving process of a neuron\n *\n * @throws {@link GovernanceError}\n */\n public startDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request = toStartDissolvingRequest(neuronId);\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Stop dissolving process of a neuron\n *\n * @throws {@link GovernanceError}\n */\n public stopDissolving = async (neuronId: NeuronId): Promise<void> => {\n const request = toStopDissolvingRequest(neuronId);\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Neuron joins the community fund\n *\n * @throws {@link GovernanceError}\n */\n public joinCommunityFund = async (neuronId: NeuronId): Promise<void> => {\n const request = toJoinCommunityFundRequest(neuronId);\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Changes auto-stake maturity for this Neuron. While on, auto-stake maturity will cause all the maturity generated by voting rewards to this neuron to be automatically staked and contribute to the voting power of the 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 * @throws {@link GovernanceError}\n */\n public autoStakeMaturity = async (params: {\n neuronId: NeuronId;\n autoStake: boolean;\n }): Promise<void> => {\n await manageNeuron({\n request: toAutoStakeMaturityRequest(params),\n service: this.certifiedService,\n });\n };\n\n /**\n * Neuron leaves the community fund\n *\n * @throws {@link GovernanceError}\n */\n public leaveCommunityFund = async (neuronId: NeuronId): Promise<void> => {\n const request = toLeaveCommunityFundRequest(neuronId);\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Set visibility of a neuron\n *\n * @throws {@link GovernanceError}\n */\n // eslint-disable-next-line local-rules/prefer-object-params\n public setVisibility = async (\n neuronId: NeuronId,\n visibility: NeuronVisibility,\n ): Promise<void> => {\n const request = toSetVisibilityRequest({ neuronId, visibility });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Sets node provider reward account.\n * Where the reward is paid to.\n *\n * @param {string} accountIdentifier\n * @throws {@link GovernanceError}\n * @throws {@link InvalidAccountIDError}\n */\n public setNodeProviderAccount = async (\n accountIdentifier: string,\n ): Promise<void> => {\n // Might throw InvalidAccountIDError\n checkAccountId(accountIdentifier);\n const account = AccountIdentifier.fromHex(accountIdentifier);\n const response = await this.certifiedService.update_node_provider({\n reward_account: [account.toAccountIdentifierHash()],\n });\n\n if (\"Err\" in response) {\n throw new GovernanceError(response.Err);\n }\n };\n\n /**\n * Merge two neurons\n *\n * @throws {@link GovernanceError}\n */\n public mergeNeurons = async (request: {\n sourceNeuronId: NeuronId;\n targetNeuronId: NeuronId;\n }): Promise<void> => {\n const rawRequest = toMergeRequest(request);\n\n await manageNeuron({\n request: rawRequest,\n service: this.certifiedService,\n });\n };\n\n /**\n * Simulate merging two neurons\n *\n * @throws {@link GovernanceError}\n */\n public simulateMergeNeurons = async (request: {\n sourceNeuronId: NeuronId;\n targetNeuronId: NeuronId;\n }): Promise<NeuronInfo> => {\n const rawRequest = toMergeRequest(request);\n\n const command = await simulateManageNeuron({\n request: rawRequest,\n service: this.certifiedService,\n });\n\n let merge: MergeResponse | undefined;\n let neuronInfo: RawNeuronInfo | undefined;\n let rawNeuron: RawNeuron | undefined;\n let neuronId: NeuronId | undefined;\n\n if (\n \"Merge\" in command &&\n nonNullish((merge = command.Merge)) &&\n nonNullish((neuronInfo = fromNullable(merge.target_neuron_info))) &&\n nonNullish((rawNeuron = fromNullable(merge.target_neuron))) &&\n nonNullish((neuronId = fromNullable(rawNeuron.id)?.id))\n ) {\n return toNeuronInfo({\n neuronId,\n neuronInfo,\n rawNeuron,\n canisterId: this.canisterId,\n });\n }\n\n // Edge case\n throw new UnrecognizedTypeError(\n `simulateMergeNeurons: Unrecognized Merge error in ${JSON.stringify(\n command,\n )}`,\n );\n };\n\n /**\n * Splits a neuron creating a new one\n *\n * @returns newNeuronId\n * @throws {@link GovernanceError}\n */\n public splitNeuron = async ({\n neuronId,\n amount,\n memo,\n }: {\n neuronId: NeuronId;\n amount: bigint;\n memo?: bigint;\n }): Promise<NeuronId> => {\n const request = toSplitRawRequest({\n neuronId,\n amount,\n memo,\n });\n\n const response = await this.certifiedService.manage_neuron(request);\n const command = getSuccessfulCommandFromResponse(response);\n\n if (\"Split\" in command) {\n const neuron = fromNullable(command.Split.created_neuron_id);\n if (isNullish(neuron)) {\n // Edge case\n throw new GovernanceError({\n error_message:\n \"Unexpected error splitting neuron. No neuronId in Split response.\",\n error_type: 0,\n });\n }\n return neuron.id;\n }\n\n // Edge case\n throw new UnrecognizedTypeError(\n `Unrecognized Split error in ${JSON.stringify(response)}`,\n );\n };\n\n /**\n * Returns single proposal info\n *\n * If `certified` is true (default), the request is fetched as an update call, otherwise\n * it is fetched using a query call.\n */\n public getProposal = async ({\n proposalId,\n certified = true,\n }: {\n proposalId: bigint;\n certified?: boolean;\n }): Promise<ProposalInfo | undefined> => {\n const [proposalInfo]: Nullable<RawProposalInfo> =\n await this.getGovernanceService(certified).get_proposal_info(proposalId);\n return proposalInfo ? toProposalInfo(proposalInfo) : undefined;\n };\n\n /**\n * Create new proposal\n *\n * @returns The newly created proposal ID or undefined if the success response returned by the Governance canister does not provide such information.\n * @throws {@link GovernanceError}\n */\n public makeProposal = async (\n request: MakeProposalRequest,\n ): Promise<NeuronId | undefined> => {\n const rawRequest = toMakeProposalRawRequest(request);\n\n const cmd = await manageNeuron({\n request: rawRequest,\n service: this.certifiedService,\n });\n\n return \"MakeProposal\" in cmd\n ? fromNullable(cmd.MakeProposal.proposal_id)?.id\n : undefined;\n };\n\n /**\n *\n * Registers vote for a proposal from the neuron passed.\n *\n * @throws {@link GovernanceError}\n */\n public registerVote = async ({\n neuronId,\n vote,\n proposalId,\n }: {\n neuronId: NeuronId;\n vote: Vote;\n proposalId: ProposalId;\n }): Promise<void> => {\n const request = toRegisterVoteRequest({ neuronId, vote, proposalId });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Edit neuron followees per topic\n *\n * @throws {@link GovernanceError}\n */\n public setFollowees = async (followRequest: FollowRequest): Promise<void> => {\n const request = toManageNeuronsFollowRequest(followRequest);\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Disburse neuron on Account\n *\n * @throws {@link GovernanceError}\n * @throws {@link InvalidAccountIDError}\n */\n public disburse = async ({\n neuronId,\n toAccountId,\n amount,\n }: {\n neuronId: NeuronId;\n toAccountId?: string;\n amount?: E8s;\n }): Promise<void> => {\n if (nonNullish(toAccountId)) {\n // Might throw InvalidAccountIDError\n checkAccountId(toAccountId);\n }\n // TODO: Test that the new way also works for disbursements.\n const toAccountIdentifier = nonNullish(toAccountId)\n ? AccountIdentifier.fromHex(toAccountId)\n : undefined;\n const request = toDisburseNeuronRequest({\n neuronId,\n toAccountIdentifier,\n amount,\n });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Refreshes voting power of a neuron\n * (Resets the `votingPowerRefreshedTimestampSeconds`\n * parameter of the neuron to the current time).\n *\n * @throws {@link GovernanceError}\n */\n public refreshVotingPower = async ({\n neuronId,\n }: {\n neuronId: NeuronId;\n }): Promise<void> => {\n const request = toRefreshVotingPowerRequest({\n neuronId,\n });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Merge Maturity of a neuron\n *\n * @throws {@link GovernanceError}\n * @throws {@link InvalidPercentageError}\n *\n */\n public mergeMaturity = async ({\n neuronId,\n percentageToMerge,\n }: {\n neuronId: NeuronId;\n percentageToMerge: number;\n }): Promise<void> => {\n // Might throw InvalidPercentageError\n assertPercentageNumber(percentageToMerge);\n\n const request = toMergeMaturityRequest({ neuronId, percentageToMerge });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\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 * @throws {@link GovernanceError}\n * @throws {@link InvalidPercentageError}\n *\n */\n public stakeMaturity = async ({\n neuronId,\n percentageToStake,\n }: {\n neuronId: NeuronId;\n percentageToStake?: number;\n }): Promise<void> => {\n assertPercentageNumber(percentageToStake ?? 100);\n\n await manageNeuron({\n request: toStakeMaturityRequest({ neuronId, percentageToStake }),\n service: this.certifiedService,\n });\n };\n\n /**\n * Merge Maturity of a neuron\n *\n * @throws {@link GovernanceError}\n * @throws {@link InvalidPercentageError}\n *\n */\n public spawnNeuron = async ({\n neuronId,\n percentageToSpawn,\n newController,\n nonce,\n }: {\n neuronId: NeuronId;\n percentageToSpawn?: number;\n newController?: Principal;\n nonce?: bigint;\n }): Promise<bigint> => {\n if (nonNullish(percentageToSpawn)) {\n // Migth throw InvalidPercentageError\n assertPercentageNumber(percentageToSpawn);\n }\n\n const request = toSpawnNeuronRequest({\n neuronId,\n percentageToSpawn,\n newController,\n nonce,\n });\n\n const response = await this.certifiedService.manage_neuron(request);\n const command = getSuccessfulCommandFromResponse(response);\n let createdNeuronId: NeuronId | undefined;\n\n if (\n \"Spawn\" in command &&\n nonNullish(\n (createdNeuronId = fromNullable(command.Spawn.created_neuron_id)?.id),\n )\n ) {\n return createdNeuronId;\n }\n\n // Edge case\n throw new UnrecognizedTypeError(\n `Unrecognized Spawn error in ${JSON.stringify(response)}`,\n );\n };\n\n /**\n * Add hotkey to neuron\n *\n * @throws {@link GovernanceError}\n */\n public addHotkey = async ({\n neuronId,\n principal,\n }: {\n neuronId: NeuronId;\n principal: Principal;\n }): Promise<void> => {\n const request = toAddHotkeyRequest({ neuronId, principal });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Remove hotkey to neuron\n *\n * @throws {@link GovernanceError}\n */\n public removeHotkey = async ({\n neuronId,\n principal,\n }: {\n neuronId: NeuronId;\n principal: Principal;\n }): Promise<void> => {\n const request = toRemoveHotkeyRequest({ neuronId, principal });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Gets the NeuronID of a newly created neuron.\n */\n public claimOrRefreshNeuronFromAccount = async ({\n memo,\n controller,\n }: {\n memo: bigint;\n controller?: Principal;\n }): Promise<NeuronId | undefined> => {\n const rawRequest = toClaimOrRefreshRequest({\n memo,\n controller,\n });\n const rawResponse = await this.certifiedService.manage_neuron(rawRequest);\n let command: Command_1 | undefined;\n if (\n nonNullish((command = fromNullable(rawResponse.command))) &&\n \"ClaimOrRefresh\" in command\n ) {\n return fromNullable(command.ClaimOrRefresh.refreshed_neuron_id)?.id;\n }\n\n throw new UnrecognizedTypeError(\n `Unrecognized ClaimOrRefresh error in ${JSON.stringify(rawResponse)}`,\n );\n };\n\n /**\n * Refreshes neuron and returns neuronId when successful\n * Uses query call only.\n *\n * @throws {@link UnrecognizedTypeError}\n */\n public claimOrRefreshNeuron = async (\n request: ClaimOrRefreshNeuronRequest,\n ): Promise<NeuronId | undefined> => {\n const rawRequest = fromClaimOrRefreshNeuronRequest(request);\n const rawResponse = await this.service.manage_neuron(rawRequest);\n let command: Command_1 | undefined;\n if (\n nonNullish((command = fromNullable(rawResponse.command))) &&\n \"ClaimOrRefresh\" in command\n ) {\n return fromNullable(command.ClaimOrRefresh.refreshed_neuron_id)?.id;\n }\n\n throw new UnrecognizedTypeError(\n `Unrecognized ClaimOrRefresh error in ${JSON.stringify(rawResponse)}`,\n );\n };\n\n private getGovernanceService(certified: boolean): GovernanceService {\n return certified ? this.certifiedService : this.service;\n }\n\n /**\n * Return the data of the neuron provided as id.\n */\n public getNeuron = async ({\n certified = true,\n neuronId,\n }: {\n certified: boolean;\n neuronId: NeuronId;\n }): Promise<NeuronInfo | undefined> => {\n // The governance canister exposes two functions \"get_neuron_info\" and \"get_full_neuron\" that could probably be used to fetch the neuron details too.\n // However historically this function has been resolved with a single call \"list_neurons\".\n\n const [neuron]: NeuronInfo[] = await this.listNeurons({\n certified,\n neuronIds: [neuronId],\n });\n\n return neuron;\n };\n\n /**\n * Return the [Network Economics](https://github.com/dfinity/ic/blob/d90e934eb440c730d44d9d9b1ece2cc3f9505d05/rs/nns/governance/proto/ic_nns_governance/pb/v1/governance.proto#L1847).\n */\n public getNetworkEconomicsParameters = async ({\n certified = true,\n }: {\n certified: boolean;\n }): Promise<NetworkEconomics> => {\n const rawResponse =\n await this.getGovernanceService(\n certified,\n ).get_network_economics_parameters();\n return toNetworkEconomics(rawResponse);\n };\n\n /**\n * Disburses a neuron's maturity (always certified).\n * Reference: https://github.com/dfinity/ic/blob/ca2be53acf413bb92478ee7694ac0fb92af07030/rs/sns/governance/src/governance.rs#L1614\n *\n * @preconditions\n * - The neuron exists\n * - The caller is authorized to perform this neuron operation (NeuronPermissionType::DisburseMaturity)\n * - The given percentage_to_merge is between 1 and 100 (inclusive)\n * - The neuron's id is not yet in the list of neurons with ongoing operations\n * - The e8s equivalent of the amount of maturity to disburse is more than the transaction fee.\n *\n * @param {Object} params\n * @param {NeuronId} params.neuronId The id of the neuron for which to disburse maturity\n * @param {number} params.percentageToDisburse The percentage of the neuron's maturity to disburse, between 1 and 100 (inclusive).\n * @param {AccountIdentifierHex} [params.toAccountIdentifier] Optional. The account identifier to which the maturity will be disbursed. If not provided, the maturity will be disbursed to the caller's Main account.\n * @param {Account} [params.toAccount] Optional. The ICRC account to which the maturity will be disbursed. If not provided, the maturity will be disbursed to the caller's Main account.\n */\n public disburseMaturity = async ({\n neuronId,\n percentageToDisburse,\n toAccountIdentifier,\n toAccount,\n }: {\n neuronId: NeuronId;\n percentageToDisburse: number;\n toAccountIdentifier?: AccountIdentifierHex;\n toAccount?: Account;\n }): Promise<void> => {\n const request = toDisburseMaturityRequest({\n neuronId,\n percentageToDisburse,\n toAccountIdentifier,\n toAccount,\n });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n /**\n * Set the following topics for a neuron.\n *\n * @param {Object} params\n * @param {NeuronId} params.neuronId The id of the neuron for which to set the following topics\n * @param {Array<FolloweesForTopic>} params.topicFollowing The topics and the followees for each topic that the neuron should follow.\n */\n public setFollowing = async ({\n neuronId,\n topicFollowing,\n }: {\n neuronId: NeuronId;\n topicFollowing: Array<FolloweesForTopic>;\n }): Promise<void> => {\n const request = toSetFollowingRequest({ neuronId, topicFollowing });\n\n await manageNeuron({\n request,\n service: this.certifiedService,\n });\n };\n\n public getMetrics = async ({\n certified = true,\n }: {\n certified: boolean;\n }): Promise<GovernanceCachedMetrics> => {\n const response = await this.getGovernanceService(certified).get_metrics();\n if (\"Err\" in response) {\n throw new GovernanceError(response.Err);\n }\n return toMetrics(response.Ok);\n };\n}\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const ManageNeuronRequest = IDL.Rec();\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const DateUtc = IDL.Record({\n day: IDL.Nat32,\n month: IDL.Nat32,\n year: IDL.Nat32,\n });\n const AccountIdentifier = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n id: IDL.Opt(IDL.Principal),\n reward_account: IDL.Opt(AccountIdentifier),\n });\n const RewardToNeuron = IDL.Record({ dissolve_delay_seconds: IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n RewardToNeuron: RewardToNeuron,\n RewardToAccount: RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n node_provider: IDL.Opt(NodeProvider),\n reward_mode: IDL.Opt(RewardMode),\n amount_e8s: IDL.Nat64,\n });\n const XdrConversionRate = IDL.Record({\n xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const MonthlyNodeProviderRewards = IDL.Record({\n minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n end_date: IDL.Opt(DateUtc),\n registry_version: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n start_date: IDL.Opt(DateUtc),\n timestamp: IDL.Nat64,\n rewards: IDL.Vec(RewardNodeProvider),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n maximum_node_provider_rewards_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronSubsetMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n maturity_e8s_equivalent_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_e8s: IDL.Opt(IDL.Nat64),\n count: IDL.Opt(IDL.Nat64),\n deciding_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n total_deciding_voting_power: IDL.Opt(IDL.Nat64),\n staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64),\n ),\n staked_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_voting_power: IDL.Opt(IDL.Nat64),\n potential_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const GovernanceCachedMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n garbage_collectable_neurons_count: IDL.Nat64,\n dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\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 ect_neuron_count: IDL.Nat64,\n total_supply_icp: IDL.Nat64,\n neurons_with_less_than_6_months_dissolve_delay_count: IDL.Nat64,\n dissolved_neurons_count: IDL.Nat64,\n community_fund_total_maturity_e8s_equivalent: IDL.Nat64,\n total_staked_e8s_seed: IDL.Nat64,\n total_staked_maturity_e8s_equivalent_ect: IDL.Nat64,\n total_staked_e8s: IDL.Nat64,\n fully_lost_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n not_dissolving_neurons_count: IDL.Nat64,\n total_locked_e8s: IDL.Nat64,\n neurons_fund_total_active_neurons: IDL.Nat64,\n total_voting_power_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n total_staked_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n spawning_neurons_count: IDL.Nat64,\n declining_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n total_staked_e8s_ect: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n dissolved_neurons_e8s: IDL.Nat64,\n total_staked_e8s_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n neurons_with_less_than_6_months_dissolve_delay_e8s: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n non_self_authenticating_controller_neuron_subset_metrics:\n IDL.Opt(NeuronSubsetMetrics),\n dissolving_neurons_count: IDL.Nat64,\n dissolving_neurons_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Float64)),\n total_staked_maturity_e8s_equivalent_seed: IDL.Nat64,\n community_fund_total_staked_e8s: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n public_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n timestamp_seconds: IDL.Nat64,\n seed_neuron_count: IDL.Nat64,\n });\n const VotingPowerEconomics = IDL.Record({\n start_reducing_voting_power_after_seconds: IDL.Opt(IDL.Nat64),\n neuron_minimum_dissolve_delay_to_vote_seconds: IDL.Opt(IDL.Nat64),\n clear_following_after_seconds: IDL.Opt(IDL.Nat64),\n });\n const Percentage = IDL.Record({ basis_points: IDL.Opt(IDL.Nat64) });\n const Decimal = IDL.Record({ human_readable: IDL.Opt(IDL.Text) });\n const NeuronsFundMatchedFundingCurveCoefficients = IDL.Record({\n contribution_threshold_xdr: IDL.Opt(Decimal),\n one_third_participation_milestone_xdr: IDL.Opt(Decimal),\n full_participation_milestone_xdr: IDL.Opt(Decimal),\n });\n const NeuronsFundEconomics = IDL.Record({\n maximum_icp_xdr_rate: IDL.Opt(Percentage),\n neurons_fund_matched_funding_curve_coefficients: IDL.Opt(\n NeuronsFundMatchedFundingCurveCoefficients,\n ),\n max_theoretical_neurons_fund_participation_amount_xdr: IDL.Opt(Decimal),\n minimum_icp_xdr_rate: IDL.Opt(Percentage),\n });\n const NetworkEconomics = IDL.Record({\n neuron_minimum_stake_e8s: IDL.Nat64,\n voting_power_economics: IDL.Opt(VotingPowerEconomics),\n max_proposals_to_keep_per_topic: IDL.Nat32,\n neuron_management_fee_per_proposal_e8s: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n transaction_fee_e8s: IDL.Nat64,\n neuron_spawn_dissolve_delay_seconds: IDL.Nat64,\n minimum_icp_xdr_rate: IDL.Nat64,\n maximum_node_provider_rewards_e8s: IDL.Nat64,\n neurons_fund_economics: IDL.Opt(NeuronsFundEconomics),\n });\n const RestoreAgingNeuronGroup = IDL.Record({\n count: IDL.Opt(IDL.Nat64),\n previous_total_stake_e8s: IDL.Opt(IDL.Nat64),\n current_total_stake_e8s: IDL.Opt(IDL.Nat64),\n group_type: IDL.Int32,\n });\n const RestoreAgingSummary = IDL.Record({\n groups: IDL.Vec(RestoreAgingNeuronGroup),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ProposalId = IDL.Record({ id: IDL.Nat64 });\n const RewardEvent = IDL.Record({\n rounds_since_last_distribution: IDL.Opt(IDL.Nat64),\n day_after_genesis: IDL.Nat64,\n actual_timestamp_seconds: IDL.Nat64,\n total_available_e8s_equivalent: IDL.Nat64,\n latest_round_available_e8s_equivalent: IDL.Opt(IDL.Nat64),\n distributed_e8s_equivalent: IDL.Nat64,\n settled_proposals: IDL.Vec(ProposalId),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n error_message: IDL.Text,\n error_type: IDL.Int32,\n });\n const Ballot = IDL.Record({ vote: IDL.Int32, voting_power: IDL.Nat64 });\n const SwapParticipationLimits = IDL.Record({\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuronPortion = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Vec(IDL.Principal),\n is_capped: IDL.Opt(IDL.Bool),\n maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n nns_neuron_id: IDL.Opt(NeuronId),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundSnapshot = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuronPortion),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipation = IDL.Record({\n total_maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n intended_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n swap_participation_limits: IDL.Opt(SwapParticipationLimits),\n max_neurons_fund_swap_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n neurons_fund_reserves: IDL.Opt(NeuronsFundSnapshot),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n allocated_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundData = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const CanisterStatusResultV2 = IDL.Record({\n status: IDL.Opt(IDL.Int32),\n freezing_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Vec(IDL.Principal),\n memory_size: IDL.Opt(IDL.Nat64),\n cycles: IDL.Opt(IDL.Nat64),\n idle_cycles_burned_per_day: IDL.Opt(IDL.Nat64),\n module_hash: IDL.Vec(IDL.Nat8),\n });\n const CanisterSummary = IDL.Record({\n status: IDL.Opt(CanisterStatusResultV2),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const SwapBackgroundInformation = IDL.Record({\n ledger_index_canister_summary: IDL.Opt(CanisterSummary),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n ledger_archive_canister_summaries: IDL.Vec(CanisterSummary),\n ledger_canister_summary: IDL.Opt(CanisterSummary),\n swap_canister_summary: IDL.Opt(CanisterSummary),\n governance_canister_summary: IDL.Opt(CanisterSummary),\n root_canister_summary: IDL.Opt(CanisterSummary),\n dapp_canister_summaries: IDL.Vec(CanisterSummary),\n });\n const DerivedProposalInformation = IDL.Record({\n swap_background_information: IDL.Opt(SwapBackgroundInformation),\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 TopicToFollow = IDL.Variant({\n Kyc: IDL.Null,\n ServiceNervousSystemManagement: IDL.Null,\n ApiBoundaryNodeManagement: IDL.Null,\n ApplicationCanisterManagement: IDL.Null,\n SubnetRental: IDL.Null,\n NeuronManagement: IDL.Null,\n NodeProviderRewards: IDL.Null,\n SubnetManagement: IDL.Null,\n ExchangeRate: IDL.Null,\n CatchAll: IDL.Null,\n NodeAdmin: IDL.Null,\n IcOsVersionElection: IDL.Null,\n ProtocolCanisterManagement: IDL.Null,\n NetworkEconomics: IDL.Null,\n IcOsVersionDeployment: IDL.Null,\n ParticipantManagement: IDL.Null,\n Governance: IDL.Null,\n SnsAndCommunityFund: IDL.Null,\n });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n committed_topics: IDL.Opt(IDL.Vec(IDL.Opt(TopicToFollow))),\n description: IDL.Opt(IDL.Text),\n links: IDL.Opt(IDL.Vec(IDL.Text)),\n });\n const KnownNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n });\n const FulfillSubnetRentalRequest = IDL.Record({\n user: IDL.Opt(IDL.Principal),\n replica_version_id: IDL.Opt(IDL.Text),\n node_ids: IDL.Opt(IDL.Vec(IDL.Principal)),\n });\n const Spawn = IDL.Record({\n percentage_to_spawn: IDL.Opt(IDL.Nat32),\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({\n memo: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Nat64,\n });\n const Follow = IDL.Record({\n topic: IDL.Int32,\n followees: IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n owner: IDL.Opt(IDL.Principal),\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DisburseMaturity = IDL.Record({\n to_account_identifier: IDL.Opt(AccountIdentifier),\n to_account: IDL.Opt(Account),\n percentage_to_disburse: IDL.Nat32,\n });\n const RefreshVotingPower = IDL.Record({});\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n });\n const By = IDL.Variant({\n NeuronIdOrSubaccount: IDL.Record({}),\n MemoAndController: ClaimOrRefreshNeuronFromAccount,\n Memo: IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ by: IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n hot_key_to_remove: IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ new_hot_key: IDL.Opt(IDL.Principal) });\n const 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 SetVisibility = IDL.Record({ visibility: IDL.Opt(IDL.Int32) });\n const SetDissolveTimestamp = IDL.Record({\n dissolve_timestamp_seconds: IDL.Nat64,\n });\n const Operation = IDL.Variant({\n RemoveHotKey: RemoveHotKey,\n AddHotKey: AddHotKey,\n ChangeAutoStakeMaturity: ChangeAutoStakeMaturity,\n StopDissolving: IDL.Record({}),\n StartDissolving: IDL.Record({}),\n IncreaseDissolveDelay: IncreaseDissolveDelay,\n SetVisibility: SetVisibility,\n JoinCommunityFund: IDL.Record({}),\n LeaveCommunityFund: IDL.Record({}),\n SetDissolveTimestamp: SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ operation: IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n vote: IDL.Int32,\n proposal: IDL.Opt(ProposalId),\n });\n const Merge = IDL.Record({ source_neuron_id: IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n kyc_verified: IDL.Bool,\n amount_e8s: IDL.Nat64,\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Nat64,\n });\n const FolloweesForTopic = IDL.Record({\n topic: IDL.Opt(IDL.Int32),\n followees: IDL.Opt(IDL.Vec(NeuronId)),\n });\n const SetFollowing = IDL.Record({\n topic_following: IDL.Opt(IDL.Vec(FolloweesForTopic)),\n });\n const StakeMaturity = IDL.Record({\n percentage_to_stake: IDL.Opt(IDL.Nat32),\n });\n const MergeMaturity = IDL.Record({ percentage_to_merge: IDL.Nat32 });\n const Amount = IDL.Record({ e8s: IDL.Nat64 });\n const Disburse = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n amount: IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: Proposal,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n Subaccount: IDL.Vec(IDL.Nat8),\n NeuronId: NeuronId,\n });\n const ManageNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(Command),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n });\n const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });\n const CanisterSettings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat64),\n wasm_memory_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Opt(Controllers),\n log_visibility: IDL.Opt(IDL.Int32),\n wasm_memory_limit: IDL.Opt(IDL.Nat64),\n memory_allocation: IDL.Opt(IDL.Nat64),\n compute_allocation: IDL.Opt(IDL.Nat64),\n });\n const UpdateCanisterSettings = IDL.Record({\n canister_id: IDL.Opt(IDL.Principal),\n settings: IDL.Opt(CanisterSettings),\n });\n const InstallCode = IDL.Record({\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n wasm_module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n canister_id: IDL.Opt(IDL.Principal),\n arg_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const DeregisterKnownNeuron = IDL.Record({ id: IDL.Opt(NeuronId) });\n const StopOrStartCanister = IDL.Record({\n action: IDL.Opt(IDL.Int32),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const Duration = IDL.Record({ seconds: IDL.Opt(IDL.Nat64) });\n const Tokens = IDL.Record({ e8s: IDL.Opt(IDL.Nat64) });\n const VotingRewardParameters = IDL.Record({\n reward_rate_transition_duration: IDL.Opt(Duration),\n initial_reward_rate: IDL.Opt(Percentage),\n final_reward_rate: IDL.Opt(Percentage),\n });\n const GovernanceParameters = IDL.Record({\n neuron_maximum_dissolve_delay_bonus: IDL.Opt(Percentage),\n neuron_maximum_age_for_age_bonus: IDL.Opt(Duration),\n neuron_maximum_dissolve_delay: IDL.Opt(Duration),\n neuron_minimum_dissolve_delay_to_vote: IDL.Opt(Duration),\n neuron_maximum_age_bonus: IDL.Opt(Percentage),\n neuron_minimum_stake: IDL.Opt(Tokens),\n proposal_wait_for_quiet_deadline_increase: IDL.Opt(Duration),\n proposal_initial_voting_period: IDL.Opt(Duration),\n proposal_rejection_fee: IDL.Opt(Tokens),\n voting_reward_parameters: IDL.Opt(VotingRewardParameters),\n });\n const Image = IDL.Record({ base64_encoding: IDL.Opt(IDL.Text) });\n const LedgerParameters = IDL.Record({\n transaction_fee: IDL.Opt(Tokens),\n token_symbol: IDL.Opt(IDL.Text),\n token_logo: IDL.Opt(Image),\n token_name: IDL.Opt(IDL.Text),\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval: IDL.Opt(Duration),\n count: IDL.Opt(IDL.Nat64),\n });\n const GlobalTimeOfDay = IDL.Record({\n seconds_after_utc_midnight: IDL.Opt(IDL.Nat64),\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SwapParameters = IDL.Record({\n minimum_participants: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n duration: IDL.Opt(Duration),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n confirmation_text: IDL.Opt(IDL.Text),\n maximum_participant_icp: IDL.Opt(Tokens),\n minimum_icp: IDL.Opt(Tokens),\n minimum_direct_participation_icp: IDL.Opt(Tokens),\n minimum_participant_icp: IDL.Opt(Tokens),\n start_time: IDL.Opt(GlobalTimeOfDay),\n maximum_direct_participation_icp: IDL.Opt(Tokens),\n maximum_icp: IDL.Opt(Tokens),\n neurons_fund_investment_icp: IDL.Opt(Tokens),\n restricted_countries: IDL.Opt(Countries),\n });\n const SwapDistribution = IDL.Record({ total: IDL.Opt(Tokens) });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay: IDL.Opt(Duration),\n memo: IDL.Opt(IDL.Nat64),\n vesting_period: IDL.Opt(Duration),\n stake: IDL.Opt(Tokens),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const InitialTokenDistribution = IDL.Record({\n treasury_distribution: IDL.Opt(SwapDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const CreateServiceNervousSystem = IDL.Record({\n url: IDL.Opt(IDL.Text),\n governance_parameters: IDL.Opt(GovernanceParameters),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n logo: IDL.Opt(Image),\n name: IDL.Opt(IDL.Text),\n ledger_parameters: IDL.Opt(LedgerParameters),\n description: IDL.Opt(IDL.Text),\n dapp_canisters: IDL.Vec(Canister),\n swap_parameters: IDL.Opt(SwapParameters),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n });\n const ExecuteNnsFunction = IDL.Record({\n nns_function: IDL.Int32,\n payload: IDL.Vec(IDL.Nat8),\n });\n const NeuronBasketConstructionParameters_1 = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Params = IDL.Record({\n min_participant_icp_e8s: IDL.Nat64,\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters_1,\n ),\n max_icp_e8s: IDL.Nat64,\n swap_due_timestamp_seconds: IDL.Nat64,\n min_participants: IDL.Nat32,\n sns_token_e8s: IDL.Nat64,\n sale_delay_seconds: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Nat64,\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_icp_e8s: IDL.Nat64,\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const OpenSnsTokenSwap = IDL.Record({\n community_fund_investment_e8s: IDL.Opt(IDL.Nat64),\n target_swap_canister_id: IDL.Opt(IDL.Principal),\n params: IDL.Opt(Params),\n });\n const TimeWindow = IDL.Record({\n start_timestamp_seconds: IDL.Nat64,\n end_timestamp_seconds: IDL.Nat64,\n });\n const SetOpenTimeWindowRequest = IDL.Record({\n open_time_window: IDL.Opt(TimeWindow),\n });\n const SetSnsTokenSwapOpenTimeWindow = IDL.Record({\n request: IDL.Opt(SetOpenTimeWindowRequest),\n swap_canister_id: IDL.Opt(IDL.Principal),\n });\n const SetDefaultFollowees = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n use_registry_derived_rewards: IDL.Opt(IDL.Bool),\n rewards: IDL.Vec(RewardNodeProvider),\n });\n const Principals = IDL.Record({ principals: IDL.Vec(IDL.Principal) });\n const Change = IDL.Variant({\n ToRemove: NodeProvider,\n ToAdd: NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ change: IDL.Opt(Change) });\n const Motion = IDL.Record({ motion_text: IDL.Text });\n const Action = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuron,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCode,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n OpenSnsTokenSwap: OpenSnsTokenSwap,\n SetSnsTokenSwapOpenTimeWindow: SetSnsTokenSwapOpenTimeWindow,\n SetDefaultFollowees: SetDefaultFollowees,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n Proposal.fill(\n IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(Action),\n summary: IDL.Text,\n }),\n );\n const WaitForQuietState = IDL.Record({\n current_deadline_timestamp_seconds: IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n id: IDL.Opt(ProposalId),\n topic: IDL.Opt(IDL.Int32),\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n failed_timestamp_seconds: IDL.Nat64,\n neurons_fund_data: IDL.Opt(NeuronsFundData),\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n sns_token_swap_lifecycle: IDL.Opt(IDL.Int32),\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n wait_for_quiet_state: IDL.Opt(WaitForQuietState),\n executed_timestamp_seconds: IDL.Nat64,\n original_total_community_fund_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n });\n const Command_2 = IDL.Variant({\n Spawn: NeuronId,\n Split: Split,\n Configure: Configure,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SyncCommand: IDL.Record({}),\n ClaimOrRefreshNeuron: ClaimOrRefresh,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n command: IDL.Opt(Command_2),\n timestamp: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(ProposalId),\n });\n const MaturityDisbursement = IDL.Record({\n account_identifier_to_disburse_to: IDL.Opt(AccountIdentifier),\n timestamp_of_disbursement_seconds: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Opt(IDL.Nat64),\n account_to_disburse_to: IDL.Opt(Account),\n finalize_disbursement_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n maturity_disbursements_in_progress: IDL.Opt(IDL.Vec(MaturityDisbursement)),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const Governance = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n most_recent_monthly_node_provider_rewards: IDL.Opt(\n MonthlyNodeProviderRewards,\n ),\n maturity_modulation_last_updated_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n wait_for_quiet_threshold_seconds: IDL.Nat64,\n metrics: IDL.Opt(GovernanceCachedMetrics),\n neuron_management_voting_period_seconds: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n cached_daily_maturity_modulation_basis_points: IDL.Opt(IDL.Int32),\n economics: IDL.Opt(NetworkEconomics),\n restore_aging_summary: IDL.Opt(RestoreAgingSummary),\n spawning_neurons: IDL.Opt(IDL.Bool),\n latest_reward_event: IDL.Opt(RewardEvent),\n to_claim_transfers: IDL.Vec(NeuronStakeTransfer),\n short_voting_period_seconds: IDL.Nat64,\n proposals: IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n in_flight_commands: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n neurons: IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n genesis_timestamp_seconds: IDL.Nat64,\n });\n const Result = IDL.Variant({ Ok: IDL.Null, Err: GovernanceError });\n const Result_1 = IDL.Variant({\n Error: GovernanceError,\n NeuronId: NeuronId,\n });\n const ClaimOrRefreshNeuronFromAccountResponse = IDL.Record({\n result: IDL.Opt(Result_1),\n });\n const Result_2 = IDL.Variant({ Ok: Neuron, Err: GovernanceError });\n const Result_3 = IDL.Variant({\n Ok: GovernanceCachedMetrics,\n Err: GovernanceError,\n });\n const Result_4 = IDL.Variant({\n Ok: MonthlyNodeProviderRewards,\n Err: GovernanceError,\n });\n const GetNeuronIndexRequest = IDL.Record({\n page_size: IDL.Opt(IDL.Nat32),\n exclusive_start_neuron_id: IDL.Opt(NeuronId),\n });\n const NeuronInfo = IDL.Record({\n id: IDL.Opt(NeuronId),\n dissolve_delay_seconds: IDL.Nat64,\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n created_timestamp_seconds: IDL.Nat64,\n state: IDL.Int32,\n stake_e8s: IDL.Nat64,\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n retrieved_at_timestamp_seconds: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n voting_power: IDL.Nat64,\n age_seconds: IDL.Nat64,\n });\n const NeuronIndexData = IDL.Record({ neurons: IDL.Vec(NeuronInfo) });\n const GetNeuronIndexResult = IDL.Variant({\n Ok: NeuronIndexData,\n Err: GovernanceError,\n });\n const Result_5 = IDL.Variant({ Ok: NeuronInfo, Err: GovernanceError });\n const GetNeuronsFundAuditInfoRequest = IDL.Record({\n nns_proposal_id: IDL.Opt(ProposalId),\n });\n const NeuronsFundAuditInfo = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const Ok = IDL.Record({\n neurons_fund_audit_info: IDL.Opt(NeuronsFundAuditInfo),\n });\n const Result_6 = IDL.Variant({ Ok: Ok, Err: GovernanceError });\n const GetNeuronsFundAuditInfoResponse = IDL.Record({\n result: IDL.Opt(Result_6),\n });\n const Result_7 = IDL.Variant({\n Ok: NodeProvider,\n Err: GovernanceError,\n });\n const ProposalInfo = IDL.Record({\n id: IDL.Opt(ProposalId),\n status: IDL.Int32,\n topic: IDL.Int32,\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n deadline_timestamp_seconds: IDL.Opt(IDL.Nat64),\n failed_timestamp_seconds: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n reward_status: IDL.Int32,\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n executed_timestamp_seconds: IDL.Nat64,\n });\n const ListKnownNeuronsResponse = IDL.Record({\n known_neurons: IDL.Vec(KnownNeuron),\n });\n const ListNeuronVotesRequest = IDL.Record({\n before_proposal: IDL.Opt(ProposalId),\n limit: IDL.Opt(IDL.Nat64),\n neuron_id: IDL.Opt(NeuronId),\n });\n const Vote = IDL.Variant({\n No: IDL.Null,\n Yes: IDL.Null,\n Unspecified: IDL.Null,\n });\n const NeuronVote = IDL.Record({\n vote: IDL.Opt(Vote),\n proposal_id: IDL.Opt(ProposalId),\n });\n const ListNeuronVotesResponse = IDL.Variant({\n Ok: IDL.Record({\n votes: IDL.Opt(IDL.Vec(NeuronVote)),\n all_finalized_before_proposal: IDL.Opt(ProposalId),\n }),\n Err: GovernanceError,\n });\n const NeuronSubaccount = IDL.Record({ subaccount: IDL.Vec(IDL.Nat8) });\n const ListNeurons = IDL.Record({\n page_size: IDL.Opt(IDL.Nat64),\n include_public_neurons_in_full_neurons: IDL.Opt(IDL.Bool),\n neuron_ids: IDL.Vec(IDL.Nat64),\n page_number: IDL.Opt(IDL.Nat64),\n include_empty_neurons_readable_by_caller: IDL.Opt(IDL.Bool),\n neuron_subaccounts: IDL.Opt(IDL.Vec(NeuronSubaccount)),\n include_neurons_readable_by_caller: IDL.Bool,\n });\n const ListNeuronsResponse = IDL.Record({\n neuron_infos: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInfo)),\n full_neurons: IDL.Vec(Neuron),\n total_pages_available: IDL.Opt(IDL.Nat64),\n });\n const DateRangeFilter = IDL.Record({\n start_timestamp_seconds: IDL.Opt(IDL.Nat64),\n end_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ListNodeProviderRewardsRequest = IDL.Record({\n date_filter: IDL.Opt(DateRangeFilter),\n });\n const ListNodeProviderRewardsResponse = IDL.Record({\n rewards: IDL.Vec(MonthlyNodeProviderRewards),\n });\n const ListNodeProvidersResponse = IDL.Record({\n node_providers: IDL.Vec(NodeProvider),\n });\n const ListProposalInfoRequest = IDL.Record({\n include_reward_status: IDL.Vec(IDL.Int32),\n omit_large_fields: IDL.Opt(IDL.Bool),\n before_proposal: IDL.Opt(ProposalId),\n limit: IDL.Nat32,\n exclude_topic: IDL.Vec(IDL.Int32),\n include_all_manage_neuron_proposals: IDL.Opt(IDL.Bool),\n include_status: IDL.Vec(IDL.Int32),\n });\n const ListProposalInfoResponse = IDL.Record({\n proposal_info: IDL.Vec(ProposalInfo),\n });\n const InstallCodeRequest = IDL.Record({\n arg: IDL.Opt(IDL.Vec(IDL.Nat8)),\n wasm_module: IDL.Opt(IDL.Vec(IDL.Nat8)),\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n canister_id: IDL.Opt(IDL.Principal),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const ProposalActionRequest = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuronRequest,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCodeRequest,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n const MakeProposalRequest = IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(ProposalActionRequest),\n summary: IDL.Text,\n });\n const ManageNeuronCommandRequest = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: MakeProposalRequest,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n ManageNeuronRequest.fill(\n IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(ManageNeuronCommandRequest),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n }),\n );\n const SpawnResponse = IDL.Record({ created_neuron_id: IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n amount_disbursed_e8s: IDL.Opt(IDL.Nat64),\n });\n const RefreshVotingPowerResponse = IDL.Record({});\n const ClaimOrRefreshResponse = IDL.Record({\n refreshed_neuron_id: IDL.Opt(NeuronId),\n });\n const MergeResponse = IDL.Record({\n target_neuron: IDL.Opt(Neuron),\n source_neuron: IDL.Opt(Neuron),\n target_neuron_info: IDL.Opt(NeuronInfo),\n source_neuron_info: IDL.Opt(NeuronInfo),\n });\n const SetFollowingResponse = IDL.Record({});\n const MakeProposalResponse = IDL.Record({\n message: IDL.Opt(IDL.Text),\n proposal_id: IDL.Opt(ProposalId),\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 Spawn: SpawnResponse,\n Split: SpawnResponse,\n Follow: IDL.Record({}),\n DisburseMaturity: DisburseMaturityResponse,\n RefreshVotingPower: RefreshVotingPowerResponse,\n ClaimOrRefresh: ClaimOrRefreshResponse,\n Configure: IDL.Record({}),\n RegisterVote: IDL.Record({}),\n Merge: MergeResponse,\n DisburseToNeuron: SpawnResponse,\n SetFollowing: SetFollowingResponse,\n MakeProposal: MakeProposalResponse,\n StakeMaturity: StakeMaturityResponse,\n MergeMaturity: MergeMaturityResponse,\n Disburse: DisburseResponse,\n });\n const ManageNeuronResponse = IDL.Record({ command: IDL.Opt(Command_1) });\n const Committed = IDL.Record({\n total_direct_contribution_icp_e8s: IDL.Opt(IDL.Nat64),\n total_neurons_fund_contribution_icp_e8s: IDL.Opt(IDL.Nat64),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const Result_8 = IDL.Variant({\n Committed: Committed,\n Aborted: IDL.Record({}),\n });\n const SettleCommunityFundParticipation = IDL.Record({\n result: IDL.Opt(Result_8),\n open_sns_token_swap_proposal_id: IDL.Opt(IDL.Nat64),\n });\n const Committed_1 = IDL.Record({\n total_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n total_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const Result_9 = IDL.Variant({\n Committed: Committed_1,\n Aborted: IDL.Record({}),\n });\n const SettleNeuronsFundParticipationRequest = IDL.Record({\n result: IDL.Opt(Result_9),\n nns_proposal_id: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuron = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Opt(Principals),\n is_capped: IDL.Opt(IDL.Bool),\n nns_neuron_id: IDL.Opt(IDL.Nat64),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const Ok_1 = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuron),\n });\n const Result_10 = IDL.Variant({ Ok: Ok_1, Err: GovernanceError });\n const SettleNeuronsFundParticipationResponse = IDL.Record({\n result: IDL.Opt(Result_10),\n });\n const UpdateNodeProvider = IDL.Record({\n reward_account: IDL.Opt(AccountIdentifier),\n });\n\n return IDL.Service({\n claim_gtc_neurons: IDL.Func(\n [IDL.Principal, IDL.Vec(NeuronId)],\n [Result],\n [],\n ),\n claim_or_refresh_neuron_from_account: IDL.Func(\n [ClaimOrRefreshNeuronFromAccount],\n [ClaimOrRefreshNeuronFromAccountResponse],\n [],\n ),\n get_build_metadata: IDL.Func([], [IDL.Text], []),\n get_full_neuron: IDL.Func([IDL.Nat64], [Result_2], []),\n get_full_neuron_by_id_or_subaccount: IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_2],\n [],\n ),\n get_latest_reward_event: IDL.Func([], [RewardEvent], []),\n get_metrics: IDL.Func([], [Result_3], []),\n get_monthly_node_provider_rewards: IDL.Func([], [Result_4], []),\n get_most_recent_monthly_node_provider_rewards: IDL.Func(\n [],\n [IDL.Opt(MonthlyNodeProviderRewards)],\n [],\n ),\n get_network_economics_parameters: IDL.Func([], [NetworkEconomics], []),\n get_neuron_ids: IDL.Func([], [IDL.Vec(IDL.Nat64)], []),\n get_neuron_index: IDL.Func(\n [GetNeuronIndexRequest],\n [GetNeuronIndexResult],\n [],\n ),\n get_neuron_info: IDL.Func([IDL.Nat64], [Result_5], []),\n get_neuron_info_by_id_or_subaccount: IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_5],\n [],\n ),\n get_neurons_fund_audit_info: IDL.Func(\n [GetNeuronsFundAuditInfoRequest],\n [GetNeuronsFundAuditInfoResponse],\n [],\n ),\n get_node_provider_by_caller: IDL.Func([IDL.Null], [Result_7], []),\n get_pending_proposals: IDL.Func([], [IDL.Vec(ProposalInfo)], []),\n get_proposal_info: IDL.Func([IDL.Nat64], [IDL.Opt(ProposalInfo)], []),\n get_restore_aging_summary: IDL.Func([], [RestoreAgingSummary], []),\n list_known_neurons: IDL.Func([], [ListKnownNeuronsResponse], []),\n list_neuron_votes: IDL.Func(\n [ListNeuronVotesRequest],\n [ListNeuronVotesResponse],\n [],\n ),\n list_neurons: IDL.Func([ListNeurons], [ListNeuronsResponse], []),\n list_node_provider_rewards: IDL.Func(\n [ListNodeProviderRewardsRequest],\n [ListNodeProviderRewardsResponse],\n [],\n ),\n list_node_providers: IDL.Func([], [ListNodeProvidersResponse], []),\n list_proposals: IDL.Func(\n [ListProposalInfoRequest],\n [ListProposalInfoResponse],\n [],\n ),\n manage_neuron: IDL.Func([ManageNeuronRequest], [ManageNeuronResponse], []),\n settle_community_fund_participation: IDL.Func(\n [SettleCommunityFundParticipation],\n [Result],\n [],\n ),\n settle_neurons_fund_participation: IDL.Func(\n [SettleNeuronsFundParticipationRequest],\n [SettleNeuronsFundParticipationResponse],\n [],\n ),\n simulate_manage_neuron: IDL.Func(\n [ManageNeuronRequest],\n [ManageNeuronResponse],\n [],\n ),\n transfer_gtc_neuron: IDL.Func([NeuronId, NeuronId], [Result], []),\n update_node_provider: IDL.Func([UpdateNodeProvider], [Result], []),\n });\n};\n\nexport const init = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const DateUtc = IDL.Record({\n day: IDL.Nat32,\n month: IDL.Nat32,\n year: IDL.Nat32,\n });\n const AccountIdentifier = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n id: IDL.Opt(IDL.Principal),\n reward_account: IDL.Opt(AccountIdentifier),\n });\n const RewardToNeuron = IDL.Record({ dissolve_delay_seconds: IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n RewardToNeuron: RewardToNeuron,\n RewardToAccount: RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n node_provider: IDL.Opt(NodeProvider),\n reward_mode: IDL.Opt(RewardMode),\n amount_e8s: IDL.Nat64,\n });\n const XdrConversionRate = IDL.Record({\n xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const MonthlyNodeProviderRewards = IDL.Record({\n minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n end_date: IDL.Opt(DateUtc),\n registry_version: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n start_date: IDL.Opt(DateUtc),\n timestamp: IDL.Nat64,\n rewards: IDL.Vec(RewardNodeProvider),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n maximum_node_provider_rewards_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronSubsetMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n maturity_e8s_equivalent_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_e8s: IDL.Opt(IDL.Nat64),\n count: IDL.Opt(IDL.Nat64),\n deciding_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n total_deciding_voting_power: IDL.Opt(IDL.Nat64),\n staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64),\n ),\n staked_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_voting_power: IDL.Opt(IDL.Nat64),\n potential_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const GovernanceCachedMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n garbage_collectable_neurons_count: IDL.Nat64,\n dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\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 ect_neuron_count: IDL.Nat64,\n total_supply_icp: IDL.Nat64,\n neurons_with_less_than_6_months_dissolve_delay_count: IDL.Nat64,\n dissolved_neurons_count: IDL.Nat64,\n community_fund_total_maturity_e8s_equivalent: IDL.Nat64,\n total_staked_e8s_seed: IDL.Nat64,\n total_staked_maturity_e8s_equivalent_ect: IDL.Nat64,\n total_staked_e8s: IDL.Nat64,\n fully_lost_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n not_dissolving_neurons_count: IDL.Nat64,\n total_locked_e8s: IDL.Nat64,\n neurons_fund_total_active_neurons: IDL.Nat64,\n total_voting_power_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n total_staked_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n spawning_neurons_count: IDL.Nat64,\n declining_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n total_staked_e8s_ect: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n dissolved_neurons_e8s: IDL.Nat64,\n total_staked_e8s_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n neurons_with_less_than_6_months_dissolve_delay_e8s: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n non_self_authenticating_controller_neuron_subset_metrics:\n IDL.Opt(NeuronSubsetMetrics),\n dissolving_neurons_count: IDL.Nat64,\n dissolving_neurons_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Float64)),\n total_staked_maturity_e8s_equivalent_seed: IDL.Nat64,\n community_fund_total_staked_e8s: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n public_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n timestamp_seconds: IDL.Nat64,\n seed_neuron_count: IDL.Nat64,\n });\n const VotingPowerEconomics = IDL.Record({\n start_reducing_voting_power_after_seconds: IDL.Opt(IDL.Nat64),\n neuron_minimum_dissolve_delay_to_vote_seconds: IDL.Opt(IDL.Nat64),\n clear_following_after_seconds: IDL.Opt(IDL.Nat64),\n });\n const Percentage = IDL.Record({ basis_points: IDL.Opt(IDL.Nat64) });\n const Decimal = IDL.Record({ human_readable: IDL.Opt(IDL.Text) });\n const NeuronsFundMatchedFundingCurveCoefficients = IDL.Record({\n contribution_threshold_xdr: IDL.Opt(Decimal),\n one_third_participation_milestone_xdr: IDL.Opt(Decimal),\n full_participation_milestone_xdr: IDL.Opt(Decimal),\n });\n const NeuronsFundEconomics = IDL.Record({\n maximum_icp_xdr_rate: IDL.Opt(Percentage),\n neurons_fund_matched_funding_curve_coefficients: IDL.Opt(\n NeuronsFundMatchedFundingCurveCoefficients,\n ),\n max_theoretical_neurons_fund_participation_amount_xdr: IDL.Opt(Decimal),\n minimum_icp_xdr_rate: IDL.Opt(Percentage),\n });\n const NetworkEconomics = IDL.Record({\n neuron_minimum_stake_e8s: IDL.Nat64,\n voting_power_economics: IDL.Opt(VotingPowerEconomics),\n max_proposals_to_keep_per_topic: IDL.Nat32,\n neuron_management_fee_per_proposal_e8s: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n transaction_fee_e8s: IDL.Nat64,\n neuron_spawn_dissolve_delay_seconds: IDL.Nat64,\n minimum_icp_xdr_rate: IDL.Nat64,\n maximum_node_provider_rewards_e8s: IDL.Nat64,\n neurons_fund_economics: IDL.Opt(NeuronsFundEconomics),\n });\n const RestoreAgingNeuronGroup = IDL.Record({\n count: IDL.Opt(IDL.Nat64),\n previous_total_stake_e8s: IDL.Opt(IDL.Nat64),\n current_total_stake_e8s: IDL.Opt(IDL.Nat64),\n group_type: IDL.Int32,\n });\n const RestoreAgingSummary = IDL.Record({\n groups: IDL.Vec(RestoreAgingNeuronGroup),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ProposalId = IDL.Record({ id: IDL.Nat64 });\n const RewardEvent = IDL.Record({\n rounds_since_last_distribution: IDL.Opt(IDL.Nat64),\n day_after_genesis: IDL.Nat64,\n actual_timestamp_seconds: IDL.Nat64,\n total_available_e8s_equivalent: IDL.Nat64,\n latest_round_available_e8s_equivalent: IDL.Opt(IDL.Nat64),\n distributed_e8s_equivalent: IDL.Nat64,\n settled_proposals: IDL.Vec(ProposalId),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n error_message: IDL.Text,\n error_type: IDL.Int32,\n });\n const Ballot = IDL.Record({ vote: IDL.Int32, voting_power: IDL.Nat64 });\n const SwapParticipationLimits = IDL.Record({\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuronPortion = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Vec(IDL.Principal),\n is_capped: IDL.Opt(IDL.Bool),\n maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n nns_neuron_id: IDL.Opt(NeuronId),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundSnapshot = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuronPortion),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipation = IDL.Record({\n total_maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n intended_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n swap_participation_limits: IDL.Opt(SwapParticipationLimits),\n max_neurons_fund_swap_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n neurons_fund_reserves: IDL.Opt(NeuronsFundSnapshot),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n allocated_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundData = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const CanisterStatusResultV2 = IDL.Record({\n status: IDL.Opt(IDL.Int32),\n freezing_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Vec(IDL.Principal),\n memory_size: IDL.Opt(IDL.Nat64),\n cycles: IDL.Opt(IDL.Nat64),\n idle_cycles_burned_per_day: IDL.Opt(IDL.Nat64),\n module_hash: IDL.Vec(IDL.Nat8),\n });\n const CanisterSummary = IDL.Record({\n status: IDL.Opt(CanisterStatusResultV2),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const SwapBackgroundInformation = IDL.Record({\n ledger_index_canister_summary: IDL.Opt(CanisterSummary),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n ledger_archive_canister_summaries: IDL.Vec(CanisterSummary),\n ledger_canister_summary: IDL.Opt(CanisterSummary),\n swap_canister_summary: IDL.Opt(CanisterSummary),\n governance_canister_summary: IDL.Opt(CanisterSummary),\n root_canister_summary: IDL.Opt(CanisterSummary),\n dapp_canister_summaries: IDL.Vec(CanisterSummary),\n });\n const DerivedProposalInformation = IDL.Record({\n swap_background_information: IDL.Opt(SwapBackgroundInformation),\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 TopicToFollow = IDL.Variant({\n Kyc: IDL.Null,\n ServiceNervousSystemManagement: IDL.Null,\n ApiBoundaryNodeManagement: IDL.Null,\n ApplicationCanisterManagement: IDL.Null,\n SubnetRental: IDL.Null,\n NeuronManagement: IDL.Null,\n NodeProviderRewards: IDL.Null,\n SubnetManagement: IDL.Null,\n ExchangeRate: IDL.Null,\n CatchAll: IDL.Null,\n NodeAdmin: IDL.Null,\n IcOsVersionElection: IDL.Null,\n ProtocolCanisterManagement: IDL.Null,\n NetworkEconomics: IDL.Null,\n IcOsVersionDeployment: IDL.Null,\n ParticipantManagement: IDL.Null,\n Governance: IDL.Null,\n SnsAndCommunityFund: IDL.Null,\n });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n committed_topics: IDL.Opt(IDL.Vec(IDL.Opt(TopicToFollow))),\n description: IDL.Opt(IDL.Text),\n links: IDL.Opt(IDL.Vec(IDL.Text)),\n });\n const KnownNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n });\n const FulfillSubnetRentalRequest = IDL.Record({\n user: IDL.Opt(IDL.Principal),\n replica_version_id: IDL.Opt(IDL.Text),\n node_ids: IDL.Opt(IDL.Vec(IDL.Principal)),\n });\n const Spawn = IDL.Record({\n percentage_to_spawn: IDL.Opt(IDL.Nat32),\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({\n memo: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Nat64,\n });\n const Follow = IDL.Record({\n topic: IDL.Int32,\n followees: IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n owner: IDL.Opt(IDL.Principal),\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DisburseMaturity = IDL.Record({\n to_account_identifier: IDL.Opt(AccountIdentifier),\n to_account: IDL.Opt(Account),\n percentage_to_disburse: IDL.Nat32,\n });\n const RefreshVotingPower = IDL.Record({});\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n });\n const By = IDL.Variant({\n NeuronIdOrSubaccount: IDL.Record({}),\n MemoAndController: ClaimOrRefreshNeuronFromAccount,\n Memo: IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ by: IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n hot_key_to_remove: IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ new_hot_key: IDL.Opt(IDL.Principal) });\n const 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 SetVisibility = IDL.Record({ visibility: IDL.Opt(IDL.Int32) });\n const SetDissolveTimestamp = IDL.Record({\n dissolve_timestamp_seconds: IDL.Nat64,\n });\n const Operation = IDL.Variant({\n RemoveHotKey: RemoveHotKey,\n AddHotKey: AddHotKey,\n ChangeAutoStakeMaturity: ChangeAutoStakeMaturity,\n StopDissolving: IDL.Record({}),\n StartDissolving: IDL.Record({}),\n IncreaseDissolveDelay: IncreaseDissolveDelay,\n SetVisibility: SetVisibility,\n JoinCommunityFund: IDL.Record({}),\n LeaveCommunityFund: IDL.Record({}),\n SetDissolveTimestamp: SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ operation: IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n vote: IDL.Int32,\n proposal: IDL.Opt(ProposalId),\n });\n const Merge = IDL.Record({ source_neuron_id: IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n kyc_verified: IDL.Bool,\n amount_e8s: IDL.Nat64,\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Nat64,\n });\n const FolloweesForTopic = IDL.Record({\n topic: IDL.Opt(IDL.Int32),\n followees: IDL.Opt(IDL.Vec(NeuronId)),\n });\n const SetFollowing = IDL.Record({\n topic_following: IDL.Opt(IDL.Vec(FolloweesForTopic)),\n });\n const StakeMaturity = IDL.Record({\n percentage_to_stake: IDL.Opt(IDL.Nat32),\n });\n const MergeMaturity = IDL.Record({ percentage_to_merge: IDL.Nat32 });\n const Amount = IDL.Record({ e8s: IDL.Nat64 });\n const Disburse = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n amount: IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: Proposal,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n Subaccount: IDL.Vec(IDL.Nat8),\n NeuronId: NeuronId,\n });\n const ManageNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(Command),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n });\n const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });\n const CanisterSettings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat64),\n wasm_memory_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Opt(Controllers),\n log_visibility: IDL.Opt(IDL.Int32),\n wasm_memory_limit: IDL.Opt(IDL.Nat64),\n memory_allocation: IDL.Opt(IDL.Nat64),\n compute_allocation: IDL.Opt(IDL.Nat64),\n });\n const UpdateCanisterSettings = IDL.Record({\n canister_id: IDL.Opt(IDL.Principal),\n settings: IDL.Opt(CanisterSettings),\n });\n const InstallCode = IDL.Record({\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n wasm_module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n canister_id: IDL.Opt(IDL.Principal),\n arg_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const DeregisterKnownNeuron = IDL.Record({ id: IDL.Opt(NeuronId) });\n const StopOrStartCanister = IDL.Record({\n action: IDL.Opt(IDL.Int32),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const Duration = IDL.Record({ seconds: IDL.Opt(IDL.Nat64) });\n const Tokens = IDL.Record({ e8s: IDL.Opt(IDL.Nat64) });\n const VotingRewardParameters = IDL.Record({\n reward_rate_transition_duration: IDL.Opt(Duration),\n initial_reward_rate: IDL.Opt(Percentage),\n final_reward_rate: IDL.Opt(Percentage),\n });\n const GovernanceParameters = IDL.Record({\n neuron_maximum_dissolve_delay_bonus: IDL.Opt(Percentage),\n neuron_maximum_age_for_age_bonus: IDL.Opt(Duration),\n neuron_maximum_dissolve_delay: IDL.Opt(Duration),\n neuron_minimum_dissolve_delay_to_vote: IDL.Opt(Duration),\n neuron_maximum_age_bonus: IDL.Opt(Percentage),\n neuron_minimum_stake: IDL.Opt(Tokens),\n proposal_wait_for_quiet_deadline_increase: IDL.Opt(Duration),\n proposal_initial_voting_period: IDL.Opt(Duration),\n proposal_rejection_fee: IDL.Opt(Tokens),\n voting_reward_parameters: IDL.Opt(VotingRewardParameters),\n });\n const Image = IDL.Record({ base64_encoding: IDL.Opt(IDL.Text) });\n const LedgerParameters = IDL.Record({\n transaction_fee: IDL.Opt(Tokens),\n token_symbol: IDL.Opt(IDL.Text),\n token_logo: IDL.Opt(Image),\n token_name: IDL.Opt(IDL.Text),\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval: IDL.Opt(Duration),\n count: IDL.Opt(IDL.Nat64),\n });\n const GlobalTimeOfDay = IDL.Record({\n seconds_after_utc_midnight: IDL.Opt(IDL.Nat64),\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SwapParameters = IDL.Record({\n minimum_participants: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n duration: IDL.Opt(Duration),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n confirmation_text: IDL.Opt(IDL.Text),\n maximum_participant_icp: IDL.Opt(Tokens),\n minimum_icp: IDL.Opt(Tokens),\n minimum_direct_participation_icp: IDL.Opt(Tokens),\n minimum_participant_icp: IDL.Opt(Tokens),\n start_time: IDL.Opt(GlobalTimeOfDay),\n maximum_direct_participation_icp: IDL.Opt(Tokens),\n maximum_icp: IDL.Opt(Tokens),\n neurons_fund_investment_icp: IDL.Opt(Tokens),\n restricted_countries: IDL.Opt(Countries),\n });\n const SwapDistribution = IDL.Record({ total: IDL.Opt(Tokens) });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay: IDL.Opt(Duration),\n memo: IDL.Opt(IDL.Nat64),\n vesting_period: IDL.Opt(Duration),\n stake: IDL.Opt(Tokens),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const InitialTokenDistribution = IDL.Record({\n treasury_distribution: IDL.Opt(SwapDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const CreateServiceNervousSystem = IDL.Record({\n url: IDL.Opt(IDL.Text),\n governance_parameters: IDL.Opt(GovernanceParameters),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n logo: IDL.Opt(Image),\n name: IDL.Opt(IDL.Text),\n ledger_parameters: IDL.Opt(LedgerParameters),\n description: IDL.Opt(IDL.Text),\n dapp_canisters: IDL.Vec(Canister),\n swap_parameters: IDL.Opt(SwapParameters),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n });\n const ExecuteNnsFunction = IDL.Record({\n nns_function: IDL.Int32,\n payload: IDL.Vec(IDL.Nat8),\n });\n const NeuronBasketConstructionParameters_1 = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Params = IDL.Record({\n min_participant_icp_e8s: IDL.Nat64,\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters_1,\n ),\n max_icp_e8s: IDL.Nat64,\n swap_due_timestamp_seconds: IDL.Nat64,\n min_participants: IDL.Nat32,\n sns_token_e8s: IDL.Nat64,\n sale_delay_seconds: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Nat64,\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_icp_e8s: IDL.Nat64,\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const OpenSnsTokenSwap = IDL.Record({\n community_fund_investment_e8s: IDL.Opt(IDL.Nat64),\n target_swap_canister_id: IDL.Opt(IDL.Principal),\n params: IDL.Opt(Params),\n });\n const TimeWindow = IDL.Record({\n start_timestamp_seconds: IDL.Nat64,\n end_timestamp_seconds: IDL.Nat64,\n });\n const SetOpenTimeWindowRequest = IDL.Record({\n open_time_window: IDL.Opt(TimeWindow),\n });\n const SetSnsTokenSwapOpenTimeWindow = IDL.Record({\n request: IDL.Opt(SetOpenTimeWindowRequest),\n swap_canister_id: IDL.Opt(IDL.Principal),\n });\n const SetDefaultFollowees = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n use_registry_derived_rewards: IDL.Opt(IDL.Bool),\n rewards: IDL.Vec(RewardNodeProvider),\n });\n const Principals = IDL.Record({ principals: IDL.Vec(IDL.Principal) });\n const Change = IDL.Variant({\n ToRemove: NodeProvider,\n ToAdd: NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ change: IDL.Opt(Change) });\n const Motion = IDL.Record({ motion_text: IDL.Text });\n const Action = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuron,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCode,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n OpenSnsTokenSwap: OpenSnsTokenSwap,\n SetSnsTokenSwapOpenTimeWindow: SetSnsTokenSwapOpenTimeWindow,\n SetDefaultFollowees: SetDefaultFollowees,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n Proposal.fill(\n IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(Action),\n summary: IDL.Text,\n }),\n );\n const WaitForQuietState = IDL.Record({\n current_deadline_timestamp_seconds: IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n id: IDL.Opt(ProposalId),\n topic: IDL.Opt(IDL.Int32),\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n failed_timestamp_seconds: IDL.Nat64,\n neurons_fund_data: IDL.Opt(NeuronsFundData),\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n sns_token_swap_lifecycle: IDL.Opt(IDL.Int32),\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n wait_for_quiet_state: IDL.Opt(WaitForQuietState),\n executed_timestamp_seconds: IDL.Nat64,\n original_total_community_fund_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n });\n const Command_2 = IDL.Variant({\n Spawn: NeuronId,\n Split: Split,\n Configure: Configure,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SyncCommand: IDL.Record({}),\n ClaimOrRefreshNeuron: ClaimOrRefresh,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n command: IDL.Opt(Command_2),\n timestamp: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(ProposalId),\n });\n const MaturityDisbursement = IDL.Record({\n account_identifier_to_disburse_to: IDL.Opt(AccountIdentifier),\n timestamp_of_disbursement_seconds: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Opt(IDL.Nat64),\n account_to_disburse_to: IDL.Opt(Account),\n finalize_disbursement_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n maturity_disbursements_in_progress: IDL.Opt(IDL.Vec(MaturityDisbursement)),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const Governance = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n most_recent_monthly_node_provider_rewards: IDL.Opt(\n MonthlyNodeProviderRewards,\n ),\n maturity_modulation_last_updated_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n wait_for_quiet_threshold_seconds: IDL.Nat64,\n metrics: IDL.Opt(GovernanceCachedMetrics),\n neuron_management_voting_period_seconds: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n cached_daily_maturity_modulation_basis_points: IDL.Opt(IDL.Int32),\n economics: IDL.Opt(NetworkEconomics),\n restore_aging_summary: IDL.Opt(RestoreAgingSummary),\n spawning_neurons: IDL.Opt(IDL.Bool),\n latest_reward_event: IDL.Opt(RewardEvent),\n to_claim_transfers: IDL.Vec(NeuronStakeTransfer),\n short_voting_period_seconds: IDL.Nat64,\n proposals: IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n in_flight_commands: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n neurons: IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n genesis_timestamp_seconds: IDL.Nat64,\n });\n\n return [Governance];\n};\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const ManageNeuronRequest = IDL.Rec();\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const DateUtc = IDL.Record({\n day: IDL.Nat32,\n month: IDL.Nat32,\n year: IDL.Nat32,\n });\n const AccountIdentifier = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n id: IDL.Opt(IDL.Principal),\n reward_account: IDL.Opt(AccountIdentifier),\n });\n const RewardToNeuron = IDL.Record({ dissolve_delay_seconds: IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n RewardToNeuron: RewardToNeuron,\n RewardToAccount: RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n node_provider: IDL.Opt(NodeProvider),\n reward_mode: IDL.Opt(RewardMode),\n amount_e8s: IDL.Nat64,\n });\n const XdrConversionRate = IDL.Record({\n xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const MonthlyNodeProviderRewards = IDL.Record({\n minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n end_date: IDL.Opt(DateUtc),\n registry_version: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n start_date: IDL.Opt(DateUtc),\n timestamp: IDL.Nat64,\n rewards: IDL.Vec(RewardNodeProvider),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n maximum_node_provider_rewards_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronSubsetMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n maturity_e8s_equivalent_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_e8s: IDL.Opt(IDL.Nat64),\n count: IDL.Opt(IDL.Nat64),\n deciding_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n total_deciding_voting_power: IDL.Opt(IDL.Nat64),\n staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64),\n ),\n staked_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_voting_power: IDL.Opt(IDL.Nat64),\n potential_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const GovernanceCachedMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n garbage_collectable_neurons_count: IDL.Nat64,\n dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\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 ect_neuron_count: IDL.Nat64,\n total_supply_icp: IDL.Nat64,\n neurons_with_less_than_6_months_dissolve_delay_count: IDL.Nat64,\n dissolved_neurons_count: IDL.Nat64,\n community_fund_total_maturity_e8s_equivalent: IDL.Nat64,\n total_staked_e8s_seed: IDL.Nat64,\n total_staked_maturity_e8s_equivalent_ect: IDL.Nat64,\n total_staked_e8s: IDL.Nat64,\n fully_lost_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n not_dissolving_neurons_count: IDL.Nat64,\n total_locked_e8s: IDL.Nat64,\n neurons_fund_total_active_neurons: IDL.Nat64,\n total_voting_power_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n total_staked_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n spawning_neurons_count: IDL.Nat64,\n declining_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n total_staked_e8s_ect: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n dissolved_neurons_e8s: IDL.Nat64,\n total_staked_e8s_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n neurons_with_less_than_6_months_dissolve_delay_e8s: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n non_self_authenticating_controller_neuron_subset_metrics:\n IDL.Opt(NeuronSubsetMetrics),\n dissolving_neurons_count: IDL.Nat64,\n dissolving_neurons_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Float64)),\n total_staked_maturity_e8s_equivalent_seed: IDL.Nat64,\n community_fund_total_staked_e8s: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n public_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n timestamp_seconds: IDL.Nat64,\n seed_neuron_count: IDL.Nat64,\n });\n const VotingPowerEconomics = IDL.Record({\n start_reducing_voting_power_after_seconds: IDL.Opt(IDL.Nat64),\n neuron_minimum_dissolve_delay_to_vote_seconds: IDL.Opt(IDL.Nat64),\n clear_following_after_seconds: IDL.Opt(IDL.Nat64),\n });\n const Percentage = IDL.Record({ basis_points: IDL.Opt(IDL.Nat64) });\n const Decimal = IDL.Record({ human_readable: IDL.Opt(IDL.Text) });\n const NeuronsFundMatchedFundingCurveCoefficients = IDL.Record({\n contribution_threshold_xdr: IDL.Opt(Decimal),\n one_third_participation_milestone_xdr: IDL.Opt(Decimal),\n full_participation_milestone_xdr: IDL.Opt(Decimal),\n });\n const NeuronsFundEconomics = IDL.Record({\n maximum_icp_xdr_rate: IDL.Opt(Percentage),\n neurons_fund_matched_funding_curve_coefficients: IDL.Opt(\n NeuronsFundMatchedFundingCurveCoefficients,\n ),\n max_theoretical_neurons_fund_participation_amount_xdr: IDL.Opt(Decimal),\n minimum_icp_xdr_rate: IDL.Opt(Percentage),\n });\n const NetworkEconomics = IDL.Record({\n neuron_minimum_stake_e8s: IDL.Nat64,\n voting_power_economics: IDL.Opt(VotingPowerEconomics),\n max_proposals_to_keep_per_topic: IDL.Nat32,\n neuron_management_fee_per_proposal_e8s: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n transaction_fee_e8s: IDL.Nat64,\n neuron_spawn_dissolve_delay_seconds: IDL.Nat64,\n minimum_icp_xdr_rate: IDL.Nat64,\n maximum_node_provider_rewards_e8s: IDL.Nat64,\n neurons_fund_economics: IDL.Opt(NeuronsFundEconomics),\n });\n const RestoreAgingNeuronGroup = IDL.Record({\n count: IDL.Opt(IDL.Nat64),\n previous_total_stake_e8s: IDL.Opt(IDL.Nat64),\n current_total_stake_e8s: IDL.Opt(IDL.Nat64),\n group_type: IDL.Int32,\n });\n const RestoreAgingSummary = IDL.Record({\n groups: IDL.Vec(RestoreAgingNeuronGroup),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ProposalId = IDL.Record({ id: IDL.Nat64 });\n const RewardEvent = IDL.Record({\n rounds_since_last_distribution: IDL.Opt(IDL.Nat64),\n day_after_genesis: IDL.Nat64,\n actual_timestamp_seconds: IDL.Nat64,\n total_available_e8s_equivalent: IDL.Nat64,\n latest_round_available_e8s_equivalent: IDL.Opt(IDL.Nat64),\n distributed_e8s_equivalent: IDL.Nat64,\n settled_proposals: IDL.Vec(ProposalId),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n error_message: IDL.Text,\n error_type: IDL.Int32,\n });\n const Ballot = IDL.Record({ vote: IDL.Int32, voting_power: IDL.Nat64 });\n const SwapParticipationLimits = IDL.Record({\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuronPortion = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Vec(IDL.Principal),\n is_capped: IDL.Opt(IDL.Bool),\n maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n nns_neuron_id: IDL.Opt(NeuronId),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundSnapshot = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuronPortion),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipation = IDL.Record({\n total_maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n intended_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n swap_participation_limits: IDL.Opt(SwapParticipationLimits),\n max_neurons_fund_swap_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n neurons_fund_reserves: IDL.Opt(NeuronsFundSnapshot),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n allocated_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundData = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const CanisterStatusResultV2 = IDL.Record({\n status: IDL.Opt(IDL.Int32),\n freezing_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Vec(IDL.Principal),\n memory_size: IDL.Opt(IDL.Nat64),\n cycles: IDL.Opt(IDL.Nat64),\n idle_cycles_burned_per_day: IDL.Opt(IDL.Nat64),\n module_hash: IDL.Vec(IDL.Nat8),\n });\n const CanisterSummary = IDL.Record({\n status: IDL.Opt(CanisterStatusResultV2),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const SwapBackgroundInformation = IDL.Record({\n ledger_index_canister_summary: IDL.Opt(CanisterSummary),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n ledger_archive_canister_summaries: IDL.Vec(CanisterSummary),\n ledger_canister_summary: IDL.Opt(CanisterSummary),\n swap_canister_summary: IDL.Opt(CanisterSummary),\n governance_canister_summary: IDL.Opt(CanisterSummary),\n root_canister_summary: IDL.Opt(CanisterSummary),\n dapp_canister_summaries: IDL.Vec(CanisterSummary),\n });\n const DerivedProposalInformation = IDL.Record({\n swap_background_information: IDL.Opt(SwapBackgroundInformation),\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 TopicToFollow = IDL.Variant({\n Kyc: IDL.Null,\n ServiceNervousSystemManagement: IDL.Null,\n ApiBoundaryNodeManagement: IDL.Null,\n ApplicationCanisterManagement: IDL.Null,\n SubnetRental: IDL.Null,\n NeuronManagement: IDL.Null,\n NodeProviderRewards: IDL.Null,\n SubnetManagement: IDL.Null,\n ExchangeRate: IDL.Null,\n CatchAll: IDL.Null,\n NodeAdmin: IDL.Null,\n IcOsVersionElection: IDL.Null,\n ProtocolCanisterManagement: IDL.Null,\n NetworkEconomics: IDL.Null,\n IcOsVersionDeployment: IDL.Null,\n ParticipantManagement: IDL.Null,\n Governance: IDL.Null,\n SnsAndCommunityFund: IDL.Null,\n });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n committed_topics: IDL.Opt(IDL.Vec(IDL.Opt(TopicToFollow))),\n description: IDL.Opt(IDL.Text),\n links: IDL.Opt(IDL.Vec(IDL.Text)),\n });\n const KnownNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n });\n const FulfillSubnetRentalRequest = IDL.Record({\n user: IDL.Opt(IDL.Principal),\n replica_version_id: IDL.Opt(IDL.Text),\n node_ids: IDL.Opt(IDL.Vec(IDL.Principal)),\n });\n const Spawn = IDL.Record({\n percentage_to_spawn: IDL.Opt(IDL.Nat32),\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({\n memo: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Nat64,\n });\n const Follow = IDL.Record({\n topic: IDL.Int32,\n followees: IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n owner: IDL.Opt(IDL.Principal),\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DisburseMaturity = IDL.Record({\n to_account_identifier: IDL.Opt(AccountIdentifier),\n to_account: IDL.Opt(Account),\n percentage_to_disburse: IDL.Nat32,\n });\n const RefreshVotingPower = IDL.Record({});\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n });\n const By = IDL.Variant({\n NeuronIdOrSubaccount: IDL.Record({}),\n MemoAndController: ClaimOrRefreshNeuronFromAccount,\n Memo: IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ by: IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n hot_key_to_remove: IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ new_hot_key: IDL.Opt(IDL.Principal) });\n const 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 SetVisibility = IDL.Record({ visibility: IDL.Opt(IDL.Int32) });\n const SetDissolveTimestamp = IDL.Record({\n dissolve_timestamp_seconds: IDL.Nat64,\n });\n const Operation = IDL.Variant({\n RemoveHotKey: RemoveHotKey,\n AddHotKey: AddHotKey,\n ChangeAutoStakeMaturity: ChangeAutoStakeMaturity,\n StopDissolving: IDL.Record({}),\n StartDissolving: IDL.Record({}),\n IncreaseDissolveDelay: IncreaseDissolveDelay,\n SetVisibility: SetVisibility,\n JoinCommunityFund: IDL.Record({}),\n LeaveCommunityFund: IDL.Record({}),\n SetDissolveTimestamp: SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ operation: IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n vote: IDL.Int32,\n proposal: IDL.Opt(ProposalId),\n });\n const Merge = IDL.Record({ source_neuron_id: IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n kyc_verified: IDL.Bool,\n amount_e8s: IDL.Nat64,\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Nat64,\n });\n const FolloweesForTopic = IDL.Record({\n topic: IDL.Opt(IDL.Int32),\n followees: IDL.Opt(IDL.Vec(NeuronId)),\n });\n const SetFollowing = IDL.Record({\n topic_following: IDL.Opt(IDL.Vec(FolloweesForTopic)),\n });\n const StakeMaturity = IDL.Record({\n percentage_to_stake: IDL.Opt(IDL.Nat32),\n });\n const MergeMaturity = IDL.Record({ percentage_to_merge: IDL.Nat32 });\n const Amount = IDL.Record({ e8s: IDL.Nat64 });\n const Disburse = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n amount: IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: Proposal,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n Subaccount: IDL.Vec(IDL.Nat8),\n NeuronId: NeuronId,\n });\n const ManageNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(Command),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n });\n const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });\n const CanisterSettings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat64),\n wasm_memory_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Opt(Controllers),\n log_visibility: IDL.Opt(IDL.Int32),\n wasm_memory_limit: IDL.Opt(IDL.Nat64),\n memory_allocation: IDL.Opt(IDL.Nat64),\n compute_allocation: IDL.Opt(IDL.Nat64),\n });\n const UpdateCanisterSettings = IDL.Record({\n canister_id: IDL.Opt(IDL.Principal),\n settings: IDL.Opt(CanisterSettings),\n });\n const InstallCode = IDL.Record({\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n wasm_module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n canister_id: IDL.Opt(IDL.Principal),\n arg_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const DeregisterKnownNeuron = IDL.Record({ id: IDL.Opt(NeuronId) });\n const StopOrStartCanister = IDL.Record({\n action: IDL.Opt(IDL.Int32),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const Duration = IDL.Record({ seconds: IDL.Opt(IDL.Nat64) });\n const Tokens = IDL.Record({ e8s: IDL.Opt(IDL.Nat64) });\n const VotingRewardParameters = IDL.Record({\n reward_rate_transition_duration: IDL.Opt(Duration),\n initial_reward_rate: IDL.Opt(Percentage),\n final_reward_rate: IDL.Opt(Percentage),\n });\n const GovernanceParameters = IDL.Record({\n neuron_maximum_dissolve_delay_bonus: IDL.Opt(Percentage),\n neuron_maximum_age_for_age_bonus: IDL.Opt(Duration),\n neuron_maximum_dissolve_delay: IDL.Opt(Duration),\n neuron_minimum_dissolve_delay_to_vote: IDL.Opt(Duration),\n neuron_maximum_age_bonus: IDL.Opt(Percentage),\n neuron_minimum_stake: IDL.Opt(Tokens),\n proposal_wait_for_quiet_deadline_increase: IDL.Opt(Duration),\n proposal_initial_voting_period: IDL.Opt(Duration),\n proposal_rejection_fee: IDL.Opt(Tokens),\n voting_reward_parameters: IDL.Opt(VotingRewardParameters),\n });\n const Image = IDL.Record({ base64_encoding: IDL.Opt(IDL.Text) });\n const LedgerParameters = IDL.Record({\n transaction_fee: IDL.Opt(Tokens),\n token_symbol: IDL.Opt(IDL.Text),\n token_logo: IDL.Opt(Image),\n token_name: IDL.Opt(IDL.Text),\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval: IDL.Opt(Duration),\n count: IDL.Opt(IDL.Nat64),\n });\n const GlobalTimeOfDay = IDL.Record({\n seconds_after_utc_midnight: IDL.Opt(IDL.Nat64),\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SwapParameters = IDL.Record({\n minimum_participants: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n duration: IDL.Opt(Duration),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n confirmation_text: IDL.Opt(IDL.Text),\n maximum_participant_icp: IDL.Opt(Tokens),\n minimum_icp: IDL.Opt(Tokens),\n minimum_direct_participation_icp: IDL.Opt(Tokens),\n minimum_participant_icp: IDL.Opt(Tokens),\n start_time: IDL.Opt(GlobalTimeOfDay),\n maximum_direct_participation_icp: IDL.Opt(Tokens),\n maximum_icp: IDL.Opt(Tokens),\n neurons_fund_investment_icp: IDL.Opt(Tokens),\n restricted_countries: IDL.Opt(Countries),\n });\n const SwapDistribution = IDL.Record({ total: IDL.Opt(Tokens) });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay: IDL.Opt(Duration),\n memo: IDL.Opt(IDL.Nat64),\n vesting_period: IDL.Opt(Duration),\n stake: IDL.Opt(Tokens),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const InitialTokenDistribution = IDL.Record({\n treasury_distribution: IDL.Opt(SwapDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const CreateServiceNervousSystem = IDL.Record({\n url: IDL.Opt(IDL.Text),\n governance_parameters: IDL.Opt(GovernanceParameters),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n logo: IDL.Opt(Image),\n name: IDL.Opt(IDL.Text),\n ledger_parameters: IDL.Opt(LedgerParameters),\n description: IDL.Opt(IDL.Text),\n dapp_canisters: IDL.Vec(Canister),\n swap_parameters: IDL.Opt(SwapParameters),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n });\n const ExecuteNnsFunction = IDL.Record({\n nns_function: IDL.Int32,\n payload: IDL.Vec(IDL.Nat8),\n });\n const NeuronBasketConstructionParameters_1 = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Params = IDL.Record({\n min_participant_icp_e8s: IDL.Nat64,\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters_1,\n ),\n max_icp_e8s: IDL.Nat64,\n swap_due_timestamp_seconds: IDL.Nat64,\n min_participants: IDL.Nat32,\n sns_token_e8s: IDL.Nat64,\n sale_delay_seconds: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Nat64,\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_icp_e8s: IDL.Nat64,\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const OpenSnsTokenSwap = IDL.Record({\n community_fund_investment_e8s: IDL.Opt(IDL.Nat64),\n target_swap_canister_id: IDL.Opt(IDL.Principal),\n params: IDL.Opt(Params),\n });\n const TimeWindow = IDL.Record({\n start_timestamp_seconds: IDL.Nat64,\n end_timestamp_seconds: IDL.Nat64,\n });\n const SetOpenTimeWindowRequest = IDL.Record({\n open_time_window: IDL.Opt(TimeWindow),\n });\n const SetSnsTokenSwapOpenTimeWindow = IDL.Record({\n request: IDL.Opt(SetOpenTimeWindowRequest),\n swap_canister_id: IDL.Opt(IDL.Principal),\n });\n const SetDefaultFollowees = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n use_registry_derived_rewards: IDL.Opt(IDL.Bool),\n rewards: IDL.Vec(RewardNodeProvider),\n });\n const Principals = IDL.Record({ principals: IDL.Vec(IDL.Principal) });\n const Change = IDL.Variant({\n ToRemove: NodeProvider,\n ToAdd: NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ change: IDL.Opt(Change) });\n const Motion = IDL.Record({ motion_text: IDL.Text });\n const Action = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuron,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCode,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n OpenSnsTokenSwap: OpenSnsTokenSwap,\n SetSnsTokenSwapOpenTimeWindow: SetSnsTokenSwapOpenTimeWindow,\n SetDefaultFollowees: SetDefaultFollowees,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n Proposal.fill(\n IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(Action),\n summary: IDL.Text,\n }),\n );\n const WaitForQuietState = IDL.Record({\n current_deadline_timestamp_seconds: IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n id: IDL.Opt(ProposalId),\n topic: IDL.Opt(IDL.Int32),\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n failed_timestamp_seconds: IDL.Nat64,\n neurons_fund_data: IDL.Opt(NeuronsFundData),\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n sns_token_swap_lifecycle: IDL.Opt(IDL.Int32),\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n wait_for_quiet_state: IDL.Opt(WaitForQuietState),\n executed_timestamp_seconds: IDL.Nat64,\n original_total_community_fund_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n });\n const Command_2 = IDL.Variant({\n Spawn: NeuronId,\n Split: Split,\n Configure: Configure,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SyncCommand: IDL.Record({}),\n ClaimOrRefreshNeuron: ClaimOrRefresh,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n command: IDL.Opt(Command_2),\n timestamp: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(ProposalId),\n });\n const MaturityDisbursement = IDL.Record({\n account_identifier_to_disburse_to: IDL.Opt(AccountIdentifier),\n timestamp_of_disbursement_seconds: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Opt(IDL.Nat64),\n account_to_disburse_to: IDL.Opt(Account),\n finalize_disbursement_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n maturity_disbursements_in_progress: IDL.Opt(IDL.Vec(MaturityDisbursement)),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const Governance = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n most_recent_monthly_node_provider_rewards: IDL.Opt(\n MonthlyNodeProviderRewards,\n ),\n maturity_modulation_last_updated_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n wait_for_quiet_threshold_seconds: IDL.Nat64,\n metrics: IDL.Opt(GovernanceCachedMetrics),\n neuron_management_voting_period_seconds: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n cached_daily_maturity_modulation_basis_points: IDL.Opt(IDL.Int32),\n economics: IDL.Opt(NetworkEconomics),\n restore_aging_summary: IDL.Opt(RestoreAgingSummary),\n spawning_neurons: IDL.Opt(IDL.Bool),\n latest_reward_event: IDL.Opt(RewardEvent),\n to_claim_transfers: IDL.Vec(NeuronStakeTransfer),\n short_voting_period_seconds: IDL.Nat64,\n proposals: IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n in_flight_commands: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n neurons: IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n genesis_timestamp_seconds: IDL.Nat64,\n });\n const Result = IDL.Variant({ Ok: IDL.Null, Err: GovernanceError });\n const Result_1 = IDL.Variant({\n Error: GovernanceError,\n NeuronId: NeuronId,\n });\n const ClaimOrRefreshNeuronFromAccountResponse = IDL.Record({\n result: IDL.Opt(Result_1),\n });\n const Result_2 = IDL.Variant({ Ok: Neuron, Err: GovernanceError });\n const Result_3 = IDL.Variant({\n Ok: GovernanceCachedMetrics,\n Err: GovernanceError,\n });\n const Result_4 = IDL.Variant({\n Ok: MonthlyNodeProviderRewards,\n Err: GovernanceError,\n });\n const GetNeuronIndexRequest = IDL.Record({\n page_size: IDL.Opt(IDL.Nat32),\n exclusive_start_neuron_id: IDL.Opt(NeuronId),\n });\n const NeuronInfo = IDL.Record({\n id: IDL.Opt(NeuronId),\n dissolve_delay_seconds: IDL.Nat64,\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n created_timestamp_seconds: IDL.Nat64,\n state: IDL.Int32,\n stake_e8s: IDL.Nat64,\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n retrieved_at_timestamp_seconds: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n voting_power: IDL.Nat64,\n age_seconds: IDL.Nat64,\n });\n const NeuronIndexData = IDL.Record({ neurons: IDL.Vec(NeuronInfo) });\n const GetNeuronIndexResult = IDL.Variant({\n Ok: NeuronIndexData,\n Err: GovernanceError,\n });\n const Result_5 = IDL.Variant({ Ok: NeuronInfo, Err: GovernanceError });\n const GetNeuronsFundAuditInfoRequest = IDL.Record({\n nns_proposal_id: IDL.Opt(ProposalId),\n });\n const NeuronsFundAuditInfo = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const Ok = IDL.Record({\n neurons_fund_audit_info: IDL.Opt(NeuronsFundAuditInfo),\n });\n const Result_6 = IDL.Variant({ Ok: Ok, Err: GovernanceError });\n const GetNeuronsFundAuditInfoResponse = IDL.Record({\n result: IDL.Opt(Result_6),\n });\n const Result_7 = IDL.Variant({\n Ok: NodeProvider,\n Err: GovernanceError,\n });\n const ProposalInfo = IDL.Record({\n id: IDL.Opt(ProposalId),\n status: IDL.Int32,\n topic: IDL.Int32,\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n deadline_timestamp_seconds: IDL.Opt(IDL.Nat64),\n failed_timestamp_seconds: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n reward_status: IDL.Int32,\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n executed_timestamp_seconds: IDL.Nat64,\n });\n const ListKnownNeuronsResponse = IDL.Record({\n known_neurons: IDL.Vec(KnownNeuron),\n });\n const ListNeuronVotesRequest = IDL.Record({\n before_proposal: IDL.Opt(ProposalId),\n limit: IDL.Opt(IDL.Nat64),\n neuron_id: IDL.Opt(NeuronId),\n });\n const Vote = IDL.Variant({\n No: IDL.Null,\n Yes: IDL.Null,\n Unspecified: IDL.Null,\n });\n const NeuronVote = IDL.Record({\n vote: IDL.Opt(Vote),\n proposal_id: IDL.Opt(ProposalId),\n });\n const ListNeuronVotesResponse = IDL.Variant({\n Ok: IDL.Record({\n votes: IDL.Opt(IDL.Vec(NeuronVote)),\n all_finalized_before_proposal: IDL.Opt(ProposalId),\n }),\n Err: GovernanceError,\n });\n const NeuronSubaccount = IDL.Record({ subaccount: IDL.Vec(IDL.Nat8) });\n const ListNeurons = IDL.Record({\n page_size: IDL.Opt(IDL.Nat64),\n include_public_neurons_in_full_neurons: IDL.Opt(IDL.Bool),\n neuron_ids: IDL.Vec(IDL.Nat64),\n page_number: IDL.Opt(IDL.Nat64),\n include_empty_neurons_readable_by_caller: IDL.Opt(IDL.Bool),\n neuron_subaccounts: IDL.Opt(IDL.Vec(NeuronSubaccount)),\n include_neurons_readable_by_caller: IDL.Bool,\n });\n const ListNeuronsResponse = IDL.Record({\n neuron_infos: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInfo)),\n full_neurons: IDL.Vec(Neuron),\n total_pages_available: IDL.Opt(IDL.Nat64),\n });\n const DateRangeFilter = IDL.Record({\n start_timestamp_seconds: IDL.Opt(IDL.Nat64),\n end_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ListNodeProviderRewardsRequest = IDL.Record({\n date_filter: IDL.Opt(DateRangeFilter),\n });\n const ListNodeProviderRewardsResponse = IDL.Record({\n rewards: IDL.Vec(MonthlyNodeProviderRewards),\n });\n const ListNodeProvidersResponse = IDL.Record({\n node_providers: IDL.Vec(NodeProvider),\n });\n const ListProposalInfoRequest = IDL.Record({\n include_reward_status: IDL.Vec(IDL.Int32),\n omit_large_fields: IDL.Opt(IDL.Bool),\n before_proposal: IDL.Opt(ProposalId),\n limit: IDL.Nat32,\n exclude_topic: IDL.Vec(IDL.Int32),\n include_all_manage_neuron_proposals: IDL.Opt(IDL.Bool),\n include_status: IDL.Vec(IDL.Int32),\n });\n const ListProposalInfoResponse = IDL.Record({\n proposal_info: IDL.Vec(ProposalInfo),\n });\n const InstallCodeRequest = IDL.Record({\n arg: IDL.Opt(IDL.Vec(IDL.Nat8)),\n wasm_module: IDL.Opt(IDL.Vec(IDL.Nat8)),\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n canister_id: IDL.Opt(IDL.Principal),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const ProposalActionRequest = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuronRequest,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCodeRequest,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n const MakeProposalRequest = IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(ProposalActionRequest),\n summary: IDL.Text,\n });\n const ManageNeuronCommandRequest = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: MakeProposalRequest,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n ManageNeuronRequest.fill(\n IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(ManageNeuronCommandRequest),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n }),\n );\n const SpawnResponse = IDL.Record({ created_neuron_id: IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n amount_disbursed_e8s: IDL.Opt(IDL.Nat64),\n });\n const RefreshVotingPowerResponse = IDL.Record({});\n const ClaimOrRefreshResponse = IDL.Record({\n refreshed_neuron_id: IDL.Opt(NeuronId),\n });\n const MergeResponse = IDL.Record({\n target_neuron: IDL.Opt(Neuron),\n source_neuron: IDL.Opt(Neuron),\n target_neuron_info: IDL.Opt(NeuronInfo),\n source_neuron_info: IDL.Opt(NeuronInfo),\n });\n const SetFollowingResponse = IDL.Record({});\n const MakeProposalResponse = IDL.Record({\n message: IDL.Opt(IDL.Text),\n proposal_id: IDL.Opt(ProposalId),\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 Spawn: SpawnResponse,\n Split: SpawnResponse,\n Follow: IDL.Record({}),\n DisburseMaturity: DisburseMaturityResponse,\n RefreshVotingPower: RefreshVotingPowerResponse,\n ClaimOrRefresh: ClaimOrRefreshResponse,\n Configure: IDL.Record({}),\n RegisterVote: IDL.Record({}),\n Merge: MergeResponse,\n DisburseToNeuron: SpawnResponse,\n SetFollowing: SetFollowingResponse,\n MakeProposal: MakeProposalResponse,\n StakeMaturity: StakeMaturityResponse,\n MergeMaturity: MergeMaturityResponse,\n Disburse: DisburseResponse,\n });\n const ManageNeuronResponse = IDL.Record({ command: IDL.Opt(Command_1) });\n const Committed = IDL.Record({\n total_direct_contribution_icp_e8s: IDL.Opt(IDL.Nat64),\n total_neurons_fund_contribution_icp_e8s: IDL.Opt(IDL.Nat64),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const Result_8 = IDL.Variant({\n Committed: Committed,\n Aborted: IDL.Record({}),\n });\n const SettleCommunityFundParticipation = IDL.Record({\n result: IDL.Opt(Result_8),\n open_sns_token_swap_proposal_id: IDL.Opt(IDL.Nat64),\n });\n const Committed_1 = IDL.Record({\n total_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n total_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const Result_9 = IDL.Variant({\n Committed: Committed_1,\n Aborted: IDL.Record({}),\n });\n const SettleNeuronsFundParticipationRequest = IDL.Record({\n result: IDL.Opt(Result_9),\n nns_proposal_id: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuron = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Opt(Principals),\n is_capped: IDL.Opt(IDL.Bool),\n nns_neuron_id: IDL.Opt(IDL.Nat64),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const Ok_1 = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuron),\n });\n const Result_10 = IDL.Variant({ Ok: Ok_1, Err: GovernanceError });\n const SettleNeuronsFundParticipationResponse = IDL.Record({\n result: IDL.Opt(Result_10),\n });\n const UpdateNodeProvider = IDL.Record({\n reward_account: IDL.Opt(AccountIdentifier),\n });\n\n return IDL.Service({\n claim_gtc_neurons: IDL.Func(\n [IDL.Principal, IDL.Vec(NeuronId)],\n [Result],\n [],\n ),\n claim_or_refresh_neuron_from_account: IDL.Func(\n [ClaimOrRefreshNeuronFromAccount],\n [ClaimOrRefreshNeuronFromAccountResponse],\n [],\n ),\n get_build_metadata: IDL.Func([], [IDL.Text], [\"query\"]),\n get_full_neuron: IDL.Func([IDL.Nat64], [Result_2], [\"query\"]),\n get_full_neuron_by_id_or_subaccount: IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_2],\n [\"query\"],\n ),\n get_latest_reward_event: IDL.Func([], [RewardEvent], [\"query\"]),\n get_metrics: IDL.Func([], [Result_3], [\"query\"]),\n get_monthly_node_provider_rewards: IDL.Func([], [Result_4], []),\n get_most_recent_monthly_node_provider_rewards: IDL.Func(\n [],\n [IDL.Opt(MonthlyNodeProviderRewards)],\n [\"query\"],\n ),\n get_network_economics_parameters: IDL.Func(\n [],\n [NetworkEconomics],\n [\"query\"],\n ),\n get_neuron_ids: IDL.Func([], [IDL.Vec(IDL.Nat64)], [\"query\"]),\n get_neuron_index: IDL.Func(\n [GetNeuronIndexRequest],\n [GetNeuronIndexResult],\n [\"query\"],\n ),\n get_neuron_info: IDL.Func([IDL.Nat64], [Result_5], [\"query\"]),\n get_neuron_info_by_id_or_subaccount: IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_5],\n [\"query\"],\n ),\n get_neurons_fund_audit_info: IDL.Func(\n [GetNeuronsFundAuditInfoRequest],\n [GetNeuronsFundAuditInfoResponse],\n [\"query\"],\n ),\n get_node_provider_by_caller: IDL.Func([IDL.Null], [Result_7], [\"query\"]),\n get_pending_proposals: IDL.Func([], [IDL.Vec(ProposalInfo)], [\"query\"]),\n get_proposal_info: IDL.Func(\n [IDL.Nat64],\n [IDL.Opt(ProposalInfo)],\n [\"query\"],\n ),\n get_restore_aging_summary: IDL.Func([], [RestoreAgingSummary], [\"query\"]),\n list_known_neurons: IDL.Func([], [ListKnownNeuronsResponse], [\"query\"]),\n list_neuron_votes: IDL.Func(\n [ListNeuronVotesRequest],\n [ListNeuronVotesResponse],\n [\"query\"],\n ),\n list_neurons: IDL.Func([ListNeurons], [ListNeuronsResponse], [\"query\"]),\n list_node_provider_rewards: IDL.Func(\n [ListNodeProviderRewardsRequest],\n [ListNodeProviderRewardsResponse],\n [\"query\"],\n ),\n list_node_providers: IDL.Func([], [ListNodeProvidersResponse], [\"query\"]),\n list_proposals: IDL.Func(\n [ListProposalInfoRequest],\n [ListProposalInfoResponse],\n [\"query\"],\n ),\n manage_neuron: IDL.Func([ManageNeuronRequest], [ManageNeuronResponse], []),\n settle_community_fund_participation: IDL.Func(\n [SettleCommunityFundParticipation],\n [Result],\n [],\n ),\n settle_neurons_fund_participation: IDL.Func(\n [SettleNeuronsFundParticipationRequest],\n [SettleNeuronsFundParticipationResponse],\n [],\n ),\n simulate_manage_neuron: IDL.Func(\n [ManageNeuronRequest],\n [ManageNeuronResponse],\n [],\n ),\n transfer_gtc_neuron: IDL.Func([NeuronId, NeuronId], [Result], []),\n update_node_provider: IDL.Func([UpdateNodeProvider], [Result], []),\n });\n};\n\nexport const init = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const DateUtc = IDL.Record({\n day: IDL.Nat32,\n month: IDL.Nat32,\n year: IDL.Nat32,\n });\n const AccountIdentifier = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n id: IDL.Opt(IDL.Principal),\n reward_account: IDL.Opt(AccountIdentifier),\n });\n const RewardToNeuron = IDL.Record({ dissolve_delay_seconds: IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n RewardToNeuron: RewardToNeuron,\n RewardToAccount: RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n node_provider: IDL.Opt(NodeProvider),\n reward_mode: IDL.Opt(RewardMode),\n amount_e8s: IDL.Nat64,\n });\n const XdrConversionRate = IDL.Record({\n xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const MonthlyNodeProviderRewards = IDL.Record({\n minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n end_date: IDL.Opt(DateUtc),\n registry_version: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n start_date: IDL.Opt(DateUtc),\n timestamp: IDL.Nat64,\n rewards: IDL.Vec(RewardNodeProvider),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n maximum_node_provider_rewards_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronSubsetMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n maturity_e8s_equivalent_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_e8s: IDL.Opt(IDL.Nat64),\n count: IDL.Opt(IDL.Nat64),\n deciding_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n total_deciding_voting_power: IDL.Opt(IDL.Nat64),\n staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64),\n ),\n staked_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_voting_power: IDL.Opt(IDL.Nat64),\n potential_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const GovernanceCachedMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n garbage_collectable_neurons_count: IDL.Nat64,\n dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\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 ect_neuron_count: IDL.Nat64,\n total_supply_icp: IDL.Nat64,\n neurons_with_less_than_6_months_dissolve_delay_count: IDL.Nat64,\n dissolved_neurons_count: IDL.Nat64,\n community_fund_total_maturity_e8s_equivalent: IDL.Nat64,\n total_staked_e8s_seed: IDL.Nat64,\n total_staked_maturity_e8s_equivalent_ect: IDL.Nat64,\n total_staked_e8s: IDL.Nat64,\n fully_lost_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n not_dissolving_neurons_count: IDL.Nat64,\n total_locked_e8s: IDL.Nat64,\n neurons_fund_total_active_neurons: IDL.Nat64,\n total_voting_power_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n total_staked_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n spawning_neurons_count: IDL.Nat64,\n declining_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n total_staked_e8s_ect: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n dissolved_neurons_e8s: IDL.Nat64,\n total_staked_e8s_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n neurons_with_less_than_6_months_dissolve_delay_e8s: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n non_self_authenticating_controller_neuron_subset_metrics:\n IDL.Opt(NeuronSubsetMetrics),\n dissolving_neurons_count: IDL.Nat64,\n dissolving_neurons_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Float64)),\n total_staked_maturity_e8s_equivalent_seed: IDL.Nat64,\n community_fund_total_staked_e8s: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n public_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n timestamp_seconds: IDL.Nat64,\n seed_neuron_count: IDL.Nat64,\n });\n const VotingPowerEconomics = IDL.Record({\n start_reducing_voting_power_after_seconds: IDL.Opt(IDL.Nat64),\n neuron_minimum_dissolve_delay_to_vote_seconds: IDL.Opt(IDL.Nat64),\n clear_following_after_seconds: IDL.Opt(IDL.Nat64),\n });\n const Percentage = IDL.Record({ basis_points: IDL.Opt(IDL.Nat64) });\n const Decimal = IDL.Record({ human_readable: IDL.Opt(IDL.Text) });\n const NeuronsFundMatchedFundingCurveCoefficients = IDL.Record({\n contribution_threshold_xdr: IDL.Opt(Decimal),\n one_third_participation_milestone_xdr: IDL.Opt(Decimal),\n full_participation_milestone_xdr: IDL.Opt(Decimal),\n });\n const NeuronsFundEconomics = IDL.Record({\n maximum_icp_xdr_rate: IDL.Opt(Percentage),\n neurons_fund_matched_funding_curve_coefficients: IDL.Opt(\n NeuronsFundMatchedFundingCurveCoefficients,\n ),\n max_theoretical_neurons_fund_participation_amount_xdr: IDL.Opt(Decimal),\n minimum_icp_xdr_rate: IDL.Opt(Percentage),\n });\n const NetworkEconomics = IDL.Record({\n neuron_minimum_stake_e8s: IDL.Nat64,\n voting_power_economics: IDL.Opt(VotingPowerEconomics),\n max_proposals_to_keep_per_topic: IDL.Nat32,\n neuron_management_fee_per_proposal_e8s: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n transaction_fee_e8s: IDL.Nat64,\n neuron_spawn_dissolve_delay_seconds: IDL.Nat64,\n minimum_icp_xdr_rate: IDL.Nat64,\n maximum_node_provider_rewards_e8s: IDL.Nat64,\n neurons_fund_economics: IDL.Opt(NeuronsFundEconomics),\n });\n const RestoreAgingNeuronGroup = IDL.Record({\n count: IDL.Opt(IDL.Nat64),\n previous_total_stake_e8s: IDL.Opt(IDL.Nat64),\n current_total_stake_e8s: IDL.Opt(IDL.Nat64),\n group_type: IDL.Int32,\n });\n const RestoreAgingSummary = IDL.Record({\n groups: IDL.Vec(RestoreAgingNeuronGroup),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ProposalId = IDL.Record({ id: IDL.Nat64 });\n const RewardEvent = IDL.Record({\n rounds_since_last_distribution: IDL.Opt(IDL.Nat64),\n day_after_genesis: IDL.Nat64,\n actual_timestamp_seconds: IDL.Nat64,\n total_available_e8s_equivalent: IDL.Nat64,\n latest_round_available_e8s_equivalent: IDL.Opt(IDL.Nat64),\n distributed_e8s_equivalent: IDL.Nat64,\n settled_proposals: IDL.Vec(ProposalId),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n error_message: IDL.Text,\n error_type: IDL.Int32,\n });\n const Ballot = IDL.Record({ vote: IDL.Int32, voting_power: IDL.Nat64 });\n const SwapParticipationLimits = IDL.Record({\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuronPortion = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Vec(IDL.Principal),\n is_capped: IDL.Opt(IDL.Bool),\n maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n nns_neuron_id: IDL.Opt(NeuronId),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundSnapshot = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuronPortion),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipation = IDL.Record({\n total_maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n intended_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n swap_participation_limits: IDL.Opt(SwapParticipationLimits),\n max_neurons_fund_swap_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n neurons_fund_reserves: IDL.Opt(NeuronsFundSnapshot),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n allocated_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundData = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const CanisterStatusResultV2 = IDL.Record({\n status: IDL.Opt(IDL.Int32),\n freezing_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Vec(IDL.Principal),\n memory_size: IDL.Opt(IDL.Nat64),\n cycles: IDL.Opt(IDL.Nat64),\n idle_cycles_burned_per_day: IDL.Opt(IDL.Nat64),\n module_hash: IDL.Vec(IDL.Nat8),\n });\n const CanisterSummary = IDL.Record({\n status: IDL.Opt(CanisterStatusResultV2),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const SwapBackgroundInformation = IDL.Record({\n ledger_index_canister_summary: IDL.Opt(CanisterSummary),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n ledger_archive_canister_summaries: IDL.Vec(CanisterSummary),\n ledger_canister_summary: IDL.Opt(CanisterSummary),\n swap_canister_summary: IDL.Opt(CanisterSummary),\n governance_canister_summary: IDL.Opt(CanisterSummary),\n root_canister_summary: IDL.Opt(CanisterSummary),\n dapp_canister_summaries: IDL.Vec(CanisterSummary),\n });\n const DerivedProposalInformation = IDL.Record({\n swap_background_information: IDL.Opt(SwapBackgroundInformation),\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 TopicToFollow = IDL.Variant({\n Kyc: IDL.Null,\n ServiceNervousSystemManagement: IDL.Null,\n ApiBoundaryNodeManagement: IDL.Null,\n ApplicationCanisterManagement: IDL.Null,\n SubnetRental: IDL.Null,\n NeuronManagement: IDL.Null,\n NodeProviderRewards: IDL.Null,\n SubnetManagement: IDL.Null,\n ExchangeRate: IDL.Null,\n CatchAll: IDL.Null,\n NodeAdmin: IDL.Null,\n IcOsVersionElection: IDL.Null,\n ProtocolCanisterManagement: IDL.Null,\n NetworkEconomics: IDL.Null,\n IcOsVersionDeployment: IDL.Null,\n ParticipantManagement: IDL.Null,\n Governance: IDL.Null,\n SnsAndCommunityFund: IDL.Null,\n });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n committed_topics: IDL.Opt(IDL.Vec(IDL.Opt(TopicToFollow))),\n description: IDL.Opt(IDL.Text),\n links: IDL.Opt(IDL.Vec(IDL.Text)),\n });\n const KnownNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n });\n const FulfillSubnetRentalRequest = IDL.Record({\n user: IDL.Opt(IDL.Principal),\n replica_version_id: IDL.Opt(IDL.Text),\n node_ids: IDL.Opt(IDL.Vec(IDL.Principal)),\n });\n const Spawn = IDL.Record({\n percentage_to_spawn: IDL.Opt(IDL.Nat32),\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({\n memo: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Nat64,\n });\n const Follow = IDL.Record({\n topic: IDL.Int32,\n followees: IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n owner: IDL.Opt(IDL.Principal),\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DisburseMaturity = IDL.Record({\n to_account_identifier: IDL.Opt(AccountIdentifier),\n to_account: IDL.Opt(Account),\n percentage_to_disburse: IDL.Nat32,\n });\n const RefreshVotingPower = IDL.Record({});\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n });\n const By = IDL.Variant({\n NeuronIdOrSubaccount: IDL.Record({}),\n MemoAndController: ClaimOrRefreshNeuronFromAccount,\n Memo: IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ by: IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n hot_key_to_remove: IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ new_hot_key: IDL.Opt(IDL.Principal) });\n const 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 SetVisibility = IDL.Record({ visibility: IDL.Opt(IDL.Int32) });\n const SetDissolveTimestamp = IDL.Record({\n dissolve_timestamp_seconds: IDL.Nat64,\n });\n const Operation = IDL.Variant({\n RemoveHotKey: RemoveHotKey,\n AddHotKey: AddHotKey,\n ChangeAutoStakeMaturity: ChangeAutoStakeMaturity,\n StopDissolving: IDL.Record({}),\n StartDissolving: IDL.Record({}),\n IncreaseDissolveDelay: IncreaseDissolveDelay,\n SetVisibility: SetVisibility,\n JoinCommunityFund: IDL.Record({}),\n LeaveCommunityFund: IDL.Record({}),\n SetDissolveTimestamp: SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ operation: IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n vote: IDL.Int32,\n proposal: IDL.Opt(ProposalId),\n });\n const Merge = IDL.Record({ source_neuron_id: IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n kyc_verified: IDL.Bool,\n amount_e8s: IDL.Nat64,\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Nat64,\n });\n const FolloweesForTopic = IDL.Record({\n topic: IDL.Opt(IDL.Int32),\n followees: IDL.Opt(IDL.Vec(NeuronId)),\n });\n const SetFollowing = IDL.Record({\n topic_following: IDL.Opt(IDL.Vec(FolloweesForTopic)),\n });\n const StakeMaturity = IDL.Record({\n percentage_to_stake: IDL.Opt(IDL.Nat32),\n });\n const MergeMaturity = IDL.Record({ percentage_to_merge: IDL.Nat32 });\n const Amount = IDL.Record({ e8s: IDL.Nat64 });\n const Disburse = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n amount: IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: Proposal,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n Subaccount: IDL.Vec(IDL.Nat8),\n NeuronId: NeuronId,\n });\n const ManageNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(Command),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n });\n const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });\n const CanisterSettings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat64),\n wasm_memory_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Opt(Controllers),\n log_visibility: IDL.Opt(IDL.Int32),\n wasm_memory_limit: IDL.Opt(IDL.Nat64),\n memory_allocation: IDL.Opt(IDL.Nat64),\n compute_allocation: IDL.Opt(IDL.Nat64),\n });\n const UpdateCanisterSettings = IDL.Record({\n canister_id: IDL.Opt(IDL.Principal),\n settings: IDL.Opt(CanisterSettings),\n });\n const InstallCode = IDL.Record({\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n wasm_module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n canister_id: IDL.Opt(IDL.Principal),\n arg_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const DeregisterKnownNeuron = IDL.Record({ id: IDL.Opt(NeuronId) });\n const StopOrStartCanister = IDL.Record({\n action: IDL.Opt(IDL.Int32),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const Duration = IDL.Record({ seconds: IDL.Opt(IDL.Nat64) });\n const Tokens = IDL.Record({ e8s: IDL.Opt(IDL.Nat64) });\n const VotingRewardParameters = IDL.Record({\n reward_rate_transition_duration: IDL.Opt(Duration),\n initial_reward_rate: IDL.Opt(Percentage),\n final_reward_rate: IDL.Opt(Percentage),\n });\n const GovernanceParameters = IDL.Record({\n neuron_maximum_dissolve_delay_bonus: IDL.Opt(Percentage),\n neuron_maximum_age_for_age_bonus: IDL.Opt(Duration),\n neuron_maximum_dissolve_delay: IDL.Opt(Duration),\n neuron_minimum_dissolve_delay_to_vote: IDL.Opt(Duration),\n neuron_maximum_age_bonus: IDL.Opt(Percentage),\n neuron_minimum_stake: IDL.Opt(Tokens),\n proposal_wait_for_quiet_deadline_increase: IDL.Opt(Duration),\n proposal_initial_voting_period: IDL.Opt(Duration),\n proposal_rejection_fee: IDL.Opt(Tokens),\n voting_reward_parameters: IDL.Opt(VotingRewardParameters),\n });\n const Image = IDL.Record({ base64_encoding: IDL.Opt(IDL.Text) });\n const LedgerParameters = IDL.Record({\n transaction_fee: IDL.Opt(Tokens),\n token_symbol: IDL.Opt(IDL.Text),\n token_logo: IDL.Opt(Image),\n token_name: IDL.Opt(IDL.Text),\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval: IDL.Opt(Duration),\n count: IDL.Opt(IDL.Nat64),\n });\n const GlobalTimeOfDay = IDL.Record({\n seconds_after_utc_midnight: IDL.Opt(IDL.Nat64),\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SwapParameters = IDL.Record({\n minimum_participants: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n duration: IDL.Opt(Duration),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n confirmation_text: IDL.Opt(IDL.Text),\n maximum_participant_icp: IDL.Opt(Tokens),\n minimum_icp: IDL.Opt(Tokens),\n minimum_direct_participation_icp: IDL.Opt(Tokens),\n minimum_participant_icp: IDL.Opt(Tokens),\n start_time: IDL.Opt(GlobalTimeOfDay),\n maximum_direct_participation_icp: IDL.Opt(Tokens),\n maximum_icp: IDL.Opt(Tokens),\n neurons_fund_investment_icp: IDL.Opt(Tokens),\n restricted_countries: IDL.Opt(Countries),\n });\n const SwapDistribution = IDL.Record({ total: IDL.Opt(Tokens) });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay: IDL.Opt(Duration),\n memo: IDL.Opt(IDL.Nat64),\n vesting_period: IDL.Opt(Duration),\n stake: IDL.Opt(Tokens),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const InitialTokenDistribution = IDL.Record({\n treasury_distribution: IDL.Opt(SwapDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const CreateServiceNervousSystem = IDL.Record({\n url: IDL.Opt(IDL.Text),\n governance_parameters: IDL.Opt(GovernanceParameters),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n logo: IDL.Opt(Image),\n name: IDL.Opt(IDL.Text),\n ledger_parameters: IDL.Opt(LedgerParameters),\n description: IDL.Opt(IDL.Text),\n dapp_canisters: IDL.Vec(Canister),\n swap_parameters: IDL.Opt(SwapParameters),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n });\n const ExecuteNnsFunction = IDL.Record({\n nns_function: IDL.Int32,\n payload: IDL.Vec(IDL.Nat8),\n });\n const NeuronBasketConstructionParameters_1 = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Params = IDL.Record({\n min_participant_icp_e8s: IDL.Nat64,\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters_1,\n ),\n max_icp_e8s: IDL.Nat64,\n swap_due_timestamp_seconds: IDL.Nat64,\n min_participants: IDL.Nat32,\n sns_token_e8s: IDL.Nat64,\n sale_delay_seconds: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Nat64,\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_icp_e8s: IDL.Nat64,\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const OpenSnsTokenSwap = IDL.Record({\n community_fund_investment_e8s: IDL.Opt(IDL.Nat64),\n target_swap_canister_id: IDL.Opt(IDL.Principal),\n params: IDL.Opt(Params),\n });\n const TimeWindow = IDL.Record({\n start_timestamp_seconds: IDL.Nat64,\n end_timestamp_seconds: IDL.Nat64,\n });\n const SetOpenTimeWindowRequest = IDL.Record({\n open_time_window: IDL.Opt(TimeWindow),\n });\n const SetSnsTokenSwapOpenTimeWindow = IDL.Record({\n request: IDL.Opt(SetOpenTimeWindowRequest),\n swap_canister_id: IDL.Opt(IDL.Principal),\n });\n const SetDefaultFollowees = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n use_registry_derived_rewards: IDL.Opt(IDL.Bool),\n rewards: IDL.Vec(RewardNodeProvider),\n });\n const Principals = IDL.Record({ principals: IDL.Vec(IDL.Principal) });\n const Change = IDL.Variant({\n ToRemove: NodeProvider,\n ToAdd: NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ change: IDL.Opt(Change) });\n const Motion = IDL.Record({ motion_text: IDL.Text });\n const Action = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuron,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCode,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n OpenSnsTokenSwap: OpenSnsTokenSwap,\n SetSnsTokenSwapOpenTimeWindow: SetSnsTokenSwapOpenTimeWindow,\n SetDefaultFollowees: SetDefaultFollowees,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n Proposal.fill(\n IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(Action),\n summary: IDL.Text,\n }),\n );\n const WaitForQuietState = IDL.Record({\n current_deadline_timestamp_seconds: IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n id: IDL.Opt(ProposalId),\n topic: IDL.Opt(IDL.Int32),\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n failed_timestamp_seconds: IDL.Nat64,\n neurons_fund_data: IDL.Opt(NeuronsFundData),\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n sns_token_swap_lifecycle: IDL.Opt(IDL.Int32),\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n wait_for_quiet_state: IDL.Opt(WaitForQuietState),\n executed_timestamp_seconds: IDL.Nat64,\n original_total_community_fund_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n });\n const Command_2 = IDL.Variant({\n Spawn: NeuronId,\n Split: Split,\n Configure: Configure,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SyncCommand: IDL.Record({}),\n ClaimOrRefreshNeuron: ClaimOrRefresh,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n command: IDL.Opt(Command_2),\n timestamp: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(ProposalId),\n });\n const MaturityDisbursement = IDL.Record({\n account_identifier_to_disburse_to: IDL.Opt(AccountIdentifier),\n timestamp_of_disbursement_seconds: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Opt(IDL.Nat64),\n account_to_disburse_to: IDL.Opt(Account),\n finalize_disbursement_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n maturity_disbursements_in_progress: IDL.Opt(IDL.Vec(MaturityDisbursement)),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const Governance = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n most_recent_monthly_node_provider_rewards: IDL.Opt(\n MonthlyNodeProviderRewards,\n ),\n maturity_modulation_last_updated_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n wait_for_quiet_threshold_seconds: IDL.Nat64,\n metrics: IDL.Opt(GovernanceCachedMetrics),\n neuron_management_voting_period_seconds: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n cached_daily_maturity_modulation_basis_points: IDL.Opt(IDL.Int32),\n economics: IDL.Opt(NetworkEconomics),\n restore_aging_summary: IDL.Opt(RestoreAgingSummary),\n spawning_neurons: IDL.Opt(IDL.Bool),\n latest_reward_event: IDL.Opt(RewardEvent),\n to_claim_transfers: IDL.Vec(NeuronStakeTransfer),\n short_voting_period_seconds: IDL.Nat64,\n proposals: IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n in_flight_commands: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n neurons: IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n genesis_timestamp_seconds: IDL.Nat64,\n });\n\n return [Governance];\n};\n", "// This file was created manually by taking governance.certified.idl.js and\n// removing everything that isn't needed for `list_neurons` and then removing\n// all fields except `neuron_ids` and `include_neurons_readable_by_caller` from\n// `ListNeurons`.\n// The Ledger hardware wallet app verion 2.4.9 doesn't support the newer fields,\n// even when they are optional and not set, so we use this service for\n// compatibility with the hardware wallet.\nexport const idlFactory = ({ IDL }) => {\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(NeuronId),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const NeuronInfo = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n created_timestamp_seconds: IDL.Nat64,\n state: IDL.Int32,\n stake_e8s: IDL.Nat64,\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n retrieved_at_timestamp_seconds: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n voting_power: IDL.Nat64,\n age_seconds: IDL.Nat64,\n });\n const ListNeurons = IDL.Record({\n neuron_ids: IDL.Vec(IDL.Nat64),\n include_neurons_readable_by_caller: IDL.Bool,\n });\n const ListNeuronsResponse = IDL.Record({\n neuron_infos: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInfo)),\n full_neurons: IDL.Vec(Neuron),\n });\n return IDL.Service({\n list_neurons: IDL.Func([ListNeurons], [ListNeuronsResponse], []),\n });\n};\n", "import type {\n AccountIdentifier as AccountIdentifierClass,\n AccountIdentifierHex,\n} from \"@dfinity/ledger-icp\";\nimport {\n arrayBufferToUint8Array,\n arrayOfNumberToUint8Array,\n isNullish,\n nonNullish,\n toNullable,\n type Nullable,\n} from \"@dfinity/utils\";\nimport { Principal } from \"@icp-sdk/core/principal\";\nimport type {\n Amount,\n NeuronSubaccount,\n Account as RawAccount,\n AccountIdentifier as RawAccountIdentifier,\n ProposalActionRequest as RawAction,\n By as RawBy,\n CanisterSettings as RawCanisterSettings,\n Change as RawChange,\n ManageNeuronCommandRequest as RawCommand,\n Countries as RawCountries,\n CreateServiceNervousSystem as RawCreateServiceNervousSystem,\n Decimal as RawDecimal,\n DeveloperDistribution as RawDeveloperDistribution,\n Duration as RawDuration,\n GlobalTimeOfDay as RawGlobalTimeOfDay,\n GovernanceParameters as RawGovernanceParameters,\n Image as RawImage,\n InitialTokenDistribution as RawInitialTokenDistribution,\n InstallCodeRequest as RawInstallCode,\n LedgerParameters as RawLedgerParameters,\n ListNeurons as RawListNeurons,\n ListProposalInfoRequest as RawListProposalInfo,\n ManageNeuronRequest as RawManageNeuron,\n NeuronBasketConstructionParameters as RawNeuronBasketConstructionParameters,\n NeuronDistribution as RawNeuronDistribution,\n NeuronId as RawNeuronId,\n NeuronIdOrSubaccount as RawNeuronIdOrSubaccount,\n NeuronsFundEconomics as RawNeuronsFundEconomics,\n NeuronsFundMatchedFundingCurveCoefficients as RawNeuronsFundMatchedFundingCurveCoefficients,\n NodeProvider as RawNodeProvider,\n Operation as RawOperation,\n Percentage as RawPercentage,\n RewardMode as RawRewardMode,\n SwapDistribution as RawSwapDistribution,\n SwapParameters as RawSwapParameters,\n Tokens as RawTokens,\n VotingPowerEconomics as RawVotingPowerEconomics,\n VotingRewardParameters as RawVotingRewardParameters,\n} from \"../../candid/governance\";\nimport type { NeuronVisibility, Vote } from \"../../enums/governance.enums\";\nimport { UnsupportedValueError } from \"../../errors/governance.errors\";\nimport type { E8s, NeuronId, Option } from \"../../types/common\";\nimport type {\n Account,\n By,\n CanisterSettings,\n Change,\n ClaimOrRefreshNeuronRequest,\n Countries,\n CreateServiceNervousSystem,\n Decimal,\n DeveloperDistribution,\n DisburseToNeuronRequest,\n Duration,\n FollowRequest,\n FolloweesForTopic,\n GlobalTimeOfDay,\n GovernanceParameters,\n Image,\n InitialTokenDistribution,\n InstallCodeRequest,\n LedgerParameters,\n ListProposalsRequest,\n MakeProposalRequest,\n ManageNeuronCommandRequest,\n ManageNeuronRequest,\n NeuronBasketConstructionParameters,\n NeuronDistribution,\n NeuronIdOrSubaccount,\n NeuronsFundEconomics,\n NeuronsFundMatchedFundingCurveCoefficients,\n NodeProvider,\n Operation,\n Percentage,\n ProposalActionRequest,\n ProposalId,\n RewardMode,\n SwapDistribution,\n SwapParameters,\n Tokens,\n VotingPowerEconomics,\n VotingRewardParameters,\n} from \"../../types/governance_converters\";\nimport { accountIdentifierToBytes } from \"../../utils/account_identifier.utils\";\n\nconst fromProposalId = (proposalId: ProposalId): RawNeuronId => ({\n id: proposalId,\n});\n\nconst fromNeuronId = (neuronId: NeuronId): RawNeuronId => ({\n id: neuronId,\n});\n\nconst fromNeuronIdOrSubaccount = (\n neuronIdOrSubaccount: NeuronIdOrSubaccount,\n): RawNeuronIdOrSubaccount => {\n if (\"NeuronId\" in neuronIdOrSubaccount) {\n return { NeuronId: { id: neuronIdOrSubaccount.NeuronId } };\n }\n if (\"Subaccount\" in neuronIdOrSubaccount) {\n return { Subaccount: Uint8Array.from(neuronIdOrSubaccount.Subaccount) };\n }\n throw new UnsupportedValueError(neuronIdOrSubaccount);\n};\n\nconst fromPercentage = (percentage: Percentage): RawPercentage =>\n percentage.basisPoints !== undefined\n ? { basis_points: [percentage.basisPoints] }\n : { basis_points: [] };\n\nconst fromDuration = (duration: Duration): RawDuration =>\n duration.seconds !== undefined\n ? { seconds: [duration.seconds] }\n : { seconds: [] };\n\nconst fromGlobalTimeOfDay = (time: GlobalTimeOfDay): RawGlobalTimeOfDay =>\n time.secondsAfterUtcMidnight !== undefined\n ? { seconds_after_utc_midnight: [time.secondsAfterUtcMidnight] }\n : { seconds_after_utc_midnight: [] };\n\nconst fromCountries = (countries: Countries): RawCountries => ({\n iso_codes: countries.isoCodes,\n});\n\nconst fromTokens = (tokens: Tokens): RawTokens =>\n tokens.e8s !== undefined ? { e8s: [tokens.e8s] } : { e8s: [] };\n\nconst fromImage = (image: Image): RawImage =>\n image.base64Encoding !== undefined\n ? { base64_encoding: [image.base64Encoding] }\n : { base64_encoding: [] };\n\nconst fromVotingRewardParameters = (\n votingRewardParameters: VotingRewardParameters,\n): RawVotingRewardParameters => ({\n reward_rate_transition_duration:\n votingRewardParameters.rewardRateTransitionDuration !== undefined\n ? [fromDuration(votingRewardParameters.rewardRateTransitionDuration)]\n : [],\n initial_reward_rate:\n votingRewardParameters.initialRewardRate !== undefined\n ? [fromPercentage(votingRewardParameters.initialRewardRate)]\n : [],\n final_reward_rate:\n votingRewardParameters.finalRewardRate !== undefined\n ? [fromPercentage(votingRewardParameters.finalRewardRate)]\n : [],\n});\n\nconst fromLedgerParameters = (\n ledgerParameters: LedgerParameters,\n): RawLedgerParameters => ({\n transaction_fee:\n ledgerParameters.transactionFee !== undefined\n ? [fromTokens(ledgerParameters.transactionFee)]\n : [],\n token_symbol:\n ledgerParameters.tokenSymbol !== undefined\n ? [ledgerParameters.tokenSymbol]\n : [],\n token_logo:\n ledgerParameters.tokenLogo !== undefined\n ? [fromImage(ledgerParameters.tokenLogo)]\n : [],\n token_name:\n ledgerParameters.tokenName !== undefined\n ? [ledgerParameters.tokenName]\n : [],\n});\n\nconst fromSwapParameters = (\n swapParameters: SwapParameters,\n): RawSwapParameters => ({\n minimum_participants:\n swapParameters.minimumParticipants !== undefined\n ? [swapParameters.minimumParticipants]\n : [],\n duration:\n swapParameters.duration !== undefined\n ? [fromDuration(swapParameters.duration)]\n : [],\n neuron_basket_construction_parameters:\n swapParameters.neuronBasketConstructionParameters !== undefined\n ? [\n fromNeuronBasketConstructionParameters(\n swapParameters.neuronBasketConstructionParameters,\n ),\n ]\n : [],\n confirmation_text:\n swapParameters.confirmationText !== undefined\n ? [swapParameters.confirmationText]\n : [],\n maximum_participant_icp:\n swapParameters.maximumParticipantIcp !== undefined\n ? [fromTokens(swapParameters.maximumParticipantIcp)]\n : [],\n neurons_fund_investment_icp:\n swapParameters.neuronsFundInvestmentIcp !== undefined\n ? [fromTokens(swapParameters.neuronsFundInvestmentIcp)]\n : [],\n minimum_icp:\n swapParameters.minimumIcp !== undefined\n ? [fromTokens(swapParameters.minimumIcp)]\n : [],\n minimum_participant_icp:\n swapParameters.minimumParticipantIcp !== undefined\n ? [fromTokens(swapParameters.minimumParticipantIcp)]\n : [],\n start_time:\n swapParameters.startTime !== undefined\n ? [fromGlobalTimeOfDay(swapParameters.startTime)]\n : [],\n maximum_icp:\n swapParameters.maximumIcp !== undefined\n ? [fromTokens(swapParameters.maximumIcp)]\n : [],\n restricted_countries:\n swapParameters.restrictedCountries !== undefined\n ? [fromCountries(swapParameters.restrictedCountries)]\n : [],\n maximum_direct_participation_icp:\n swapParameters.maxDirectParticipationIcp !== undefined\n ? [fromTokens(swapParameters.maxDirectParticipationIcp)]\n : [],\n minimum_direct_participation_icp:\n swapParameters.minDirectParticipationIcp !== undefined\n ? [fromTokens(swapParameters.minDirectParticipationIcp)]\n : [],\n neurons_fund_participation: toNullable(\n swapParameters.neuronsFundParticipation,\n ),\n});\n\nconst fromNeuronBasketConstructionParameters = (\n neuronBasketConstructionParameters: NeuronBasketConstructionParameters,\n): RawNeuronBasketConstructionParameters => ({\n dissolve_delay_interval:\n neuronBasketConstructionParameters.dissolveDelayInterval !== undefined\n ? [fromDuration(neuronBasketConstructionParameters.dissolveDelayInterval)]\n : [],\n count:\n neuronBasketConstructionParameters.count !== undefined\n ? [neuronBasketConstructionParameters.count]\n : [],\n});\n\nconst fromGovernanceParameters = (\n governanceParameters: GovernanceParameters,\n): RawGovernanceParameters => ({\n neuron_maximum_dissolve_delay_bonus:\n governanceParameters.neuronMaximumDissolveDelayBonus !== undefined\n ? [fromPercentage(governanceParameters.neuronMaximumDissolveDelayBonus)]\n : [],\n neuron_maximum_age_for_age_bonus:\n governanceParameters.neuronMaximumAgeForAgeBonus !== undefined\n ? [fromDuration(governanceParameters.neuronMaximumAgeForAgeBonus)]\n : [],\n neuron_maximum_dissolve_delay:\n governanceParameters.neuronMaximumDissolveDelay !== undefined\n ? [fromDuration(governanceParameters.neuronMaximumDissolveDelay)]\n : [],\n neuron_minimum_dissolve_delay_to_vote:\n governanceParameters.neuronMinimumDissolveDelayToVote !== undefined\n ? [fromDuration(governanceParameters.neuronMinimumDissolveDelayToVote)]\n : [],\n neuron_maximum_age_bonus:\n governanceParameters.neuronMaximumAgeBonus !== undefined\n ? [fromPercentage(governanceParameters.neuronMaximumAgeBonus)]\n : [],\n neuron_minimum_stake:\n governanceParameters.neuronMinimumStake !== undefined\n ? [fromTokens(governanceParameters.neuronMinimumStake)]\n : [],\n proposal_wait_for_quiet_deadline_increase:\n governanceParameters.proposalWaitForQuietDeadlineIncrease !== undefined\n ? [\n fromDuration(\n governanceParameters.proposalWaitForQuietDeadlineIncrease,\n ),\n ]\n : [],\n proposal_initial_voting_period:\n governanceParameters.proposalInitialVotingPeriod !== undefined\n ? [fromDuration(governanceParameters.proposalInitialVotingPeriod)]\n : [],\n proposal_rejection_fee:\n governanceParameters.proposalRejectionFee !== undefined\n ? [fromTokens(governanceParameters.proposalRejectionFee)]\n : [],\n voting_reward_parameters:\n governanceParameters.votingRewardParameters !== undefined\n ? [\n fromVotingRewardParameters(\n governanceParameters.votingRewardParameters,\n ),\n ]\n : [],\n});\n\nconst fromSwapDistribution = (\n swapDistribution: SwapDistribution,\n): RawSwapDistribution => ({\n total:\n swapDistribution.total !== undefined\n ? [fromTokens(swapDistribution.total)]\n : [],\n});\n\nconst fromInitialTokenDistribution = (\n initialTokenDistribution: InitialTokenDistribution,\n): RawInitialTokenDistribution => ({\n treasury_distribution:\n initialTokenDistribution.treasuryDistribution !== undefined\n ? [fromSwapDistribution(initialTokenDistribution.treasuryDistribution)]\n : [],\n developer_distribution:\n initialTokenDistribution.developerDistribution !== undefined\n ? [\n fromDeveloperDistribution(\n initialTokenDistribution.developerDistribution,\n ),\n ]\n : [],\n swap_distribution:\n initialTokenDistribution.swapDistribution !== undefined\n ? [fromSwapDistribution(initialTokenDistribution.swapDistribution)]\n : [],\n});\n\nconst fromNeuronDistribution = (\n neuronDistribution: NeuronDistribution,\n): RawNeuronDistribution => ({\n controller:\n neuronDistribution.controller !== undefined\n ? [Principal.fromText(neuronDistribution.controller)]\n : [],\n dissolve_delay:\n neuronDistribution.dissolveDelay !== undefined\n ? [fromDuration(neuronDistribution.dissolveDelay)]\n : [],\n memo: neuronDistribution.memo !== undefined ? [neuronDistribution.memo] : [],\n vesting_period:\n neuronDistribution.vestingPeriod !== undefined\n ? [fromDuration(neuronDistribution.vestingPeriod)]\n : [],\n stake:\n neuronDistribution.stake !== undefined\n ? [fromTokens(neuronDistribution.stake)]\n : [],\n});\n\nconst fromDeveloperDistribution = (\n developerDistribution: DeveloperDistribution,\n): RawDeveloperDistribution => ({\n developer_neurons: developerDistribution.developerNeurons.map(\n fromNeuronDistribution,\n ),\n});\n\nconst fromCreateServiceNervousSystem = (\n createServiceNervousSystem: CreateServiceNervousSystem,\n): RawCreateServiceNervousSystem => ({\n url:\n createServiceNervousSystem.url !== undefined\n ? [createServiceNervousSystem.url]\n : [],\n governance_parameters:\n createServiceNervousSystem.governanceParameters !== undefined\n ? [\n fromGovernanceParameters(\n createServiceNervousSystem.governanceParameters,\n ),\n ]\n : [],\n fallback_controller_principal_ids:\n createServiceNervousSystem.fallbackControllerPrincipalIds.map((id) =>\n Principal.fromText(id),\n ),\n logo:\n createServiceNervousSystem.logo !== undefined\n ? [fromImage(createServiceNervousSystem.logo)]\n : [],\n name:\n createServiceNervousSystem.name !== undefined\n ? [createServiceNervousSystem.name]\n : [],\n ledger_parameters:\n createServiceNervousSystem.ledgerParameters !== undefined\n ? [fromLedgerParameters(createServiceNervousSystem.ledgerParameters)]\n : [],\n description:\n createServiceNervousSystem.description !== undefined\n ? [createServiceNervousSystem.description]\n : [],\n dapp_canisters: createServiceNervousSystem.dappCanisters.map(\n (principalId) => ({\n id: [Principal.fromText(principalId)],\n }),\n ),\n swap_parameters:\n createServiceNervousSystem.swapParameters !== undefined\n ? [fromSwapParameters(createServiceNervousSystem.swapParameters)]\n : [],\n initial_token_distribution:\n createServiceNervousSystem.initialTokenDistribution !== undefined\n ? [\n fromInitialTokenDistribution(\n createServiceNervousSystem.initialTokenDistribution,\n ),\n ]\n : [],\n});\n\nconst fromInstallCode = (installCode: InstallCodeRequest): RawInstallCode => {\n if (installCode.wasmModule === undefined) {\n throw new Error(\"wasmModule not found\");\n }\n\n return {\n arg: toNullable(\n arrayBufferToUint8Array(installCode.arg ?? new ArrayBuffer(0)),\n ),\n wasm_module: toNullable(arrayBufferToUint8Array(installCode.wasmModule)),\n skip_stopping_before_installing: toNullable(\n installCode.skipStoppingBeforeInstalling,\n ),\n canister_id: toNullable(\n nonNullish(installCode.canisterId)\n ? Principal.fromText(installCode.canisterId)\n : undefined,\n ),\n install_mode: toNullable(installCode.installMode as number),\n };\n};\n\nconst fromCanisterSettings = (\n canisterSettings: Option<CanisterSettings>,\n): Nullable<RawCanisterSettings> =>\n toNullable(\n canisterSettings === undefined\n ? undefined\n : {\n freezing_threshold: toNullable(canisterSettings.freezingThreshold),\n controllers: canisterSettings.controllers\n ? [\n {\n controllers: canisterSettings.controllers.map((controller) =>\n Principal.fromText(controller),\n ),\n },\n ]\n : [],\n log_visibility: toNullable(canisterSettings.logVisibility as number),\n wasm_memory_limit: toNullable(canisterSettings.wasmMemoryLimit),\n compute_allocation: toNullable(canisterSettings.computeAllocation),\n memory_allocation: toNullable(canisterSettings.memoryAllocation),\n wasm_memory_threshold: toNullable(\n canisterSettings.wasmMemoryThreshold,\n ),\n },\n );\n\nconst fromAction = (action: ProposalActionRequest): RawAction => {\n if (\"ExecuteNnsFunction\" in action) {\n const executeNnsFunction = action.ExecuteNnsFunction;\n\n if (executeNnsFunction.payloadBytes === undefined) {\n throw new Error(\"payloadBytes not found\");\n }\n\n return {\n ExecuteNnsFunction: {\n nns_function: executeNnsFunction.nnsFunctionId,\n payload: arrayBufferToUint8Array(executeNnsFunction.payloadBytes),\n },\n };\n }\n if (\"ManageNeuron\" in action) {\n const manageNeuron = action.ManageNeuron;\n return {\n ManageNeuron: fromManageNeuron(manageNeuron),\n };\n }\n if (\"ApproveGenesisKyc\" in action) {\n const approveGenesisKyc = action.ApproveGenesisKyc;\n return {\n ApproveGenesisKyc: {\n principals: approveGenesisKyc.principals.map(Principal.fromText),\n },\n };\n }\n if (\"ManageNetworkEconomics\" in action) {\n const networkEconomics = action.ManageNetworkEconomics;\n return {\n ManageNetworkEconomics: {\n neuron_minimum_stake_e8s: networkEconomics.neuronMinimumStake,\n max_proposals_to_keep_per_topic:\n networkEconomics.maxProposalsToKeepPerTopic,\n neuron_management_fee_per_proposal_e8s:\n networkEconomics.neuronManagementFeePerProposal,\n reject_cost_e8s: networkEconomics.rejectCost,\n transaction_fee_e8s: networkEconomics.transactionFee,\n neuron_spawn_dissolve_delay_seconds:\n networkEconomics.neuronSpawnDissolveDelaySeconds,\n minimum_icp_xdr_rate: networkEconomics.minimumIcpXdrRate,\n maximum_node_provider_rewards_e8s:\n networkEconomics.maximumNodeProviderRewards,\n neurons_fund_economics: fromNeuronsFundEconomics(\n networkEconomics.neuronsFundEconomics,\n ),\n voting_power_economics: fromVotingPowerEconomics(\n networkEconomics.votingPowerEconomics,\n ),\n },\n };\n }\n if (\"RewardNodeProvider\" in action) {\n const rewardNodeProvider = action.RewardNodeProvider;\n return {\n RewardNodeProvider: {\n node_provider: rewardNodeProvider.nodeProvider\n ? [fromNodeProvider(rewardNodeProvider.nodeProvider)]\n : [],\n amount_e8s: rewardNodeProvider.amountE8s,\n reward_mode:\n rewardNodeProvider.rewardMode != null\n ? [fromRewardMode(rewardNodeProvider.rewardMode)]\n : [],\n },\n };\n }\n if (\"RewardNodeProviders\" in action) {\n const rewardNodeProviders = action.RewardNodeProviders;\n return {\n RewardNodeProviders: {\n use_registry_derived_rewards:\n rewardNodeProviders.useRegistryDerivedRewards === undefined\n ? []\n : [rewardNodeProviders.useRegistryDerivedRewards],\n rewards: rewardNodeProviders.rewards.map((r) => ({\n node_provider: r.nodeProvider\n ? [fromNodeProvider(r.nodeProvider)]\n : [],\n amount_e8s: r.amountE8s,\n reward_mode:\n r.rewardMode != null ? [fromRewardMode(r.rewardMode)] : [],\n })),\n },\n };\n }\n if (\"AddOrRemoveNodeProvider\" in action) {\n const addOrRemoveNodeProvider = action.AddOrRemoveNodeProvider;\n return {\n AddOrRemoveNodeProvider: {\n change: addOrRemoveNodeProvider.change\n ? [fromChange(addOrRemoveNodeProvider.change)]\n : [],\n },\n };\n }\n if (\"Motion\" in action) {\n const motion = action.Motion;\n return {\n Motion: {\n motion_text: motion.motionText,\n },\n };\n }\n\n if (\"RegisterKnownNeuron\" in action) {\n const knownNeuron = action.RegisterKnownNeuron;\n return {\n RegisterKnownNeuron: {\n id: [{ id: knownNeuron.id }],\n known_neuron_data: [\n {\n name: knownNeuron.name,\n description:\n knownNeuron.description !== undefined\n ? [knownNeuron.description]\n : [],\n links: toNullable(knownNeuron.links),\n committed_topics: toNullable(knownNeuron.committed_topics),\n },\n ],\n },\n };\n }\n\n if (\"DeregisterKnownNeuron\" in action) {\n const knownNeuron = action.DeregisterKnownNeuron;\n return {\n DeregisterKnownNeuron: {\n id: knownNeuron.id === undefined ? [] : [{ id: knownNeuron.id }],\n },\n };\n }\n\n if (\"CreateServiceNervousSystem\" in action) {\n return {\n CreateServiceNervousSystem: fromCreateServiceNervousSystem(\n action.CreateServiceNervousSystem,\n ),\n };\n }\n\n if (\"InstallCode\" in action) {\n return {\n InstallCode: fromInstallCode(action.InstallCode),\n };\n }\n\n if (\"StopOrStartCanister\" in action) {\n const stopOrStartCanister = action.StopOrStartCanister;\n return {\n StopOrStartCanister: {\n canister_id: stopOrStartCanister.canisterId\n ? [Principal.fromText(stopOrStartCanister.canisterId)]\n : [],\n action: stopOrStartCanister.action\n ? [stopOrStartCanister.action as number]\n : [],\n },\n };\n }\n\n if (\"UpdateCanisterSettings\" in action) {\n const updateCanisterSettings = action.UpdateCanisterSettings;\n return {\n UpdateCanisterSettings: {\n canister_id: updateCanisterSettings.canisterId\n ? [Principal.fromText(updateCanisterSettings.canisterId)]\n : [],\n settings: fromCanisterSettings(updateCanisterSettings.settings),\n },\n };\n }\n\n // If there's a missing action, this line will cause a compiler error.\n throw new UnsupportedValueError(action);\n};\n\nconst fromCommand = (command: ManageNeuronCommandRequest): RawCommand => {\n if (\"Split\" in command) {\n const split = command.Split;\n return {\n Split: {\n amount_e8s: split.amount,\n memo: toNullable(split.memo),\n },\n };\n }\n if (\"Follow\" in command) {\n const follow = command.Follow;\n return {\n Follow: {\n topic: follow.topic,\n followees: follow.followees.map(fromNeuronId),\n },\n };\n }\n if (\"DisburseMaturity\" in command) {\n const disburseMaturity = command.DisburseMaturity;\n return {\n DisburseMaturity: {\n to_account: disburseMaturity.toAccount\n ? [fromAccount(disburseMaturity.toAccount)]\n : [],\n to_account_identifier: nonNullish(disburseMaturity.toAccountIdentifier)\n ? [fromAccountIdentifier(disburseMaturity.toAccountIdentifier)]\n : [],\n percentage_to_disburse: disburseMaturity.percentageToDisburse,\n },\n };\n }\n if (\"ClaimOrRefresh\" in command) {\n const claimOrRefresh = command.ClaimOrRefresh;\n return {\n ClaimOrRefresh: {\n by: claimOrRefresh.by ? [fromClaimOrRefreshBy(claimOrRefresh.by)] : [],\n },\n };\n }\n if (\"Configure\" in command) {\n const configure = command.Configure;\n return {\n Configure: {\n operation: configure.operation\n ? [fromOperation(configure.operation)]\n : [],\n },\n };\n }\n if (\"RegisterVote\" in command) {\n const registerVote = command.RegisterVote;\n return {\n RegisterVote: {\n vote: registerVote.vote,\n proposal: registerVote.proposal\n ? [fromProposalId(registerVote.proposal)]\n : [],\n },\n };\n }\n if (\"DisburseToNeuron\" in command) {\n const disburseToNeuron = command.DisburseToNeuron;\n return {\n DisburseToNeuron: {\n dissolve_delay_seconds: disburseToNeuron.dissolveDelaySeconds,\n kyc_verified: disburseToNeuron.kycVerified,\n amount_e8s: disburseToNeuron.amount,\n new_controller: disburseToNeuron.newController\n ? [Principal.fromText(disburseToNeuron.newController)]\n : [],\n nonce: disburseToNeuron.nonce,\n },\n };\n }\n if (\"SetFollowing\" in command) {\n const { topicFollowing } = command.SetFollowing;\n return {\n SetFollowing: {\n topic_following: topicFollowing.length\n ? toNullable(\n topicFollowing.map(({ topic, followees }) => ({\n topic: toNullable(topic),\n followees: toNullable(followees.map(fromNeuronId)),\n })),\n )\n : [],\n },\n };\n }\n if (\"MergeMaturity\" in command) {\n const mergeMaturity = command.MergeMaturity;\n return {\n MergeMaturity: {\n percentage_to_merge: mergeMaturity.percentageToMerge,\n },\n };\n }\n if (\"StakeMaturity\" in command) {\n const { percentageToStake } = command.StakeMaturity;\n return {\n StakeMaturity: {\n percentage_to_stake: toNullable(percentageToStake),\n },\n };\n }\n if (\"MakeProposal\" in command) {\n const makeProposal = command.MakeProposal;\n return {\n MakeProposal: {\n url: makeProposal.url,\n title: [],\n action: makeProposal.action ? [fromAction(makeProposal.action)] : [],\n summary: makeProposal.summary,\n },\n };\n }\n if (\"Disburse\" in command) {\n const disburse = command.Disburse;\n return {\n Disburse: {\n to_account: disburse.toAccountId\n ? [fromAccountIdentifier(disburse.toAccountId)]\n : [],\n amount: disburse.amount ? [fromAmount(disburse.amount)] : [],\n },\n };\n }\n if (\"Spawn\" in command) {\n const spawn = command.Spawn;\n return {\n Spawn: {\n percentage_to_spawn:\n spawn.percentageToSpawn === undefined\n ? []\n : [spawn.percentageToSpawn],\n new_controller: spawn.newController\n ? [Principal.fromText(spawn.newController)]\n : [],\n nonce: [],\n },\n };\n }\n if (\"Merge\" in command) {\n const merge = command.Merge;\n return {\n Merge: {\n source_neuron_id: merge.sourceNeuronId\n ? [{ id: merge.sourceNeuronId }]\n : [],\n },\n };\n }\n\n // If there's a missing command above, this line will cause a compiler error.\n throw new UnsupportedValueError(command);\n};\n\nconst fromOperation = (operation: Operation): RawOperation => {\n if (\"RemoveHotKey\" in operation) {\n const removeHotKey = operation.RemoveHotKey;\n return {\n RemoveHotKey: {\n hot_key_to_remove:\n removeHotKey.hotKeyToRemove != null\n ? [Principal.fromText(removeHotKey.hotKeyToRemove)]\n : [],\n },\n };\n }\n if (\"AddHotKey\" in operation) {\n const addHotKey = operation.AddHotKey;\n return {\n AddHotKey: {\n new_hot_key: addHotKey.newHotKey\n ? [Principal.fromText(addHotKey.newHotKey)]\n : [],\n },\n };\n }\n if (\"StopDissolving\" in operation) {\n return {\n StopDissolving: {},\n };\n }\n if (\"StartDissolving\" in operation) {\n return {\n StartDissolving: {},\n };\n }\n if (\"IncreaseDissolveDelay\" in operation) {\n const increaseDissolveDelay = operation.IncreaseDissolveDelay;\n return {\n IncreaseDissolveDelay: {\n additional_dissolve_delay_seconds:\n increaseDissolveDelay.additionalDissolveDelaySeconds,\n },\n };\n }\n if (\"JoinCommunityFund\" in operation) {\n return operation;\n }\n if (\"LeaveCommunityFund\" in operation) {\n return operation;\n }\n if (\"SetDissolveTimestamp\" in operation) {\n const setDissolveTimestamp = operation.SetDissolveTimestamp;\n return {\n SetDissolveTimestamp: {\n dissolve_timestamp_seconds:\n setDissolveTimestamp.dissolveTimestampSeconds,\n },\n };\n }\n if (\"ChangeAutoStakeMaturity\" in operation) {\n const { requestedSettingForAutoStakeMaturity } =\n operation.ChangeAutoStakeMaturity;\n return {\n ChangeAutoStakeMaturity: {\n requested_setting_for_auto_stake_maturity:\n requestedSettingForAutoStakeMaturity,\n },\n };\n }\n if (\"SetVisibility\" in operation) {\n const setVisibility = operation.SetVisibility;\n return {\n SetVisibility: {\n visibility: toNullable(setVisibility.visibility),\n },\n };\n }\n // If there's a missing operation above, this line will cause a compiler error.\n throw new UnsupportedValueError(operation);\n};\n\nconst fromAccount = (account: Account): RawAccount => ({\n owner: toNullable(account.owner),\n subaccount: nonNullish(account.subaccount)\n ? [arrayOfNumberToUint8Array(account.subaccount)]\n : [],\n});\n\nconst fromChange = (change: Change): RawChange => {\n if (\"ToRemove\" in change) {\n return {\n ToRemove: fromNodeProvider(change.ToRemove),\n };\n }\n if (\"ToAdd\" in change) {\n return {\n ToAdd: fromNodeProvider(change.ToAdd),\n };\n }\n // If there's a missing change above, this line will cause a compiler error.\n throw new UnsupportedValueError(change);\n};\n\nconst fromNodeProvider = (nodeProvider: NodeProvider): RawNodeProvider => ({\n id: nodeProvider.id != null ? [Principal.fromText(nodeProvider.id)] : [],\n reward_account:\n nodeProvider.rewardAccount != null\n ? [fromAccountIdentifier(nodeProvider.rewardAccount)]\n : [],\n});\n\nconst fromAmount = (amount: E8s): Amount => ({\n e8s: amount,\n});\n\nexport const fromAccountIdentifier = (\n accountIdentifier: AccountIdentifierHex,\n): RawAccountIdentifier => ({\n hash: accountIdentifierToBytes(accountIdentifier),\n});\n\nconst fromNeuronsFundEconomics = (\n neuronsFundEconomics: Option<NeuronsFundEconomics>,\n): Nullable<RawNeuronsFundEconomics> => {\n if (isNullish(neuronsFundEconomics)) {\n return [];\n }\n\n const {\n maximumIcpXdrRate,\n maxTheoreticalNeuronsFundParticipationAmountXdr,\n neuronsFundMatchedFundingCurveCoefficients,\n minimumIcpXdrRate,\n } = neuronsFundEconomics;\n\n const toRawPercentage = (\n percentage: Option<Percentage>,\n ): Nullable<RawPercentage> =>\n isNullish(percentage)\n ? []\n : [\n {\n basis_points: toNullable(percentage.basisPoints),\n },\n ];\n\n const toRawDecimals = (decimal: Option<Decimal>): Nullable<RawDecimal> =>\n isNullish(decimal)\n ? []\n : [\n {\n human_readable: toNullable(decimal.humanReadable),\n },\n ];\n\n const toRawNeuronsFundMatchedFundingCurveCoefficients = (\n neuronsFundMatchedFundingCurveCoefficients: Option<NeuronsFundMatchedFundingCurveCoefficients>,\n ): Nullable<RawNeuronsFundMatchedFundingCurveCoefficients> =>\n isNullish(neuronsFundMatchedFundingCurveCoefficients)\n ? []\n : [\n {\n contribution_threshold_xdr: toRawDecimals(\n neuronsFundMatchedFundingCurveCoefficients.contributionThresholdXdr,\n ),\n full_participation_milestone_xdr: toRawDecimals(\n neuronsFundMatchedFundingCurveCoefficients.fullParticipationMilestoneXdr,\n ),\n one_third_participation_milestone_xdr: toRawDecimals(\n neuronsFundMatchedFundingCurveCoefficients.oneThirdParticipationMilestoneXdr,\n ),\n },\n ];\n\n return [\n {\n maximum_icp_xdr_rate: toRawPercentage(maximumIcpXdrRate),\n neurons_fund_matched_funding_curve_coefficients:\n toRawNeuronsFundMatchedFundingCurveCoefficients(\n neuronsFundMatchedFundingCurveCoefficients,\n ),\n minimum_icp_xdr_rate: toRawPercentage(minimumIcpXdrRate),\n max_theoretical_neurons_fund_participation_amount_xdr: toRawDecimals(\n maxTheoreticalNeuronsFundParticipationAmountXdr,\n ),\n },\n ];\n};\n\nconst fromVotingPowerEconomics = (\n votingPowerEconomics: Option<VotingPowerEconomics>,\n): Nullable<RawVotingPowerEconomics> => {\n if (isNullish(votingPowerEconomics)) {\n return [];\n }\n return [\n {\n start_reducing_voting_power_after_seconds: toNullable(\n votingPowerEconomics.startReducingVotingPowerAfterSeconds,\n ),\n neuron_minimum_dissolve_delay_to_vote_seconds: toNullable(\n votingPowerEconomics.neuronMinimumDissolveDelayToVoteSeconds,\n ),\n clear_following_after_seconds: toNullable(\n votingPowerEconomics.clearFollowingAfterSeconds,\n ),\n },\n ];\n};\n\nconst fromRewardMode = (rewardMode: RewardMode): RawRewardMode => {\n if (\"RewardToNeuron\" in rewardMode) {\n return {\n RewardToNeuron: {\n dissolve_delay_seconds: rewardMode.RewardToNeuron.dissolveDelaySeconds,\n },\n };\n }\n if (\"RewardToAccount\" in rewardMode) {\n return {\n RewardToAccount: {\n to_account:\n rewardMode.RewardToAccount.toAccount != null\n ? [fromAccountIdentifier(rewardMode.RewardToAccount.toAccount)]\n : [],\n },\n };\n }\n // If there's a missing rewardMode above, this line will cause a compiler error.\n throw new UnsupportedValueError(rewardMode);\n};\n\nconst fromClaimOrRefreshBy = (by: By): RawBy => {\n if (\"NeuronIdOrSubaccount\" in by) {\n return {\n NeuronIdOrSubaccount: {},\n };\n }\n if (\"Memo\" in by) {\n return {\n Memo: by.Memo,\n };\n }\n if (\"MemoAndController\" in by) {\n return {\n MemoAndController: {\n memo: by.MemoAndController.memo,\n controller: by.MemoAndController.controller\n ? [by.MemoAndController.controller]\n : [],\n },\n };\n }\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(by);\n};\n\nexport const fromListNeurons = ({\n neuronIds,\n includeEmptyNeurons,\n includePublicNeurons,\n neuronSubaccounts,\n pageNumber,\n pageSize,\n}: {\n neuronIds?: NeuronId[];\n includeEmptyNeurons?: boolean;\n includePublicNeurons?: boolean;\n neuronSubaccounts?: NeuronSubaccount[];\n pageNumber?: bigint;\n pageSize?: bigint;\n}): RawListNeurons => ({\n neuron_ids: BigUint64Array.from(neuronIds ?? []),\n include_neurons_readable_by_caller: neuronIds ? false : true,\n include_empty_neurons_readable_by_caller: toNullable(includeEmptyNeurons),\n include_public_neurons_in_full_neurons: toNullable(includePublicNeurons),\n neuron_subaccounts: toNullable(neuronSubaccounts),\n page_number: toNullable(pageNumber),\n page_size: toNullable(pageSize),\n});\n\nexport const fromManageNeuron = ({\n id,\n command,\n neuronIdOrSubaccount,\n}: ManageNeuronRequest): RawManageNeuron => ({\n id: id ? [fromNeuronId(id)] : [],\n command: command ? [fromCommand(command)] : [],\n neuron_id_or_subaccount: neuronIdOrSubaccount\n ? [fromNeuronIdOrSubaccount(neuronIdOrSubaccount)]\n : [],\n});\n\nexport const fromListProposalsRequest = ({\n includeRewardStatus,\n beforeProposal,\n excludeTopic,\n includeStatus,\n limit,\n includeAllManageNeuronProposals,\n omitLargeFields,\n}: ListProposalsRequest): RawListProposalInfo => ({\n include_reward_status: Int32Array.from(includeRewardStatus),\n before_proposal: beforeProposal ? [fromProposalId(beforeProposal)] : [],\n limit,\n exclude_topic: Int32Array.from(excludeTopic),\n include_all_manage_neuron_proposals:\n includeAllManageNeuronProposals !== undefined\n ? [includeAllManageNeuronProposals]\n : [],\n include_status: Int32Array.from(includeStatus),\n omit_large_fields: toNullable(omitLargeFields),\n});\n\n/* Protobuf is not supported yet\nexport const fromAddHotKeyRequest = (request: AddHotKeyRequest): PbManageNeuron => {\n const hotkeyPrincipal = new PbPrincipalId();\n hotkeyPrincipal.setSerializedId(\n Principal.fromText(request.principal).toUint8Array()\n );\n\n const hotkey = new PbManageNeuron.AddHotKey();\n hotkey.setNewHotKey(hotkeyPrincipal);\n\n const configure = new PbManageNeuron.Configure();\n configure.setAddHotKey(hotkey);\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n};\n*/\n\nexport const fromClaimOrRefreshNeuronRequest = (\n request: ClaimOrRefreshNeuronRequest,\n): RawManageNeuron => {\n const rawCommand: RawCommand = {\n ClaimOrRefresh: { by: [{ NeuronIdOrSubaccount: {} }] },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n};\n\nexport const toClaimOrRefreshRequest = ({\n memo,\n controller,\n}: {\n memo: bigint;\n controller?: Principal;\n}): RawManageNeuron => {\n const rawCommand: RawCommand = {\n ClaimOrRefresh: {\n by: [\n {\n MemoAndController: {\n controller: controller == undefined ? [] : [controller],\n memo,\n },\n },\n ],\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [],\n };\n};\n\n/* Protobuf is not supported yet\nexport const fromMergeMaturityRequest = (\n request: MergeMaturityRequest\n): PbManageNeuron => {\n const mergeMaturity = new PbManageNeuron.MergeMaturity();\n mergeMaturity.setPercentageToMerge(request.percentageToMerge);\n const manageNeuron = new PbManageNeuron();\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n manageNeuron.setMergeMaturity(mergeMaturity);\n return manageNeuron;\n};\n*/\n\n/* Protobuf is not supported yet\nexport const fromRemoveHotKeyRequest = (\n request: RemoveHotKeyRequest\n): PbManageNeuron => {\n const hotkeyPrincipal = new PbPrincipalId();\n hotkeyPrincipal.setSerializedId(\n Principal.fromText(request.principal).toUint8Array()\n );\n\n const command = new PbManageNeuron.RemoveHotKey();\n command.setHotKeyToRemove(hotkeyPrincipal);\n\n const configure = new PbManageNeuron.Configure();\n configure.setRemoveHotKey(command);\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n};\n\nexport const fromStartDissolvingRequest = (\n request: StartDissolvingRequest\n): PbManageNeuron => {\n const configure = new PbManageNeuron.Configure();\n configure.setStartDissolving(new PbManageNeuron.StartDissolving());\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n};\n\nexport const fromStopDissolvingRequest = (\n request: StopDissolvingRequest\n): PbManageNeuron => {\n const configure = new PbManageNeuron.Configure();\n configure.setStopDissolving(new PbManageNeuron.StopDissolving());\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n};\n\nexport const fromIncreaseDissolveDelayRequest = (\n request: IncreaseDissolveDelayRequest\n): PbManageNeuron => {\n const command = new PbManageNeuron.IncreaseDissolveDelay();\n command.setAdditionalDissolveDelaySeconds(\n request.additionalDissolveDelaySeconds\n );\n\n const configure = new PbManageNeuron.Configure();\n configure.setIncreaseDissolveDelay(command);\n\n const result = new PbManageNeuron();\n result.setConfigure(configure);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n result.setNeuronId(neuronId);\n\n return result;\n};\n\nexport const fromFollowRequest = (request: FollowRequest): PbManageNeuron => {\n const follow = new PbManageNeuron.Follow();\n follow.setTopic(request.topic);\n follow.setFolloweesList(\n request.followees.map((followee) => {\n const neuronId = new PbNeuronId();\n neuronId.setId(followee.toString());\n return neuronId;\n })\n );\n const manageNeuron = new PbManageNeuron();\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n manageNeuron.setFollow(follow);\n return manageNeuron;\n};\n\nexport const fromRegisterVoteRequest = (\n request: RegisterVoteRequest\n): PbManageNeuron => {\n const registerVote = new PbManageNeuron.RegisterVote();\n registerVote.setVote(request.vote);\n const proposal = new PbProposalId();\n proposal.setId(request.proposal.toString());\n registerVote.setProposal(proposal);\n const manageNeuron = new PbManageNeuron();\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n manageNeuron.setRegisterVote(registerVote);\n return manageNeuron;\n};\n\nexport const fromSpawnRequest = (request: SpawnRequest): PbManageNeuron => {\n const spawn = new PbManageNeuron.Spawn();\n\n if (request.newController) {\n const newController = new PbPrincipalId();\n newController.setSerializedId(\n Principal.fromText(request.newController).toUint8Array().slice(4)\n );\n spawn.setNewController(newController);\n }\n\n const manageNeuron = new PbManageNeuron();\n manageNeuron.setSpawn(spawn);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n return manageNeuron;\n};\n*/\n\nexport const toSplitRawRequest = ({\n neuronId,\n amount,\n memo,\n}: {\n neuronId: NeuronId;\n amount: E8s;\n memo?: bigint;\n}): RawManageNeuron => {\n const rawCommand: RawCommand = {\n Split: {\n amount_e8s: amount,\n memo: toNullable(memo),\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: neuronId } }],\n };\n};\n\n/* Protobuf is not supported yet\nexport const fromDisburseRequest = (request: DisburseRequest): PbManageNeuron => {\n const disburse = new PbManageNeuron.Disburse();\n\n if (request.toAccountId) {\n const toAccountIdentifier = new PbAccountIdentifier();\n toAccountIdentifier.setHash(\n uint8ArrayToHexString(request.toAccountId)\n );\n disburse.setToAccount(toAccountIdentifier);\n }\n\n if (request.amount != null) {\n const amount = new PbManageNeuron.Disburse.Amount();\n amount.setE8s(request.amount.toString());\n disburse.setAmount(amount);\n }\n\n const manageNeuron = new PbManageNeuron();\n manageNeuron.setDisburse(disburse);\n\n const neuronId = new PbNeuronId();\n neuronId.setId(request.neuronId.toString());\n manageNeuron.setNeuronId(neuronId);\n return manageNeuron;\n};\n*/\n\nexport const fromDisburseToNeuronRequest = (\n request: DisburseToNeuronRequest,\n): RawManageNeuron => {\n const rawCommand: RawCommand = {\n DisburseToNeuron: {\n dissolve_delay_seconds: request.dissolveDelaySeconds,\n kyc_verified: request.kycVerified,\n amount_e8s: request.amount,\n new_controller:\n request.newController != null\n ? [Principal.fromText(request.newController)]\n : [],\n nonce: request.nonce,\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n};\n\nexport const fromMakeProposalRequest = (\n request: MakeProposalRequest,\n): RawManageNeuron => {\n const rawCommand: RawCommand = {\n MakeProposal: {\n url: request.url,\n title: request.title != null ? [request.title] : [],\n summary: request.summary,\n action: [fromAction(request.action)],\n },\n };\n\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n};\n\nexport const toRegisterVoteRequest = ({\n neuronId,\n vote,\n proposalId,\n}: {\n neuronId: NeuronId;\n vote: Vote;\n proposalId: ProposalId;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n RegisterVote: {\n vote,\n proposal: [{ id: proposalId }],\n },\n },\n });\n\nexport const toMakeProposalRawRequest = (\n request: MakeProposalRequest,\n): RawManageNeuron => {\n const rawCommand: RawCommand = {\n MakeProposal: {\n url: request.url,\n title: request.title != null ? [request.title] : [],\n summary: request.summary,\n action: [fromAction(request.action)],\n },\n };\n return {\n id: [],\n command: [rawCommand],\n neuron_id_or_subaccount: [{ NeuronId: { id: request.neuronId } }],\n };\n};\n\nexport const toManageNeuronsFollowRequest = ({\n neuronId,\n topic,\n followees,\n}: FollowRequest): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n Follow: {\n topic,\n followees: followees.map((followeeId) => ({ id: followeeId })),\n },\n },\n });\n\nexport const toDisburseNeuronRequest = ({\n neuronId,\n toAccountIdentifier,\n amount,\n}: {\n neuronId: NeuronId;\n toAccountIdentifier?: AccountIdentifierClass;\n amount?: E8s;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n Disburse: {\n to_account:\n toAccountIdentifier !== undefined\n ? [toAccountIdentifier.toAccountIdentifierHash()]\n : [],\n amount: amount !== undefined ? [fromAmount(amount)] : [],\n },\n },\n });\n\nexport const toDisburseMaturityRequest = ({\n neuronId,\n percentageToDisburse,\n toAccountIdentifier,\n toAccount,\n}: {\n neuronId: NeuronId;\n percentageToDisburse: number;\n toAccountIdentifier?: AccountIdentifierHex;\n toAccount?: Account;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n DisburseMaturity: {\n percentage_to_disburse: percentageToDisburse,\n to_account: nonNullish(toAccount) ? [fromAccount(toAccount)] : [],\n to_account_identifier: nonNullish(toAccountIdentifier)\n ? [fromAccountIdentifier(toAccountIdentifier)]\n : [],\n },\n },\n });\n\nexport const toSetFollowingRequest = ({\n neuronId,\n topicFollowing,\n}: {\n neuronId: NeuronId;\n topicFollowing: Array<FolloweesForTopic>;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n SetFollowing: {\n topic_following: topicFollowing.length\n ? toNullable(\n topicFollowing.map(({ topic, followees }) => ({\n topic: toNullable(topic),\n followees: toNullable(followees.map(fromNeuronId)),\n })),\n )\n : [],\n },\n },\n });\n\nexport const toRefreshVotingPowerRequest = ({\n neuronId,\n}: {\n neuronId: NeuronId;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n RefreshVotingPower: {\n // Intentionally left blank.\n },\n },\n });\n\nexport const toMergeMaturityRequest = ({\n neuronId,\n percentageToMerge,\n}: {\n neuronId: NeuronId;\n percentageToMerge: number;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n MergeMaturity: {\n percentage_to_merge: percentageToMerge,\n },\n },\n });\n\nexport const toStakeMaturityRequest = ({\n neuronId,\n percentageToStake,\n}: {\n neuronId: NeuronId;\n percentageToStake?: number;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n StakeMaturity: {\n percentage_to_stake: toNullable(percentageToStake),\n },\n },\n });\n\nexport const toSpawnNeuronRequest = ({\n neuronId,\n percentageToSpawn,\n newController,\n nonce,\n}: {\n neuronId: NeuronId;\n percentageToSpawn?: number;\n newController?: Principal;\n nonce?: bigint;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n Spawn: {\n percentage_to_spawn:\n percentageToSpawn === undefined ? [] : [percentageToSpawn],\n new_controller: newController === undefined ? [] : [newController],\n nonce: nonce === undefined ? [] : [nonce],\n },\n },\n });\n\nexport const toAddHotkeyRequest = ({\n neuronId,\n principal,\n}: {\n neuronId: NeuronId;\n principal: Principal;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n AddHotKey: {\n new_hot_key: [principal],\n },\n },\n });\n\nexport const toRemoveHotkeyRequest = ({\n neuronId,\n principal,\n}: {\n neuronId: NeuronId;\n principal: Principal;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n RemoveHotKey: {\n hot_key_to_remove: [principal],\n },\n },\n });\n\nexport const toIncreaseDissolveDelayRequest = ({\n neuronId,\n additionalDissolveDelaySeconds,\n}: {\n neuronId: NeuronId;\n additionalDissolveDelaySeconds: number;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n IncreaseDissolveDelay: {\n additional_dissolve_delay_seconds: additionalDissolveDelaySeconds,\n },\n },\n });\n\nexport const toSetDissolveDelayRequest = ({\n neuronId,\n dissolveDelaySeconds,\n}: {\n neuronId: NeuronId;\n dissolveDelaySeconds: number;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n SetDissolveTimestamp: {\n dissolve_timestamp_seconds: BigInt(dissolveDelaySeconds),\n },\n },\n });\n\nexport const toJoinCommunityFundRequest = (\n neuronId: NeuronId,\n): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n JoinCommunityFund: {},\n },\n });\n\nexport const toAutoStakeMaturityRequest = ({\n neuronId,\n autoStake,\n}: {\n neuronId: NeuronId;\n autoStake: boolean;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n ChangeAutoStakeMaturity: {\n requested_setting_for_auto_stake_maturity: autoStake,\n },\n },\n });\n\nexport const toLeaveCommunityFundRequest = (\n neuronId: NeuronId,\n): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n LeaveCommunityFund: {},\n },\n });\n\nexport const toSetVisibilityRequest = ({\n neuronId,\n visibility,\n}: {\n neuronId: NeuronId;\n visibility: NeuronVisibility;\n}): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n SetVisibility: {\n visibility: [visibility as number],\n },\n },\n });\n\nexport const toMergeRequest = ({\n sourceNeuronId,\n targetNeuronId,\n}: {\n sourceNeuronId: NeuronId;\n targetNeuronId: NeuronId;\n}): RawManageNeuron =>\n toCommand({\n neuronId: targetNeuronId,\n command: {\n Merge: { source_neuron_id: [{ id: sourceNeuronId }] },\n },\n });\n\nexport const toStartDissolvingRequest = (neuronId: NeuronId): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n StartDissolving: {},\n },\n });\n\nexport const toStopDissolvingRequest = (neuronId: NeuronId): RawManageNeuron =>\n toConfigureOperation({\n neuronId,\n operation: {\n StopDissolving: {},\n },\n });\n\nexport const toCommand = ({\n neuronId,\n command,\n}: {\n neuronId: NeuronId;\n command: RawCommand;\n}): RawManageNeuron => ({\n id: [{ id: neuronId }],\n command: [command],\n neuron_id_or_subaccount: [],\n});\n\nexport const toConfigureOperation = ({\n neuronId,\n operation,\n}: {\n neuronId: NeuronId;\n operation: RawOperation;\n}): RawManageNeuron =>\n toCommand({\n neuronId,\n command: {\n Configure: {\n operation: [operation],\n },\n },\n });\n", "import type { AccountIdentifierHex } from \"@dfinity/ledger-icp\";\nimport {\n arrayOfNumberToUint8Array,\n asciiStringToByteArray,\n bigEndianCrc32,\n hexStringToUint8Array,\n uint8ArrayToHexString,\n} from \"@dfinity/utils\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\nimport { sha224 } from \"@noble/hashes/sha2\";\n\n// The following functions were originally made available in @dfinity/ledger-icp for domain alignment reasons.\n// Since they are only used by @dfinity/nns and potentially the NNS dapp, they have been moved to this package instead.\n\nexport const accountIdentifierToBytes = (\n accountIdentifier: AccountIdentifierHex,\n): Uint8Array => hexStringToUint8Array(accountIdentifier).subarray(4);\n\nexport const accountIdentifierFromBytes = (\n accountIdentifier: Uint8Array,\n): AccountIdentifierHex => uint8ArrayToHexString(accountIdentifier);\n\n// eslint-disable-next-line local-rules/prefer-object-params\nexport const principalToAccountIdentifier = (\n principal: Principal,\n subAccount?: Uint8Array,\n): string => {\n // Hash (sha224) the principal, the subAccount and some padding\n const padding = asciiStringToByteArray(\"\\x0Aaccount-id\");\n\n const shaObj = sha224.create();\n shaObj.update(\n arrayOfNumberToUint8Array([\n ...padding,\n ...principal.toUint8Array(),\n ...(subAccount ?? Array(32).fill(0)),\n ]),\n );\n const hash = shaObj.digest();\n\n // Prepend the checksum of the hash and convert to a hex string\n const checksum = bigEndianCrc32(hash);\n const bytes = new Uint8Array([...checksum, ...hash]);\n return uint8ArrayToHexString(bytes);\n};\n", "/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a: unknown): a is Uint8Array {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n\n/** Asserts something is positive integer. */\nexport function anumber(n: number): void {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error('positive integer expected, got ' + n);\n}\n\n/** Asserts something is Uint8Array. */\nexport function abytes(b: Uint8Array | undefined, ...lengths: number[]): void {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n\n/** Asserts something is hash */\nexport function ahash(h: IHash): void {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance: any, checkFinished = true): void {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\n\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out: any, instance: any): void {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n\n/** Generic type encompassing 8/16/32-byte arrays - but not 64-byte. */\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr: TypedArray): Uint8Array {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr: TypedArray): Uint32Array {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays: TypedArray[]): void {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr: TypedArray): DataView {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word: number, shift: number): number {\n return (word << (32 - shift)) | (word >>> shift);\n}\n\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word: number, shift: number): number {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE: boolean = /* @__PURE__ */ (() =>\n new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n\n/** The byte swap operation for uint32 */\nexport function byteSwap(word: number): number {\n return (\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff)\n );\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE: (n: number) => number = isLE\n ? (n: number) => n\n : (n: number) => byteSwap(n);\n\n/** @deprecated */\nexport const byteSwapIfBE: typeof swap8IfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr: Uint32Array): Uint32Array {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\n\nexport const swap32IfBE: (u: Uint32Array) => Uint32Array = isLE\n ? (u: Uint32Array) => u\n : byteSwap32;\n\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin: boolean = /* @__PURE__ */ (() =>\n // @ts-ignore\n typeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin) return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 } as const;\nfunction asciiToBase16(ch: number): number | undefined {\n if (ch >= asciis._0 && ch <= asciis._9) return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F) return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f) return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin) return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async (): Promise<void> => {};\n\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(\n iters: number,\n tick: number,\n cb: (i: number) => void\n): Promise<void> {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols, but ts doesn't see them: https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/** Accepted input of hash functions. Strings are converted to byte arrays. */\nexport type Input = string | Uint8Array;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/** KDFs can accept string or Uint8Array for user convenience. */\nexport type KDFInput = string | Uint8Array;\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data: KDFInput): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\ntype EmptyObj = {};\nexport function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\n/** Hash interface. */\nexport type IHash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\n\n/** For runtime check if class implements interface */\nexport abstract class Hash<T extends Hash<T>> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n abstract clone(): T;\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF<T extends Hash<T>> = Hash<T> & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\n/** Hash function */\nexport type CHash = ReturnType<typeof createHasher>;\n/** Hash function with output */\nexport type CHashO = ReturnType<typeof createOptHasher>;\n/** XOF with output */\nexport type CHashXO = ReturnType<typeof createXOFer>;\n\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher<T extends Hash<T>>(\n hashCons: () => Hash<T>\n): {\n (msg: Input): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(): Hash<T>;\n} {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function createOptHasher<H extends Hash<H>, T extends Object>(\n hashCons: (opts?: T) => Hash<H>\n): {\n (msg: Input, opts?: T): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(opts?: T): Hash<H>;\n} {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts?: T) => hashCons(opts);\n return hashC;\n}\n\nexport function createXOFer<H extends HashXOF<H>, T extends Object>(\n hashCons: (opts?: T) => HashXOF<H>\n): {\n (msg: Input, opts?: T): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(opts?: T): HashXOF<H>;\n} {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts?: T) => hashCons(opts);\n return hashC;\n}\nexport const wrapConstructor: typeof createHasher = createHasher;\nexport const wrapConstructorWithOpts: typeof createOptHasher = createOptHasher;\nexport const wrapXOFConstructorWithOpts: typeof createXOFer = createXOFer;\n\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n", "/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { type Input, Hash, abytes, aexists, aoutput, clean, createView, toBytes } from './utils.ts';\n\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(\n view: DataView,\n byteOffset: number,\n value: bigint,\n isLE: boolean\n): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/** Choice: a ? b : c */\nexport function Chi(a: number, b: number, c: number): number {\n return (a & b) ^ (~a & c);\n}\n\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a: number, b: number, c: number): number {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD<T extends HashMD<T>> extends Hash<T> {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n\n readonly blockLen: number;\n readonly outputLen: number;\n readonly padOffset: number;\n readonly isLE: boolean;\n\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(blockLen: number, outputLen: number, padOffset: number, isLE: boolean) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array): void {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest(): Uint8Array {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n", "/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from './_md.ts';\nimport * as u64 from './_u64.ts';\nimport { type CHash, clean, createHasher, rotr } from './utils.ts';\n\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD<SHA256> {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n protected A: number = SHA256_IV[0] | 0;\n protected B: number = SHA256_IV[1] | 0;\n protected C: number = SHA256_IV[2] | 0;\n protected D: number = SHA256_IV[3] | 0;\n protected E: number = SHA256_IV[4] | 0;\n protected F: number = SHA256_IV[5] | 0;\n protected G: number = SHA256_IV[6] | 0;\n protected H: number = SHA256_IV[7] | 0;\n\n constructor(outputLen: number = 32) {\n super(64, outputLen, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ): void {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean(): void {\n clean(SHA256_W);\n }\n destroy(): void {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n\nexport class SHA224 extends SHA256 {\n protected A: number = SHA224_IV[0] | 0;\n protected B: number = SHA224_IV[1] | 0;\n protected C: number = SHA224_IV[2] | 0;\n protected D: number = SHA224_IV[3] | 0;\n protected E: number = SHA224_IV[4] | 0;\n protected F: number = SHA224_IV[5] | 0;\n protected G: number = SHA224_IV[6] | 0;\n protected H: number = SHA224_IV[7] | 0;\n constructor() {\n super(28);\n }\n}\n\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\n\nexport class SHA512 extends HashMD<SHA512> {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n protected Ah: number = SHA512_IV[0] | 0;\n protected Al: number = SHA512_IV[1] | 0;\n protected Bh: number = SHA512_IV[2] | 0;\n protected Bl: number = SHA512_IV[3] | 0;\n protected Ch: number = SHA512_IV[4] | 0;\n protected Cl: number = SHA512_IV[5] | 0;\n protected Dh: number = SHA512_IV[6] | 0;\n protected Dl: number = SHA512_IV[7] | 0;\n protected Eh: number = SHA512_IV[8] | 0;\n protected El: number = SHA512_IV[9] | 0;\n protected Fh: number = SHA512_IV[10] | 0;\n protected Fl: number = SHA512_IV[11] | 0;\n protected Gh: number = SHA512_IV[12] | 0;\n protected Gl: number = SHA512_IV[13] | 0;\n protected Hh: number = SHA512_IV[14] | 0;\n protected Hl: number = SHA512_IV[15] | 0;\n\n constructor(outputLen: number = 64) {\n super(128, outputLen, 16, false);\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n protected set(\n Ah: number, Al: number, Bh: number, Bl: number, Ch: number, Cl: number, Dh: number, Dl: number,\n Eh: number, El: number, Fh: number, Fl: number, Gh: number, Gl: number, Hh: number, Hl: number\n ): void {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n protected roundClean(): void {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy(): void {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\nexport class SHA384 extends SHA512 {\n protected Ah: number = SHA384_IV[0] | 0;\n protected Al: number = SHA384_IV[1] | 0;\n protected Bh: number = SHA384_IV[2] | 0;\n protected Bl: number = SHA384_IV[3] | 0;\n protected Ch: number = SHA384_IV[4] | 0;\n protected Cl: number = SHA384_IV[5] | 0;\n protected Dh: number = SHA384_IV[6] | 0;\n protected Dl: number = SHA384_IV[7] | 0;\n protected Eh: number = SHA384_IV[8] | 0;\n protected El: number = SHA384_IV[9] | 0;\n protected Fh: number = SHA384_IV[10] | 0;\n protected Fl: number = SHA384_IV[11] | 0;\n protected Gh: number = SHA384_IV[12] | 0;\n protected Gl: number = SHA384_IV[13] | 0;\n protected Hh: number = SHA384_IV[14] | 0;\n protected Hl: number = SHA384_IV[15] | 0;\n\n constructor() {\n super(48);\n }\n}\n\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\n\nexport class SHA512_224 extends SHA512 {\n protected Ah: number = T224_IV[0] | 0;\n protected Al: number = T224_IV[1] | 0;\n protected Bh: number = T224_IV[2] | 0;\n protected Bl: number = T224_IV[3] | 0;\n protected Ch: number = T224_IV[4] | 0;\n protected Cl: number = T224_IV[5] | 0;\n protected Dh: number = T224_IV[6] | 0;\n protected Dl: number = T224_IV[7] | 0;\n protected Eh: number = T224_IV[8] | 0;\n protected El: number = T224_IV[9] | 0;\n protected Fh: number = T224_IV[10] | 0;\n protected Fl: number = T224_IV[11] | 0;\n protected Gh: number = T224_IV[12] | 0;\n protected Gl: number = T224_IV[13] | 0;\n protected Hh: number = T224_IV[14] | 0;\n protected Hl: number = T224_IV[15] | 0;\n\n constructor() {\n super(28);\n }\n}\n\nexport class SHA512_256 extends SHA512 {\n protected Ah: number = T256_IV[0] | 0;\n protected Al: number = T256_IV[1] | 0;\n protected Bh: number = T256_IV[2] | 0;\n protected Bl: number = T256_IV[3] | 0;\n protected Ch: number = T256_IV[4] | 0;\n protected Cl: number = T256_IV[5] | 0;\n protected Dh: number = T256_IV[6] | 0;\n protected Dl: number = T256_IV[7] | 0;\n protected Eh: number = T256_IV[8] | 0;\n protected El: number = T256_IV[9] | 0;\n protected Fh: number = T256_IV[10] | 0;\n protected Fl: number = T256_IV[11] | 0;\n protected Gh: number = T256_IV[12] | 0;\n protected Gl: number = T256_IV[13] | 0;\n protected Hh: number = T256_IV[14] | 0;\n protected Hl: number = T256_IV[15] | 0;\n\n constructor() {\n super(32);\n }\n}\n\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256: CHash = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224: CHash = /* @__PURE__ */ createHasher(() => new SHA224());\n\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512: CHash = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384: CHash = /* @__PURE__ */ createHasher(() => new SHA384());\n\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256: CHash = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224: CHash = /* @__PURE__ */ createHasher(() => new SHA512_224());\n", "import type { AccountIdentifierHex } from \"@dfinity/ledger-icp\";\nimport {\n fromDefinedNullable,\n fromNullable,\n isNullish,\n nonNullish,\n toNullable,\n uint8ArrayToArrayOfNumber,\n uint8ArrayToHexString,\n type Nullable,\n} from \"@dfinity/utils\";\nimport { Principal } from \"@icp-sdk/core/principal\";\n\nimport type {\n Params,\n Account as RawAccount,\n AccountIdentifier as RawAccountIdentifier,\n Action as RawAction,\n Amount as RawAmount,\n Ballot as RawBallot,\n BallotInfo as RawBallotInfo,\n By as RawBy,\n Canister as RawCanister,\n CanisterSettings as RawCanisterSettings,\n Change as RawChange,\n Command as RawCommand,\n Countries as RawCountries,\n Decimal as RawDecimal,\n DeveloperDistribution as RawDeveloperDistribution,\n DissolveState as RawDissolveState,\n Duration as RawDuration,\n Followees as RawFollowees,\n GlobalTimeOfDay as RawGlobalTimeOfDay,\n GovernanceCachedMetrics as RawGovernanceCachedMetrics,\n GovernanceParameters as RawGovernanceParameters,\n Image as RawImage,\n InitialTokenDistribution as RawInitialTokenDistribution,\n KnownNeuron as RawKnownNeuron,\n LedgerParameters as RawLedgerParameters,\n ListNeuronsResponse as RawListNeuronsResponse,\n ListProposalInfoResponse as RawListProposalInfoResponse,\n MaturityDisbursement as RawMaturityDisbursement,\n NetworkEconomics as RawNetworkEconomics,\n Neuron as RawNeuron,\n NeuronBasketConstructionParameters as RawNeuronBasketConstructionParameters,\n NeuronDistribution as RawNeuronDistribution,\n NeuronId as RawNeuronId,\n NeuronIdOrSubaccount as RawNeuronIdOrSubaccount,\n NeuronInfo as RawNeuronInfo,\n NeuronSubsetMetrics as RawNeuronSubsetMetrics,\n NeuronsFundEconomics as RawNeuronsFundEconomics,\n NeuronsFundMatchedFundingCurveCoefficients as RawNeuronsFundMatchedFundingCurveCoefficients,\n NodeProvider as RawNodeProvider,\n Operation as RawOperation,\n Percentage as RawPercentage,\n Proposal as RawProposal,\n ProposalInfo as RawProposalInfo,\n RewardMode as RawRewardMode,\n SwapDistribution as RawSwapDistribution,\n SwapParameters as RawSwapParameters,\n Tally as RawTally,\n Tokens as RawTokens,\n VotingPowerEconomics as RawVotingPowerEconomics,\n VotingRewardParameters as RawVotingRewardParameters,\n} from \"../../candid/governance\";\nimport type {\n CanisterAction,\n CanisterInstallMode,\n LogVisibility,\n NeuronType,\n NeuronVisibility,\n} from \"../../enums/governance.enums\";\nimport { UnsupportedValueError } from \"../../errors/governance.errors\";\nimport type {\n CanisterIdString,\n E8s,\n NeuronId,\n Option,\n} from \"../../types/common\";\nimport type {\n Account,\n Action,\n Ballot,\n BallotInfo,\n By,\n CanisterSettings,\n Change,\n Command,\n Countries,\n Decimal,\n DeveloperDistribution,\n DissolveState,\n Duration,\n Followees,\n GlobalTimeOfDay,\n GovernanceCachedMetrics,\n GovernanceParameters,\n Image,\n InitialTokenDistribution,\n KnownNeuron,\n LedgerParameters,\n ListProposalsResponse,\n MaturityDisbursement,\n NetworkEconomics,\n Neuron,\n NeuronBasketConstructionParameters,\n NeuronDistribution,\n NeuronIdOrSubaccount,\n NeuronInfo,\n NeuronSubsetMetrics,\n NeuronsFundEconomics,\n NeuronsFundMatchedFundingCurveCoefficients,\n NodeProvider,\n Operation,\n Percentage,\n Proposal,\n ProposalInfo,\n RewardMode,\n SwapDistribution,\n SwapParameters,\n Tally,\n Tokens,\n VotingPowerEconomics,\n VotingRewardParameters,\n} from \"../../types/governance_converters\";\nimport {\n accountIdentifierFromBytes,\n principalToAccountIdentifier,\n} from \"../../utils/account_identifier.utils\";\nimport { fromAccountIdentifier } from \"./request.converters\";\n\nexport const toNeuronInfo = ({\n neuronId,\n neuronInfo,\n rawNeuron,\n canisterId,\n}: {\n neuronId: bigint;\n neuronInfo: RawNeuronInfo;\n rawNeuron?: RawNeuron;\n canisterId: Principal;\n}): NeuronInfo => {\n const fullNeuron = rawNeuron\n ? toNeuron({ neuron: rawNeuron, canisterId })\n : undefined;\n return {\n neuronId,\n dissolveDelaySeconds: neuronInfo.dissolve_delay_seconds,\n recentBallots: neuronInfo.recent_ballots.map(toBallotInfo),\n neuronType: fromNullable(neuronInfo.neuron_type) as NeuronType | undefined,\n createdTimestampSeconds: neuronInfo.created_timestamp_seconds,\n state: neuronInfo.state,\n joinedCommunityFundTimestampSeconds: neuronInfo\n .joined_community_fund_timestamp_seconds.length\n ? neuronInfo.joined_community_fund_timestamp_seconds[0]\n : undefined,\n retrievedAtTimestampSeconds: neuronInfo.retrieved_at_timestamp_seconds,\n /** @deprecated */\n votingPower: neuronInfo.voting_power,\n votingPowerRefreshedTimestampSeconds: fromNullable(\n neuronInfo.voting_power_refreshed_timestamp_seconds,\n ),\n decidingVotingPower: fromNullable(neuronInfo.deciding_voting_power),\n potentialVotingPower: fromNullable(neuronInfo.potential_voting_power),\n ageSeconds: neuronInfo.age_seconds,\n visibility: fromNullable(neuronInfo.visibility) as\n | NeuronVisibility\n | undefined,\n fullNeuron,\n };\n};\n\nexport const toNeuron = ({\n neuron,\n canisterId,\n}: {\n neuron: RawNeuron;\n canisterId: Principal;\n}): Neuron => ({\n id: neuron.id.length ? toNeuronId(neuron.id[0]) : undefined,\n stakedMaturityE8sEquivalent: fromNullable(\n neuron.staked_maturity_e8s_equivalent,\n ),\n controller: neuron.controller.length\n ? neuron.controller[0].toString()\n : undefined,\n recentBallots: neuron.recent_ballots.map(toBallotInfo),\n neuronType: fromNullable(neuron.neuron_type) as NeuronType | undefined,\n kycVerified: neuron.kyc_verified,\n notForProfit: neuron.not_for_profit,\n cachedNeuronStake: neuron.cached_neuron_stake_e8s,\n createdTimestampSeconds: neuron.created_timestamp_seconds,\n autoStakeMaturity: fromNullable(neuron.auto_stake_maturity),\n maturityE8sEquivalent: neuron.maturity_e8s_equivalent,\n agingSinceTimestampSeconds: neuron.aging_since_timestamp_seconds,\n neuronFees: neuron.neuron_fees_e8s,\n hotKeys: neuron.hot_keys.map((p) => p.toString()),\n accountIdentifier: principalToAccountIdentifier(\n canisterId,\n Uint8Array.from(neuron.account),\n ),\n joinedCommunityFundTimestampSeconds: neuron\n .joined_community_fund_timestamp_seconds.length\n ? neuron.joined_community_fund_timestamp_seconds[0]\n : undefined,\n maturityDisbursementsInProgress: fromNullable(\n neuron.maturity_disbursements_in_progress,\n )?.map(toMaturityDisbursementInProgress),\n dissolveState: neuron.dissolve_state.length\n ? toDissolveState(neuron.dissolve_state[0])\n : undefined,\n spawnAtTimesSeconds: neuron.spawn_at_timestamp_seconds[0],\n followees: neuron.followees.map(([topic, followees]) =>\n toFollowees({ topic, followees }),\n ),\n visibility: fromNullable(neuron.visibility) as NeuronVisibility | undefined,\n votingPowerRefreshedTimestampSeconds: fromNullable(\n neuron.voting_power_refreshed_timestamp_seconds,\n ),\n potentialVotingPower: fromNullable(neuron.potential_voting_power),\n decidingVotingPower: fromNullable(neuron.deciding_voting_power),\n});\n\nexport const toRawNeuron = ({\n neuron,\n account,\n}: {\n neuron: Neuron;\n account: Uint8Array;\n}): RawNeuron => ({\n id: nonNullish(neuron.id) ? toNullable({ id: neuron.id }) : [],\n staked_maturity_e8s_equivalent: toNullable(\n neuron.stakedMaturityE8sEquivalent,\n ),\n controller: nonNullish(neuron.controller)\n ? toNullable(Principal.from(neuron.controller))\n : [],\n recent_ballots: neuron.recentBallots.map((ballot) => ({\n vote: ballot.vote,\n proposal_id: nonNullish(ballot.proposalId)\n ? toNullable({ id: ballot.proposalId })\n : [],\n })),\n kyc_verified: neuron.kycVerified,\n neuron_type: toNullable(neuron.neuronType),\n not_for_profit: neuron.notForProfit,\n cached_neuron_stake_e8s: neuron.cachedNeuronStake,\n created_timestamp_seconds: neuron.createdTimestampSeconds,\n auto_stake_maturity: toNullable(neuron.autoStakeMaturity),\n maturity_e8s_equivalent: neuron.maturityE8sEquivalent,\n aging_since_timestamp_seconds: neuron.agingSinceTimestampSeconds,\n neuron_fees_e8s: neuron.neuronFees,\n hot_keys: neuron.hotKeys.map((p) => Principal.from(p)),\n account,\n joined_community_fund_timestamp_seconds: toNullable(\n neuron.joinedCommunityFundTimestampSeconds,\n ),\n maturity_disbursements_in_progress: toNullable(\n neuron.maturityDisbursementsInProgress?.map(\n toRawMaturityDisbursementInProgress,\n ),\n ),\n dissolve_state: nonNullish(neuron.dissolveState)\n ? [neuron.dissolveState]\n : [],\n spawn_at_timestamp_seconds: toNullable(neuron.spawnAtTimesSeconds),\n followees: neuron.followees.map((followeesTopic) => [\n followeesTopic.topic as number,\n {\n followees: followeesTopic.followees.map((followee) => ({ id: followee })),\n },\n ]),\n visibility: toNullable(neuron.visibility),\n // Not kept when converted to Neuron.\n transfer: [],\n // Not kept when converted to Neuron.\n known_neuron_data: [],\n voting_power_refreshed_timestamp_seconds: toNullable(\n neuron.votingPowerRefreshedTimestampSeconds,\n ),\n potential_voting_power: toNullable(neuron.potentialVotingPower),\n deciding_voting_power: toNullable(neuron.decidingVotingPower),\n});\n\nconst toBallotInfo = ({ vote, proposal_id }: RawBallotInfo): BallotInfo => ({\n vote,\n proposalId: proposal_id.length ? toNeuronId(proposal_id[0]) : undefined,\n});\n\nconst toDissolveState = (dissolveState: RawDissolveState): DissolveState => {\n if (\"DissolveDelaySeconds\" in dissolveState) {\n return {\n DissolveDelaySeconds: dissolveState.DissolveDelaySeconds,\n };\n }\n return {\n WhenDissolvedTimestampSeconds: dissolveState.WhenDissolvedTimestampSeconds,\n };\n};\n\nconst toMaturityDisbursementInProgress = (\n maturityDisbursement: RawMaturityDisbursement,\n): MaturityDisbursement => {\n const accountToDisburseTo = fromNullable(\n maturityDisbursement.account_to_disburse_to,\n );\n return {\n timestampOfDisbursementSeconds: fromNullable(\n maturityDisbursement.timestamp_of_disbursement_seconds,\n ),\n amountE8s: fromNullable(maturityDisbursement.amount_e8s),\n accountToDisburseTo: nonNullish(accountToDisburseTo)\n ? toAccount(accountToDisburseTo)\n : undefined,\n accountIdentifierToDisburseTo: maturityDisbursement\n .account_identifier_to_disburse_to?.length\n ? toAccountIdentifier(\n maturityDisbursement.account_identifier_to_disburse_to[0],\n )\n : undefined,\n finalizeDisbursementTimestampSeconds: fromNullable(\n maturityDisbursement.finalize_disbursement_timestamp_seconds,\n ),\n };\n};\n\nconst toRawMaturityDisbursementInProgress = (\n maturityDisbursement: MaturityDisbursement,\n): RawMaturityDisbursement => ({\n timestamp_of_disbursement_seconds: toNullable(\n maturityDisbursement.timestampOfDisbursementSeconds,\n ),\n amount_e8s: toNullable(maturityDisbursement.amountE8s),\n account_to_disburse_to: nonNullish(maturityDisbursement.accountToDisburseTo)\n ? toNullable(toRawAccount(maturityDisbursement.accountToDisburseTo))\n : [],\n account_identifier_to_disburse_to: nonNullish(\n maturityDisbursement.accountIdentifierToDisburseTo,\n )\n ? [\n fromAccountIdentifier(\n maturityDisbursement.accountIdentifierToDisburseTo,\n ),\n ]\n : [],\n finalize_disbursement_timestamp_seconds: toNullable(\n maturityDisbursement.finalizeDisbursementTimestampSeconds,\n ),\n});\n\nconst toFollowees = ({\n topic,\n followees,\n}: {\n topic: number;\n followees: RawFollowees;\n}): Followees => ({\n topic,\n followees: followees.followees.map(toNeuronId),\n});\n\nconst toNeuronId = ({ id }: RawNeuronId): NeuronId => id;\n\nconst toNeuronIdOrSubaccount = (\n neuronIdOrSubaccount: RawNeuronIdOrSubaccount,\n): NeuronIdOrSubaccount => {\n if (\"NeuronId\" in neuronIdOrSubaccount) {\n return { NeuronId: neuronIdOrSubaccount.NeuronId.id };\n }\n if (\"Subaccount\" in neuronIdOrSubaccount) {\n return {\n Subaccount: uint8ArrayToArrayOfNumber(\n Uint8Array.from(neuronIdOrSubaccount.Subaccount),\n ),\n };\n }\n throw new UnsupportedValueError(neuronIdOrSubaccount);\n};\n\nconst toBallot = ({\n neuronId,\n ballot,\n}: {\n neuronId: bigint;\n ballot: RawBallot;\n}): Ballot => {\n const { vote, voting_power: votingPower } = ballot;\n\n return {\n neuronId,\n vote,\n votingPower,\n };\n};\n\nconst toAccount = ({ subaccount, owner }: RawAccount): Account => {\n const unwrappedSubaccount = fromNullable(subaccount);\n return {\n owner: fromNullable(owner),\n subaccount: nonNullish(unwrappedSubaccount)\n ? uint8ArrayToArrayOfNumber(Uint8Array.from(unwrappedSubaccount))\n : undefined,\n };\n};\n\nconst toRawAccount = ({ owner, subaccount }: Account): RawAccount => ({\n owner: toNullable(owner),\n subaccount: nonNullish(subaccount)\n ? toNullable(Uint8Array.from(subaccount))\n : [],\n});\n\nconst toProposal = ({\n title,\n url,\n action,\n summary,\n}: RawProposal): Proposal => ({\n title: title.length ? title[0] : undefined,\n url,\n action: action.length ? toAction(action[0]) : undefined,\n summary,\n});\n\nconst toAction = (action: RawAction): Action => {\n if (\"ExecuteNnsFunction\" in action) {\n const executeNnsFunction = action.ExecuteNnsFunction;\n\n return {\n ExecuteNnsFunction: {\n nnsFunctionId: executeNnsFunction.nns_function,\n },\n };\n }\n if (\"ManageNeuron\" in action) {\n const manageNeuron = action.ManageNeuron;\n return {\n ManageNeuron: {\n id: manageNeuron.id.length ? toNeuronId(manageNeuron.id[0]) : undefined,\n command: manageNeuron.command.length\n ? toCommand(manageNeuron.command[0])\n : undefined,\n neuronIdOrSubaccount: manageNeuron.neuron_id_or_subaccount.length\n ? toNeuronIdOrSubaccount(manageNeuron.neuron_id_or_subaccount[0])\n : undefined,\n },\n };\n }\n if (\"ApproveGenesisKyc\" in action) {\n const approveKyc = action.ApproveGenesisKyc;\n return {\n ApproveGenesisKyc: {\n principals: approveKyc.principals.map((p) => p.toString()),\n },\n };\n }\n if (\"ManageNetworkEconomics\" in action) {\n const networkEconomics = action.ManageNetworkEconomics;\n return {\n ManageNetworkEconomics: toNetworkEconomics(networkEconomics),\n };\n }\n if (\"RewardNodeProvider\" in action) {\n const rewardNodeProvider = action.RewardNodeProvider;\n return {\n RewardNodeProvider: {\n nodeProvider: rewardNodeProvider.node_provider.length\n ? toNodeProvider(rewardNodeProvider.node_provider[0])\n : undefined,\n amountE8s: rewardNodeProvider.amount_e8s,\n rewardMode: rewardNodeProvider.reward_mode.length\n ? toRewardMode(rewardNodeProvider.reward_mode[0])\n : undefined,\n },\n };\n }\n if (\"RewardNodeProviders\" in action) {\n const rewardNodeProviders = action.RewardNodeProviders;\n return {\n RewardNodeProviders: {\n useRegistryDerivedRewards: rewardNodeProviders\n .use_registry_derived_rewards.length\n ? rewardNodeProviders.use_registry_derived_rewards[0]\n : undefined,\n rewards: rewardNodeProviders.rewards.map((r) => ({\n nodeProvider: r.node_provider.length\n ? toNodeProvider(r.node_provider[0])\n : undefined,\n amountE8s: r.amount_e8s,\n rewardMode: r.reward_mode.length\n ? toRewardMode(r.reward_mode[0])\n : undefined,\n })),\n },\n };\n }\n if (\"AddOrRemoveNodeProvider\" in action) {\n const addOrRemoveNodeProvider = action.AddOrRemoveNodeProvider;\n return {\n AddOrRemoveNodeProvider: {\n change: addOrRemoveNodeProvider.change.length\n ? toChange(addOrRemoveNodeProvider.change[0])\n : undefined,\n },\n };\n }\n if (\"Motion\" in action) {\n const motion = action.Motion;\n return {\n Motion: {\n motionText: motion.motion_text,\n },\n };\n }\n if (\"SetDefaultFollowees\" in action) {\n const setDefaultFollowees = action.SetDefaultFollowees;\n return {\n SetDefaultFollowees: {\n defaultFollowees: setDefaultFollowees.default_followees.map(\n ([topic, followees]) => toFollowees({ topic, followees }),\n ),\n },\n };\n }\n if (\"RegisterKnownNeuron\" in action) {\n const knownNeuron = action.RegisterKnownNeuron;\n return {\n RegisterKnownNeuron: toKnownNeuron(knownNeuron),\n };\n }\n\n if (\"DeregisterKnownNeuron\" in action) {\n const { DeregisterKnownNeuron } = action;\n return {\n DeregisterKnownNeuron: {\n id: DeregisterKnownNeuron.id[0]?.id,\n },\n };\n }\n\n if (\"SetSnsTokenSwapOpenTimeWindow\" in action) {\n const { SetSnsTokenSwapOpenTimeWindow } = action;\n const request = SetSnsTokenSwapOpenTimeWindow.request?.length\n ? {\n openTimeWindow: SetSnsTokenSwapOpenTimeWindow.request[0]\n .open_time_window.length\n ? {\n startTimestampSeconds:\n SetSnsTokenSwapOpenTimeWindow.request[0].open_time_window[0]\n .start_timestamp_seconds,\n endTimestampSeconds:\n SetSnsTokenSwapOpenTimeWindow.request[0].open_time_window[0]\n .end_timestamp_seconds,\n }\n : undefined,\n }\n : undefined;\n\n const swapCanisterId = SetSnsTokenSwapOpenTimeWindow?.swap_canister_id\n .length\n ? SetSnsTokenSwapOpenTimeWindow.swap_canister_id[0].toString()\n : undefined;\n\n return {\n SetSnsTokenSwapOpenTimeWindow: {\n request,\n swapCanisterId,\n },\n };\n }\n\n if (\"OpenSnsTokenSwap\" in action) {\n const { OpenSnsTokenSwap } = action;\n const params: Params | undefined = fromNullable(OpenSnsTokenSwap.params);\n\n return {\n OpenSnsTokenSwap: {\n communityFundInvestmentE8s: fromNullable(\n OpenSnsTokenSwap.community_fund_investment_e8s,\n ),\n targetSwapCanisterId: fromNullable(\n OpenSnsTokenSwap.target_swap_canister_id,\n ),\n params: params && {\n minParticipantIcpE8s: params.min_participant_icp_e8s,\n maxIcpE8s: params.max_icp_e8s,\n swapDueTimestampSeconds: params.swap_due_timestamp_seconds,\n minParticipants: params.min_participants,\n snsTokenE8s: params.sns_token_e8s,\n maxParticipantIcpE8s: params.max_participant_icp_e8s,\n minIcpE8s: params.min_icp_e8s,\n saleDelaySeconds: fromNullable(params.sale_delay_seconds),\n neuronBasketConstructionParameters: fromNullable(\n params.neuron_basket_construction_parameters,\n ),\n maxDirectParticipationIcpE8s: fromNullable(\n params.max_direct_participation_icp_e8s,\n ),\n minDirectParticipationIcpE8s: fromNullable(\n params.min_direct_participation_icp_e8s,\n ),\n },\n },\n };\n }\n\n if (\"CreateServiceNervousSystem\" in action) {\n const createServiceNervousSystem = action.CreateServiceNervousSystem;\n return {\n CreateServiceNervousSystem: {\n url: fromNullable(createServiceNervousSystem.url),\n governanceParameters: toGovernanceParameters(\n fromNullable(createServiceNervousSystem.governance_parameters),\n ),\n fallbackControllerPrincipalIds:\n createServiceNervousSystem.fallback_controller_principal_ids.map(\n (principalId) => principalId.toString(),\n ),\n logo: toImage(fromNullable(createServiceNervousSystem.logo)),\n name: fromNullable(createServiceNervousSystem.name),\n ledgerParameters: toLedgerParameters(\n fromNullable(createServiceNervousSystem.ledger_parameters),\n ),\n description: fromNullable(createServiceNervousSystem.description),\n dappCanisters:\n (createServiceNervousSystem.dapp_canisters.map(\n toCanisterIdString,\n ) as CanisterIdString[]) ?? [],\n swapParameters: toSwapParameters(\n fromNullable(createServiceNervousSystem.swap_parameters),\n ),\n initialTokenDistribution: toInitialTokenDistribution(\n fromNullable(createServiceNervousSystem.initial_token_distribution),\n ),\n },\n };\n }\n\n if (\"InstallCode\" in action) {\n const installCode = action.InstallCode;\n return {\n InstallCode: {\n skipStoppingBeforeInstalling: fromNullable(\n installCode.skip_stopping_before_installing,\n ),\n canisterId: installCode.canister_id.length\n ? installCode.canister_id[0].toString()\n : undefined,\n installMode: fromNullable(installCode.install_mode) as\n | CanisterInstallMode\n | undefined,\n wasmModuleHash: uint8ArrayToHexString(\n fromDefinedNullable(installCode.wasm_module_hash),\n ),\n argHash: uint8ArrayToHexString(\n fromDefinedNullable(installCode.arg_hash),\n ),\n },\n };\n }\n\n if (\"StopOrStartCanister\" in action) {\n const stopOrStartCanister = action.StopOrStartCanister;\n return {\n StopOrStartCanister: {\n canisterId: stopOrStartCanister.canister_id.length\n ? stopOrStartCanister.canister_id[0].toString()\n : undefined,\n action: fromNullable(stopOrStartCanister.action) as\n | CanisterAction\n | undefined,\n },\n };\n }\n\n if (\"UpdateCanisterSettings\" in action) {\n return {\n UpdateCanisterSettings: {\n canisterId: action.UpdateCanisterSettings.canister_id.length\n ? action.UpdateCanisterSettings.canister_id[0].toString()\n : undefined,\n settings: toCanisterSettings(\n fromDefinedNullable(action.UpdateCanisterSettings.settings),\n ),\n },\n };\n }\n\n if (\"FulfillSubnetRentalRequest\" in action) {\n return {\n FulfillSubnetRentalRequest: {\n user: fromNullable(action.FulfillSubnetRentalRequest.user),\n replicaVersionId: fromNullable(\n action.FulfillSubnetRentalRequest.replica_version_id,\n ),\n nodeIds: fromNullable(action.FulfillSubnetRentalRequest.node_ids),\n },\n };\n }\n\n throw new UnsupportedValueError(action);\n};\n\nconst toTally = (tally: RawTally): Tally => ({\n no: tally.no,\n yes: tally.yes,\n total: tally.total,\n timestampSeconds: tally.timestamp_seconds,\n});\n\nconst toCommand = (command: RawCommand): Command => {\n if (\"Spawn\" in command) {\n const spawn = command.Spawn;\n return {\n Spawn: {\n newController: spawn.new_controller.length\n ? spawn.new_controller[0].toString()\n : undefined,\n percentageToSpawn: spawn.percentage_to_spawn.length\n ? spawn.percentage_to_spawn[0]\n : 0,\n },\n };\n }\n if (\"Split\" in command) {\n const split = command.Split;\n return {\n Split: {\n amount: split.amount_e8s,\n memo: split.memo?.[0],\n },\n };\n }\n if (\"Follow\" in command) {\n const follow = command.Follow;\n return {\n Follow: {\n topic: follow.topic,\n followees: follow.followees.map(toNeuronId),\n },\n };\n }\n if (\"DisburseMaturity\" in command) {\n const disburseMaturity = command.DisburseMaturity;\n return {\n DisburseMaturity: {\n toAccount: disburseMaturity.to_account.length\n ? toAccount(disburseMaturity.to_account[0])\n : undefined,\n toAccountIdentifier: disburseMaturity.to_account_identifier.length\n ? toAccountIdentifier(disburseMaturity.to_account_identifier[0])\n : undefined,\n percentageToDisburse: disburseMaturity.percentage_to_disburse,\n },\n };\n }\n if (\"ClaimOrRefresh\" in command) {\n const claimOrRefresh = command.ClaimOrRefresh;\n return {\n ClaimOrRefresh: {\n by: claimOrRefresh.by.length\n ? toClaimOrRefreshBy(claimOrRefresh.by[0])\n : undefined,\n },\n };\n }\n if (\"Configure\" in command) {\n const configure = command.Configure;\n return {\n Configure: {\n operation: configure.operation.length\n ? toOperation(configure.operation[0])\n : undefined,\n },\n };\n }\n if (\"RegisterVote\" in command) {\n const registerVote = command.RegisterVote;\n return {\n RegisterVote: {\n vote: registerVote.vote,\n proposal: registerVote.proposal.length\n ? toNeuronId(registerVote.proposal[0])\n : undefined,\n },\n };\n }\n if (\"DisburseToNeuron\" in command) {\n const disburseToNeuron = command.DisburseToNeuron;\n return {\n DisburseToNeuron: {\n dissolveDelaySeconds: disburseToNeuron.dissolve_delay_seconds,\n kycVerified: disburseToNeuron.kyc_verified,\n amount: disburseToNeuron.amount_e8s,\n newController: disburseToNeuron.new_controller.length\n ? disburseToNeuron.new_controller[0].toString()\n : undefined,\n nonce: disburseToNeuron.nonce,\n },\n };\n }\n if (\"SetFollowing\" in command) {\n const setFollowing = command.SetFollowing;\n return {\n SetFollowing: {\n topicFollowing: fromDefinedNullable(setFollowing.topic_following).map(\n ({ topic, followees }) => ({\n topic: fromDefinedNullable(topic),\n followees: fromDefinedNullable(followees).map(\n (followee) => followee.id,\n ),\n }),\n ),\n },\n };\n }\n if (\"MergeMaturity\" in command) {\n const mergeMaturity = command.MergeMaturity;\n return {\n MergeMaturity: {\n percentageToMerge: mergeMaturity.percentage_to_merge,\n },\n };\n }\n if (\"StakeMaturity\" in command) {\n const { percentage_to_stake } = command.StakeMaturity;\n return {\n StakeMaturity: {\n percentageToStake: fromNullable(percentage_to_stake),\n },\n };\n }\n if (\"MakeProposal\" in command) {\n const makeProposal = command.MakeProposal;\n return {\n MakeProposal: {\n title: makeProposal.title.length ? makeProposal.title[0] : undefined,\n url: makeProposal.url,\n action: makeProposal.action.length\n ? toAction(makeProposal.action[0])\n : undefined,\n summary: makeProposal.summary,\n },\n };\n }\n if (\"Disburse\" in command) {\n const disburse = command.Disburse;\n return {\n Disburse: {\n toAccountId: disburse.to_account.length\n ? toAccountIdentifier(disburse.to_account[0])\n : undefined,\n amount: disburse.amount.length\n ? toAmount(disburse.amount[0])\n : undefined,\n },\n };\n }\n if (\"Merge\" in command) {\n const merge = command.Merge;\n return {\n Merge: {\n sourceNeuronId: merge.source_neuron_id.length\n ? merge.source_neuron_id[0].id\n : undefined,\n },\n };\n }\n if (\"RefreshVotingPower\" in command) {\n return {\n RefreshVotingPower: {\n // Intentionally left blank.\n },\n };\n }\n\n throw new UnsupportedValueError(command);\n};\n\nconst toOperation = (operation: RawOperation): Operation => {\n if (\"RemoveHotKey\" in operation) {\n const removeHotKey = operation.RemoveHotKey;\n return {\n RemoveHotKey: {\n hotKeyToRemove: removeHotKey.hot_key_to_remove.length\n ? removeHotKey.hot_key_to_remove[0].toString()\n : undefined,\n },\n };\n }\n if (\"AddHotKey\" in operation) {\n const addHotKey = operation.AddHotKey;\n return {\n AddHotKey: {\n newHotKey: addHotKey.new_hot_key.length\n ? addHotKey.new_hot_key[0].toString()\n : undefined,\n },\n };\n }\n if (\"StopDissolving\" in operation) {\n return {\n StopDissolving: {},\n };\n }\n if (\"StartDissolving\" in operation) {\n return {\n StartDissolving: {},\n };\n }\n if (\"IncreaseDissolveDelay\" in operation) {\n const increaseDissolveDelay = operation.IncreaseDissolveDelay;\n return {\n IncreaseDissolveDelay: {\n additionalDissolveDelaySeconds:\n increaseDissolveDelay.additional_dissolve_delay_seconds,\n },\n };\n }\n if (\"JoinCommunityFund\" in operation) {\n return operation;\n }\n if (\"LeaveCommunityFund\" in operation) {\n return operation;\n }\n if (\"SetDissolveTimestamp\" in operation) {\n const setDissolveTimestamp = operation.SetDissolveTimestamp;\n return {\n SetDissolveTimestamp: {\n dissolveTimestampSeconds:\n setDissolveTimestamp.dissolve_timestamp_seconds,\n },\n };\n }\n if (\"ChangeAutoStakeMaturity\" in operation) {\n const {\n requested_setting_for_auto_stake_maturity:\n requestedSettingForAutoStakeMaturity,\n } = operation.ChangeAutoStakeMaturity;\n return {\n ChangeAutoStakeMaturity: {\n requestedSettingForAutoStakeMaturity,\n },\n };\n }\n if (\"SetVisibility\" in operation) {\n const setVisibility = operation.SetVisibility;\n return {\n SetVisibility: {\n visibility: fromNullable(setVisibility.visibility) as\n | NeuronVisibility\n | undefined,\n },\n };\n }\n throw new UnsupportedValueError(operation);\n};\n\nconst toChange = (change: RawChange): Change => {\n if (\"ToRemove\" in change) {\n return {\n ToRemove: toNodeProvider(change.ToRemove),\n };\n }\n if (\"ToAdd\" in change) {\n return {\n ToAdd: toNodeProvider(change.ToAdd),\n };\n }\n throw new UnsupportedValueError(change);\n};\n\nconst toNeuronsFundEconomics = (\n neuronsFundEconomics: Nullable<RawNeuronsFundEconomics>,\n): Option<NeuronsFundEconomics> => {\n const rawNeuronsFundEconomics = fromNullable(neuronsFundEconomics);\n\n if (isNullish(rawNeuronsFundEconomics)) {\n return undefined;\n }\n\n const {\n maximum_icp_xdr_rate,\n neurons_fund_matched_funding_curve_coefficients,\n max_theoretical_neurons_fund_participation_amount_xdr,\n minimum_icp_xdr_rate,\n } = rawNeuronsFundEconomics;\n\n const toPercentage = (\n percentage: Nullable<RawPercentage>,\n ): Option<Percentage> => {\n const rawPercentage = fromNullable(percentage);\n\n if (isNullish(rawPercentage)) {\n return undefined;\n }\n\n const { basis_points } = rawPercentage;\n\n const rawBasisPoints = fromNullable(basis_points);\n\n return nonNullish(rawBasisPoints)\n ? { basisPoints: rawBasisPoints }\n : undefined;\n };\n\n const toDecimal = (decimal: Nullable<RawDecimal>): Option<Decimal> => {\n const rawDecimal = fromNullable(decimal);\n\n if (isNullish(rawDecimal)) {\n return undefined;\n }\n\n const { human_readable } = rawDecimal;\n\n const rawHumanReadable = fromNullable(human_readable);\n\n return nonNullish(rawHumanReadable)\n ? { humanReadable: rawHumanReadable }\n : undefined;\n };\n\n const toNeuronsFundMatchedFundingCurveCoefficients = (\n neurons_fund_matched_funding_curve_coefficients:\n | []\n | [RawNeuronsFundMatchedFundingCurveCoefficients],\n ): Option<NeuronsFundMatchedFundingCurveCoefficients> => {\n const rawNeuronsFundMatchedFundingCurveCoefficients = fromNullable(\n neurons_fund_matched_funding_curve_coefficients,\n );\n\n if (isNullish(rawNeuronsFundMatchedFundingCurveCoefficients)) {\n return undefined;\n }\n\n const {\n full_participation_milestone_xdr,\n one_third_participation_milestone_xdr,\n contribution_threshold_xdr,\n } = rawNeuronsFundMatchedFundingCurveCoefficients;\n\n return {\n fullParticipationMilestoneXdr: toDecimal(\n full_participation_milestone_xdr,\n ),\n oneThirdParticipationMilestoneXdr: toDecimal(\n one_third_participation_milestone_xdr,\n ),\n contributionThresholdXdr: toDecimal(contribution_threshold_xdr),\n };\n };\n\n return {\n maximumIcpXdrRate: toPercentage(maximum_icp_xdr_rate),\n neuronsFundMatchedFundingCurveCoefficients:\n toNeuronsFundMatchedFundingCurveCoefficients(\n neurons_fund_matched_funding_curve_coefficients,\n ),\n maxTheoreticalNeuronsFundParticipationAmountXdr: toDecimal(\n max_theoretical_neurons_fund_participation_amount_xdr,\n ),\n minimumIcpXdrRate: toPercentage(minimum_icp_xdr_rate),\n };\n};\n\nconst toVotingPowerEconomics = (\n votingPowerEconomics: Nullable<RawVotingPowerEconomics>,\n): Option<VotingPowerEconomics> => {\n const rawVotingPowerEconomics = fromNullable(votingPowerEconomics);\n\n if (isNullish(rawVotingPowerEconomics)) {\n return undefined;\n }\n\n return {\n startReducingVotingPowerAfterSeconds: fromNullable(\n rawVotingPowerEconomics.start_reducing_voting_power_after_seconds,\n ),\n neuronMinimumDissolveDelayToVoteSeconds: fromNullable(\n rawVotingPowerEconomics.neuron_minimum_dissolve_delay_to_vote_seconds,\n ),\n clearFollowingAfterSeconds: fromNullable(\n rawVotingPowerEconomics.clear_following_after_seconds,\n ),\n };\n};\n\nexport const toNetworkEconomics = (\n networkEconomics: RawNetworkEconomics,\n): NetworkEconomics => ({\n neuronMinimumStake: networkEconomics.neuron_minimum_stake_e8s,\n maxProposalsToKeepPerTopic: networkEconomics.max_proposals_to_keep_per_topic,\n neuronManagementFeePerProposal:\n networkEconomics.neuron_management_fee_per_proposal_e8s,\n rejectCost: networkEconomics.reject_cost_e8s,\n transactionFee: networkEconomics.transaction_fee_e8s,\n neuronSpawnDissolveDelaySeconds:\n networkEconomics.neuron_spawn_dissolve_delay_seconds,\n minimumIcpXdrRate: networkEconomics.minimum_icp_xdr_rate,\n maximumNodeProviderRewards:\n networkEconomics.maximum_node_provider_rewards_e8s,\n neuronsFundEconomics: toNeuronsFundEconomics(\n networkEconomics.neurons_fund_economics,\n ),\n votingPowerEconomics: toVotingPowerEconomics(\n networkEconomics.voting_power_economics,\n ),\n});\n\nconst toNeuronSubsetMetrics = (\n rawNeuronSubsetMetrics: Nullable<RawNeuronSubsetMetrics>,\n): Option<NeuronSubsetMetrics> => {\n const neuronSubsetMetrics = fromNullable(rawNeuronSubsetMetrics);\n\n if (isNullish(neuronSubsetMetrics)) {\n return undefined;\n }\n\n return {\n totalMaturityE8sEquivalent: fromNullable(\n neuronSubsetMetrics.total_maturity_e8s_equivalent,\n ),\n maturityE8sEquivalentBuckets:\n neuronSubsetMetrics.maturity_e8s_equivalent_buckets,\n votingPowerBuckets: neuronSubsetMetrics.voting_power_buckets,\n totalStakedE8s: fromNullable(neuronSubsetMetrics.total_staked_e8s),\n count: fromNullable(neuronSubsetMetrics.count),\n decidingVotingPowerBuckets:\n neuronSubsetMetrics.deciding_voting_power_buckets,\n totalStakedMaturityE8sEquivalent: fromNullable(\n neuronSubsetMetrics.total_staked_maturity_e8s_equivalent,\n ),\n totalPotentialVotingPower: fromNullable(\n neuronSubsetMetrics.total_potential_voting_power,\n ),\n totalDecidingVotingPower: fromNullable(\n neuronSubsetMetrics.total_deciding_voting_power,\n ),\n stakedMaturityE8sEquivalentBuckets:\n neuronSubsetMetrics.staked_maturity_e8s_equivalent_buckets,\n stakedE8sBuckets: neuronSubsetMetrics.staked_e8s_buckets,\n totalVotingPower: fromNullable(neuronSubsetMetrics.total_voting_power),\n potentialVotingPowerBuckets:\n neuronSubsetMetrics.potential_voting_power_buckets,\n countBuckets: neuronSubsetMetrics.count_buckets,\n };\n};\n\nexport const toMetrics = (\n metrics: RawGovernanceCachedMetrics,\n): GovernanceCachedMetrics => ({\n totalMaturityE8sEquivalent: metrics.total_maturity_e8s_equivalent,\n notDissolvingNeuronsE8sBuckets: metrics.not_dissolving_neurons_e8s_buckets,\n dissolvingNeuronsStakedMaturityE8sEquivalentSum:\n metrics.dissolving_neurons_staked_maturity_e8s_equivalent_sum,\n garbageCollectableNeuronsCount: metrics.garbage_collectable_neurons_count,\n dissolvingNeuronsStakedMaturityE8sEquivalentBuckets:\n metrics.dissolving_neurons_staked_maturity_e8s_equivalent_buckets,\n neuronsWithInvalidStakeCount: metrics.neurons_with_invalid_stake_count,\n notDissolvingNeuronsCountBuckets:\n metrics.not_dissolving_neurons_count_buckets,\n ectNeuronCount: metrics.ect_neuron_count,\n totalSupplyIcp: metrics.total_supply_icp,\n neuronsWithLessThan6MonthsDissolveDelayCount:\n metrics.neurons_with_less_than_6_months_dissolve_delay_count,\n dissolvedNeuronsCount: metrics.dissolved_neurons_count,\n communityFundTotalMaturityE8sEquivalent:\n metrics.community_fund_total_maturity_e8s_equivalent,\n totalStakedE8sSeed: metrics.total_staked_e8s_seed,\n totalStakedMaturityE8sEquivalentEct:\n metrics.total_staked_maturity_e8s_equivalent_ect,\n totalStakedE8s: metrics.total_staked_e8s,\n fullyLostVotingPowerNeuronSubsetMetrics: toNeuronSubsetMetrics(\n metrics.fully_lost_voting_power_neuron_subset_metrics,\n ),\n notDissolvingNeuronsCount: metrics.not_dissolving_neurons_count,\n totalLockedE8s: metrics.total_locked_e8s,\n neuronsFundTotalActiveNeurons: metrics.neurons_fund_total_active_neurons,\n totalVotingPowerNonSelfAuthenticatingController: fromNullable(\n metrics.total_voting_power_non_self_authenticating_controller,\n ),\n totalStakedMaturityE8sEquivalent:\n metrics.total_staked_maturity_e8s_equivalent,\n notDissolvingNeuronsE8sBucketsEct:\n metrics.not_dissolving_neurons_e8s_buckets_ect,\n decliningVotingPowerNeuronSubsetMetrics: toNeuronSubsetMetrics(\n metrics.declining_voting_power_neuron_subset_metrics,\n ),\n spawningNeuronsCount: metrics.spawning_neurons_count,\n totalStakedE8sEct: metrics.total_staked_e8s_ect,\n notDissolvingNeuronsStakedMaturityE8sEquivalentSum:\n metrics.not_dissolving_neurons_staked_maturity_e8s_equivalent_sum,\n dissolvedNeuronsE8s: metrics.dissolved_neurons_e8s,\n totalStakedE8sNonSelfAuthenticatingController: fromNullable(\n metrics.total_staked_e8s_non_self_authenticating_controller,\n ),\n dissolvingNeuronsE8sBucketsSeed: metrics.dissolving_neurons_e8s_buckets_seed,\n neuronsWithLessThan6MonthsDissolveDelayE8s:\n metrics.neurons_with_less_than_6_months_dissolve_delay_e8s,\n notDissolvingNeuronsStakedMaturityE8sEquivalentBuckets:\n metrics.not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets,\n dissolvingNeuronsCountBuckets: metrics.dissolving_neurons_count_buckets,\n dissolvingNeuronsE8sBucketsEct: metrics.dissolving_neurons_e8s_buckets_ect,\n nonSelfAuthenticatingControllerNeuronSubsetMetrics: toNeuronSubsetMetrics(\n metrics.non_self_authenticating_controller_neuron_subset_metrics,\n ),\n dissolvingNeuronsCount: metrics.dissolving_neurons_count,\n dissolvingNeuronsE8sBuckets: metrics.dissolving_neurons_e8s_buckets,\n totalStakedMaturityE8sEquivalentSeed:\n metrics.total_staked_maturity_e8s_equivalent_seed,\n communityFundTotalStakedE8s: metrics.community_fund_total_staked_e8s,\n notDissolvingNeuronsE8sBucketsSeed:\n metrics.not_dissolving_neurons_e8s_buckets_seed,\n publicNeuronSubsetMetrics: toNeuronSubsetMetrics(\n metrics.public_neuron_subset_metrics,\n ),\n timestampSeconds: metrics.timestamp_seconds,\n seedNeuronCount: metrics.seed_neuron_count,\n});\n\nconst toNodeProvider = (nodeProvider: RawNodeProvider): NodeProvider => ({\n id: nodeProvider.id.length ? nodeProvider.id[0].toString() : undefined,\n rewardAccount: nodeProvider.reward_account.length\n ? toAccountIdentifier(nodeProvider.reward_account[0])\n : undefined,\n});\n\nconst toAmount = (amount: RawAmount): E8s => amount.e8s;\n\nconst toAccountIdentifier = (\n accountIdentifier: RawAccountIdentifier,\n): AccountIdentifierHex =>\n accountIdentifierFromBytes(new Uint8Array(accountIdentifier.hash));\n\nconst toRewardMode = (rewardMode: RawRewardMode): RewardMode => {\n if (\"RewardToNeuron\" in rewardMode) {\n return {\n RewardToNeuron: {\n dissolveDelaySeconds: rewardMode.RewardToNeuron.dissolve_delay_seconds,\n },\n };\n }\n if (\"RewardToAccount\" in rewardMode) {\n return {\n RewardToAccount: {\n toAccount:\n rewardMode.RewardToAccount.to_account != undefined &&\n rewardMode.RewardToAccount.to_account.length\n ? toAccountIdentifier(rewardMode.RewardToAccount.to_account[0])\n : undefined,\n },\n };\n }\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(rewardMode);\n};\n\nconst toClaimOrRefreshBy = (by: RawBy): By => {\n if (\"NeuronIdOrSubaccount\" in by) {\n return {\n NeuronIdOrSubaccount: {},\n };\n }\n if (\"Memo\" in by) {\n return {\n Memo: by.Memo,\n };\n }\n if (\"MemoAndController\" in by) {\n return {\n MemoAndController: {\n memo: by.MemoAndController.memo,\n controller: by.MemoAndController.controller.length\n ? by.MemoAndController.controller[0]\n : undefined,\n },\n };\n }\n // Ensures all cases are covered at compile-time.\n throw new UnsupportedValueError(by);\n};\n\nexport const toProposalInfo = (\n proposalInfo: RawProposalInfo,\n): ProposalInfo => ({\n id: proposalInfo.id.length ? toNeuronId(proposalInfo.id[0]) : undefined,\n ballots: proposalInfo.ballots.map((b) =>\n toBallot({ neuronId: b[0], ballot: b[1] }),\n ),\n rejectCost: proposalInfo.reject_cost_e8s,\n proposalTimestampSeconds: proposalInfo.proposal_timestamp_seconds,\n rewardEventRound: proposalInfo.reward_event_round,\n failedTimestampSeconds: proposalInfo.failed_timestamp_seconds,\n deadlineTimestampSeconds: fromNullable(\n proposalInfo.deadline_timestamp_seconds,\n ),\n decidedTimestampSeconds: proposalInfo.decided_timestamp_seconds,\n proposal: proposalInfo.proposal.length\n ? toProposal(proposalInfo.proposal[0])\n : undefined,\n proposer: proposalInfo.proposer.length\n ? toNeuronId(proposalInfo.proposer[0])\n : undefined,\n latestTally: proposalInfo.latest_tally.length\n ? toTally(proposalInfo.latest_tally[0])\n : undefined,\n executedTimestampSeconds: proposalInfo.executed_timestamp_seconds,\n topic: proposalInfo.topic,\n status: proposalInfo.status,\n rewardStatus: proposalInfo.reward_status,\n totalPotentialVotingPower: fromNullable(\n proposalInfo.total_potential_voting_power,\n ),\n});\n\nexport const toArrayOfNeuronInfo = ({\n response: { neuron_infos, full_neurons },\n canisterId,\n}: {\n response: RawListNeuronsResponse;\n canisterId: Principal;\n}): Array<NeuronInfo> =>\n neuron_infos.map(([id, neuronInfo]) =>\n toNeuronInfo({\n neuronId: id,\n neuronInfo,\n rawNeuron: full_neurons.find(\n (neuron) => neuron.id.length && neuron.id[0].id === id,\n ),\n canisterId,\n }),\n );\n\nexport const toListProposalsResponse = ({\n proposal_info,\n}: RawListProposalInfoResponse): ListProposalsResponse => ({\n proposals: proposal_info.map(toProposalInfo),\n});\n\nexport const toKnownNeuron = ({\n id,\n known_neuron_data,\n}: RawKnownNeuron): KnownNeuron => ({\n id: id[0]?.id ?? BigInt(0),\n name: known_neuron_data[0]?.name ?? \"\",\n description: known_neuron_data[0]?.description[0] ?? \"\",\n links: fromNullable(known_neuron_data[0]?.links ?? []),\n committed_topics: fromNullable(known_neuron_data[0]?.committed_topics ?? []),\n});\n\nconst toPercentage = (\n percentage: RawPercentage | undefined,\n): Percentage | undefined =>\n percentage === undefined\n ? undefined\n : {\n basisPoints: fromNullable(percentage.basis_points),\n };\n\nconst toDuration = (duration: RawDuration | undefined): Duration | undefined =>\n duration === undefined\n ? undefined\n : {\n seconds: fromNullable(duration.seconds),\n };\n\nconst toGlobalTimeOfDay = (\n time: RawGlobalTimeOfDay | undefined,\n): GlobalTimeOfDay | undefined =>\n time === undefined\n ? undefined\n : {\n secondsAfterUtcMidnight: fromNullable(time.seconds_after_utc_midnight),\n };\n\nconst toCountries = (\n countries: RawCountries | undefined,\n): Countries | undefined =>\n countries === undefined\n ? undefined\n : ({\n isoCodes: countries.iso_codes,\n } as Countries);\n\nconst toTokens = (tokens: RawTokens | undefined): Tokens | undefined =>\n tokens === undefined\n ? undefined\n : {\n e8s: fromNullable(tokens.e8s),\n };\n\nconst toCanisterIdString = (\n canister: RawCanister | undefined,\n): CanisterIdString | undefined =>\n canister === undefined\n ? undefined\n : canister.id.length === 0\n ? undefined\n : fromDefinedNullable(canister.id).toString();\n\nconst toImage = (image: RawImage | undefined): Image | undefined =>\n image === undefined\n ? undefined\n : {\n base64Encoding: fromNullable(image.base64_encoding),\n };\n\nconst toLedgerParameters = (\n ledgerParameters: RawLedgerParameters | undefined,\n): LedgerParameters | undefined =>\n ledgerParameters === undefined\n ? undefined\n : {\n transactionFee: toTokens(\n fromNullable(ledgerParameters.transaction_fee),\n ),\n tokenSymbol: fromNullable(ledgerParameters.token_symbol),\n tokenLogo: toImage(fromNullable(ledgerParameters.token_logo)),\n tokenName: fromNullable(ledgerParameters.token_name),\n };\n\nconst toVotingRewardParameters = (\n votingRewardParameters: RawVotingRewardParameters | undefined,\n): VotingRewardParameters | undefined =>\n votingRewardParameters === undefined\n ? undefined\n : {\n rewardRateTransitionDuration: toDuration(\n fromNullable(votingRewardParameters.reward_rate_transition_duration),\n ),\n initialRewardRate: toPercentage(\n fromNullable(votingRewardParameters.initial_reward_rate),\n ),\n finalRewardRate: toPercentage(\n fromNullable(votingRewardParameters.final_reward_rate),\n ),\n };\n\nconst toGovernanceParameters = (\n governanceParameters: RawGovernanceParameters | undefined,\n): GovernanceParameters | undefined =>\n governanceParameters === undefined\n ? undefined\n : {\n neuronMaximumDissolveDelayBonus: toPercentage(\n fromNullable(\n governanceParameters.neuron_maximum_dissolve_delay_bonus,\n ),\n ),\n neuronMaximumAgeForAgeBonus: toDuration(\n fromNullable(governanceParameters.neuron_maximum_age_for_age_bonus),\n ),\n neuronMaximumDissolveDelay: toDuration(\n fromNullable(governanceParameters.neuron_maximum_dissolve_delay),\n ),\n neuronMinimumDissolveDelayToVote: toDuration(\n fromNullable(\n governanceParameters.neuron_minimum_dissolve_delay_to_vote,\n ),\n ),\n neuronMaximumAgeBonus: toPercentage(\n fromNullable(governanceParameters.neuron_maximum_age_bonus),\n ),\n neuronMinimumStake: toTokens(\n fromNullable(governanceParameters.neuron_minimum_stake),\n ),\n proposalWaitForQuietDeadlineIncrease: toDuration(\n fromNullable(\n governanceParameters.proposal_wait_for_quiet_deadline_increase,\n ),\n ),\n proposalInitialVotingPeriod: toDuration(\n fromNullable(governanceParameters.proposal_initial_voting_period),\n ),\n proposalRejectionFee: toTokens(\n fromNullable(governanceParameters.proposal_rejection_fee),\n ),\n votingRewardParameters: toVotingRewardParameters(\n fromNullable(governanceParameters.voting_reward_parameters),\n ),\n };\n\nconst toNeuronBasketConstructionParameters = (\n neuronBasketConstructionParameters:\n | RawNeuronBasketConstructionParameters\n | undefined,\n): NeuronBasketConstructionParameters | undefined =>\n neuronBasketConstructionParameters === undefined\n ? undefined\n : {\n dissolveDelayInterval: toDuration(\n fromNullable(\n neuronBasketConstructionParameters.dissolve_delay_interval,\n ),\n ),\n count: fromNullable(neuronBasketConstructionParameters.count),\n };\n\nconst toSwapParameters = (\n swapParameters: RawSwapParameters | undefined,\n): SwapParameters | undefined =>\n swapParameters === undefined\n ? undefined\n : {\n minimumParticipants: fromNullable(swapParameters.minimum_participants),\n duration: toDuration(fromNullable(swapParameters.duration)),\n neuronBasketConstructionParameters:\n toNeuronBasketConstructionParameters(\n fromNullable(swapParameters.neuron_basket_construction_parameters),\n ),\n confirmationText: fromNullable(swapParameters.confirmation_text),\n maximumParticipantIcp: toTokens(\n fromNullable(swapParameters.maximum_participant_icp),\n ),\n neuronsFundInvestmentIcp: toTokens(\n fromNullable(swapParameters.neurons_fund_investment_icp),\n ),\n minimumIcp: toTokens(fromNullable(swapParameters.minimum_icp)),\n minimumParticipantIcp: toTokens(\n fromNullable(swapParameters.minimum_participant_icp),\n ),\n startTime: toGlobalTimeOfDay(fromNullable(swapParameters.start_time)),\n maximumIcp: toTokens(fromNullable(swapParameters.maximum_icp)),\n restrictedCountries: toCountries(\n fromNullable(swapParameters.restricted_countries),\n ),\n maxDirectParticipationIcp: toTokens(\n fromNullable(swapParameters.maximum_direct_participation_icp),\n ),\n minDirectParticipationIcp: toTokens(\n fromNullable(swapParameters.minimum_direct_participation_icp),\n ),\n neuronsFundParticipation: fromNullable(\n swapParameters.neurons_fund_participation,\n ),\n };\n\nconst toSwapDistribution = (\n swapDistribution: RawSwapDistribution | undefined,\n): SwapDistribution | undefined =>\n swapDistribution === undefined\n ? undefined\n : {\n total: toTokens(fromNullable(swapDistribution.total)),\n };\n\nconst toNeuronDistribution = (\n neuronDistribution: RawNeuronDistribution | undefined,\n): NeuronDistribution | undefined =>\n neuronDistribution === undefined\n ? undefined\n : {\n controller:\n neuronDistribution.controller.length === 0\n ? undefined\n : neuronDistribution.controller[0].toString(),\n dissolveDelay: toDuration(\n fromNullable(neuronDistribution.dissolve_delay),\n ),\n memo: fromNullable(neuronDistribution.memo),\n vestingPeriod: toDuration(\n fromNullable(neuronDistribution.vesting_period),\n ),\n stake: toTokens(fromNullable(neuronDistribution.stake)),\n };\n\nconst toDeveloperDistribution = (\n developerDistribution: RawDeveloperDistribution | undefined,\n): DeveloperDistribution | undefined =>\n developerDistribution === undefined\n ? undefined\n : {\n developerNeurons: developerDistribution.developer_neurons.map(\n toNeuronDistribution,\n ) as Array<NeuronDistribution>,\n };\n\nconst toInitialTokenDistribution = (\n initialTokenDistribution: RawInitialTokenDistribution | undefined,\n): InitialTokenDistribution | undefined =>\n initialTokenDistribution === undefined\n ? undefined\n : {\n treasuryDistribution: toSwapDistribution(\n fromNullable(initialTokenDistribution.treasury_distribution),\n ),\n developerDistribution: toDeveloperDistribution(\n fromNullable(initialTokenDistribution.developer_distribution),\n ),\n swapDistribution: toSwapDistribution(\n fromNullable(initialTokenDistribution.swap_distribution),\n ),\n };\n\nconst toCanisterSettings = (\n canisterSettings: RawCanisterSettings | undefined,\n): CanisterSettings | undefined =>\n canisterSettings === undefined\n ? undefined\n : {\n freezingThreshold: fromNullable(canisterSettings.freezing_threshold),\n controllers: fromNullable(\n canisterSettings.controllers,\n )?.controllers.map((controller) => controller.toString()),\n logVisibility: fromNullable(canisterSettings.log_visibility) as\n | LogVisibility\n | undefined,\n wasmMemoryLimit: fromNullable(canisterSettings.wasm_memory_limit),\n computeAllocation: fromNullable(canisterSettings.compute_allocation),\n memoryAllocation: fromNullable(canisterSettings.memory_allocation),\n wasmMemoryThreshold: fromNullable(\n canisterSettings.wasm_memory_threshold,\n ),\n };\n", "import { isNullish } from \"@dfinity/utils\";\nimport type {\n Command_1,\n _SERVICE as GovernanceService,\n ManageNeuronRequest,\n ManageNeuronResponse,\n} from \"../../candid/governance\";\nimport { GovernanceError } from \"../../errors/governance.errors\";\n\n/**\n * Checks a Manage Neuron Response for error and returns successful response data.\n *\n * @throws {@link GovernanceError}\n */\nexport const getSuccessfulCommandFromResponse = (\n response: ManageNeuronResponse,\n): Command_1 => {\n const { command } = response;\n const [data] = command;\n if (isNullish(data)) {\n throw new GovernanceError({\n error_message: \"Error updating neuron\",\n error_type: 0,\n });\n }\n\n if (\"Error\" in data) {\n throw new GovernanceError(data.Error);\n }\n return data;\n};\n\n/**\n * @throws {@link GovernanceError}\n */\nexport const manageNeuron = async ({\n request,\n service,\n}: {\n request: ManageNeuronRequest;\n service: GovernanceService;\n}): Promise<Command_1> => {\n const response = await service.manage_neuron(request);\n // We use it only to assert that there are no errors\n return getSuccessfulCommandFromResponse(response);\n};\n\n/**\n * @throws {@link GovernanceError}\n */\nexport const simulateManageNeuron = async ({\n request,\n service,\n}: {\n request: ManageNeuronRequest;\n service: GovernanceService;\n}): Promise<Command_1> => {\n const response = await service.simulate_manage_neuron(request);\n return getSuccessfulCommandFromResponse(response);\n};\n", "// Note: Canister IDs are not constant, so are not provided here.\n// The same applies to HOST.\nexport const E8S_PER_TOKEN = BigInt(100000000);\n", "import { AccountIdentifier, SubAccount } from \"@dfinity/ledger-icp\";\nimport {\n arrayOfNumberToUint8Array,\n asciiStringToByteArray,\n bigIntToUint8Array,\n} from \"@dfinity/utils\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\nimport { sha256 } from \"@noble/hashes/sha2\";\nimport { Vote } from \"../enums/governance.enums\";\nimport type {\n Ballot,\n NeuronInfo,\n ProposalInfo,\n} from \"../types/governance_converters\";\n\nconst getNeuronVoteForProposal = ({\n proposal: { ballots },\n neuron: { neuronId },\n}: {\n proposal: ProposalInfo;\n neuron: NeuronInfo;\n}): Vote | undefined =>\n ballots.find(({ neuronId: id }) => id === neuronId)?.vote;\n\n/**\n * Filter the neurons that are ineligible to vote to a proposal.\n *\n * This feature needs the ballots of the proposal to contains accurate data.\n * If the proposal has settled, as the ballots of the proposal are emptied for archive purpose, the function might return a list of ineligible neurons that are actually neurons that have not voted but would have been eligible.\n *\n * Long story short, check the status of the proposal before using this function.\n *\n * @param {neurons; proposal;} params\n * @param params.neurons The neurons to filter.\n * @param params.proposal The proposal to match against the selected neurons.\n */\nexport const ineligibleNeurons = ({\n neurons,\n proposal,\n}: {\n neurons: NeuronInfo[];\n proposal: ProposalInfo;\n}): NeuronInfo[] => {\n const { ballots, proposalTimestampSeconds } = proposal;\n\n return neurons.filter(({ createdTimestampSeconds, neuronId }: NeuronInfo) => {\n const createdSinceProposal: boolean =\n createdTimestampSeconds > proposalTimestampSeconds;\n\n const dissolveTooShort: boolean =\n ballots.find(\n ({ neuronId: ballotNeuronId }: Ballot) => ballotNeuronId === neuronId,\n ) === undefined;\n\n return createdSinceProposal || dissolveTooShort;\n });\n};\n\n/**\n * Filter the neurons that can vote for a proposal - i.e. the neurons that have not voted yet and are eligible\n *\n * @param {neurons; proposal;} params\n * @param params.neurons The neurons to filter.\n * @param params.proposal The proposal to match against the selected neurons.\n */\nexport const votableNeurons = ({\n neurons,\n proposal,\n}: {\n neurons: NeuronInfo[];\n proposal: ProposalInfo;\n}): NeuronInfo[] =>\n neurons.filter(\n (neuron: NeuronInfo) =>\n getNeuronVoteForProposal({ proposal, neuron }) === Vote.Unspecified &&\n ineligibleNeurons({ neurons, proposal }).find(\n ({ neuronId: ineligibleNeuronId }: NeuronInfo) =>\n ineligibleNeuronId === neuron.neuronId,\n ) === undefined,\n );\n\n/**\n * Filter the neurons that have voted for a proposal.\n *\n * @param {neurons; proposal;} params\n * @param params.neurons The neurons to filter.\n * @param params.proposal The proposal for which some neurons might have already voted.\n */\nexport const votedNeurons = ({\n neurons,\n proposal,\n}: {\n neurons: NeuronInfo[];\n proposal: ProposalInfo;\n}): NeuronInfo[] =>\n neurons.filter(\n (neuron: NeuronInfo) =>\n getNeuronVoteForProposal({ proposal, neuron }) !== Vote.Unspecified,\n );\n\nexport const memoToNeuronSubaccount = ({\n controller,\n memo,\n}: {\n controller: Principal;\n memo: bigint;\n}): SubAccount => {\n const padding = asciiStringToByteArray(\"neuron-stake\");\n const shaObj = sha256.create();\n shaObj.update(\n arrayOfNumberToUint8Array([\n padding.length,\n ...padding,\n ...controller.toUint8Array(),\n ...bigIntToUint8Array(memo),\n ]),\n );\n\n return SubAccount.fromBytes(shaObj.digest());\n};\n\nexport const memoToNeuronAccountIdentifier = ({\n controller,\n memo,\n governanceCanisterId,\n}: {\n controller: Principal;\n memo: bigint;\n governanceCanisterId: Principal;\n}): AccountIdentifier => {\n const subAccount = memoToNeuronSubaccount({ controller, memo });\n return AccountIdentifier.fromPrincipal({\n principal: governanceCanisterId,\n subAccount,\n });\n};\n", "import {\n assertNonNullish,\n createServices,\n type CanisterOptions,\n} from \"@dfinity/utils\";\nimport type { ActorSubclass } from \"@icp-sdk/core/agent\";\nimport type { Principal } from \"@icp-sdk/core/principal\";\nimport { idlFactory } from \"./candid/governance.idl\";\nimport type { _SERVICE as GovernanceService } from \"./candid/governance_test\";\nimport { idlFactory as certifiedIdlFactory } from \"./candid/governance_test.certified.idl\";\nimport { fromListNeurons } from \"./canisters/governance/request.converters\";\nimport { toRawNeuron } from \"./canisters/governance/response.converters\";\nimport { MAINNET_GOVERNANCE_CANISTER_ID } from \"./constants/canister_ids\";\nimport type { Neuron } from \"./types/governance_converters\";\nimport { principalToAccountIdentifier } from \"./utils/account_identifier.utils\";\n\nexport class GovernanceTestCanister {\n private constructor(\n private readonly canisterId: Principal,\n private readonly certifiedService: ActorSubclass<GovernanceService>,\n ) {\n this.canisterId = canisterId;\n this.certifiedService = certifiedService;\n }\n\n public static create(options: CanisterOptions<GovernanceService> = {}) {\n const canisterId: Principal =\n options.canisterId ?? MAINNET_GOVERNANCE_CANISTER_ID;\n\n const { certifiedService } = createServices<GovernanceService>({\n options: {\n ...options,\n canisterId,\n },\n idlFactory,\n certifiedIdlFactory,\n });\n\n return new GovernanceTestCanister(canisterId, certifiedService);\n }\n\n /**\n * Test method to update fields of a neuron.\n *\n * Only available in the governance test canister.\n */\n async updateNeuron(neuron: Neuron) {\n assertNonNullish(neuron.id);\n const rawListNeuronsRequest = fromListNeurons({ neuronIds: [neuron.id] });\n const rawListNeuronsResponse = await this.certifiedService.list_neurons(\n rawListNeuronsRequest,\n );\n const [currentNeuron] = rawListNeuronsResponse.full_neurons;\n const currentAccountIdentifier = principalToAccountIdentifier(\n this.canisterId,\n Uint8Array.from(currentNeuron.account),\n );\n if (currentAccountIdentifier !== neuron.accountIdentifier) {\n throw new Error(\"Neuron account identifier can't be changed\");\n }\n const rawNeuron = toRawNeuron({\n neuron,\n account: Uint8Array.from(currentNeuron.account),\n });\n return this.certifiedService.update_neuron(rawNeuron);\n }\n}\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const ManageNeuronRequest = IDL.Rec();\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const DateUtc = IDL.Record({\n day: IDL.Nat32,\n month: IDL.Nat32,\n year: IDL.Nat32,\n });\n const AccountIdentifier = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n id: IDL.Opt(IDL.Principal),\n reward_account: IDL.Opt(AccountIdentifier),\n });\n const RewardToNeuron = IDL.Record({ dissolve_delay_seconds: IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n RewardToNeuron: RewardToNeuron,\n RewardToAccount: RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n node_provider: IDL.Opt(NodeProvider),\n reward_mode: IDL.Opt(RewardMode),\n amount_e8s: IDL.Nat64,\n });\n const XdrConversionRate = IDL.Record({\n xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const MonthlyNodeProviderRewards = IDL.Record({\n minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n end_date: IDL.Opt(DateUtc),\n registry_version: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n start_date: IDL.Opt(DateUtc),\n timestamp: IDL.Nat64,\n rewards: IDL.Vec(RewardNodeProvider),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n maximum_node_provider_rewards_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronSubsetMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n maturity_e8s_equivalent_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_e8s: IDL.Opt(IDL.Nat64),\n count: IDL.Opt(IDL.Nat64),\n deciding_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n total_deciding_voting_power: IDL.Opt(IDL.Nat64),\n staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64),\n ),\n staked_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_voting_power: IDL.Opt(IDL.Nat64),\n potential_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const GovernanceCachedMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n garbage_collectable_neurons_count: IDL.Nat64,\n dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\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 ect_neuron_count: IDL.Nat64,\n total_supply_icp: IDL.Nat64,\n neurons_with_less_than_6_months_dissolve_delay_count: IDL.Nat64,\n dissolved_neurons_count: IDL.Nat64,\n community_fund_total_maturity_e8s_equivalent: IDL.Nat64,\n total_staked_e8s_seed: IDL.Nat64,\n total_staked_maturity_e8s_equivalent_ect: IDL.Nat64,\n total_staked_e8s: IDL.Nat64,\n fully_lost_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n not_dissolving_neurons_count: IDL.Nat64,\n total_locked_e8s: IDL.Nat64,\n neurons_fund_total_active_neurons: IDL.Nat64,\n total_voting_power_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n total_staked_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n spawning_neurons_count: IDL.Nat64,\n declining_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n total_staked_e8s_ect: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n dissolved_neurons_e8s: IDL.Nat64,\n total_staked_e8s_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n neurons_with_less_than_6_months_dissolve_delay_e8s: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n non_self_authenticating_controller_neuron_subset_metrics:\n IDL.Opt(NeuronSubsetMetrics),\n dissolving_neurons_count: IDL.Nat64,\n dissolving_neurons_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Float64)),\n total_staked_maturity_e8s_equivalent_seed: IDL.Nat64,\n community_fund_total_staked_e8s: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n public_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n timestamp_seconds: IDL.Nat64,\n seed_neuron_count: IDL.Nat64,\n });\n const VotingPowerEconomics = IDL.Record({\n start_reducing_voting_power_after_seconds: IDL.Opt(IDL.Nat64),\n neuron_minimum_dissolve_delay_to_vote_seconds: IDL.Opt(IDL.Nat64),\n clear_following_after_seconds: IDL.Opt(IDL.Nat64),\n });\n const Percentage = IDL.Record({ basis_points: IDL.Opt(IDL.Nat64) });\n const Decimal = IDL.Record({ human_readable: IDL.Opt(IDL.Text) });\n const NeuronsFundMatchedFundingCurveCoefficients = IDL.Record({\n contribution_threshold_xdr: IDL.Opt(Decimal),\n one_third_participation_milestone_xdr: IDL.Opt(Decimal),\n full_participation_milestone_xdr: IDL.Opt(Decimal),\n });\n const NeuronsFundEconomics = IDL.Record({\n maximum_icp_xdr_rate: IDL.Opt(Percentage),\n neurons_fund_matched_funding_curve_coefficients: IDL.Opt(\n NeuronsFundMatchedFundingCurveCoefficients,\n ),\n max_theoretical_neurons_fund_participation_amount_xdr: IDL.Opt(Decimal),\n minimum_icp_xdr_rate: IDL.Opt(Percentage),\n });\n const NetworkEconomics = IDL.Record({\n neuron_minimum_stake_e8s: IDL.Nat64,\n voting_power_economics: IDL.Opt(VotingPowerEconomics),\n max_proposals_to_keep_per_topic: IDL.Nat32,\n neuron_management_fee_per_proposal_e8s: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n transaction_fee_e8s: IDL.Nat64,\n neuron_spawn_dissolve_delay_seconds: IDL.Nat64,\n minimum_icp_xdr_rate: IDL.Nat64,\n maximum_node_provider_rewards_e8s: IDL.Nat64,\n neurons_fund_economics: IDL.Opt(NeuronsFundEconomics),\n });\n const RestoreAgingNeuronGroup = IDL.Record({\n count: IDL.Opt(IDL.Nat64),\n previous_total_stake_e8s: IDL.Opt(IDL.Nat64),\n current_total_stake_e8s: IDL.Opt(IDL.Nat64),\n group_type: IDL.Int32,\n });\n const RestoreAgingSummary = IDL.Record({\n groups: IDL.Vec(RestoreAgingNeuronGroup),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ProposalId = IDL.Record({ id: IDL.Nat64 });\n const RewardEvent = IDL.Record({\n rounds_since_last_distribution: IDL.Opt(IDL.Nat64),\n day_after_genesis: IDL.Nat64,\n actual_timestamp_seconds: IDL.Nat64,\n total_available_e8s_equivalent: IDL.Nat64,\n latest_round_available_e8s_equivalent: IDL.Opt(IDL.Nat64),\n distributed_e8s_equivalent: IDL.Nat64,\n settled_proposals: IDL.Vec(ProposalId),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n error_message: IDL.Text,\n error_type: IDL.Int32,\n });\n const Ballot = IDL.Record({ vote: IDL.Int32, voting_power: IDL.Nat64 });\n const SwapParticipationLimits = IDL.Record({\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuronPortion = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Vec(IDL.Principal),\n is_capped: IDL.Opt(IDL.Bool),\n maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n nns_neuron_id: IDL.Opt(NeuronId),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundSnapshot = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuronPortion),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipation = IDL.Record({\n total_maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n intended_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n swap_participation_limits: IDL.Opt(SwapParticipationLimits),\n max_neurons_fund_swap_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n neurons_fund_reserves: IDL.Opt(NeuronsFundSnapshot),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n allocated_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundData = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const CanisterStatusResultV2 = IDL.Record({\n status: IDL.Opt(IDL.Int32),\n freezing_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Vec(IDL.Principal),\n memory_size: IDL.Opt(IDL.Nat64),\n cycles: IDL.Opt(IDL.Nat64),\n idle_cycles_burned_per_day: IDL.Opt(IDL.Nat64),\n module_hash: IDL.Vec(IDL.Nat8),\n });\n const CanisterSummary = IDL.Record({\n status: IDL.Opt(CanisterStatusResultV2),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const SwapBackgroundInformation = IDL.Record({\n ledger_index_canister_summary: IDL.Opt(CanisterSummary),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n ledger_archive_canister_summaries: IDL.Vec(CanisterSummary),\n ledger_canister_summary: IDL.Opt(CanisterSummary),\n swap_canister_summary: IDL.Opt(CanisterSummary),\n governance_canister_summary: IDL.Opt(CanisterSummary),\n root_canister_summary: IDL.Opt(CanisterSummary),\n dapp_canister_summaries: IDL.Vec(CanisterSummary),\n });\n const DerivedProposalInformation = IDL.Record({\n swap_background_information: IDL.Opt(SwapBackgroundInformation),\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 TopicToFollow = IDL.Variant({\n Kyc: IDL.Null,\n ServiceNervousSystemManagement: IDL.Null,\n ApiBoundaryNodeManagement: IDL.Null,\n ApplicationCanisterManagement: IDL.Null,\n SubnetRental: IDL.Null,\n NeuronManagement: IDL.Null,\n NodeProviderRewards: IDL.Null,\n SubnetManagement: IDL.Null,\n ExchangeRate: IDL.Null,\n CatchAll: IDL.Null,\n NodeAdmin: IDL.Null,\n IcOsVersionElection: IDL.Null,\n ProtocolCanisterManagement: IDL.Null,\n NetworkEconomics: IDL.Null,\n IcOsVersionDeployment: IDL.Null,\n ParticipantManagement: IDL.Null,\n Governance: IDL.Null,\n SnsAndCommunityFund: IDL.Null,\n });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n committed_topics: IDL.Opt(IDL.Vec(IDL.Opt(TopicToFollow))),\n description: IDL.Opt(IDL.Text),\n links: IDL.Opt(IDL.Vec(IDL.Text)),\n });\n const KnownNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n });\n const FulfillSubnetRentalRequest = IDL.Record({\n user: IDL.Opt(IDL.Principal),\n replica_version_id: IDL.Opt(IDL.Text),\n node_ids: IDL.Opt(IDL.Vec(IDL.Principal)),\n });\n const Spawn = IDL.Record({\n percentage_to_spawn: IDL.Opt(IDL.Nat32),\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({\n memo: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Nat64,\n });\n const Follow = IDL.Record({\n topic: IDL.Int32,\n followees: IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n owner: IDL.Opt(IDL.Principal),\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DisburseMaturity = IDL.Record({\n to_account_identifier: IDL.Opt(AccountIdentifier),\n to_account: IDL.Opt(Account),\n percentage_to_disburse: IDL.Nat32,\n });\n const RefreshVotingPower = IDL.Record({});\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n });\n const By = IDL.Variant({\n NeuronIdOrSubaccount: IDL.Record({}),\n MemoAndController: ClaimOrRefreshNeuronFromAccount,\n Memo: IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ by: IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n hot_key_to_remove: IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ new_hot_key: IDL.Opt(IDL.Principal) });\n const 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 SetVisibility = IDL.Record({ visibility: IDL.Opt(IDL.Int32) });\n const SetDissolveTimestamp = IDL.Record({\n dissolve_timestamp_seconds: IDL.Nat64,\n });\n const Operation = IDL.Variant({\n RemoveHotKey: RemoveHotKey,\n AddHotKey: AddHotKey,\n ChangeAutoStakeMaturity: ChangeAutoStakeMaturity,\n StopDissolving: IDL.Record({}),\n StartDissolving: IDL.Record({}),\n IncreaseDissolveDelay: IncreaseDissolveDelay,\n SetVisibility: SetVisibility,\n JoinCommunityFund: IDL.Record({}),\n LeaveCommunityFund: IDL.Record({}),\n SetDissolveTimestamp: SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ operation: IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n vote: IDL.Int32,\n proposal: IDL.Opt(ProposalId),\n });\n const Merge = IDL.Record({ source_neuron_id: IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n kyc_verified: IDL.Bool,\n amount_e8s: IDL.Nat64,\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Nat64,\n });\n const FolloweesForTopic = IDL.Record({\n topic: IDL.Opt(IDL.Int32),\n followees: IDL.Opt(IDL.Vec(NeuronId)),\n });\n const SetFollowing = IDL.Record({\n topic_following: IDL.Opt(IDL.Vec(FolloweesForTopic)),\n });\n const StakeMaturity = IDL.Record({\n percentage_to_stake: IDL.Opt(IDL.Nat32),\n });\n const MergeMaturity = IDL.Record({ percentage_to_merge: IDL.Nat32 });\n const Amount = IDL.Record({ e8s: IDL.Nat64 });\n const Disburse = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n amount: IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: Proposal,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n Subaccount: IDL.Vec(IDL.Nat8),\n NeuronId: NeuronId,\n });\n const ManageNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(Command),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n });\n const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });\n const CanisterSettings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat64),\n wasm_memory_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Opt(Controllers),\n log_visibility: IDL.Opt(IDL.Int32),\n wasm_memory_limit: IDL.Opt(IDL.Nat64),\n memory_allocation: IDL.Opt(IDL.Nat64),\n compute_allocation: IDL.Opt(IDL.Nat64),\n });\n const UpdateCanisterSettings = IDL.Record({\n canister_id: IDL.Opt(IDL.Principal),\n settings: IDL.Opt(CanisterSettings),\n });\n const InstallCode = IDL.Record({\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n wasm_module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n canister_id: IDL.Opt(IDL.Principal),\n arg_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const DeregisterKnownNeuron = IDL.Record({ id: IDL.Opt(NeuronId) });\n const StopOrStartCanister = IDL.Record({\n action: IDL.Opt(IDL.Int32),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const Duration = IDL.Record({ seconds: IDL.Opt(IDL.Nat64) });\n const Tokens = IDL.Record({ e8s: IDL.Opt(IDL.Nat64) });\n const VotingRewardParameters = IDL.Record({\n reward_rate_transition_duration: IDL.Opt(Duration),\n initial_reward_rate: IDL.Opt(Percentage),\n final_reward_rate: IDL.Opt(Percentage),\n });\n const GovernanceParameters = IDL.Record({\n neuron_maximum_dissolve_delay_bonus: IDL.Opt(Percentage),\n neuron_maximum_age_for_age_bonus: IDL.Opt(Duration),\n neuron_maximum_dissolve_delay: IDL.Opt(Duration),\n neuron_minimum_dissolve_delay_to_vote: IDL.Opt(Duration),\n neuron_maximum_age_bonus: IDL.Opt(Percentage),\n neuron_minimum_stake: IDL.Opt(Tokens),\n proposal_wait_for_quiet_deadline_increase: IDL.Opt(Duration),\n proposal_initial_voting_period: IDL.Opt(Duration),\n proposal_rejection_fee: IDL.Opt(Tokens),\n voting_reward_parameters: IDL.Opt(VotingRewardParameters),\n });\n const Image = IDL.Record({ base64_encoding: IDL.Opt(IDL.Text) });\n const LedgerParameters = IDL.Record({\n transaction_fee: IDL.Opt(Tokens),\n token_symbol: IDL.Opt(IDL.Text),\n token_logo: IDL.Opt(Image),\n token_name: IDL.Opt(IDL.Text),\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval: IDL.Opt(Duration),\n count: IDL.Opt(IDL.Nat64),\n });\n const GlobalTimeOfDay = IDL.Record({\n seconds_after_utc_midnight: IDL.Opt(IDL.Nat64),\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SwapParameters = IDL.Record({\n minimum_participants: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n duration: IDL.Opt(Duration),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n confirmation_text: IDL.Opt(IDL.Text),\n maximum_participant_icp: IDL.Opt(Tokens),\n minimum_icp: IDL.Opt(Tokens),\n minimum_direct_participation_icp: IDL.Opt(Tokens),\n minimum_participant_icp: IDL.Opt(Tokens),\n start_time: IDL.Opt(GlobalTimeOfDay),\n maximum_direct_participation_icp: IDL.Opt(Tokens),\n maximum_icp: IDL.Opt(Tokens),\n neurons_fund_investment_icp: IDL.Opt(Tokens),\n restricted_countries: IDL.Opt(Countries),\n });\n const SwapDistribution = IDL.Record({ total: IDL.Opt(Tokens) });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay: IDL.Opt(Duration),\n memo: IDL.Opt(IDL.Nat64),\n vesting_period: IDL.Opt(Duration),\n stake: IDL.Opt(Tokens),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const InitialTokenDistribution = IDL.Record({\n treasury_distribution: IDL.Opt(SwapDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const CreateServiceNervousSystem = IDL.Record({\n url: IDL.Opt(IDL.Text),\n governance_parameters: IDL.Opt(GovernanceParameters),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n logo: IDL.Opt(Image),\n name: IDL.Opt(IDL.Text),\n ledger_parameters: IDL.Opt(LedgerParameters),\n description: IDL.Opt(IDL.Text),\n dapp_canisters: IDL.Vec(Canister),\n swap_parameters: IDL.Opt(SwapParameters),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n });\n const ExecuteNnsFunction = IDL.Record({\n nns_function: IDL.Int32,\n payload: IDL.Vec(IDL.Nat8),\n });\n const NeuronBasketConstructionParameters_1 = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Params = IDL.Record({\n min_participant_icp_e8s: IDL.Nat64,\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters_1,\n ),\n max_icp_e8s: IDL.Nat64,\n swap_due_timestamp_seconds: IDL.Nat64,\n min_participants: IDL.Nat32,\n sns_token_e8s: IDL.Nat64,\n sale_delay_seconds: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Nat64,\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_icp_e8s: IDL.Nat64,\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const OpenSnsTokenSwap = IDL.Record({\n community_fund_investment_e8s: IDL.Opt(IDL.Nat64),\n target_swap_canister_id: IDL.Opt(IDL.Principal),\n params: IDL.Opt(Params),\n });\n const TimeWindow = IDL.Record({\n start_timestamp_seconds: IDL.Nat64,\n end_timestamp_seconds: IDL.Nat64,\n });\n const SetOpenTimeWindowRequest = IDL.Record({\n open_time_window: IDL.Opt(TimeWindow),\n });\n const SetSnsTokenSwapOpenTimeWindow = IDL.Record({\n request: IDL.Opt(SetOpenTimeWindowRequest),\n swap_canister_id: IDL.Opt(IDL.Principal),\n });\n const SetDefaultFollowees = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n use_registry_derived_rewards: IDL.Opt(IDL.Bool),\n rewards: IDL.Vec(RewardNodeProvider),\n });\n const Principals = IDL.Record({ principals: IDL.Vec(IDL.Principal) });\n const Change = IDL.Variant({\n ToRemove: NodeProvider,\n ToAdd: NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ change: IDL.Opt(Change) });\n const Motion = IDL.Record({ motion_text: IDL.Text });\n const Action = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuron,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCode,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n OpenSnsTokenSwap: OpenSnsTokenSwap,\n SetSnsTokenSwapOpenTimeWindow: SetSnsTokenSwapOpenTimeWindow,\n SetDefaultFollowees: SetDefaultFollowees,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n Proposal.fill(\n IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(Action),\n summary: IDL.Text,\n }),\n );\n const WaitForQuietState = IDL.Record({\n current_deadline_timestamp_seconds: IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n id: IDL.Opt(ProposalId),\n topic: IDL.Opt(IDL.Int32),\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n failed_timestamp_seconds: IDL.Nat64,\n neurons_fund_data: IDL.Opt(NeuronsFundData),\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n sns_token_swap_lifecycle: IDL.Opt(IDL.Int32),\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n wait_for_quiet_state: IDL.Opt(WaitForQuietState),\n executed_timestamp_seconds: IDL.Nat64,\n original_total_community_fund_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n });\n const Command_2 = IDL.Variant({\n Spawn: NeuronId,\n Split: Split,\n Configure: Configure,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SyncCommand: IDL.Record({}),\n ClaimOrRefreshNeuron: ClaimOrRefresh,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n command: IDL.Opt(Command_2),\n timestamp: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(ProposalId),\n });\n const MaturityDisbursement = IDL.Record({\n account_identifier_to_disburse_to: IDL.Opt(AccountIdentifier),\n timestamp_of_disbursement_seconds: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Opt(IDL.Nat64),\n account_to_disburse_to: IDL.Opt(Account),\n finalize_disbursement_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n maturity_disbursements_in_progress: IDL.Opt(IDL.Vec(MaturityDisbursement)),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const Governance = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n most_recent_monthly_node_provider_rewards: IDL.Opt(\n MonthlyNodeProviderRewards,\n ),\n maturity_modulation_last_updated_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n wait_for_quiet_threshold_seconds: IDL.Nat64,\n metrics: IDL.Opt(GovernanceCachedMetrics),\n neuron_management_voting_period_seconds: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n cached_daily_maturity_modulation_basis_points: IDL.Opt(IDL.Int32),\n economics: IDL.Opt(NetworkEconomics),\n restore_aging_summary: IDL.Opt(RestoreAgingSummary),\n spawning_neurons: IDL.Opt(IDL.Bool),\n latest_reward_event: IDL.Opt(RewardEvent),\n to_claim_transfers: IDL.Vec(NeuronStakeTransfer),\n short_voting_period_seconds: IDL.Nat64,\n proposals: IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n in_flight_commands: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n neurons: IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n genesis_timestamp_seconds: IDL.Nat64,\n });\n const Result = IDL.Variant({ Ok: IDL.Null, Err: GovernanceError });\n const Result_1 = IDL.Variant({\n Error: GovernanceError,\n NeuronId: NeuronId,\n });\n const ClaimOrRefreshNeuronFromAccountResponse = IDL.Record({\n result: IDL.Opt(Result_1),\n });\n const Result_2 = IDL.Variant({ Ok: Neuron, Err: GovernanceError });\n const Result_3 = IDL.Variant({\n Ok: GovernanceCachedMetrics,\n Err: GovernanceError,\n });\n const Result_4 = IDL.Variant({\n Ok: MonthlyNodeProviderRewards,\n Err: GovernanceError,\n });\n const GetNeuronIndexRequest = IDL.Record({\n page_size: IDL.Opt(IDL.Nat32),\n exclusive_start_neuron_id: IDL.Opt(NeuronId),\n });\n const NeuronInfo = IDL.Record({\n id: IDL.Opt(NeuronId),\n dissolve_delay_seconds: IDL.Nat64,\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n created_timestamp_seconds: IDL.Nat64,\n state: IDL.Int32,\n stake_e8s: IDL.Nat64,\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n retrieved_at_timestamp_seconds: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n voting_power: IDL.Nat64,\n age_seconds: IDL.Nat64,\n });\n const NeuronIndexData = IDL.Record({ neurons: IDL.Vec(NeuronInfo) });\n const GetNeuronIndexResult = IDL.Variant({\n Ok: NeuronIndexData,\n Err: GovernanceError,\n });\n const Result_5 = IDL.Variant({ Ok: NeuronInfo, Err: GovernanceError });\n const GetNeuronsFundAuditInfoRequest = IDL.Record({\n nns_proposal_id: IDL.Opt(ProposalId),\n });\n const NeuronsFundAuditInfo = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const Ok = IDL.Record({\n neurons_fund_audit_info: IDL.Opt(NeuronsFundAuditInfo),\n });\n const Result_6 = IDL.Variant({ Ok: Ok, Err: GovernanceError });\n const GetNeuronsFundAuditInfoResponse = IDL.Record({\n result: IDL.Opt(Result_6),\n });\n const Result_7 = IDL.Variant({\n Ok: NodeProvider,\n Err: GovernanceError,\n });\n const ProposalInfo = IDL.Record({\n id: IDL.Opt(ProposalId),\n status: IDL.Int32,\n topic: IDL.Int32,\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n deadline_timestamp_seconds: IDL.Opt(IDL.Nat64),\n failed_timestamp_seconds: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n reward_status: IDL.Int32,\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n executed_timestamp_seconds: IDL.Nat64,\n });\n const ListKnownNeuronsResponse = IDL.Record({\n known_neurons: IDL.Vec(KnownNeuron),\n });\n const ListNeuronVotesRequest = IDL.Record({\n before_proposal: IDL.Opt(ProposalId),\n limit: IDL.Opt(IDL.Nat64),\n neuron_id: IDL.Opt(NeuronId),\n });\n const Vote = IDL.Variant({\n No: IDL.Null,\n Yes: IDL.Null,\n Unspecified: IDL.Null,\n });\n const NeuronVote = IDL.Record({\n vote: IDL.Opt(Vote),\n proposal_id: IDL.Opt(ProposalId),\n });\n const ListNeuronVotesResponse = IDL.Variant({\n Ok: IDL.Record({\n votes: IDL.Opt(IDL.Vec(NeuronVote)),\n all_finalized_before_proposal: IDL.Opt(ProposalId),\n }),\n Err: GovernanceError,\n });\n const NeuronSubaccount = IDL.Record({ subaccount: IDL.Vec(IDL.Nat8) });\n const ListNeurons = IDL.Record({\n page_size: IDL.Opt(IDL.Nat64),\n include_public_neurons_in_full_neurons: IDL.Opt(IDL.Bool),\n neuron_ids: IDL.Vec(IDL.Nat64),\n page_number: IDL.Opt(IDL.Nat64),\n include_empty_neurons_readable_by_caller: IDL.Opt(IDL.Bool),\n neuron_subaccounts: IDL.Opt(IDL.Vec(NeuronSubaccount)),\n include_neurons_readable_by_caller: IDL.Bool,\n });\n const ListNeuronsResponse = IDL.Record({\n neuron_infos: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInfo)),\n full_neurons: IDL.Vec(Neuron),\n total_pages_available: IDL.Opt(IDL.Nat64),\n });\n const DateRangeFilter = IDL.Record({\n start_timestamp_seconds: IDL.Opt(IDL.Nat64),\n end_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ListNodeProviderRewardsRequest = IDL.Record({\n date_filter: IDL.Opt(DateRangeFilter),\n });\n const ListNodeProviderRewardsResponse = IDL.Record({\n rewards: IDL.Vec(MonthlyNodeProviderRewards),\n });\n const ListNodeProvidersResponse = IDL.Record({\n node_providers: IDL.Vec(NodeProvider),\n });\n const ListProposalInfoRequest = IDL.Record({\n include_reward_status: IDL.Vec(IDL.Int32),\n omit_large_fields: IDL.Opt(IDL.Bool),\n before_proposal: IDL.Opt(ProposalId),\n limit: IDL.Nat32,\n exclude_topic: IDL.Vec(IDL.Int32),\n include_all_manage_neuron_proposals: IDL.Opt(IDL.Bool),\n include_status: IDL.Vec(IDL.Int32),\n });\n const ListProposalInfoResponse = IDL.Record({\n proposal_info: IDL.Vec(ProposalInfo),\n });\n const InstallCodeRequest = IDL.Record({\n arg: IDL.Opt(IDL.Vec(IDL.Nat8)),\n wasm_module: IDL.Opt(IDL.Vec(IDL.Nat8)),\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n canister_id: IDL.Opt(IDL.Principal),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const ProposalActionRequest = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuronRequest,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCodeRequest,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n const MakeProposalRequest = IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(ProposalActionRequest),\n summary: IDL.Text,\n });\n const ManageNeuronCommandRequest = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: MakeProposalRequest,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n ManageNeuronRequest.fill(\n IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(ManageNeuronCommandRequest),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n }),\n );\n const SpawnResponse = IDL.Record({ created_neuron_id: IDL.Opt(NeuronId) });\n const DisburseMaturityResponse = IDL.Record({\n amount_disbursed_e8s: IDL.Opt(IDL.Nat64),\n });\n const RefreshVotingPowerResponse = IDL.Record({});\n const ClaimOrRefreshResponse = IDL.Record({\n refreshed_neuron_id: IDL.Opt(NeuronId),\n });\n const MergeResponse = IDL.Record({\n target_neuron: IDL.Opt(Neuron),\n source_neuron: IDL.Opt(Neuron),\n target_neuron_info: IDL.Opt(NeuronInfo),\n source_neuron_info: IDL.Opt(NeuronInfo),\n });\n const SetFollowingResponse = IDL.Record({});\n const MakeProposalResponse = IDL.Record({\n message: IDL.Opt(IDL.Text),\n proposal_id: IDL.Opt(ProposalId),\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 Spawn: SpawnResponse,\n Split: SpawnResponse,\n Follow: IDL.Record({}),\n DisburseMaturity: DisburseMaturityResponse,\n RefreshVotingPower: RefreshVotingPowerResponse,\n ClaimOrRefresh: ClaimOrRefreshResponse,\n Configure: IDL.Record({}),\n RegisterVote: IDL.Record({}),\n Merge: MergeResponse,\n DisburseToNeuron: SpawnResponse,\n SetFollowing: SetFollowingResponse,\n MakeProposal: MakeProposalResponse,\n StakeMaturity: StakeMaturityResponse,\n MergeMaturity: MergeMaturityResponse,\n Disburse: DisburseResponse,\n });\n const ManageNeuronResponse = IDL.Record({ command: IDL.Opt(Command_1) });\n const Committed = IDL.Record({\n total_direct_contribution_icp_e8s: IDL.Opt(IDL.Nat64),\n total_neurons_fund_contribution_icp_e8s: IDL.Opt(IDL.Nat64),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const Result_8 = IDL.Variant({\n Committed: Committed,\n Aborted: IDL.Record({}),\n });\n const SettleCommunityFundParticipation = IDL.Record({\n result: IDL.Opt(Result_8),\n open_sns_token_swap_proposal_id: IDL.Opt(IDL.Nat64),\n });\n const Committed_1 = IDL.Record({\n total_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n total_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const Result_9 = IDL.Variant({\n Committed: Committed_1,\n Aborted: IDL.Record({}),\n });\n const SettleNeuronsFundParticipationRequest = IDL.Record({\n result: IDL.Opt(Result_9),\n nns_proposal_id: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuron = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Opt(Principals),\n is_capped: IDL.Opt(IDL.Bool),\n nns_neuron_id: IDL.Opt(IDL.Nat64),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const Ok_1 = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuron),\n });\n const Result_10 = IDL.Variant({ Ok: Ok_1, Err: GovernanceError });\n const SettleNeuronsFundParticipationResponse = IDL.Record({\n result: IDL.Opt(Result_10),\n });\n const UpdateNodeProvider = IDL.Record({\n reward_account: IDL.Opt(AccountIdentifier),\n });\n\n return IDL.Service({\n claim_gtc_neurons: IDL.Func(\n [IDL.Principal, IDL.Vec(NeuronId)],\n [Result],\n [],\n ),\n claim_or_refresh_neuron_from_account: IDL.Func(\n [ClaimOrRefreshNeuronFromAccount],\n [ClaimOrRefreshNeuronFromAccountResponse],\n [],\n ),\n get_build_metadata: IDL.Func([], [IDL.Text], []),\n get_full_neuron: IDL.Func([IDL.Nat64], [Result_2], []),\n get_full_neuron_by_id_or_subaccount: IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_2],\n [],\n ),\n get_latest_reward_event: IDL.Func([], [RewardEvent], []),\n get_metrics: IDL.Func([], [Result_3], []),\n get_monthly_node_provider_rewards: IDL.Func([], [Result_4], []),\n get_most_recent_monthly_node_provider_rewards: IDL.Func(\n [],\n [IDL.Opt(MonthlyNodeProviderRewards)],\n [],\n ),\n get_network_economics_parameters: IDL.Func([], [NetworkEconomics], []),\n get_neuron_ids: IDL.Func([], [IDL.Vec(IDL.Nat64)], []),\n get_neuron_index: IDL.Func(\n [GetNeuronIndexRequest],\n [GetNeuronIndexResult],\n [],\n ),\n get_neuron_info: IDL.Func([IDL.Nat64], [Result_5], []),\n get_neuron_info_by_id_or_subaccount: IDL.Func(\n [NeuronIdOrSubaccount],\n [Result_5],\n [],\n ),\n get_neurons_fund_audit_info: IDL.Func(\n [GetNeuronsFundAuditInfoRequest],\n [GetNeuronsFundAuditInfoResponse],\n [],\n ),\n get_node_provider_by_caller: IDL.Func([IDL.Null], [Result_7], []),\n get_pending_proposals: IDL.Func([], [IDL.Vec(ProposalInfo)], []),\n get_proposal_info: IDL.Func([IDL.Nat64], [IDL.Opt(ProposalInfo)], []),\n get_restore_aging_summary: IDL.Func([], [RestoreAgingSummary], []),\n list_known_neurons: IDL.Func([], [ListKnownNeuronsResponse], []),\n list_neuron_votes: IDL.Func(\n [ListNeuronVotesRequest],\n [ListNeuronVotesResponse],\n [],\n ),\n list_neurons: IDL.Func([ListNeurons], [ListNeuronsResponse], []),\n list_node_provider_rewards: IDL.Func(\n [ListNodeProviderRewardsRequest],\n [ListNodeProviderRewardsResponse],\n [],\n ),\n list_node_providers: IDL.Func([], [ListNodeProvidersResponse], []),\n list_proposals: IDL.Func(\n [ListProposalInfoRequest],\n [ListProposalInfoResponse],\n [],\n ),\n manage_neuron: IDL.Func([ManageNeuronRequest], [ManageNeuronResponse], []),\n settle_community_fund_participation: IDL.Func(\n [SettleCommunityFundParticipation],\n [Result],\n [],\n ),\n settle_neurons_fund_participation: IDL.Func(\n [SettleNeuronsFundParticipationRequest],\n [SettleNeuronsFundParticipationResponse],\n [],\n ),\n simulate_manage_neuron: IDL.Func(\n [ManageNeuronRequest],\n [ManageNeuronResponse],\n [],\n ),\n transfer_gtc_neuron: IDL.Func([NeuronId, NeuronId], [Result], []),\n update_neuron: IDL.Func([Neuron], [IDL.Opt(GovernanceError)], []),\n update_node_provider: IDL.Func([UpdateNodeProvider], [Result], []),\n });\n};\n\nexport const init = ({ IDL }) => {\n const Proposal = IDL.Rec();\n const NeuronId = IDL.Record({ id: IDL.Nat64 });\n const Followees = IDL.Record({ followees: IDL.Vec(NeuronId) });\n const DateUtc = IDL.Record({\n day: IDL.Nat32,\n month: IDL.Nat32,\n year: IDL.Nat32,\n });\n const AccountIdentifier = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const NodeProvider = IDL.Record({\n id: IDL.Opt(IDL.Principal),\n reward_account: IDL.Opt(AccountIdentifier),\n });\n const RewardToNeuron = IDL.Record({ dissolve_delay_seconds: IDL.Nat64 });\n const RewardToAccount = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n });\n const RewardMode = IDL.Variant({\n RewardToNeuron: RewardToNeuron,\n RewardToAccount: RewardToAccount,\n });\n const RewardNodeProvider = IDL.Record({\n node_provider: IDL.Opt(NodeProvider),\n reward_mode: IDL.Opt(RewardMode),\n amount_e8s: IDL.Nat64,\n });\n const XdrConversionRate = IDL.Record({\n xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const MonthlyNodeProviderRewards = IDL.Record({\n minimum_xdr_permyriad_per_icp: IDL.Opt(IDL.Nat64),\n end_date: IDL.Opt(DateUtc),\n registry_version: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n start_date: IDL.Opt(DateUtc),\n timestamp: IDL.Nat64,\n rewards: IDL.Vec(RewardNodeProvider),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n maximum_node_provider_rewards_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronSubsetMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n maturity_e8s_equivalent_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_e8s: IDL.Opt(IDL.Nat64),\n count: IDL.Opt(IDL.Nat64),\n deciding_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n total_deciding_voting_power: IDL.Opt(IDL.Nat64),\n staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Nat64),\n ),\n staked_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n total_voting_power: IDL.Opt(IDL.Nat64),\n potential_voting_power_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n });\n const GovernanceCachedMetrics = IDL.Record({\n total_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n garbage_collectable_neurons_count: IDL.Nat64,\n dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\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 ect_neuron_count: IDL.Nat64,\n total_supply_icp: IDL.Nat64,\n neurons_with_less_than_6_months_dissolve_delay_count: IDL.Nat64,\n dissolved_neurons_count: IDL.Nat64,\n community_fund_total_maturity_e8s_equivalent: IDL.Nat64,\n total_staked_e8s_seed: IDL.Nat64,\n total_staked_maturity_e8s_equivalent_ect: IDL.Nat64,\n total_staked_e8s: IDL.Nat64,\n fully_lost_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n not_dissolving_neurons_count: IDL.Nat64,\n total_locked_e8s: IDL.Nat64,\n neurons_fund_total_active_neurons: IDL.Nat64,\n total_voting_power_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n total_staked_maturity_e8s_equivalent: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n spawning_neurons_count: IDL.Nat64,\n declining_voting_power_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n total_staked_e8s_ect: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_sum: IDL.Nat64,\n dissolved_neurons_e8s: IDL.Nat64,\n total_staked_e8s_non_self_authenticating_controller: IDL.Opt(IDL.Nat64),\n dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n neurons_with_less_than_6_months_dissolve_delay_e8s: IDL.Nat64,\n not_dissolving_neurons_staked_maturity_e8s_equivalent_buckets: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n dissolving_neurons_count_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Nat64)),\n dissolving_neurons_e8s_buckets_ect: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n non_self_authenticating_controller_neuron_subset_metrics:\n IDL.Opt(NeuronSubsetMetrics),\n dissolving_neurons_count: IDL.Nat64,\n dissolving_neurons_e8s_buckets: IDL.Vec(IDL.Tuple(IDL.Nat64, IDL.Float64)),\n total_staked_maturity_e8s_equivalent_seed: IDL.Nat64,\n community_fund_total_staked_e8s: IDL.Nat64,\n not_dissolving_neurons_e8s_buckets_seed: IDL.Vec(\n IDL.Tuple(IDL.Nat64, IDL.Float64),\n ),\n public_neuron_subset_metrics: IDL.Opt(NeuronSubsetMetrics),\n timestamp_seconds: IDL.Nat64,\n seed_neuron_count: IDL.Nat64,\n });\n const VotingPowerEconomics = IDL.Record({\n start_reducing_voting_power_after_seconds: IDL.Opt(IDL.Nat64),\n neuron_minimum_dissolve_delay_to_vote_seconds: IDL.Opt(IDL.Nat64),\n clear_following_after_seconds: IDL.Opt(IDL.Nat64),\n });\n const Percentage = IDL.Record({ basis_points: IDL.Opt(IDL.Nat64) });\n const Decimal = IDL.Record({ human_readable: IDL.Opt(IDL.Text) });\n const NeuronsFundMatchedFundingCurveCoefficients = IDL.Record({\n contribution_threshold_xdr: IDL.Opt(Decimal),\n one_third_participation_milestone_xdr: IDL.Opt(Decimal),\n full_participation_milestone_xdr: IDL.Opt(Decimal),\n });\n const NeuronsFundEconomics = IDL.Record({\n maximum_icp_xdr_rate: IDL.Opt(Percentage),\n neurons_fund_matched_funding_curve_coefficients: IDL.Opt(\n NeuronsFundMatchedFundingCurveCoefficients,\n ),\n max_theoretical_neurons_fund_participation_amount_xdr: IDL.Opt(Decimal),\n minimum_icp_xdr_rate: IDL.Opt(Percentage),\n });\n const NetworkEconomics = IDL.Record({\n neuron_minimum_stake_e8s: IDL.Nat64,\n voting_power_economics: IDL.Opt(VotingPowerEconomics),\n max_proposals_to_keep_per_topic: IDL.Nat32,\n neuron_management_fee_per_proposal_e8s: IDL.Nat64,\n reject_cost_e8s: IDL.Nat64,\n transaction_fee_e8s: IDL.Nat64,\n neuron_spawn_dissolve_delay_seconds: IDL.Nat64,\n minimum_icp_xdr_rate: IDL.Nat64,\n maximum_node_provider_rewards_e8s: IDL.Nat64,\n neurons_fund_economics: IDL.Opt(NeuronsFundEconomics),\n });\n const RestoreAgingNeuronGroup = IDL.Record({\n count: IDL.Opt(IDL.Nat64),\n previous_total_stake_e8s: IDL.Opt(IDL.Nat64),\n current_total_stake_e8s: IDL.Opt(IDL.Nat64),\n group_type: IDL.Int32,\n });\n const RestoreAgingSummary = IDL.Record({\n groups: IDL.Vec(RestoreAgingNeuronGroup),\n timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const ProposalId = IDL.Record({ id: IDL.Nat64 });\n const RewardEvent = IDL.Record({\n rounds_since_last_distribution: IDL.Opt(IDL.Nat64),\n day_after_genesis: IDL.Nat64,\n actual_timestamp_seconds: IDL.Nat64,\n total_available_e8s_equivalent: IDL.Nat64,\n latest_round_available_e8s_equivalent: IDL.Opt(IDL.Nat64),\n distributed_e8s_equivalent: IDL.Nat64,\n settled_proposals: IDL.Vec(ProposalId),\n });\n const NeuronStakeTransfer = IDL.Record({\n to_subaccount: IDL.Vec(IDL.Nat8),\n neuron_stake_e8s: IDL.Nat64,\n from: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n from_subaccount: IDL.Vec(IDL.Nat8),\n transfer_timestamp: IDL.Nat64,\n block_height: IDL.Nat64,\n });\n const GovernanceError = IDL.Record({\n error_message: IDL.Text,\n error_type: IDL.Int32,\n });\n const Ballot = IDL.Record({ vote: IDL.Int32, voting_power: IDL.Nat64 });\n const SwapParticipationLimits = IDL.Record({\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundNeuronPortion = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n hotkeys: IDL.Vec(IDL.Principal),\n is_capped: IDL.Opt(IDL.Bool),\n maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n nns_neuron_id: IDL.Opt(NeuronId),\n amount_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundSnapshot = IDL.Record({\n neurons_fund_neuron_portions: IDL.Vec(NeuronsFundNeuronPortion),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipation = IDL.Record({\n total_maturity_equivalent_icp_e8s: IDL.Opt(IDL.Nat64),\n intended_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n swap_participation_limits: IDL.Opt(SwapParticipationLimits),\n max_neurons_fund_swap_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n neurons_fund_reserves: IDL.Opt(NeuronsFundSnapshot),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n allocated_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const NeuronsFundData = IDL.Record({\n final_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n initial_neurons_fund_participation: IDL.Opt(NeuronsFundParticipation),\n neurons_fund_refunds: IDL.Opt(NeuronsFundSnapshot),\n });\n const CanisterStatusResultV2 = IDL.Record({\n status: IDL.Opt(IDL.Int32),\n freezing_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Vec(IDL.Principal),\n memory_size: IDL.Opt(IDL.Nat64),\n cycles: IDL.Opt(IDL.Nat64),\n idle_cycles_burned_per_day: IDL.Opt(IDL.Nat64),\n module_hash: IDL.Vec(IDL.Nat8),\n });\n const CanisterSummary = IDL.Record({\n status: IDL.Opt(CanisterStatusResultV2),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const SwapBackgroundInformation = IDL.Record({\n ledger_index_canister_summary: IDL.Opt(CanisterSummary),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n ledger_archive_canister_summaries: IDL.Vec(CanisterSummary),\n ledger_canister_summary: IDL.Opt(CanisterSummary),\n swap_canister_summary: IDL.Opt(CanisterSummary),\n governance_canister_summary: IDL.Opt(CanisterSummary),\n root_canister_summary: IDL.Opt(CanisterSummary),\n dapp_canister_summaries: IDL.Vec(CanisterSummary),\n });\n const DerivedProposalInformation = IDL.Record({\n swap_background_information: IDL.Opt(SwapBackgroundInformation),\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 TopicToFollow = IDL.Variant({\n Kyc: IDL.Null,\n ServiceNervousSystemManagement: IDL.Null,\n ApiBoundaryNodeManagement: IDL.Null,\n ApplicationCanisterManagement: IDL.Null,\n SubnetRental: IDL.Null,\n NeuronManagement: IDL.Null,\n NodeProviderRewards: IDL.Null,\n SubnetManagement: IDL.Null,\n ExchangeRate: IDL.Null,\n CatchAll: IDL.Null,\n NodeAdmin: IDL.Null,\n IcOsVersionElection: IDL.Null,\n ProtocolCanisterManagement: IDL.Null,\n NetworkEconomics: IDL.Null,\n IcOsVersionDeployment: IDL.Null,\n ParticipantManagement: IDL.Null,\n Governance: IDL.Null,\n SnsAndCommunityFund: IDL.Null,\n });\n const KnownNeuronData = IDL.Record({\n name: IDL.Text,\n committed_topics: IDL.Opt(IDL.Vec(IDL.Opt(TopicToFollow))),\n description: IDL.Opt(IDL.Text),\n links: IDL.Opt(IDL.Vec(IDL.Text)),\n });\n const KnownNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n });\n const FulfillSubnetRentalRequest = IDL.Record({\n user: IDL.Opt(IDL.Principal),\n replica_version_id: IDL.Opt(IDL.Text),\n node_ids: IDL.Opt(IDL.Vec(IDL.Principal)),\n });\n const Spawn = IDL.Record({\n percentage_to_spawn: IDL.Opt(IDL.Nat32),\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Opt(IDL.Nat64),\n });\n const Split = IDL.Record({\n memo: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Nat64,\n });\n const Follow = IDL.Record({\n topic: IDL.Int32,\n followees: IDL.Vec(NeuronId),\n });\n const Account = IDL.Record({\n owner: IDL.Opt(IDL.Principal),\n subaccount: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const DisburseMaturity = IDL.Record({\n to_account_identifier: IDL.Opt(AccountIdentifier),\n to_account: IDL.Opt(Account),\n percentage_to_disburse: IDL.Nat32,\n });\n const RefreshVotingPower = IDL.Record({});\n const ClaimOrRefreshNeuronFromAccount = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n memo: IDL.Nat64,\n });\n const By = IDL.Variant({\n NeuronIdOrSubaccount: IDL.Record({}),\n MemoAndController: ClaimOrRefreshNeuronFromAccount,\n Memo: IDL.Nat64,\n });\n const ClaimOrRefresh = IDL.Record({ by: IDL.Opt(By) });\n const RemoveHotKey = IDL.Record({\n hot_key_to_remove: IDL.Opt(IDL.Principal),\n });\n const AddHotKey = IDL.Record({ new_hot_key: IDL.Opt(IDL.Principal) });\n const 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 SetVisibility = IDL.Record({ visibility: IDL.Opt(IDL.Int32) });\n const SetDissolveTimestamp = IDL.Record({\n dissolve_timestamp_seconds: IDL.Nat64,\n });\n const Operation = IDL.Variant({\n RemoveHotKey: RemoveHotKey,\n AddHotKey: AddHotKey,\n ChangeAutoStakeMaturity: ChangeAutoStakeMaturity,\n StopDissolving: IDL.Record({}),\n StartDissolving: IDL.Record({}),\n IncreaseDissolveDelay: IncreaseDissolveDelay,\n SetVisibility: SetVisibility,\n JoinCommunityFund: IDL.Record({}),\n LeaveCommunityFund: IDL.Record({}),\n SetDissolveTimestamp: SetDissolveTimestamp,\n });\n const Configure = IDL.Record({ operation: IDL.Opt(Operation) });\n const RegisterVote = IDL.Record({\n vote: IDL.Int32,\n proposal: IDL.Opt(ProposalId),\n });\n const Merge = IDL.Record({ source_neuron_id: IDL.Opt(NeuronId) });\n const DisburseToNeuron = IDL.Record({\n dissolve_delay_seconds: IDL.Nat64,\n kyc_verified: IDL.Bool,\n amount_e8s: IDL.Nat64,\n new_controller: IDL.Opt(IDL.Principal),\n nonce: IDL.Nat64,\n });\n const FolloweesForTopic = IDL.Record({\n topic: IDL.Opt(IDL.Int32),\n followees: IDL.Opt(IDL.Vec(NeuronId)),\n });\n const SetFollowing = IDL.Record({\n topic_following: IDL.Opt(IDL.Vec(FolloweesForTopic)),\n });\n const StakeMaturity = IDL.Record({\n percentage_to_stake: IDL.Opt(IDL.Nat32),\n });\n const MergeMaturity = IDL.Record({ percentage_to_merge: IDL.Nat32 });\n const Amount = IDL.Record({ e8s: IDL.Nat64 });\n const Disburse = IDL.Record({\n to_account: IDL.Opt(AccountIdentifier),\n amount: IDL.Opt(Amount),\n });\n const Command = IDL.Variant({\n Spawn: Spawn,\n Split: Split,\n Follow: Follow,\n DisburseMaturity: DisburseMaturity,\n RefreshVotingPower: RefreshVotingPower,\n ClaimOrRefresh: ClaimOrRefresh,\n Configure: Configure,\n RegisterVote: RegisterVote,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SetFollowing: SetFollowing,\n MakeProposal: Proposal,\n StakeMaturity: StakeMaturity,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronIdOrSubaccount = IDL.Variant({\n Subaccount: IDL.Vec(IDL.Nat8),\n NeuronId: NeuronId,\n });\n const ManageNeuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n command: IDL.Opt(Command),\n neuron_id_or_subaccount: IDL.Opt(NeuronIdOrSubaccount),\n });\n const Controllers = IDL.Record({ controllers: IDL.Vec(IDL.Principal) });\n const CanisterSettings = IDL.Record({\n freezing_threshold: IDL.Opt(IDL.Nat64),\n wasm_memory_threshold: IDL.Opt(IDL.Nat64),\n controllers: IDL.Opt(Controllers),\n log_visibility: IDL.Opt(IDL.Int32),\n wasm_memory_limit: IDL.Opt(IDL.Nat64),\n memory_allocation: IDL.Opt(IDL.Nat64),\n compute_allocation: IDL.Opt(IDL.Nat64),\n });\n const UpdateCanisterSettings = IDL.Record({\n canister_id: IDL.Opt(IDL.Principal),\n settings: IDL.Opt(CanisterSettings),\n });\n const InstallCode = IDL.Record({\n skip_stopping_before_installing: IDL.Opt(IDL.Bool),\n wasm_module_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n canister_id: IDL.Opt(IDL.Principal),\n arg_hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n install_mode: IDL.Opt(IDL.Int32),\n });\n const DeregisterKnownNeuron = IDL.Record({ id: IDL.Opt(NeuronId) });\n const StopOrStartCanister = IDL.Record({\n action: IDL.Opt(IDL.Int32),\n canister_id: IDL.Opt(IDL.Principal),\n });\n const Duration = IDL.Record({ seconds: IDL.Opt(IDL.Nat64) });\n const Tokens = IDL.Record({ e8s: IDL.Opt(IDL.Nat64) });\n const VotingRewardParameters = IDL.Record({\n reward_rate_transition_duration: IDL.Opt(Duration),\n initial_reward_rate: IDL.Opt(Percentage),\n final_reward_rate: IDL.Opt(Percentage),\n });\n const GovernanceParameters = IDL.Record({\n neuron_maximum_dissolve_delay_bonus: IDL.Opt(Percentage),\n neuron_maximum_age_for_age_bonus: IDL.Opt(Duration),\n neuron_maximum_dissolve_delay: IDL.Opt(Duration),\n neuron_minimum_dissolve_delay_to_vote: IDL.Opt(Duration),\n neuron_maximum_age_bonus: IDL.Opt(Percentage),\n neuron_minimum_stake: IDL.Opt(Tokens),\n proposal_wait_for_quiet_deadline_increase: IDL.Opt(Duration),\n proposal_initial_voting_period: IDL.Opt(Duration),\n proposal_rejection_fee: IDL.Opt(Tokens),\n voting_reward_parameters: IDL.Opt(VotingRewardParameters),\n });\n const Image = IDL.Record({ base64_encoding: IDL.Opt(IDL.Text) });\n const LedgerParameters = IDL.Record({\n transaction_fee: IDL.Opt(Tokens),\n token_symbol: IDL.Opt(IDL.Text),\n token_logo: IDL.Opt(Image),\n token_name: IDL.Opt(IDL.Text),\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval: IDL.Opt(Duration),\n count: IDL.Opt(IDL.Nat64),\n });\n const GlobalTimeOfDay = IDL.Record({\n seconds_after_utc_midnight: IDL.Opt(IDL.Nat64),\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SwapParameters = IDL.Record({\n minimum_participants: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n duration: IDL.Opt(Duration),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n confirmation_text: IDL.Opt(IDL.Text),\n maximum_participant_icp: IDL.Opt(Tokens),\n minimum_icp: IDL.Opt(Tokens),\n minimum_direct_participation_icp: IDL.Opt(Tokens),\n minimum_participant_icp: IDL.Opt(Tokens),\n start_time: IDL.Opt(GlobalTimeOfDay),\n maximum_direct_participation_icp: IDL.Opt(Tokens),\n maximum_icp: IDL.Opt(Tokens),\n neurons_fund_investment_icp: IDL.Opt(Tokens),\n restricted_countries: IDL.Opt(Countries),\n });\n const SwapDistribution = IDL.Record({ total: IDL.Opt(Tokens) });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay: IDL.Opt(Duration),\n memo: IDL.Opt(IDL.Nat64),\n vesting_period: IDL.Opt(Duration),\n stake: IDL.Opt(Tokens),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const InitialTokenDistribution = IDL.Record({\n treasury_distribution: IDL.Opt(SwapDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const CreateServiceNervousSystem = IDL.Record({\n url: IDL.Opt(IDL.Text),\n governance_parameters: IDL.Opt(GovernanceParameters),\n fallback_controller_principal_ids: IDL.Vec(IDL.Principal),\n logo: IDL.Opt(Image),\n name: IDL.Opt(IDL.Text),\n ledger_parameters: IDL.Opt(LedgerParameters),\n description: IDL.Opt(IDL.Text),\n dapp_canisters: IDL.Vec(Canister),\n swap_parameters: IDL.Opt(SwapParameters),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n });\n const ExecuteNnsFunction = IDL.Record({\n nns_function: IDL.Int32,\n payload: IDL.Vec(IDL.Nat8),\n });\n const NeuronBasketConstructionParameters_1 = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Params = IDL.Record({\n min_participant_icp_e8s: IDL.Nat64,\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters_1,\n ),\n max_icp_e8s: IDL.Nat64,\n swap_due_timestamp_seconds: IDL.Nat64,\n min_participants: IDL.Nat32,\n sns_token_e8s: IDL.Nat64,\n sale_delay_seconds: IDL.Opt(IDL.Nat64),\n max_participant_icp_e8s: IDL.Nat64,\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_icp_e8s: IDL.Nat64,\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const OpenSnsTokenSwap = IDL.Record({\n community_fund_investment_e8s: IDL.Opt(IDL.Nat64),\n target_swap_canister_id: IDL.Opt(IDL.Principal),\n params: IDL.Opt(Params),\n });\n const TimeWindow = IDL.Record({\n start_timestamp_seconds: IDL.Nat64,\n end_timestamp_seconds: IDL.Nat64,\n });\n const SetOpenTimeWindowRequest = IDL.Record({\n open_time_window: IDL.Opt(TimeWindow),\n });\n const SetSnsTokenSwapOpenTimeWindow = IDL.Record({\n request: IDL.Opt(SetOpenTimeWindowRequest),\n swap_canister_id: IDL.Opt(IDL.Principal),\n });\n const SetDefaultFollowees = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n });\n const RewardNodeProviders = IDL.Record({\n use_registry_derived_rewards: IDL.Opt(IDL.Bool),\n rewards: IDL.Vec(RewardNodeProvider),\n });\n const Principals = IDL.Record({ principals: IDL.Vec(IDL.Principal) });\n const Change = IDL.Variant({\n ToRemove: NodeProvider,\n ToAdd: NodeProvider,\n });\n const AddOrRemoveNodeProvider = IDL.Record({ change: IDL.Opt(Change) });\n const Motion = IDL.Record({ motion_text: IDL.Text });\n const Action = IDL.Variant({\n RegisterKnownNeuron: KnownNeuron,\n FulfillSubnetRentalRequest: FulfillSubnetRentalRequest,\n ManageNeuron: ManageNeuron,\n UpdateCanisterSettings: UpdateCanisterSettings,\n InstallCode: InstallCode,\n DeregisterKnownNeuron: DeregisterKnownNeuron,\n StopOrStartCanister: StopOrStartCanister,\n CreateServiceNervousSystem: CreateServiceNervousSystem,\n ExecuteNnsFunction: ExecuteNnsFunction,\n RewardNodeProvider: RewardNodeProvider,\n OpenSnsTokenSwap: OpenSnsTokenSwap,\n SetSnsTokenSwapOpenTimeWindow: SetSnsTokenSwapOpenTimeWindow,\n SetDefaultFollowees: SetDefaultFollowees,\n RewardNodeProviders: RewardNodeProviders,\n ManageNetworkEconomics: NetworkEconomics,\n ApproveGenesisKyc: Principals,\n AddOrRemoveNodeProvider: AddOrRemoveNodeProvider,\n Motion: Motion,\n });\n Proposal.fill(\n IDL.Record({\n url: IDL.Text,\n title: IDL.Opt(IDL.Text),\n action: IDL.Opt(Action),\n summary: IDL.Text,\n }),\n );\n const WaitForQuietState = IDL.Record({\n current_deadline_timestamp_seconds: IDL.Nat64,\n });\n const ProposalData = IDL.Record({\n id: IDL.Opt(ProposalId),\n topic: IDL.Opt(IDL.Int32),\n failure_reason: IDL.Opt(GovernanceError),\n ballots: IDL.Vec(IDL.Tuple(IDL.Nat64, Ballot)),\n proposal_timestamp_seconds: IDL.Nat64,\n reward_event_round: IDL.Nat64,\n failed_timestamp_seconds: IDL.Nat64,\n neurons_fund_data: IDL.Opt(NeuronsFundData),\n reject_cost_e8s: IDL.Nat64,\n derived_proposal_information: IDL.Opt(DerivedProposalInformation),\n latest_tally: IDL.Opt(Tally),\n total_potential_voting_power: IDL.Opt(IDL.Nat64),\n sns_token_swap_lifecycle: IDL.Opt(IDL.Int32),\n decided_timestamp_seconds: IDL.Nat64,\n proposal: IDL.Opt(Proposal),\n proposer: IDL.Opt(NeuronId),\n wait_for_quiet_state: IDL.Opt(WaitForQuietState),\n executed_timestamp_seconds: IDL.Nat64,\n original_total_community_fund_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n });\n const Command_2 = IDL.Variant({\n Spawn: NeuronId,\n Split: Split,\n Configure: Configure,\n Merge: Merge,\n DisburseToNeuron: DisburseToNeuron,\n SyncCommand: IDL.Record({}),\n ClaimOrRefreshNeuron: ClaimOrRefresh,\n MergeMaturity: MergeMaturity,\n Disburse: Disburse,\n });\n const NeuronInFlightCommand = IDL.Record({\n command: IDL.Opt(Command_2),\n timestamp: IDL.Nat64,\n });\n const BallotInfo = IDL.Record({\n vote: IDL.Int32,\n proposal_id: IDL.Opt(ProposalId),\n });\n const MaturityDisbursement = IDL.Record({\n account_identifier_to_disburse_to: IDL.Opt(AccountIdentifier),\n timestamp_of_disbursement_seconds: IDL.Opt(IDL.Nat64),\n amount_e8s: IDL.Opt(IDL.Nat64),\n account_to_disburse_to: IDL.Opt(Account),\n finalize_disbursement_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const DissolveState = IDL.Variant({\n DissolveDelaySeconds: IDL.Nat64,\n WhenDissolvedTimestampSeconds: IDL.Nat64,\n });\n const Neuron = IDL.Record({\n id: IDL.Opt(NeuronId),\n staked_maturity_e8s_equivalent: IDL.Opt(IDL.Nat64),\n controller: IDL.Opt(IDL.Principal),\n recent_ballots: IDL.Vec(BallotInfo),\n voting_power_refreshed_timestamp_seconds: IDL.Opt(IDL.Nat64),\n kyc_verified: IDL.Bool,\n potential_voting_power: IDL.Opt(IDL.Nat64),\n neuron_type: IDL.Opt(IDL.Int32),\n not_for_profit: IDL.Bool,\n maturity_e8s_equivalent: IDL.Nat64,\n deciding_voting_power: IDL.Opt(IDL.Nat64),\n cached_neuron_stake_e8s: IDL.Nat64,\n created_timestamp_seconds: IDL.Nat64,\n auto_stake_maturity: IDL.Opt(IDL.Bool),\n aging_since_timestamp_seconds: IDL.Nat64,\n hot_keys: IDL.Vec(IDL.Principal),\n account: IDL.Vec(IDL.Nat8),\n joined_community_fund_timestamp_seconds: IDL.Opt(IDL.Nat64),\n maturity_disbursements_in_progress: IDL.Opt(IDL.Vec(MaturityDisbursement)),\n dissolve_state: IDL.Opt(DissolveState),\n followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n neuron_fees_e8s: IDL.Nat64,\n visibility: IDL.Opt(IDL.Int32),\n transfer: IDL.Opt(NeuronStakeTransfer),\n known_neuron_data: IDL.Opt(KnownNeuronData),\n spawn_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n });\n const Governance = IDL.Record({\n default_followees: IDL.Vec(IDL.Tuple(IDL.Int32, Followees)),\n most_recent_monthly_node_provider_rewards: IDL.Opt(\n MonthlyNodeProviderRewards,\n ),\n maturity_modulation_last_updated_at_timestamp_seconds: IDL.Opt(IDL.Nat64),\n wait_for_quiet_threshold_seconds: IDL.Nat64,\n metrics: IDL.Opt(GovernanceCachedMetrics),\n neuron_management_voting_period_seconds: IDL.Opt(IDL.Nat64),\n node_providers: IDL.Vec(NodeProvider),\n cached_daily_maturity_modulation_basis_points: IDL.Opt(IDL.Int32),\n economics: IDL.Opt(NetworkEconomics),\n restore_aging_summary: IDL.Opt(RestoreAgingSummary),\n spawning_neurons: IDL.Opt(IDL.Bool),\n latest_reward_event: IDL.Opt(RewardEvent),\n to_claim_transfers: IDL.Vec(NeuronStakeTransfer),\n short_voting_period_seconds: IDL.Nat64,\n proposals: IDL.Vec(IDL.Tuple(IDL.Nat64, ProposalData)),\n xdr_conversion_rate: IDL.Opt(XdrConversionRate),\n in_flight_commands: IDL.Vec(IDL.Tuple(IDL.Nat64, NeuronInFlightCommand)),\n neurons: IDL.Vec(IDL.Tuple(IDL.Nat64, Neuron)),\n genesis_timestamp_seconds: IDL.Nat64,\n });\n\n return [Governance];\n};\n", "import { createServices, type CanisterOptions } from \"@dfinity/utils\";\nimport type {\n DeployedSns,\n _SERVICE as SnsWasmService,\n} from \"./candid/sns_wasm\";\nimport { idlFactory as certifiedIdlFactory } from \"./candid/sns_wasm.certified.idl\";\nimport { idlFactory } from \"./candid/sns_wasm.idl\";\nimport { MAINNET_SNS_WASM_CANISTER_ID } from \"./constants/canister_ids\";\n\nexport class SnsWasmCanister {\n private constructor(\n private readonly service: SnsWasmService,\n private readonly certifiedService: SnsWasmService,\n ) {}\n\n public static create(options: CanisterOptions<SnsWasmService> = {}) {\n const { service, certifiedService } = createServices<SnsWasmService>({\n options: {\n ...options,\n canisterId: options.canisterId ?? MAINNET_SNS_WASM_CANISTER_ID,\n },\n idlFactory,\n certifiedIdlFactory,\n });\n\n return new SnsWasmCanister(service, certifiedService);\n }\n\n public listSnses = async ({\n certified = true,\n }: {\n certified?: boolean;\n }): Promise<DeployedSns[]> => {\n const service = certified ? this.certifiedService : this.service;\n\n const { instances } = await service.list_deployed_snses({});\n return instances;\n };\n}\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const SnsWasmCanisterInitPayload = IDL.Record({\n allowed_principals: IDL.Vec(IDL.Principal),\n access_controls_enabled: IDL.Bool,\n sns_subnet_ids: IDL.Vec(IDL.Principal),\n });\n const SnsWasm = IDL.Record({\n wasm: IDL.Vec(IDL.Nat8),\n proposal_id: IDL.Opt(IDL.Nat64),\n canister_type: IDL.Int32,\n });\n const AddWasmRequest = IDL.Record({\n hash: IDL.Vec(IDL.Nat8),\n wasm: IDL.Opt(SnsWasm),\n skip_update_latest_version: IDL.Opt(IDL.Bool),\n });\n const SnsWasmError = IDL.Record({ message: IDL.Text });\n const Result = IDL.Variant({\n Error: SnsWasmError,\n Hash: IDL.Vec(IDL.Nat8),\n });\n const AddWasmResponse = IDL.Record({ result: IDL.Opt(Result) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const DappCanisters = IDL.Record({ canisters: IDL.Vec(Canister) });\n const LinearScalingCoefficient = IDL.Record({\n slope_numerator: IDL.Opt(IDL.Nat64),\n intercept_icp_e8s: IDL.Opt(IDL.Nat64),\n from_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n slope_denominator: IDL.Opt(IDL.Nat64),\n to_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipationConstraints = IDL.Record({\n coefficient_intervals: IDL.Vec(LinearScalingCoefficient),\n max_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_threshold_icp_e8s: IDL.Opt(IDL.Nat64),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n });\n const TreasuryDistribution = IDL.Record({ total_e8s: IDL.Nat64 });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay_seconds: IDL.Nat64,\n memo: IDL.Nat64,\n stake_e8s: IDL.Nat64,\n vesting_period_seconds: IDL.Opt(IDL.Nat64),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const SwapDistribution = IDL.Record({\n total_e8s: IDL.Nat64,\n initial_swap_amount_e8s: IDL.Nat64,\n });\n const FractionalDeveloperVotingPower = IDL.Record({\n treasury_distribution: IDL.Opt(TreasuryDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const InitialTokenDistribution = IDL.Variant({\n FractionalDeveloperVotingPower: FractionalDeveloperVotingPower,\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SnsInitPayload = IDL.Record({\n url: IDL.Opt(IDL.Text),\n max_dissolve_delay_seconds: IDL.Opt(IDL.Nat64),\n max_dissolve_delay_bonus_percentage: IDL.Opt(IDL.Nat64),\n nns_proposal_id: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n fallback_controller_principal_ids: IDL.Vec(IDL.Text),\n token_symbol: IDL.Opt(IDL.Text),\n final_reward_rate_basis_points: IDL.Opt(IDL.Nat64),\n max_icp_e8s: IDL.Opt(IDL.Nat64),\n neuron_minimum_stake_e8s: IDL.Opt(IDL.Nat64),\n confirmation_text: IDL.Opt(IDL.Text),\n logo: IDL.Opt(IDL.Text),\n name: IDL.Opt(IDL.Text),\n swap_start_timestamp_seconds: IDL.Opt(IDL.Nat64),\n swap_due_timestamp_seconds: 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 description: IDL.Opt(IDL.Text),\n max_neuron_age_seconds_for_age_bonus: IDL.Opt(IDL.Nat64),\n min_participants: IDL.Opt(IDL.Nat64),\n initial_reward_rate_basis_points: IDL.Opt(IDL.Nat64),\n wait_for_quiet_deadline_increase_seconds: IDL.Opt(IDL.Nat64),\n transaction_fee_e8s: IDL.Opt(IDL.Nat64),\n dapp_canisters: IDL.Opt(DappCanisters),\n neurons_fund_participation_constraints: IDL.Opt(\n NeuronsFundParticipationConstraints,\n ),\n max_age_bonus_percentage: IDL.Opt(IDL.Nat64),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n reward_rate_transition_duration_seconds: IDL.Opt(IDL.Nat64),\n token_logo: IDL.Opt(IDL.Text),\n token_name: IDL.Opt(IDL.Text),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n proposal_reject_cost_e8s: IDL.Opt(IDL.Nat64),\n restricted_countries: IDL.Opt(Countries),\n min_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const DeployNewSnsRequest = IDL.Record({\n sns_init_payload: IDL.Opt(SnsInitPayload),\n });\n const DappCanistersTransferResult = IDL.Record({\n restored_dapp_canisters: IDL.Vec(Canister),\n nns_controlled_dapp_canisters: IDL.Vec(Canister),\n sns_controlled_dapp_canisters: IDL.Vec(Canister),\n });\n const SnsCanisterIds = IDL.Record({\n root: IDL.Opt(IDL.Principal),\n swap: IDL.Opt(IDL.Principal),\n ledger: IDL.Opt(IDL.Principal),\n index: IDL.Opt(IDL.Principal),\n governance: IDL.Opt(IDL.Principal),\n });\n const DeployNewSnsResponse = IDL.Record({\n dapp_canisters_transfer_result: IDL.Opt(DappCanistersTransferResult),\n subnet_id: IDL.Opt(IDL.Principal),\n error: IDL.Opt(SnsWasmError),\n canisters: IDL.Opt(SnsCanisterIds),\n });\n const GetAllowedPrincipalsResponse = IDL.Record({\n allowed_principals: IDL.Vec(IDL.Principal),\n });\n const GetDeployedSnsByProposalIdRequest = IDL.Record({\n proposal_id: IDL.Nat64,\n });\n const DeployedSns = IDL.Record({\n root_canister_id: IDL.Opt(IDL.Principal),\n governance_canister_id: IDL.Opt(IDL.Principal),\n index_canister_id: IDL.Opt(IDL.Principal),\n swap_canister_id: IDL.Opt(IDL.Principal),\n ledger_canister_id: IDL.Opt(IDL.Principal),\n });\n const GetDeployedSnsByProposalIdResult = IDL.Variant({\n Error: SnsWasmError,\n DeployedSns: DeployedSns,\n });\n const GetDeployedSnsByProposalIdResponse = IDL.Record({\n get_deployed_sns_by_proposal_id_result: IDL.Opt(\n GetDeployedSnsByProposalIdResult,\n ),\n });\n const SnsVersion = 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 GetNextSnsVersionRequest = IDL.Record({\n governance_canister_id: IDL.Opt(IDL.Principal),\n current_version: IDL.Opt(SnsVersion),\n });\n const GetNextSnsVersionResponse = IDL.Record({\n next_version: IDL.Opt(SnsVersion),\n });\n const GetProposalIdThatAddedWasmRequest = IDL.Record({\n hash: IDL.Vec(IDL.Nat8),\n });\n const GetProposalIdThatAddedWasmResponse = IDL.Record({\n proposal_id: IDL.Opt(IDL.Nat64),\n });\n const GetSnsSubnetIdsResponse = IDL.Record({\n sns_subnet_ids: IDL.Vec(IDL.Principal),\n });\n const GetWasmRequest = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const GetWasmResponse = IDL.Record({ wasm: IDL.Opt(SnsWasm) });\n const GetWasmMetadataRequest = IDL.Record({\n hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const MetadataSection = IDL.Record({\n contents: IDL.Opt(IDL.Vec(IDL.Nat8)),\n name: IDL.Opt(IDL.Text),\n visibility: IDL.Opt(IDL.Text),\n });\n const Ok = IDL.Record({ sections: IDL.Vec(MetadataSection) });\n const Result_1 = IDL.Variant({ Ok: Ok, Error: SnsWasmError });\n const GetWasmMetadataResponse = IDL.Record({ result: IDL.Opt(Result_1) });\n const SnsUpgrade = IDL.Record({\n next_version: IDL.Opt(SnsVersion),\n current_version: IDL.Opt(SnsVersion),\n });\n const InsertUpgradePathEntriesRequest = IDL.Record({\n upgrade_path: IDL.Vec(SnsUpgrade),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const InsertUpgradePathEntriesResponse = IDL.Record({\n error: IDL.Opt(SnsWasmError),\n });\n const ListDeployedSnsesResponse = IDL.Record({\n instances: IDL.Vec(DeployedSns),\n });\n const ListUpgradeStepsRequest = IDL.Record({\n limit: IDL.Nat32,\n starting_at: IDL.Opt(SnsVersion),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const PrettySnsVersion = IDL.Record({\n archive_wasm_hash: IDL.Text,\n root_wasm_hash: IDL.Text,\n swap_wasm_hash: IDL.Text,\n ledger_wasm_hash: IDL.Text,\n governance_wasm_hash: IDL.Text,\n index_wasm_hash: IDL.Text,\n });\n const ListUpgradeStep = IDL.Record({\n pretty_version: IDL.Opt(PrettySnsVersion),\n version: IDL.Opt(SnsVersion),\n });\n const ListUpgradeStepsResponse = IDL.Record({\n steps: IDL.Vec(ListUpgradeStep),\n });\n const UpdateAllowedPrincipalsRequest = IDL.Record({\n added_principals: IDL.Vec(IDL.Principal),\n removed_principals: IDL.Vec(IDL.Principal),\n });\n const UpdateAllowedPrincipalsResult = IDL.Variant({\n Error: SnsWasmError,\n AllowedPrincipals: GetAllowedPrincipalsResponse,\n });\n const UpdateAllowedPrincipalsResponse = IDL.Record({\n update_allowed_principals_result: IDL.Opt(UpdateAllowedPrincipalsResult),\n });\n const UpdateSnsSubnetListRequest = IDL.Record({\n sns_subnet_ids_to_add: IDL.Vec(IDL.Principal),\n sns_subnet_ids_to_remove: IDL.Vec(IDL.Principal),\n });\n const UpdateSnsSubnetListResponse = IDL.Record({\n error: IDL.Opt(SnsWasmError),\n });\n\n return IDL.Service({\n add_wasm: IDL.Func([AddWasmRequest], [AddWasmResponse], []),\n deploy_new_sns: IDL.Func([DeployNewSnsRequest], [DeployNewSnsResponse], []),\n get_allowed_principals: IDL.Func(\n [IDL.Record({})],\n [GetAllowedPrincipalsResponse],\n [],\n ),\n get_deployed_sns_by_proposal_id: IDL.Func(\n [GetDeployedSnsByProposalIdRequest],\n [GetDeployedSnsByProposalIdResponse],\n [],\n ),\n get_latest_sns_version_pretty: IDL.Func(\n [IDL.Null],\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [],\n ),\n get_next_sns_version: IDL.Func(\n [GetNextSnsVersionRequest],\n [GetNextSnsVersionResponse],\n [],\n ),\n get_proposal_id_that_added_wasm: IDL.Func(\n [GetProposalIdThatAddedWasmRequest],\n [GetProposalIdThatAddedWasmResponse],\n [],\n ),\n get_sns_subnet_ids: IDL.Func(\n [IDL.Record({})],\n [GetSnsSubnetIdsResponse],\n [],\n ),\n get_wasm: IDL.Func([GetWasmRequest], [GetWasmResponse], []),\n get_wasm_metadata: IDL.Func(\n [GetWasmMetadataRequest],\n [GetWasmMetadataResponse],\n [],\n ),\n insert_upgrade_path_entries: IDL.Func(\n [InsertUpgradePathEntriesRequest],\n [InsertUpgradePathEntriesResponse],\n [],\n ),\n list_deployed_snses: IDL.Func(\n [IDL.Record({})],\n [ListDeployedSnsesResponse],\n [],\n ),\n list_upgrade_steps: IDL.Func(\n [ListUpgradeStepsRequest],\n [ListUpgradeStepsResponse],\n [],\n ),\n update_allowed_principals: IDL.Func(\n [UpdateAllowedPrincipalsRequest],\n [UpdateAllowedPrincipalsResponse],\n [],\n ),\n update_sns_subnet_list: IDL.Func(\n [UpdateSnsSubnetListRequest],\n [UpdateSnsSubnetListResponse],\n [],\n ),\n });\n};\n\nexport const init = ({ IDL }) => {\n const SnsWasmCanisterInitPayload = IDL.Record({\n allowed_principals: IDL.Vec(IDL.Principal),\n access_controls_enabled: IDL.Bool,\n sns_subnet_ids: IDL.Vec(IDL.Principal),\n });\n\n return [SnsWasmCanisterInitPayload];\n};\n", "/* eslint-disable */\n\n// @ts-nocheck\n\n// This file was automatically generated by @icp-sdk/bindgen@0.2.0.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nexport const idlFactory = ({ IDL }) => {\n const SnsWasmCanisterInitPayload = IDL.Record({\n allowed_principals: IDL.Vec(IDL.Principal),\n access_controls_enabled: IDL.Bool,\n sns_subnet_ids: IDL.Vec(IDL.Principal),\n });\n const SnsWasm = IDL.Record({\n wasm: IDL.Vec(IDL.Nat8),\n proposal_id: IDL.Opt(IDL.Nat64),\n canister_type: IDL.Int32,\n });\n const AddWasmRequest = IDL.Record({\n hash: IDL.Vec(IDL.Nat8),\n wasm: IDL.Opt(SnsWasm),\n skip_update_latest_version: IDL.Opt(IDL.Bool),\n });\n const SnsWasmError = IDL.Record({ message: IDL.Text });\n const Result = IDL.Variant({\n Error: SnsWasmError,\n Hash: IDL.Vec(IDL.Nat8),\n });\n const AddWasmResponse = IDL.Record({ result: IDL.Opt(Result) });\n const NeuronBasketConstructionParameters = IDL.Record({\n dissolve_delay_interval_seconds: IDL.Nat64,\n count: IDL.Nat64,\n });\n const Canister = IDL.Record({ id: IDL.Opt(IDL.Principal) });\n const DappCanisters = IDL.Record({ canisters: IDL.Vec(Canister) });\n const LinearScalingCoefficient = IDL.Record({\n slope_numerator: IDL.Opt(IDL.Nat64),\n intercept_icp_e8s: IDL.Opt(IDL.Nat64),\n from_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n slope_denominator: IDL.Opt(IDL.Nat64),\n to_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const IdealMatchedParticipationFunction = IDL.Record({\n serialized_representation: IDL.Opt(IDL.Text),\n });\n const NeuronsFundParticipationConstraints = IDL.Record({\n coefficient_intervals: IDL.Vec(LinearScalingCoefficient),\n max_neurons_fund_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_threshold_icp_e8s: IDL.Opt(IDL.Nat64),\n ideal_matched_participation_function: IDL.Opt(\n IdealMatchedParticipationFunction,\n ),\n });\n const TreasuryDistribution = IDL.Record({ total_e8s: IDL.Nat64 });\n const NeuronDistribution = IDL.Record({\n controller: IDL.Opt(IDL.Principal),\n dissolve_delay_seconds: IDL.Nat64,\n memo: IDL.Nat64,\n stake_e8s: IDL.Nat64,\n vesting_period_seconds: IDL.Opt(IDL.Nat64),\n });\n const DeveloperDistribution = IDL.Record({\n developer_neurons: IDL.Vec(NeuronDistribution),\n });\n const SwapDistribution = IDL.Record({\n total_e8s: IDL.Nat64,\n initial_swap_amount_e8s: IDL.Nat64,\n });\n const FractionalDeveloperVotingPower = IDL.Record({\n treasury_distribution: IDL.Opt(TreasuryDistribution),\n developer_distribution: IDL.Opt(DeveloperDistribution),\n swap_distribution: IDL.Opt(SwapDistribution),\n });\n const InitialTokenDistribution = IDL.Variant({\n FractionalDeveloperVotingPower: FractionalDeveloperVotingPower,\n });\n const Countries = IDL.Record({ iso_codes: IDL.Vec(IDL.Text) });\n const SnsInitPayload = IDL.Record({\n url: IDL.Opt(IDL.Text),\n max_dissolve_delay_seconds: IDL.Opt(IDL.Nat64),\n max_dissolve_delay_bonus_percentage: IDL.Opt(IDL.Nat64),\n nns_proposal_id: IDL.Opt(IDL.Nat64),\n neurons_fund_participation: IDL.Opt(IDL.Bool),\n min_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n neuron_basket_construction_parameters: IDL.Opt(\n NeuronBasketConstructionParameters,\n ),\n fallback_controller_principal_ids: IDL.Vec(IDL.Text),\n token_symbol: IDL.Opt(IDL.Text),\n final_reward_rate_basis_points: IDL.Opt(IDL.Nat64),\n max_icp_e8s: IDL.Opt(IDL.Nat64),\n neuron_minimum_stake_e8s: IDL.Opt(IDL.Nat64),\n confirmation_text: IDL.Opt(IDL.Text),\n logo: IDL.Opt(IDL.Text),\n name: IDL.Opt(IDL.Text),\n swap_start_timestamp_seconds: IDL.Opt(IDL.Nat64),\n swap_due_timestamp_seconds: 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 description: IDL.Opt(IDL.Text),\n max_neuron_age_seconds_for_age_bonus: IDL.Opt(IDL.Nat64),\n min_participants: IDL.Opt(IDL.Nat64),\n initial_reward_rate_basis_points: IDL.Opt(IDL.Nat64),\n wait_for_quiet_deadline_increase_seconds: IDL.Opt(IDL.Nat64),\n transaction_fee_e8s: IDL.Opt(IDL.Nat64),\n dapp_canisters: IDL.Opt(DappCanisters),\n neurons_fund_participation_constraints: IDL.Opt(\n NeuronsFundParticipationConstraints,\n ),\n max_age_bonus_percentage: IDL.Opt(IDL.Nat64),\n initial_token_distribution: IDL.Opt(InitialTokenDistribution),\n reward_rate_transition_duration_seconds: IDL.Opt(IDL.Nat64),\n token_logo: IDL.Opt(IDL.Text),\n token_name: IDL.Opt(IDL.Text),\n max_participant_icp_e8s: IDL.Opt(IDL.Nat64),\n min_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n proposal_reject_cost_e8s: IDL.Opt(IDL.Nat64),\n restricted_countries: IDL.Opt(Countries),\n min_icp_e8s: IDL.Opt(IDL.Nat64),\n max_direct_participation_icp_e8s: IDL.Opt(IDL.Nat64),\n });\n const DeployNewSnsRequest = IDL.Record({\n sns_init_payload: IDL.Opt(SnsInitPayload),\n });\n const DappCanistersTransferResult = IDL.Record({\n restored_dapp_canisters: IDL.Vec(Canister),\n nns_controlled_dapp_canisters: IDL.Vec(Canister),\n sns_controlled_dapp_canisters: IDL.Vec(Canister),\n });\n const SnsCanisterIds = IDL.Record({\n root: IDL.Opt(IDL.Principal),\n swap: IDL.Opt(IDL.Principal),\n ledger: IDL.Opt(IDL.Principal),\n index: IDL.Opt(IDL.Principal),\n governance: IDL.Opt(IDL.Principal),\n });\n const DeployNewSnsResponse = IDL.Record({\n dapp_canisters_transfer_result: IDL.Opt(DappCanistersTransferResult),\n subnet_id: IDL.Opt(IDL.Principal),\n error: IDL.Opt(SnsWasmError),\n canisters: IDL.Opt(SnsCanisterIds),\n });\n const GetAllowedPrincipalsResponse = IDL.Record({\n allowed_principals: IDL.Vec(IDL.Principal),\n });\n const GetDeployedSnsByProposalIdRequest = IDL.Record({\n proposal_id: IDL.Nat64,\n });\n const DeployedSns = IDL.Record({\n root_canister_id: IDL.Opt(IDL.Principal),\n governance_canister_id: IDL.Opt(IDL.Principal),\n index_canister_id: IDL.Opt(IDL.Principal),\n swap_canister_id: IDL.Opt(IDL.Principal),\n ledger_canister_id: IDL.Opt(IDL.Principal),\n });\n const GetDeployedSnsByProposalIdResult = IDL.Variant({\n Error: SnsWasmError,\n DeployedSns: DeployedSns,\n });\n const GetDeployedSnsByProposalIdResponse = IDL.Record({\n get_deployed_sns_by_proposal_id_result: IDL.Opt(\n GetDeployedSnsByProposalIdResult,\n ),\n });\n const SnsVersion = 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 GetNextSnsVersionRequest = IDL.Record({\n governance_canister_id: IDL.Opt(IDL.Principal),\n current_version: IDL.Opt(SnsVersion),\n });\n const GetNextSnsVersionResponse = IDL.Record({\n next_version: IDL.Opt(SnsVersion),\n });\n const GetProposalIdThatAddedWasmRequest = IDL.Record({\n hash: IDL.Vec(IDL.Nat8),\n });\n const GetProposalIdThatAddedWasmResponse = IDL.Record({\n proposal_id: IDL.Opt(IDL.Nat64),\n });\n const GetSnsSubnetIdsResponse = IDL.Record({\n sns_subnet_ids: IDL.Vec(IDL.Principal),\n });\n const GetWasmRequest = IDL.Record({ hash: IDL.Vec(IDL.Nat8) });\n const GetWasmResponse = IDL.Record({ wasm: IDL.Opt(SnsWasm) });\n const GetWasmMetadataRequest = IDL.Record({\n hash: IDL.Opt(IDL.Vec(IDL.Nat8)),\n });\n const MetadataSection = IDL.Record({\n contents: IDL.Opt(IDL.Vec(IDL.Nat8)),\n name: IDL.Opt(IDL.Text),\n visibility: IDL.Opt(IDL.Text),\n });\n const Ok = IDL.Record({ sections: IDL.Vec(MetadataSection) });\n const Result_1 = IDL.Variant({ Ok: Ok, Error: SnsWasmError });\n const GetWasmMetadataResponse = IDL.Record({ result: IDL.Opt(Result_1) });\n const SnsUpgrade = IDL.Record({\n next_version: IDL.Opt(SnsVersion),\n current_version: IDL.Opt(SnsVersion),\n });\n const InsertUpgradePathEntriesRequest = IDL.Record({\n upgrade_path: IDL.Vec(SnsUpgrade),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const InsertUpgradePathEntriesResponse = IDL.Record({\n error: IDL.Opt(SnsWasmError),\n });\n const ListDeployedSnsesResponse = IDL.Record({\n instances: IDL.Vec(DeployedSns),\n });\n const ListUpgradeStepsRequest = IDL.Record({\n limit: IDL.Nat32,\n starting_at: IDL.Opt(SnsVersion),\n sns_governance_canister_id: IDL.Opt(IDL.Principal),\n });\n const PrettySnsVersion = IDL.Record({\n archive_wasm_hash: IDL.Text,\n root_wasm_hash: IDL.Text,\n swap_wasm_hash: IDL.Text,\n ledger_wasm_hash: IDL.Text,\n governance_wasm_hash: IDL.Text,\n index_wasm_hash: IDL.Text,\n });\n const ListUpgradeStep = IDL.Record({\n pretty_version: IDL.Opt(PrettySnsVersion),\n version: IDL.Opt(SnsVersion),\n });\n const ListUpgradeStepsResponse = IDL.Record({\n steps: IDL.Vec(ListUpgradeStep),\n });\n const UpdateAllowedPrincipalsRequest = IDL.Record({\n added_principals: IDL.Vec(IDL.Principal),\n removed_principals: IDL.Vec(IDL.Principal),\n });\n const UpdateAllowedPrincipalsResult = IDL.Variant({\n Error: SnsWasmError,\n AllowedPrincipals: GetAllowedPrincipalsResponse,\n });\n const UpdateAllowedPrincipalsResponse = IDL.Record({\n update_allowed_principals_result: IDL.Opt(UpdateAllowedPrincipalsResult),\n });\n const UpdateSnsSubnetListRequest = IDL.Record({\n sns_subnet_ids_to_add: IDL.Vec(IDL.Principal),\n sns_subnet_ids_to_remove: IDL.Vec(IDL.Principal),\n });\n const UpdateSnsSubnetListResponse = IDL.Record({\n error: IDL.Opt(SnsWasmError),\n });\n\n return IDL.Service({\n add_wasm: IDL.Func([AddWasmRequest], [AddWasmResponse], []),\n deploy_new_sns: IDL.Func([DeployNewSnsRequest], [DeployNewSnsResponse], []),\n get_allowed_principals: IDL.Func(\n [IDL.Record({})],\n [GetAllowedPrincipalsResponse],\n [\"query\"],\n ),\n get_deployed_sns_by_proposal_id: IDL.Func(\n [GetDeployedSnsByProposalIdRequest],\n [GetDeployedSnsByProposalIdResponse],\n [\"query\"],\n ),\n get_latest_sns_version_pretty: IDL.Func(\n [IDL.Null],\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))],\n [\"query\"],\n ),\n get_next_sns_version: IDL.Func(\n [GetNextSnsVersionRequest],\n [GetNextSnsVersionResponse],\n [\"query\"],\n ),\n get_proposal_id_that_added_wasm: IDL.Func(\n [GetProposalIdThatAddedWasmRequest],\n [GetProposalIdThatAddedWasmResponse],\n [\"query\"],\n ),\n get_sns_subnet_ids: IDL.Func(\n [IDL.Record({})],\n [GetSnsSubnetIdsResponse],\n [\"query\"],\n ),\n get_wasm: IDL.Func([GetWasmRequest], [GetWasmResponse], [\"query\"]),\n get_wasm_metadata: IDL.Func(\n [GetWasmMetadataRequest],\n [GetWasmMetadataResponse],\n [\"query\"],\n ),\n insert_upgrade_path_entries: IDL.Func(\n [InsertUpgradePathEntriesRequest],\n [InsertUpgradePathEntriesResponse],\n [],\n ),\n list_deployed_snses: IDL.Func(\n [IDL.Record({})],\n [ListDeployedSnsesResponse],\n [\"query\"],\n ),\n list_upgrade_steps: IDL.Func(\n [ListUpgradeStepsRequest],\n [ListUpgradeStepsResponse],\n [\"query\"],\n ),\n update_allowed_principals: IDL.Func(\n [UpdateAllowedPrincipalsRequest],\n [UpdateAllowedPrincipalsResponse],\n [],\n ),\n update_sns_subnet_list: IDL.Func(\n [UpdateSnsSubnetListRequest],\n [UpdateSnsSubnetListResponse],\n [],\n ),\n });\n};\n\nexport const init = ({ IDL }) => {\n const SnsWasmCanisterInitPayload = IDL.Record({\n allowed_principals: IDL.Vec(IDL.Principal),\n access_controls_enabled: IDL.Bool,\n sns_subnet_ids: IDL.Vec(IDL.Principal),\n });\n\n return [SnsWasmCanisterInitPayload];\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["NeuronState", "Topic", "ProposalRewardStatus", "ProposalStatus", "Vote", "NnsFunction", "NeuronType", "LogVisibility", "CanisterAction", "NeuronVisibility", "CanisterInstallMode", "StakeNeuronError", "CouldNotClaimNeuronError", "InsufficientAmountError", "minimumAmount", "UnrecognizedTypeError", "GovernanceError", "detail", "UnsupportedValueError", "value", "createServices", "idlFactory", "IDL", "NeuronId", "Result", "Result_1", "TransferredNeuron", "AccountState", "Result_2", "idlFactory", "IDL", "NeuronId", "Result", "Result_1", "TransferredNeuron", "AccountState", "Result_2", "Principal", "GOVERNANCE_CANISTER_ID", "MAINNET_GOVERNANCE_CANISTER_ID", "MAINNET_GENESIS_TOKEN_CANISTER_ID", "MAINNET_SNS_WASM_CANISTER_ID", "GenesisTokenCanister", "_GenesisTokenCanister", "service", "options", "createServices", "MAINNET_GENESIS_TOKEN_CANISTER_ID", "idlFactory", "hexPubKey", "response", "neuronId", "AccountIdentifier", "checkAccountId", "assertPercentageNumber", "createServices", "fromNullable", "isNullish", "nonNullish", "uint8ArrayToBigInt", "Actor", "idlFactory", "IDL", "ManageNeuronRequest", "Proposal", "NeuronId", "Followees", "DateUtc", "AccountIdentifier", "NodeProvider", "RewardToNeuron", "RewardToAccount", "RewardMode", "RewardNodeProvider", "XdrConversionRate", "MonthlyNodeProviderRewards", "NeuronSubsetMetrics", "GovernanceCachedMetrics", "VotingPowerEconomics", "Percentage", "Decimal", "NeuronsFundMatchedFundingCurveCoefficients", "NeuronsFundEconomics", "NetworkEconomics", "RestoreAgingNeuronGroup", "RestoreAgingSummary", "ProposalId", "RewardEvent", "NeuronStakeTransfer", "GovernanceError", "Ballot", "SwapParticipationLimits", "NeuronsFundNeuronPortion", "NeuronsFundSnapshot", "IdealMatchedParticipationFunction", "NeuronsFundParticipation", "NeuronsFundData", "CanisterStatusResultV2", "CanisterSummary", "SwapBackgroundInformation", "DerivedProposalInformation", "Tally", "TopicToFollow", "KnownNeuronData", "KnownNeuron", "FulfillSubnetRentalRequest", "Spawn", "Split", "Follow", "Account", "DisburseMaturity", "RefreshVotingPower", "ClaimOrRefreshNeuronFromAccount", "By", "ClaimOrRefresh", "RemoveHotKey", "AddHotKey", "ChangeAutoStakeMaturity", "IncreaseDissolveDelay", "SetVisibility", "SetDissolveTimestamp", "Operation", "Configure", "RegisterVote", "Merge", "DisburseToNeuron", "FolloweesForTopic", "SetFollowing", "StakeMaturity", "MergeMaturity", "Amount", "Disburse", "Command", "NeuronIdOrSubaccount", "ManageNeuron", "Controllers", "CanisterSettings", "UpdateCanisterSettings", "InstallCode", "DeregisterKnownNeuron", "StopOrStartCanister", "Duration", "Tokens", "VotingRewardParameters", "GovernanceParameters", "Image", "LedgerParameters", "Canister", "NeuronBasketConstructionParameters", "GlobalTimeOfDay", "Countries", "SwapParameters", "SwapDistribution", "NeuronDistribution", "DeveloperDistribution", "InitialTokenDistribution", "CreateServiceNervousSystem", "ExecuteNnsFunction", "NeuronBasketConstructionParameters_1", "Params", "OpenSnsTokenSwap", "TimeWindow", "SetOpenTimeWindowRequest", "SetSnsTokenSwapOpenTimeWindow", "SetDefaultFollowees", "RewardNodeProviders", "Principals", "Change", "AddOrRemoveNodeProvider", "Motion", "Action", "WaitForQuietState", "ProposalData", "Command_2", "NeuronInFlightCommand", "BallotInfo", "MaturityDisbursement", "DissolveState", "Neuron", "Governance", "Result", "Result_1", "ClaimOrRefreshNeuronFromAccountResponse", "Result_2", "Result_3", "Result_4", "GetNeuronIndexRequest", "NeuronInfo", "NeuronIndexData", "GetNeuronIndexResult", "Result_5", "GetNeuronsFundAuditInfoRequest", "NeuronsFundAuditInfo", "Ok", "Result_6", "GetNeuronsFundAuditInfoResponse", "Result_7", "ProposalInfo", "ListKnownNeuronsResponse", "ListNeuronVotesRequest", "Vote", "NeuronVote", "ListNeuronVotesResponse", "NeuronSubaccount", "ListNeurons", "ListNeuronsResponse", "DateRangeFilter", "ListNodeProviderRewardsRequest", "ListNodeProviderRewardsResponse", "ListNodeProvidersResponse", "ListProposalInfoRequest", "ListProposalInfoResponse", "InstallCodeRequest", "ProposalActionRequest", "MakeProposalRequest", "ManageNeuronCommandRequest", "SpawnResponse", "DisburseMaturityResponse", "RefreshVotingPowerResponse", "ClaimOrRefreshResponse", "MergeResponse", "SetFollowingResponse", "MakeProposalResponse", "StakeMaturityResponse", "MergeMaturityResponse", "DisburseResponse", "Command_1", "ManageNeuronResponse", "Committed", "Result_8", "SettleCommunityFundParticipation", "Committed_1", "Result_9", "SettleNeuronsFundParticipationRequest", "NeuronsFundNeuron", "Ok_1", "Result_10", "SettleNeuronsFundParticipationResponse", "UpdateNodeProvider", "idlFactory", "IDL", "ManageNeuronRequest", "Proposal", "NeuronId", "Followees", "DateUtc", "AccountIdentifier", "NodeProvider", "RewardToNeuron", "RewardToAccount", "RewardMode", "RewardNodeProvider", "XdrConversionRate", "MonthlyNodeProviderRewards", "NeuronSubsetMetrics", "GovernanceCachedMetrics", "VotingPowerEconomics", "Percentage", "Decimal", "NeuronsFundMatchedFundingCurveCoefficients", "NeuronsFundEconomics", "NetworkEconomics", "RestoreAgingNeuronGroup", "RestoreAgingSummary", "ProposalId", "RewardEvent", "NeuronStakeTransfer", "GovernanceError", "Ballot", "SwapParticipationLimits", "NeuronsFundNeuronPortion", "NeuronsFundSnapshot", "IdealMatchedParticipationFunction", "NeuronsFundParticipation", "NeuronsFundData", "CanisterStatusResultV2", "CanisterSummary", "SwapBackgroundInformation", "DerivedProposalInformation", "Tally", "TopicToFollow", "KnownNeuronData", "KnownNeuron", "FulfillSubnetRentalRequest", "Spawn", "Split", "Follow", "Account", "DisburseMaturity", "RefreshVotingPower", "ClaimOrRefreshNeuronFromAccount", "By", "ClaimOrRefresh", "RemoveHotKey", "AddHotKey", "ChangeAutoStakeMaturity", "IncreaseDissolveDelay", "SetVisibility", "SetDissolveTimestamp", "Operation", "Configure", "RegisterVote", "Merge", "DisburseToNeuron", "FolloweesForTopic", "SetFollowing", "StakeMaturity", "MergeMaturity", "Amount", "Disburse", "Command", "NeuronIdOrSubaccount", "ManageNeuron", "Controllers", "CanisterSettings", "UpdateCanisterSettings", "InstallCode", "DeregisterKnownNeuron", "StopOrStartCanister", "Duration", "Tokens", "VotingRewardParameters", "GovernanceParameters", "Image", "LedgerParameters", "Canister", "NeuronBasketConstructionParameters", "GlobalTimeOfDay", "Countries", "SwapParameters", "SwapDistribution", "NeuronDistribution", "DeveloperDistribution", "InitialTokenDistribution", "CreateServiceNervousSystem", "ExecuteNnsFunction", "NeuronBasketConstructionParameters_1", "Params", "OpenSnsTokenSwap", "TimeWindow", "SetOpenTimeWindowRequest", "SetSnsTokenSwapOpenTimeWindow", "SetDefaultFollowees", "RewardNodeProviders", "Principals", "Change", "AddOrRemoveNodeProvider", "Motion", "Action", "WaitForQuietState", "ProposalData", "Command_2", "NeuronInFlightCommand", "BallotInfo", "MaturityDisbursement", "DissolveState", "Neuron", "Governance", "Result", "Result_1", "ClaimOrRefreshNeuronFromAccountResponse", "Result_2", "Result_3", "Result_4", "GetNeuronIndexRequest", "NeuronInfo", "NeuronIndexData", "GetNeuronIndexResult", "Result_5", "GetNeuronsFundAuditInfoRequest", "NeuronsFundAuditInfo", "Ok", "Result_6", "GetNeuronsFundAuditInfoResponse", "Result_7", "ProposalInfo", "ListKnownNeuronsResponse", "ListNeuronVotesRequest", "Vote", "NeuronVote", "ListNeuronVotesResponse", "NeuronSubaccount", "ListNeurons", "ListNeuronsResponse", "DateRangeFilter", "ListNodeProviderRewardsRequest", "ListNodeProviderRewardsResponse", "ListNodeProvidersResponse", "ListProposalInfoRequest", "ListProposalInfoResponse", "InstallCodeRequest", "ProposalActionRequest", "MakeProposalRequest", "ManageNeuronCommandRequest", "SpawnResponse", "DisburseMaturityResponse", "RefreshVotingPowerResponse", "ClaimOrRefreshResponse", "MergeResponse", "SetFollowingResponse", "MakeProposalResponse", "StakeMaturityResponse", "MergeMaturityResponse", "DisburseResponse", "Command_1", "ManageNeuronResponse", "Committed", "Result_8", "SettleCommunityFundParticipation", "Committed_1", "Result_9", "SettleNeuronsFundParticipationRequest", "NeuronsFundNeuron", "Ok_1", "Result_10", "SettleNeuronsFundParticipationResponse", "UpdateNodeProvider", "idlFactory", "IDL", "NeuronId", "Followees", "KnownNeuronData", "NeuronStakeTransfer", "BallotInfo", "DissolveState", "Neuron", "NeuronInfo", "ListNeurons", "ListNeuronsResponse", "arrayBufferToUint8Array", "arrayOfNumberToUint8Array", "isNullish", "nonNullish", "toNullable", "Principal", "arrayOfNumberToUint8Array", "asciiStringToByteArray", "bigEndianCrc32", "hexStringToUint8Array", "uint8ArrayToHexString", "isBytes", "a", "abytes", "b", "lengths", "isBytes", "aexists", "instance", "checkFinished", "aoutput", "out", "abytes", "min", "clean", "arrays", "i", "createView", "arr", "rotr", "word", "shift", "utf8ToBytes", "str", "toBytes", "data", "utf8ToBytes", "abytes", "Hash", "createHasher", "hashCons", "hashC", "msg", "toBytes", "tmp", "setBigUint64", "view", "byteOffset", "value", "isLE", "_32n", "_u32_max", "wh", "wl", "h", "l", "Chi", "a", "b", "c", "Maj", "HashMD", "Hash", "blockLen", "outputLen", "padOffset", "createView", "data", "aexists", "toBytes", "abytes", "buffer", "len", "pos", "take", "dataView", "out", "aoutput", "clean", "i", "oview", "outLen", "state", "res", "to", "length", "finished", "destroyed", "SHA256_IV", "SHA224_IV", "SHA256_K", "SHA256_W", "SHA256", "HashMD", "outputLen", "SHA256_IV", "A", "B", "C", "D", "E", "F", "G", "H", "view", "offset", "i", "W15", "W2", "s0", "rotr", "s1", "sigma1", "T1", "Chi", "T2", "Maj", "clean", "SHA224", "SHA224_IV", "sha256", "createHasher", "SHA256", "sha224", "SHA224", "accountIdentifierToBytes", "accountIdentifier", "hexStringToUint8Array", "accountIdentifierFromBytes", "uint8ArrayToHexString", "principalToAccountIdentifier", "principal", "subAccount", "padding", "asciiStringToByteArray", "shaObj", "sha224", "arrayOfNumberToUint8Array", "hash", "checksum", "bigEndianCrc32", "bytes", "fromProposalId", "proposalId", "fromNeuronId", "neuronId", "fromNeuronIdOrSubaccount", "neuronIdOrSubaccount", "UnsupportedValueError", "fromPercentage", "percentage", "fromDuration", "duration", "fromGlobalTimeOfDay", "time", "fromCountries", "countries", "fromTokens", "tokens", "fromImage", "image", "fromVotingRewardParameters", "votingRewardParameters", "fromLedgerParameters", "ledgerParameters", "fromSwapParameters", "swapParameters", "fromNeuronBasketConstructionParameters", "toNullable", "neuronBasketConstructionParameters", "fromGovernanceParameters", "governanceParameters", "fromSwapDistribution", "swapDistribution", "fromInitialTokenDistribution", "initialTokenDistribution", "fromDeveloperDistribution", "fromNeuronDistribution", "neuronDistribution", "Principal", "developerDistribution", "fromCreateServiceNervousSystem", "createServiceNervousSystem", "id", "principalId", "fromInstallCode", "installCode", "arrayBufferToUint8Array", "nonNullish", "fromCanisterSettings", "canisterSettings", "controller", "fromAction", "action", "executeNnsFunction", "manageNeuron", "fromManageNeuron", "networkEconomics", "fromNeuronsFundEconomics", "fromVotingPowerEconomics", "rewardNodeProvider", "fromNodeProvider", "fromRewardMode", "rewardNodeProviders", "r", "addOrRemoveNodeProvider", "fromChange", "knownNeuron", "stopOrStartCanister", "updateCanisterSettings", "fromCommand", "command", "split", "follow", "disburseMaturity", "fromAccount", "fromAccountIdentifier", "claimOrRefresh", "fromClaimOrRefreshBy", "configure", "fromOperation", "registerVote", "disburseToNeuron", "topicFollowing", "topic", "followees", "percentageToStake", "makeProposal", "disburse", "fromAmount", "spawn", "merge", "operation", "removeHotKey", "addHotKey", "requestedSettingForAutoStakeMaturity", "setVisibility", "account", "arrayOfNumberToUint8Array", "change", "nodeProvider", "amount", "accountIdentifier", "accountIdentifierToBytes", "neuronsFundEconomics", "isNullish", "maximumIcpXdrRate", "maxTheoreticalNeuronsFundParticipationAmountXdr", "neuronsFundMatchedFundingCurveCoefficients", "minimumIcpXdrRate", "toRawPercentage", "toRawDecimals", "decimal", "toRawNeuronsFundMatchedFundingCurveCoefficients", "votingPowerEconomics", "rewardMode", "by", "fromListNeurons", "neuronIds", "includeEmptyNeurons", "includePublicNeurons", "neuronSubaccounts", "pageNumber", "pageSize", "fromListProposalsRequest", "includeRewardStatus", "beforeProposal", "excludeTopic", "includeStatus", "limit", "includeAllManageNeuronProposals", "omitLargeFields", "fromClaimOrRefreshNeuronRequest", "request", "toClaimOrRefreshRequest", "memo", "rawCommand", "toSplitRawRequest", "toRegisterVoteRequest", "neuronId", "vote", "proposalId", "toCommand", "toMakeProposalRawRequest", "request", "rawCommand", "fromAction", "toManageNeuronsFollowRequest", "topic", "followees", "followeeId", "toDisburseNeuronRequest", "toAccountIdentifier", "amount", "fromAmount", "toDisburseMaturityRequest", "percentageToDisburse", "toAccount", "nonNullish", "fromAccount", "fromAccountIdentifier", "toSetFollowingRequest", "topicFollowing", "toNullable", "fromNeuronId", "toRefreshVotingPowerRequest", "toMergeMaturityRequest", "percentageToMerge", "toStakeMaturityRequest", "percentageToStake", "toSpawnNeuronRequest", "percentageToSpawn", "newController", "nonce", "toAddHotkeyRequest", "principal", "toConfigureOperation", "toRemoveHotkeyRequest", "toIncreaseDissolveDelayRequest", "additionalDissolveDelaySeconds", "toSetDissolveDelayRequest", "dissolveDelaySeconds", "toJoinCommunityFundRequest", "toAutoStakeMaturityRequest", "autoStake", "toLeaveCommunityFundRequest", "toSetVisibilityRequest", "visibility", "toMergeRequest", "sourceNeuronId", "targetNeuronId", "toStartDissolvingRequest", "toStopDissolvingRequest", "command", "operation", "fromDefinedNullable", "fromNullable", "isNullish", "nonNullish", "toNullable", "uint8ArrayToArrayOfNumber", "uint8ArrayToHexString", "Principal", "toNeuronInfo", "neuronId", "neuronInfo", "rawNeuron", "canisterId", "fullNeuron", "toNeuron", "toBallotInfo", "fromNullable", "neuron", "toNeuronId", "p", "principalToAccountIdentifier", "toMaturityDisbursementInProgress", "toDissolveState", "topic", "followees", "toFollowees", "toRawNeuron", "account", "nonNullish", "toNullable", "Principal", "ballot", "toRawMaturityDisbursementInProgress", "followeesTopic", "followee", "vote", "proposal_id", "dissolveState", "maturityDisbursement", "accountToDisburseTo", "toAccount", "toAccountIdentifier", "toRawAccount", "fromAccountIdentifier", "id", "toNeuronIdOrSubaccount", "neuronIdOrSubaccount", "uint8ArrayToArrayOfNumber", "UnsupportedValueError", "toBallot", "votingPower", "subaccount", "owner", "unwrappedSubaccount", "toProposal", "title", "url", "action", "summary", "toAction", "manageNeuron", "toCommand", "networkEconomics", "toNetworkEconomics", "rewardNodeProvider", "toNodeProvider", "toRewardMode", "rewardNodeProviders", "r", "addOrRemoveNodeProvider", "toChange", "knownNeuron", "toKnownNeuron", "DeregisterKnownNeuron", "SetSnsTokenSwapOpenTimeWindow", "request", "swapCanisterId", "OpenSnsTokenSwap", "params", "createServiceNervousSystem", "toGovernanceParameters", "principalId", "toImage", "toLedgerParameters", "toCanisterIdString", "toSwapParameters", "toInitialTokenDistribution", "installCode", "uint8ArrayToHexString", "fromDefinedNullable", "stopOrStartCanister", "toCanisterSettings", "toTally", "tally", "command", "spawn", "split", "follow", "disburseMaturity", "claimOrRefresh", "toClaimOrRefreshBy", "configure", "toOperation", "registerVote", "disburseToNeuron", "setFollowing", "percentage_to_stake", "makeProposal", "disburse", "toAmount", "merge", "operation", "removeHotKey", "addHotKey", "requestedSettingForAutoStakeMaturity", "setVisibility", "change", "toNeuronsFundEconomics", "neuronsFundEconomics", "rawNeuronsFundEconomics", "isNullish", "maximum_icp_xdr_rate", "neurons_fund_matched_funding_curve_coefficients", "max_theoretical_neurons_fund_participation_amount_xdr", "minimum_icp_xdr_rate", "toPercentage", "percentage", "rawPercentage", "basis_points", "rawBasisPoints", "toDecimal", "decimal", "rawDecimal", "human_readable", "rawHumanReadable", "toNeuronsFundMatchedFundingCurveCoefficients", "rawNeuronsFundMatchedFundingCurveCoefficients", "full_participation_milestone_xdr", "one_third_participation_milestone_xdr", "contribution_threshold_xdr", "toVotingPowerEconomics", "votingPowerEconomics", "rawVotingPowerEconomics", "toNeuronSubsetMetrics", "rawNeuronSubsetMetrics", "neuronSubsetMetrics", "toMetrics", "metrics", "nodeProvider", "amount", "accountIdentifier", "accountIdentifierFromBytes", "rewardMode", "by", "toProposalInfo", "proposalInfo", "b", "toArrayOfNeuronInfo", "neuron_infos", "full_neurons", "toListProposalsResponse", "proposal_info", "known_neuron_data", "toDuration", "duration", "toGlobalTimeOfDay", "time", "toCountries", "countries", "toTokens", "tokens", "canister", "image", "ledgerParameters", "toVotingRewardParameters", "votingRewardParameters", "governanceParameters", "toNeuronBasketConstructionParameters", "neuronBasketConstructionParameters", "swapParameters", "toSwapDistribution", "swapDistribution", "toNeuronDistribution", "neuronDistribution", "toDeveloperDistribution", "developerDistribution", "initialTokenDistribution", "canisterSettings", "controller", "isNullish", "getSuccessfulCommandFromResponse", "response", "command", "data", "isNullish", "GovernanceError", "manageNeuron", "request", "service", "simulateManageNeuron", "E8S_PER_TOKEN", "AccountIdentifier", "SubAccount", "arrayOfNumberToUint8Array", "asciiStringToByteArray", "bigIntToUint8Array", "getNeuronVoteForProposal", "ballots", "neuronId", "id", "ineligibleNeurons", "neurons", "proposal", "proposalTimestampSeconds", "createdTimestampSeconds", "createdSinceProposal", "dissolveTooShort", "ballotNeuronId", "votableNeurons", "neuron", "ineligibleNeuronId", "votedNeurons", "memoToNeuronSubaccount", "controller", "memo", "padding", "asciiStringToByteArray", "shaObj", "sha256", "arrayOfNumberToUint8Array", "bigIntToUint8Array", "SubAccount", "memoToNeuronAccountIdentifier", "governanceCanisterId", "subAccount", "AccountIdentifier", "GovernanceCanister", "_GovernanceCanister", "canisterId", "service", "certifiedService", "oldListNeuronsCertifiedService", "agent", "options", "MAINNET_GOVERNANCE_CANISTER_ID", "createServices", "idlFactory", "Actor", "certified", "neuronIds", "includeEmptyNeurons", "includePublicNeurons", "neuronSubaccounts", "isNullish", "firstPageResult", "firstPageNeurons", "totalPages", "pagePromises", "pageNumber", "neurons", "rawRequest", "fromListNeurons", "rawResponse", "toArrayOfNeuronInfo", "fromNullable", "knownNeuronData", "request", "fromListProposalsRequest", "toListProposalsResponse", "stake", "principal", "fromSubAccount", "ledgerCanister", "createdAt", "fee", "E8S_PER_TOKEN", "InsufficientAmountError", "nonceBytes", "nonce", "uint8ArrayToBigInt", "accountIdentifier", "memoToNeuronAccountIdentifier", "neuronId", "CouldNotClaimNeuronError", "additionalDissolveDelaySeconds", "toIncreaseDissolveDelayRequest", "manageNeuron", "dissolveDelaySeconds", "toSetDissolveDelayRequest", "toStartDissolvingRequest", "toStopDissolvingRequest", "toJoinCommunityFundRequest", "params", "toAutoStakeMaturityRequest", "toLeaveCommunityFundRequest", "visibility", "toSetVisibilityRequest", "checkAccountId", "account", "AccountIdentifier", "response", "GovernanceError", "toMergeRequest", "command", "simulateManageNeuron", "merge", "neuronInfo", "rawNeuron", "nonNullish", "toNeuronInfo", "UnrecognizedTypeError", "amount", "memo", "toSplitRawRequest", "getSuccessfulCommandFromResponse", "neuron", "proposalId", "proposalInfo", "toProposalInfo", "toMakeProposalRawRequest", "cmd", "vote", "toRegisterVoteRequest", "followRequest", "toManageNeuronsFollowRequest", "toAccountId", "toAccountIdentifier", "toDisburseNeuronRequest", "toRefreshVotingPowerRequest", "percentageToMerge", "assertPercentageNumber", "toMergeMaturityRequest", "percentageToStake", "toStakeMaturityRequest", "percentageToSpawn", "newController", "toSpawnNeuronRequest", "createdNeuronId", "toAddHotkeyRequest", "toRemoveHotkeyRequest", "controller", "toClaimOrRefreshRequest", "fromClaimOrRefreshNeuronRequest", "toNetworkEconomics", "percentageToDisburse", "toAccount", "toDisburseMaturityRequest", "topicFollowing", "toSetFollowingRequest", "toMetrics", "assertNonNullish", "createServices", "idlFactory", "IDL", "ManageNeuronRequest", "Proposal", "NeuronId", "Followees", "DateUtc", "AccountIdentifier", "NodeProvider", "RewardToNeuron", "RewardToAccount", "RewardMode", "RewardNodeProvider", "XdrConversionRate", "MonthlyNodeProviderRewards", "NeuronSubsetMetrics", "GovernanceCachedMetrics", "VotingPowerEconomics", "Percentage", "Decimal", "NeuronsFundMatchedFundingCurveCoefficients", "NeuronsFundEconomics", "NetworkEconomics", "RestoreAgingNeuronGroup", "RestoreAgingSummary", "ProposalId", "RewardEvent", "NeuronStakeTransfer", "GovernanceError", "Ballot", "SwapParticipationLimits", "NeuronsFundNeuronPortion", "NeuronsFundSnapshot", "IdealMatchedParticipationFunction", "NeuronsFundParticipation", "NeuronsFundData", "CanisterStatusResultV2", "CanisterSummary", "SwapBackgroundInformation", "DerivedProposalInformation", "Tally", "TopicToFollow", "KnownNeuronData", "KnownNeuron", "FulfillSubnetRentalRequest", "Spawn", "Split", "Follow", "Account", "DisburseMaturity", "RefreshVotingPower", "ClaimOrRefreshNeuronFromAccount", "By", "ClaimOrRefresh", "RemoveHotKey", "AddHotKey", "ChangeAutoStakeMaturity", "IncreaseDissolveDelay", "SetVisibility", "SetDissolveTimestamp", "Operation", "Configure", "RegisterVote", "Merge", "DisburseToNeuron", "FolloweesForTopic", "SetFollowing", "StakeMaturity", "MergeMaturity", "Amount", "Disburse", "Command", "NeuronIdOrSubaccount", "ManageNeuron", "Controllers", "CanisterSettings", "UpdateCanisterSettings", "InstallCode", "DeregisterKnownNeuron", "StopOrStartCanister", "Duration", "Tokens", "VotingRewardParameters", "GovernanceParameters", "Image", "LedgerParameters", "Canister", "NeuronBasketConstructionParameters", "GlobalTimeOfDay", "Countries", "SwapParameters", "SwapDistribution", "NeuronDistribution", "DeveloperDistribution", "InitialTokenDistribution", "CreateServiceNervousSystem", "ExecuteNnsFunction", "NeuronBasketConstructionParameters_1", "Params", "OpenSnsTokenSwap", "TimeWindow", "SetOpenTimeWindowRequest", "SetSnsTokenSwapOpenTimeWindow", "SetDefaultFollowees", "RewardNodeProviders", "Principals", "Change", "AddOrRemoveNodeProvider", "Motion", "Action", "WaitForQuietState", "ProposalData", "Command_2", "NeuronInFlightCommand", "BallotInfo", "MaturityDisbursement", "DissolveState", "Neuron", "Governance", "Result", "Result_1", "ClaimOrRefreshNeuronFromAccountResponse", "Result_2", "Result_3", "Result_4", "GetNeuronIndexRequest", "NeuronInfo", "NeuronIndexData", "GetNeuronIndexResult", "Result_5", "GetNeuronsFundAuditInfoRequest", "NeuronsFundAuditInfo", "Ok", "Result_6", "GetNeuronsFundAuditInfoResponse", "Result_7", "ProposalInfo", "ListKnownNeuronsResponse", "ListNeuronVotesRequest", "Vote", "NeuronVote", "ListNeuronVotesResponse", "NeuronSubaccount", "ListNeurons", "ListNeuronsResponse", "DateRangeFilter", "ListNodeProviderRewardsRequest", "ListNodeProviderRewardsResponse", "ListNodeProvidersResponse", "ListProposalInfoRequest", "ListProposalInfoResponse", "InstallCodeRequest", "ProposalActionRequest", "MakeProposalRequest", "ManageNeuronCommandRequest", "SpawnResponse", "DisburseMaturityResponse", "RefreshVotingPowerResponse", "ClaimOrRefreshResponse", "MergeResponse", "SetFollowingResponse", "MakeProposalResponse", "StakeMaturityResponse", "MergeMaturityResponse", "DisburseResponse", "Command_1", "ManageNeuronResponse", "Committed", "Result_8", "SettleCommunityFundParticipation", "Committed_1", "Result_9", "SettleNeuronsFundParticipationRequest", "NeuronsFundNeuron", "Ok_1", "Result_10", "SettleNeuronsFundParticipationResponse", "UpdateNodeProvider", "GovernanceTestCanister", "_GovernanceTestCanister", "canisterId", "certifiedService", "options", "MAINNET_GOVERNANCE_CANISTER_ID", "createServices", "idlFactory", "neuron", "assertNonNullish", "rawListNeuronsRequest", "fromListNeurons", "rawListNeuronsResponse", "currentNeuron", "principalToAccountIdentifier", "rawNeuron", "toRawNeuron", "createServices", "idlFactory", "IDL", "SnsWasmCanisterInitPayload", "SnsWasm", "AddWasmRequest", "SnsWasmError", "Result", "AddWasmResponse", "NeuronBasketConstructionParameters", "Canister", "DappCanisters", "LinearScalingCoefficient", "IdealMatchedParticipationFunction", "NeuronsFundParticipationConstraints", "TreasuryDistribution", "NeuronDistribution", "DeveloperDistribution", "SwapDistribution", "FractionalDeveloperVotingPower", "InitialTokenDistribution", "Countries", "SnsInitPayload", "DeployNewSnsRequest", "DappCanistersTransferResult", "SnsCanisterIds", "DeployNewSnsResponse", "GetAllowedPrincipalsResponse", "GetDeployedSnsByProposalIdRequest", "DeployedSns", "GetDeployedSnsByProposalIdResult", "GetDeployedSnsByProposalIdResponse", "SnsVersion", "GetNextSnsVersionRequest", "GetNextSnsVersionResponse", "GetProposalIdThatAddedWasmRequest", "GetProposalIdThatAddedWasmResponse", "GetSnsSubnetIdsResponse", "GetWasmRequest", "GetWasmResponse", "GetWasmMetadataRequest", "MetadataSection", "Ok", "Result_1", "GetWasmMetadataResponse", "SnsUpgrade", "InsertUpgradePathEntriesRequest", "InsertUpgradePathEntriesResponse", "ListDeployedSnsesResponse", "ListUpgradeStepsRequest", "PrettySnsVersion", "ListUpgradeStep", "ListUpgradeStepsResponse", "UpdateAllowedPrincipalsRequest", "UpdateAllowedPrincipalsResult", "UpdateAllowedPrincipalsResponse", "UpdateSnsSubnetListRequest", "UpdateSnsSubnetListResponse", "idlFactory", "IDL", "SnsWasmCanisterInitPayload", "SnsWasm", "AddWasmRequest", "SnsWasmError", "Result", "AddWasmResponse", "NeuronBasketConstructionParameters", "Canister", "DappCanisters", "LinearScalingCoefficient", "IdealMatchedParticipationFunction", "NeuronsFundParticipationConstraints", "TreasuryDistribution", "NeuronDistribution", "DeveloperDistribution", "SwapDistribution", "FractionalDeveloperVotingPower", "InitialTokenDistribution", "Countries", "SnsInitPayload", "DeployNewSnsRequest", "DappCanistersTransferResult", "SnsCanisterIds", "DeployNewSnsResponse", "GetAllowedPrincipalsResponse", "GetDeployedSnsByProposalIdRequest", "DeployedSns", "GetDeployedSnsByProposalIdResult", "GetDeployedSnsByProposalIdResponse", "SnsVersion", "GetNextSnsVersionRequest", "GetNextSnsVersionResponse", "GetProposalIdThatAddedWasmRequest", "GetProposalIdThatAddedWasmResponse", "GetSnsSubnetIdsResponse", "GetWasmRequest", "GetWasmResponse", "GetWasmMetadataRequest", "MetadataSection", "Ok", "Result_1", "GetWasmMetadataResponse", "SnsUpgrade", "InsertUpgradePathEntriesRequest", "InsertUpgradePathEntriesResponse", "ListDeployedSnsesResponse", "ListUpgradeStepsRequest", "PrettySnsVersion", "ListUpgradeStep", "ListUpgradeStepsResponse", "UpdateAllowedPrincipalsRequest", "UpdateAllowedPrincipalsResult", "UpdateAllowedPrincipalsResponse", "UpdateSnsSubnetListRequest", "UpdateSnsSubnetListResponse", "SnsWasmCanister", "_SnsWasmCanister", "service", "certifiedService", "options", "createServices", "MAINNET_SNS_WASM_CANISTER_ID", "idlFactory", "certified", "instances"]
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["import type { NnsGovernanceDid, SnsWasmDid } from \"@icp-sdk/canisters/nns\";\n\nexport type RewardEvent = NnsGovernanceDid.RewardEvent;\nexport type DeployedSns = SnsWasmDid.DeployedSns;\n\n/**\n * @deprecated Use \"@icp-sdk/canisters/nns\" directly instead\n */\nexport * from \"@icp-sdk/canisters/nns\";\n\n/**\n * Legacy re-export for backward compatibility.\n * @deprecated Use \"@icp-sdk/canisters/nns\" directly instead\n */\nexport {\n NnsGenesisTokenCanister as GenesisTokenCanister,\n NnsGovernanceCanister as GovernanceCanister,\n NnsGovernanceTestCanister as GovernanceTestCanister,\n type NnsGovernanceCanisterOptions as GovernanceCanisterOptions,\n} from \"@icp-sdk/canisters/nns\";\n"],
|
|
5
|
+
"mappings": ";;AAQA,WAAc,yBAMd,OAC6B,2BAA3BA,EACyB,yBAAzBC,EAC6B,6BAA7BC,MAEK",
|
|
6
|
+
"names": ["NnsGenesisTokenCanister", "NnsGovernanceCanister", "NnsGovernanceTestCanister"]
|
|
7
7
|
}
|