Skip to content

Commit b937e2e

Browse files
committed
Test vectors for set neuron visibility issue #249
1 parent 3adb4ea commit b937e2e

File tree

2 files changed

+609
-112
lines changed

2 files changed

+609
-112
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import { IDL } from "@dfinity/candid";
2+
import { NeuronId } from "@dfinity/nns/src";
3+
import { toSetVisibilityRequest } from "@dfinity/nns/src/canisters/governance/request.converters";
4+
import { NeuronVisibility } from "@dfinity/nns/src/enums/governance.enums";
5+
import { ManageNeuronFn } from "./governance.idl";
6+
import { createBlob, writeToJson } from "./utils";
7+
8+
const mockNeuronId = BigInt(15374508381553347371);
9+
const mockNeuronId2 = BigInt(8836564053576662908);
10+
11+
const createSetVisibilityVector = ({
12+
neuronId,
13+
visibility,
14+
}: {
15+
neuronId: NeuronId;
16+
visibility: NeuronVisibility;
17+
}) => {
18+
const rawRequestBody = toSetVisibilityRequest({
19+
neuronId,
20+
visibility,
21+
});
22+
23+
const messages = {
24+
[NeuronVisibility.Private]: "Make Neuron Private",
25+
[NeuronVisibility.Public]: "Make Neuron Public",
26+
[NeuronVisibility.Unspecified]: "Unspecified",
27+
};
28+
29+
const outputs = [
30+
`Transaction type : ${messages[visibility]}`,
31+
`Neuron ID : ${neuronId}`,
32+
];
33+
34+
return {
35+
blob_candid: createBlob({
36+
arg: IDL.encode(ManageNeuronFn.argTypes, [rawRequestBody]),
37+
methodName: "manage_neuron",
38+
}),
39+
name: "Set Neuron Visibility",
40+
candid_request: rawRequestBody,
41+
outputs:
42+
visibility === NeuronVisibility.Unspecified
43+
? [
44+
`Fail: "${NeuronVisibility.Unspecified} is not a valid visibility option."`,
45+
]
46+
: outputs,
47+
};
48+
};
49+
50+
const main = () => {
51+
try {
52+
const vectors = [
53+
createSetVisibilityVector({
54+
neuronId: mockNeuronId,
55+
visibility: NeuronVisibility.Public,
56+
}),
57+
createSetVisibilityVector({
58+
neuronId: mockNeuronId,
59+
visibility: NeuronVisibility.Private,
60+
}),
61+
createSetVisibilityVector({
62+
neuronId: mockNeuronId2,
63+
visibility: NeuronVisibility.Public,
64+
}),
65+
createSetVisibilityVector({
66+
neuronId: mockNeuronId,
67+
visibility: NeuronVisibility.Private,
68+
}),
69+
createSetVisibilityVector({
70+
neuronId: mockNeuronId,
71+
visibility: NeuronVisibility.Unspecified,
72+
}),
73+
];
74+
75+
writeToJson({
76+
data: vectors,
77+
fileName: "set-neuron-visibility.json",
78+
});
79+
console.log("File created successfully");
80+
} catch (error) {
81+
console.log("There was an error");
82+
console.log(error);
83+
}
84+
};
85+
86+
main();

0 commit comments

Comments
 (0)