@shieldedpools/contracts 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +66 -2
- package/contract/managed/shielded-pools/compiler/contract-info.json +134 -0
- package/contract/managed/shielded-pools/compiler/contract-manifest.json +79 -0
- package/contract/managed/shielded-pools/contract/index.d.ts +67 -0
- package/contract/managed/shielded-pools/contract/index.js +791 -0
- package/contract/managed/shielded-pools/contract/index.js.map +8 -0
- package/contract/managed/shielded-pools/keys/shield.prover +0 -0
- package/contract/managed/shielded-pools/keys/shield.verifier +0 -0
- package/contract/managed/shielded-pools/keys/unshield.prover +0 -0
- package/contract/managed/shielded-pools/keys/unshield.verifier +0 -0
- package/contract/managed/shielded-pools/zkir/shield.bzkir +0 -0
- package/contract/managed/shielded-pools/zkir/shield.zkir +178 -0
- package/contract/managed/shielded-pools/zkir/unshield.bzkir +0 -0
- package/contract/managed/shielded-pools/zkir/unshield.zkir +210 -0
- package/contract/shielded-pools.compact +31 -0
- package/package.json +53 -4
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "index.js",
|
|
4
|
+
"sourceRoot": "../../../../",
|
|
5
|
+
"sources": ["contract/shielded-pools.compact", "compiler/standard-library.compact", "compiler/zkir-v3-library.compact"],
|
|
6
|
+
"names": [],
|
|
7
|
+
"mappings": "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"
|
|
8
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": { "major": 2, "minor": 0 },
|
|
3
|
+
"do_communications_commitment": true,
|
|
4
|
+
"num_inputs": 5,
|
|
5
|
+
"instructions": [
|
|
6
|
+
{ "op": "constrain_bits", "var": 0, "bits": 8 },
|
|
7
|
+
{ "op": "constrain_bits", "var": 1, "bits": 248 },
|
|
8
|
+
{ "op": "constrain_bits", "var": 2, "bits": 64 },
|
|
9
|
+
{ "op": "constrain_bits", "var": 3, "bits": 8 },
|
|
10
|
+
{ "op": "constrain_bits", "var": 4, "bits": 248 },
|
|
11
|
+
{ "op": "load_imm", "imm": "01" },
|
|
12
|
+
{ "op": "load_imm", "imm": "00" },
|
|
13
|
+
{ "op": "load_imm", "imm": "40" },
|
|
14
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
15
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
16
|
+
{ "op": "load_imm", "imm": "80" },
|
|
17
|
+
{ "op": "load_imm", "imm": "06" },
|
|
18
|
+
{ "op": "declare_pub_input", "var": 8 },
|
|
19
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
20
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
21
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
22
|
+
{ "op": "pi_skip", "guard": 5, "count": 4 },
|
|
23
|
+
{ "op": "load_imm", "imm": "10" },
|
|
24
|
+
{ "op": "load_imm", "imm": "03" },
|
|
25
|
+
{ "op": "load_imm", "imm": "20" },
|
|
26
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
27
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
28
|
+
{ "op": "declare_pub_input", "var": 11 },
|
|
29
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
30
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
31
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
32
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
33
|
+
{ "op": "declare_pub_input", "var": 0 },
|
|
34
|
+
{ "op": "declare_pub_input", "var": 1 },
|
|
35
|
+
{ "op": "declare_pub_input", "var": 6 },
|
|
36
|
+
{ "op": "declare_pub_input", "var": 6 },
|
|
37
|
+
{ "op": "pi_skip", "guard": 5, "count": 11 },
|
|
38
|
+
{ "op": "load_imm", "imm": "31" },
|
|
39
|
+
{ "op": "declare_pub_input", "var": 13 },
|
|
40
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
41
|
+
{ "op": "declare_pub_input", "var": 13 },
|
|
42
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
43
|
+
{ "op": "load_imm", "imm": "18" },
|
|
44
|
+
{ "op": "declare_pub_input", "var": 14 },
|
|
45
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
46
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
47
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
48
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
49
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
50
|
+
{ "op": "declare_pub_input", "var": 2 },
|
|
51
|
+
{ "op": "pi_skip", "guard": 5, "count": 5 },
|
|
52
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
53
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
54
|
+
{ "op": "load_imm", "imm": "08" },
|
|
55
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
56
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
57
|
+
{ "op": "load_imm", "imm": "12" },
|
|
58
|
+
{ "op": "load_imm", "imm": "04" },
|
|
59
|
+
{ "op": "declare_pub_input", "var": 16 },
|
|
60
|
+
{ "op": "declare_pub_input", "var": 17 },
|
|
61
|
+
{ "op": "pi_skip", "guard": 5, "count": 2 },
|
|
62
|
+
{ "op": "load_imm", "imm": "32" },
|
|
63
|
+
{ "op": "declare_pub_input", "var": 18 },
|
|
64
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
65
|
+
{ "op": "declare_pub_input", "var": 18 },
|
|
66
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
67
|
+
{ "op": "load_imm", "imm": "60" },
|
|
68
|
+
{ "op": "load_imm", "imm": "-01" },
|
|
69
|
+
{ "op": "declare_pub_input", "var": 19 },
|
|
70
|
+
{ "op": "declare_pub_input", "var": 20 },
|
|
71
|
+
{ "op": "pi_skip", "guard": 5, "count": 2 },
|
|
72
|
+
{ "op": "load_imm", "imm": "14" },
|
|
73
|
+
{ "op": "declare_pub_input", "var": 21 },
|
|
74
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
75
|
+
{ "op": "load_imm", "imm": "A2" },
|
|
76
|
+
{ "op": "declare_pub_input", "var": 22 },
|
|
77
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
78
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
79
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
80
|
+
{ "op": "private_input", "guard": null },
|
|
81
|
+
{ "op": "constrain_bits", "var": 23, "bits": 8 },
|
|
82
|
+
{ "op": "private_input", "guard": null },
|
|
83
|
+
{ "op": "constrain_bits", "var": 24, "bits": 248 },
|
|
84
|
+
{ "op": "declare_pub_input", "var": 18 },
|
|
85
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
86
|
+
{ "op": "declare_pub_input", "var": 19 },
|
|
87
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
88
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
89
|
+
{ "op": "declare_pub_input", "var": 6 },
|
|
90
|
+
{ "op": "pi_skip", "guard": 5, "count": 4 },
|
|
91
|
+
{ "op": "public_input", "guard": null },
|
|
92
|
+
{ "op": "public_input", "guard": null },
|
|
93
|
+
{ "op": "load_imm", "imm": "0D" },
|
|
94
|
+
{ "op": "declare_pub_input", "var": 27 },
|
|
95
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
96
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
97
|
+
{ "op": "declare_pub_input", "var": 25 },
|
|
98
|
+
{ "op": "declare_pub_input", "var": 26 },
|
|
99
|
+
{ "op": "pi_skip", "guard": 5, "count": 5 },
|
|
100
|
+
{ "op": "load_imm", "imm": "6D69646E696768743A6465726976655F746F6B656E" },
|
|
101
|
+
{ "op": "persistent_hash", "alignment": [{ "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }], "inputs": [6, 28, 0, 1, 25, 26] },
|
|
102
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
103
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
104
|
+
{ "op": "declare_pub_input", "var": 8 },
|
|
105
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
106
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
107
|
+
{ "op": "declare_pub_input", "var": 17 },
|
|
108
|
+
{ "op": "pi_skip", "guard": 5, "count": 4 },
|
|
109
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
110
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
111
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
112
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
113
|
+
{ "op": "declare_pub_input", "var": 0 },
|
|
114
|
+
{ "op": "declare_pub_input", "var": 1 },
|
|
115
|
+
{ "op": "pi_skip", "guard": 5, "count": 6 },
|
|
116
|
+
{ "op": "declare_pub_input", "var": 13 },
|
|
117
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
118
|
+
{ "op": "declare_pub_input", "var": 13 },
|
|
119
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
120
|
+
{ "op": "declare_pub_input", "var": 14 },
|
|
121
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
122
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
123
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
124
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
125
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
126
|
+
{ "op": "declare_pub_input", "var": 2 },
|
|
127
|
+
{ "op": "pi_skip", "guard": 5, "count": 5 },
|
|
128
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
129
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
130
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
131
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
132
|
+
{ "op": "declare_pub_input", "var": 16 },
|
|
133
|
+
{ "op": "declare_pub_input", "var": 17 },
|
|
134
|
+
{ "op": "pi_skip", "guard": 5, "count": 2 },
|
|
135
|
+
{ "op": "declare_pub_input", "var": 18 },
|
|
136
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
137
|
+
{ "op": "declare_pub_input", "var": 18 },
|
|
138
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
139
|
+
{ "op": "declare_pub_input", "var": 19 },
|
|
140
|
+
{ "op": "declare_pub_input", "var": 20 },
|
|
141
|
+
{ "op": "pi_skip", "guard": 5, "count": 2 },
|
|
142
|
+
{ "op": "declare_pub_input", "var": 21 },
|
|
143
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
144
|
+
{ "op": "declare_pub_input", "var": 22 },
|
|
145
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
146
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
147
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
148
|
+
{ "op": "load_imm", "imm": "6D69646E696768743A7A737761702D63635B76315D" },
|
|
149
|
+
{ "op": "persistent_hash", "alignment": [{ "tag": "atom", "value": { "length": 21, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 16, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 1, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }], "inputs": [31, 3, 4, 29, 30, 2, 5, 23, 24] },
|
|
150
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
151
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
152
|
+
{ "op": "load_imm", "imm": "02" },
|
|
153
|
+
{ "op": "declare_pub_input", "var": 8 },
|
|
154
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
155
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
156
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
157
|
+
{ "op": "pi_skip", "guard": 5, "count": 4 },
|
|
158
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
159
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
160
|
+
{ "op": "declare_pub_input", "var": 5 },
|
|
161
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
162
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
163
|
+
{ "op": "declare_pub_input", "var": 33 },
|
|
164
|
+
{ "op": "pi_skip", "guard": 5, "count": 6 },
|
|
165
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
166
|
+
{ "op": "declare_pub_input", "var": 6 },
|
|
167
|
+
{ "op": "pi_skip", "guard": 5, "count": 2 },
|
|
168
|
+
{ "op": "declare_pub_input", "var": 22 },
|
|
169
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
170
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
171
|
+
{ "op": "pi_skip", "guard": 5, "count": 1 },
|
|
172
|
+
{ "op": "output", "var": 3 },
|
|
173
|
+
{ "op": "output", "var": 4 },
|
|
174
|
+
{ "op": "output", "var": 29 },
|
|
175
|
+
{ "op": "output", "var": 30 },
|
|
176
|
+
{ "op": "output", "var": 2 }
|
|
177
|
+
]
|
|
178
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": { "major": 2, "minor": 0 },
|
|
3
|
+
"do_communications_commitment": true,
|
|
4
|
+
"num_inputs": 9,
|
|
5
|
+
"instructions": [
|
|
6
|
+
{ "op": "constrain_bits", "var": 0, "bits": 8 },
|
|
7
|
+
{ "op": "constrain_bits", "var": 1, "bits": 248 },
|
|
8
|
+
{ "op": "constrain_bits", "var": 2, "bits": 8 },
|
|
9
|
+
{ "op": "constrain_bits", "var": 3, "bits": 248 },
|
|
10
|
+
{ "op": "constrain_bits", "var": 4, "bits": 8 },
|
|
11
|
+
{ "op": "constrain_bits", "var": 5, "bits": 248 },
|
|
12
|
+
{ "op": "constrain_bits", "var": 6, "bits": 128 },
|
|
13
|
+
{ "op": "constrain_bits", "var": 7, "bits": 8 },
|
|
14
|
+
{ "op": "constrain_bits", "var": 8, "bits": 248 },
|
|
15
|
+
{ "op": "load_imm", "imm": "01" },
|
|
16
|
+
{ "op": "load_imm", "imm": "32" },
|
|
17
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
18
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
19
|
+
{ "op": "load_imm", "imm": "60" },
|
|
20
|
+
{ "op": "load_imm", "imm": "00" },
|
|
21
|
+
{ "op": "declare_pub_input", "var": 11 },
|
|
22
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
23
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
24
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
25
|
+
{ "op": "pi_skip", "guard": 9, "count": 4 },
|
|
26
|
+
{ "op": "public_input", "guard": null },
|
|
27
|
+
{ "op": "public_input", "guard": null },
|
|
28
|
+
{ "op": "load_imm", "imm": "20" },
|
|
29
|
+
{ "op": "load_imm", "imm": "0D" },
|
|
30
|
+
{ "op": "declare_pub_input", "var": 16 },
|
|
31
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
32
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
33
|
+
{ "op": "declare_pub_input", "var": 13 },
|
|
34
|
+
{ "op": "declare_pub_input", "var": 14 },
|
|
35
|
+
{ "op": "pi_skip", "guard": 9, "count": 5 },
|
|
36
|
+
{ "op": "load_imm", "imm": "6D69646E696768743A6465726976655F746F6B656E" },
|
|
37
|
+
{ "op": "persistent_hash", "alignment": [{ "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }], "inputs": [12, 17, 0, 1, 13, 14] },
|
|
38
|
+
{ "op": "test_eq", "a": 4, "b": 18 },
|
|
39
|
+
{ "op": "test_eq", "a": 5, "b": 19 },
|
|
40
|
+
{ "op": "cond_select", "bit": 20, "a": 21, "b": 12 },
|
|
41
|
+
{ "op": "assert", "cond": 22 },
|
|
42
|
+
{ "op": "test_eq", "a": 7, "b": 12 },
|
|
43
|
+
{ "op": "test_eq", "a": 8, "b": 12 },
|
|
44
|
+
{ "op": "cond_select", "bit": 23, "a": 24, "b": 12 },
|
|
45
|
+
{ "op": "cond_select", "bit": 25, "a": 12, "b": 9 },
|
|
46
|
+
{ "op": "assert", "cond": 26 },
|
|
47
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
48
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
49
|
+
{ "op": "declare_pub_input", "var": 11 },
|
|
50
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
51
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
52
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
53
|
+
{ "op": "pi_skip", "guard": 9, "count": 4 },
|
|
54
|
+
{ "op": "public_input", "guard": null },
|
|
55
|
+
{ "op": "public_input", "guard": null },
|
|
56
|
+
{ "op": "declare_pub_input", "var": 16 },
|
|
57
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
58
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
59
|
+
{ "op": "declare_pub_input", "var": 27 },
|
|
60
|
+
{ "op": "declare_pub_input", "var": 28 },
|
|
61
|
+
{ "op": "pi_skip", "guard": 9, "count": 5 },
|
|
62
|
+
{ "op": "load_imm", "imm": "6D69646E696768743A7A737761702D63635B76315D" },
|
|
63
|
+
{ "op": "persistent_hash", "alignment": [{ "tag": "atom", "value": { "length": 21, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 16, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 1, "tag": "bytes" } }, { "tag": "atom", "value": { "length": 32, "tag": "bytes" } }], "inputs": [29, 2, 3, 4, 5, 6, 12, 27, 28] },
|
|
64
|
+
{ "op": "load_imm", "imm": "40" },
|
|
65
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
66
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
67
|
+
{ "op": "load_imm", "imm": "80" },
|
|
68
|
+
{ "op": "declare_pub_input", "var": 33 },
|
|
69
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
70
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
71
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
72
|
+
{ "op": "pi_skip", "guard": 9, "count": 4 },
|
|
73
|
+
{ "op": "load_imm", "imm": "10" },
|
|
74
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
75
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
76
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
77
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
78
|
+
{ "op": "declare_pub_input", "var": 30 },
|
|
79
|
+
{ "op": "declare_pub_input", "var": 31 },
|
|
80
|
+
{ "op": "pi_skip", "guard": 9, "count": 6 },
|
|
81
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
82
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
83
|
+
{ "op": "pi_skip", "guard": 9, "count": 2 },
|
|
84
|
+
{ "op": "load_imm", "imm": "A2" },
|
|
85
|
+
{ "op": "declare_pub_input", "var": 35 },
|
|
86
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
87
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
88
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
89
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
90
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
91
|
+
{ "op": "load_imm", "imm": "07" },
|
|
92
|
+
{ "op": "declare_pub_input", "var": 33 },
|
|
93
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
94
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
95
|
+
{ "op": "declare_pub_input", "var": 36 },
|
|
96
|
+
{ "op": "pi_skip", "guard": 9, "count": 4 },
|
|
97
|
+
{ "op": "load_imm", "imm": "03" },
|
|
98
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
99
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
100
|
+
{ "op": "declare_pub_input", "var": 37 },
|
|
101
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
102
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
103
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
104
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
105
|
+
{ "op": "declare_pub_input", "var": 0 },
|
|
106
|
+
{ "op": "declare_pub_input", "var": 1 },
|
|
107
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
108
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
109
|
+
{ "op": "pi_skip", "guard": 9, "count": 11 },
|
|
110
|
+
{ "op": "load_imm", "imm": "31" },
|
|
111
|
+
{ "op": "declare_pub_input", "var": 38 },
|
|
112
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
113
|
+
{ "op": "declare_pub_input", "var": 38 },
|
|
114
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
115
|
+
{ "op": "load_imm", "imm": "18" },
|
|
116
|
+
{ "op": "declare_pub_input", "var": 39 },
|
|
117
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
118
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
119
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
120
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
121
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
122
|
+
{ "op": "declare_pub_input", "var": 6 },
|
|
123
|
+
{ "op": "pi_skip", "guard": 9, "count": 5 },
|
|
124
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
125
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
126
|
+
{ "op": "load_imm", "imm": "08" },
|
|
127
|
+
{ "op": "declare_pub_input", "var": 40 },
|
|
128
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
129
|
+
{ "op": "load_imm", "imm": "12" },
|
|
130
|
+
{ "op": "load_imm", "imm": "04" },
|
|
131
|
+
{ "op": "declare_pub_input", "var": 41 },
|
|
132
|
+
{ "op": "declare_pub_input", "var": 42 },
|
|
133
|
+
{ "op": "pi_skip", "guard": 9, "count": 2 },
|
|
134
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
135
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
136
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
137
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
138
|
+
{ "op": "load_imm", "imm": "-01" },
|
|
139
|
+
{ "op": "declare_pub_input", "var": 11 },
|
|
140
|
+
{ "op": "declare_pub_input", "var": 43 },
|
|
141
|
+
{ "op": "pi_skip", "guard": 9, "count": 2 },
|
|
142
|
+
{ "op": "load_imm", "imm": "14" },
|
|
143
|
+
{ "op": "declare_pub_input", "var": 44 },
|
|
144
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
145
|
+
{ "op": "declare_pub_input", "var": 35 },
|
|
146
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
147
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
148
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
149
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
150
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
151
|
+
{ "op": "declare_pub_input", "var": 33 },
|
|
152
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
153
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
154
|
+
{ "op": "declare_pub_input", "var": 40 },
|
|
155
|
+
{ "op": "pi_skip", "guard": 9, "count": 4 },
|
|
156
|
+
{ "op": "load_imm", "imm": "06" },
|
|
157
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
158
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
159
|
+
{ "op": "declare_pub_input", "var": 45 },
|
|
160
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
161
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
162
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
163
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
164
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
165
|
+
{ "op": "declare_pub_input", "var": 15 },
|
|
166
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
167
|
+
{ "op": "declare_pub_input", "var": 0 },
|
|
168
|
+
{ "op": "declare_pub_input", "var": 1 },
|
|
169
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
170
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
171
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
172
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
173
|
+
{ "op": "declare_pub_input", "var": 12 },
|
|
174
|
+
{ "op": "declare_pub_input", "var": 7 },
|
|
175
|
+
{ "op": "declare_pub_input", "var": 8 },
|
|
176
|
+
{ "op": "pi_skip", "guard": 9, "count": 19 },
|
|
177
|
+
{ "op": "declare_pub_input", "var": 38 },
|
|
178
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
179
|
+
{ "op": "declare_pub_input", "var": 38 },
|
|
180
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
181
|
+
{ "op": "declare_pub_input", "var": 39 },
|
|
182
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
183
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
184
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
185
|
+
{ "op": "declare_pub_input", "var": 9 },
|
|
186
|
+
{ "op": "declare_pub_input", "var": 34 },
|
|
187
|
+
{ "op": "declare_pub_input", "var": 6 },
|
|
188
|
+
{ "op": "pi_skip", "guard": 9, "count": 5 },
|
|
189
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
190
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
191
|
+
{ "op": "declare_pub_input", "var": 40 },
|
|
192
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
193
|
+
{ "op": "declare_pub_input", "var": 41 },
|
|
194
|
+
{ "op": "declare_pub_input", "var": 42 },
|
|
195
|
+
{ "op": "pi_skip", "guard": 9, "count": 2 },
|
|
196
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
197
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
198
|
+
{ "op": "declare_pub_input", "var": 10 },
|
|
199
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
200
|
+
{ "op": "declare_pub_input", "var": 11 },
|
|
201
|
+
{ "op": "declare_pub_input", "var": 43 },
|
|
202
|
+
{ "op": "pi_skip", "guard": 9, "count": 2 },
|
|
203
|
+
{ "op": "declare_pub_input", "var": 44 },
|
|
204
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
205
|
+
{ "op": "declare_pub_input", "var": 35 },
|
|
206
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 },
|
|
207
|
+
{ "op": "declare_pub_input", "var": 32 },
|
|
208
|
+
{ "op": "pi_skip", "guard": 9, "count": 1 }
|
|
209
|
+
]
|
|
210
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
pragma language_version 0.27;
|
|
2
|
+
|
|
3
|
+
import CompactStandardLibrary;
|
|
4
|
+
|
|
5
|
+
// 1:1 wrapper for native unshielded tokens.
|
|
6
|
+
// Each wrapped-token colour is derived from its underlying token and this contract.
|
|
7
|
+
|
|
8
|
+
export circuit shield(token: Bytes<32>, amount: Uint<64>, nonce: Bytes<32>): ShieldedCoinInfo {
|
|
9
|
+
const underlying = disclose(token);
|
|
10
|
+
const value = disclose(amount);
|
|
11
|
+
|
|
12
|
+
receiveUnshielded(underlying, value);
|
|
13
|
+
return mintShieldedToken(
|
|
14
|
+
underlying,
|
|
15
|
+
value,
|
|
16
|
+
disclose(nonce),
|
|
17
|
+
left<ZswapCoinPublicKey, ContractAddress>(ownPublicKey())
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export circuit unshield(token: Bytes<32>, coin: ShieldedCoinInfo, recipient: UserAddress): [] {
|
|
22
|
+
const underlying = disclose(token);
|
|
23
|
+
const paid = disclose(coin);
|
|
24
|
+
const to = disclose(recipient);
|
|
25
|
+
// Only this contract's wrapped form of `token` may release its backing.
|
|
26
|
+
assert(paid.color == tokenType(underlying, kernel.self()), "shielded-pools: wrong token");
|
|
27
|
+
assert(to != default<UserAddress>, "shielded-pools: zero recipient");
|
|
28
|
+
|
|
29
|
+
receiveShielded(paid);
|
|
30
|
+
sendUnshielded(underlying, paid.value, right<ContractAddress, UserAddress>(to));
|
|
31
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,55 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shieldedpools/contracts",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "The Shielded Pool protocol contract and release artifacts.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/shieldedpools/shielded-pool-contract.git"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=24"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./contract/managed/shielded-pools/contract/index.d.ts",
|
|
17
|
+
"default": "./contract/managed/shielded-pools/contract/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./contract-info.json": "./contract/managed/shielded-pools/compiler/contract-info.json",
|
|
20
|
+
"./artifacts/*": "./contract/managed/shielded-pools/*",
|
|
21
|
+
"./package.json": "./package.json"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"contract/shielded-pools.compact",
|
|
25
|
+
"contract/managed/shielded-pools"
|
|
26
|
+
],
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "compact compile +0.35.0 contract/shielded-pools.compact contract/managed/shielded-pools",
|
|
32
|
+
"test": "node --disable-warning=ExperimentalWarning --test test/*.test.ts",
|
|
33
|
+
"deploy": "node --disable-warning=ExperimentalWarning scripts/deploy.ts",
|
|
34
|
+
"prepublishOnly": "npm run build && npm test",
|
|
35
|
+
"release": "npm run build && npm test && mkdir -p release && npm pack --pack-destination release"
|
|
36
|
+
},
|
|
37
|
+
"overrides": {
|
|
38
|
+
"effect": "3.22.4"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@midnight-ntwrk/compact-runtime": "0.20.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@midnightntwrk/ledger-v9": "1.0.0-rc.5",
|
|
45
|
+
"@midnightntwrk/wallet-sdk-abstractions": "3.0.0-rc.1",
|
|
46
|
+
"@midnightntwrk/wallet-sdk-dust-wallet": "5.0.0-rc.1",
|
|
47
|
+
"@midnightntwrk/wallet-sdk-facade": "5.0.0-rc.1",
|
|
48
|
+
"@midnightntwrk/wallet-sdk-hd": "3.1.0-rc.0",
|
|
49
|
+
"@midnightntwrk/wallet-sdk-shielded": "4.0.0-rc.1",
|
|
50
|
+
"@midnightntwrk/wallet-sdk-unshielded-wallet": "4.0.0-rc.1",
|
|
51
|
+
"@types/node": "24.19.2",
|
|
52
|
+
"rxjs": "7.8.2",
|
|
53
|
+
"ws": "8.22.0"
|
|
54
|
+
}
|
|
55
|
+
}
|