From d3da10126a1042750926cea0a9c2746fbbaf6427 Mon Sep 17 00:00:00 2001 From: David de Kloet Date: Wed, 6 Mar 2024 11:29:59 +0100 Subject: [PATCH 1/2] Proof of concept: provide empty optionals --- packages/sns/src/index.ts | 1 + packages/sns/src/optionals/optionals.spec.ts | 17 +++++++++++++++++ packages/sns/src/optionals/optionals.ts | 14 ++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 packages/sns/src/optionals/optionals.spec.ts create mode 100644 packages/sns/src/optionals/optionals.ts diff --git a/packages/sns/src/index.ts b/packages/sns/src/index.ts index 7d46e2a53..5968dd3dd 100644 --- a/packages/sns/src/index.ts +++ b/packages/sns/src/index.ts @@ -50,6 +50,7 @@ export * from "./errors/governance.errors"; export * from "./errors/swap.errors"; export { SnsGovernanceCanister } from "./governance.canister"; export { SnsGovernanceTestCanister } from "./governance_test.canister"; +export * from "./optionals/optionals"; export { SnsRootCanister } from "./root.canister"; export * from "./sns"; export * from "./sns.wrapper"; diff --git a/packages/sns/src/optionals/optionals.spec.ts b/packages/sns/src/optionals/optionals.spec.ts new file mode 100644 index 000000000..3ed00b0c8 --- /dev/null +++ b/packages/sns/src/optionals/optionals.spec.ts @@ -0,0 +1,17 @@ +import type { NeuronsFundParticipationConstraints as SnsNeuronsFundParticipationConstraints } from "../../candid/sns_swap"; +import { emptyOptionalsForSnsNeuronsFundParticipationConstraints } from "./optionals"; + +// If this file has a compilation error because new optional fields were added +// to a Candid type, add the the empty optional field values to the +// corresponding `emptyOptionalsFor...` value in `./optionals.ts`. + +const testValueForSnsNeuronsFundParticipationConstraints: SnsNeuronsFundParticipationConstraints = + { + ...emptyOptionalsForSnsNeuronsFundParticipationConstraints, + coefficient_intervals: [], + }; + +// The real test is whether the types above are accepted by the compiler. +it("should have at least one test", () => { + expect(true).toBe(true); +}); diff --git a/packages/sns/src/optionals/optionals.ts b/packages/sns/src/optionals/optionals.ts new file mode 100644 index 000000000..2c0ffa2e1 --- /dev/null +++ b/packages/sns/src/optionals/optionals.ts @@ -0,0 +1,14 @@ +import type { NeuronsFundParticipationConstraints as SnsNeuronsFundParticipationConstraints } from "../../candid/sns_swap"; + +export interface NeuronsFundParticipationConstraints {} + +export const emptyOptionalsForSnsNeuronsFundParticipationConstraints: Pick< + SnsNeuronsFundParticipationConstraints, + | "max_neurons_fund_participation_icp_e8s" + | "min_direct_participation_threshold_icp_e8s" + | "ideal_matched_participation_function" +> = { + max_neurons_fund_participation_icp_e8s: [], + min_direct_participation_threshold_icp_e8s: [], + ideal_matched_participation_function: [], +}; From 80d04e4a41f7a46cd5ed737ae96fe43c9990510e Mon Sep 17 00:00:00 2001 From: David de Kloet Date: Wed, 6 Mar 2024 11:55:32 +0100 Subject: [PATCH 2/2] typo --- packages/sns/src/optionals/optionals.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sns/src/optionals/optionals.spec.ts b/packages/sns/src/optionals/optionals.spec.ts index 3ed00b0c8..b0d8fca33 100644 --- a/packages/sns/src/optionals/optionals.spec.ts +++ b/packages/sns/src/optionals/optionals.spec.ts @@ -2,8 +2,8 @@ import type { NeuronsFundParticipationConstraints as SnsNeuronsFundParticipation import { emptyOptionalsForSnsNeuronsFundParticipationConstraints } from "./optionals"; // If this file has a compilation error because new optional fields were added -// to a Candid type, add the the empty optional field values to the -// corresponding `emptyOptionalsFor...` value in `./optionals.ts`. +// to a Candid type, add the empty optional field values to the corresponding +// `emptyOptionalsFor...` value in `./optionals.ts`. const testValueForSnsNeuronsFundParticipationConstraints: SnsNeuronsFundParticipationConstraints = {