Compare commits
2011
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bf2a1b689 | ||
|
|
908df9d4e2 | ||
|
|
c4a14fa7b6 | ||
|
|
c1ece303dd | ||
|
|
e265bb9b42 | ||
|
|
d55608cf99 | ||
|
|
1834f4ccd9 | ||
|
|
c92ff3ab78 | ||
|
|
20c63a9d01 | ||
|
|
abbb0acf5a | ||
|
|
e4f193fc51 | ||
|
|
c6710e1980 | ||
|
|
07eebe392e | ||
|
|
fa2c766025 | ||
|
|
1228f82ce1 | ||
|
|
dcec726d24 | ||
|
|
b26edff563 | ||
|
|
9631e0c9e6 | ||
|
|
ef7c838027 | ||
|
|
4f4d71a873 | ||
|
|
85694fef2d | ||
|
|
2e961d3d7f | ||
|
|
fda79d0bf4 | ||
|
|
dcda5d8567 | ||
|
|
f49154bece | ||
|
|
d5bf57dd6a | ||
|
|
15cdcc2d14 | ||
|
|
9bbfee1e6a | ||
|
|
fa31def690 | ||
|
|
ad9b52e8a7 | ||
|
|
b13daa652a | ||
|
|
8bca440de0 | ||
|
|
2394c83b88 | ||
|
|
abb47566ac | ||
|
|
c33d4aee04 | ||
|
|
75c1629f14 | ||
|
|
105186a9fb | ||
|
|
be730091aa | ||
|
|
440eff1806 | ||
|
|
ba118bf136 | ||
|
|
61edea8f94 | ||
|
|
59019212f0 | ||
|
|
bcaf7378ad | ||
|
|
81b5b751ce | ||
|
|
c1d1e6893b | ||
|
|
25a12b9f23 | ||
|
|
e1b53c6c9d | ||
|
|
8475a2ba1a | ||
|
|
36e90bb980 | ||
|
|
d12df8085b | ||
|
|
f9f3bfb066 | ||
|
|
a158c24b38 | ||
|
|
a21b5ef111 | ||
|
|
018f9e1a1d | ||
|
|
f5600147e5 | ||
|
|
64abdf239e | ||
|
|
4846e807f1 | ||
|
|
e2c7604df0 | ||
|
|
03e534a2c1 | ||
|
|
bb91d18a01 | ||
|
|
6a54aaa90e | ||
|
|
3b90ba4ef3 | ||
|
|
39bdcc7fc2 | ||
|
|
81aad93381 | ||
|
|
153f8c250e | ||
|
|
898d789363 | ||
|
|
c2e66d630f | ||
|
|
2e7bed9e72 | ||
|
|
553f8955c3 | ||
|
|
6b723d2dd7 | ||
|
|
4694c46980 | ||
|
|
c360fc3b90 | ||
|
|
e79ca47a91 | ||
|
|
adae979132 | ||
|
|
0846f9a3c7 | ||
|
|
ccd37e1d99 | ||
|
|
8d944a01a5 | ||
|
|
6a8fcc790d | ||
|
|
7e5e8dc44b | ||
|
|
b55b9e14fb | ||
|
|
c5cbda08f2 | ||
|
|
2bca0bf2fa | ||
|
|
e2aa8474a5 | ||
|
|
b8723adca1 | ||
|
|
c463a6237c | ||
|
|
3037346f36 | ||
|
|
3d8c846802 | ||
|
|
9236abd4a5 | ||
|
|
f18c6ea274 | ||
|
|
1e92c9c7b7 | ||
|
|
b881ed792d | ||
|
|
d7dc912309 | ||
|
|
0d616c9659 | ||
|
|
9b1246d714 | ||
|
|
84e3fe39e2 | ||
|
|
4b47a1de7b | ||
|
|
7926e0e46d | ||
|
|
53d811347a | ||
|
|
c6fe679d17 | ||
|
|
e7bcfc23b4 | ||
|
|
73bedad9ad | ||
|
|
6a1ec1bfc0 | ||
|
|
65acc32084 | ||
|
|
49862cc712 | ||
|
|
a0a79bee9a | ||
|
|
55d94f4f6b | ||
|
|
29083cb75f | ||
|
|
2f2fff2e9e | ||
|
|
459800159b | ||
|
|
d3ab67b1d2 | ||
|
|
cc06af64c0 | ||
|
|
63329c1423 | ||
|
|
43f8fa1136 | ||
|
|
c755efef89 | ||
|
|
3f887cd947 | ||
|
|
9072117d31 | ||
|
|
84deebac66 | ||
|
|
0afb905b9b | ||
|
|
be20b26c8b | ||
|
|
a7609364e8 | ||
|
|
f4f9fd6c40 | ||
|
|
61f4c3b71b | ||
|
|
ed70bf336f | ||
|
|
640e70736e | ||
|
|
2c6117e820 | ||
|
|
b49e864cf8 | ||
|
|
f758346dd5 | ||
|
|
b0057cc941 | ||
|
|
197119d501 | ||
|
|
427cbeed83 | ||
|
|
e29139fe83 | ||
|
|
0d68f6586e | ||
|
|
405f29d755 | ||
|
|
d6f3ede8dc | ||
|
|
4215914f6b | ||
|
|
37d65402a2 | ||
|
|
28c50a4ab1 | ||
|
|
709c0c186b | ||
|
|
a2cf15cd38 | ||
|
|
877b4fb2dc | ||
|
|
3c6deab626 | ||
|
|
df07789843 | ||
|
|
167f3f12e2 | ||
|
|
41e3e9d004 | ||
|
|
11c41291a4 | ||
|
|
3ec128b4d1 | ||
|
|
ea908cef68 | ||
|
|
99da3279be | ||
|
|
4a467194e6 | ||
|
|
f5d1033c74 | ||
|
|
64200a3dd0 | ||
|
|
715192db5d | ||
|
|
9c15a2af47 | ||
|
|
bf679429c9 | ||
|
|
6555c98d09 | ||
|
|
03009a01e0 | ||
|
|
d47a35a93a | ||
|
|
3bc29ba2aa | ||
|
|
8daa95bb98 | ||
|
|
3b7cd13d2a | ||
|
|
62ca4df2b9 | ||
|
|
4e3d70d509 | ||
|
|
eea1a6cb52 | ||
|
|
254e62ff3f | ||
|
|
877708b20e | ||
|
|
b00541c60c | ||
|
|
70d69096fd | ||
|
|
9e3babd22c | ||
|
|
3bcf8c33e4 | ||
|
|
c2da4bb3e0 | ||
|
|
a5b30744e6 | ||
|
|
71142ab6ce | ||
|
|
60de271388 | ||
|
|
29f7446e2c | ||
|
|
069b3a12ae | ||
|
|
a53a593da1 | ||
|
|
2faea825dc | ||
|
|
9c568bb511 | ||
|
|
ac90304f4d | ||
|
|
6b2861f0c0 | ||
|
|
b25ecf398e | ||
|
|
76a25e022c | ||
|
|
33220c17b5 | ||
|
|
94ce924ea2 | ||
|
|
a6faafb107 | ||
|
|
232353847d | ||
|
|
59559e2f35 | ||
|
|
93ecb7c84b | ||
|
|
ec1d27bedf | ||
|
|
005937547f | ||
|
|
51bb39f099 | ||
|
|
8cd9b20cbc | ||
|
|
f55595fcc9 | ||
|
|
9115cfcbbe | ||
|
|
cc14f21cef | ||
|
|
8b15e0fc5f | ||
|
|
4f445ed933 | ||
|
|
d68d169a63 | ||
|
|
edd47822b5 | ||
|
|
056bcd7022 | ||
|
|
e85a5c0bc1 | ||
|
|
e8d366e733 | ||
|
|
2ccf08a3fe | ||
|
|
a340fa39d0 | ||
|
|
f7aa70a492 | ||
|
|
2fd5341a07 | ||
|
|
150f12e4ad | ||
|
|
a3e6264416 | ||
|
|
0fbbf26f63 | ||
|
|
cfda49b436 | ||
|
|
d2ac39cb46 | ||
|
|
193a7390c4 | ||
|
|
ab8b878f57 | ||
|
|
f4f9ea5a4a | ||
|
|
fc725a35d6 | ||
|
|
0f52ccd54a | ||
|
|
a8e44c6a80 | ||
|
|
16f1b61de5 | ||
|
|
2bf3947ce9 | ||
|
|
a2b7cea8a7 | ||
|
|
8a54f41c7d | ||
|
|
f78a75ce96 | ||
|
|
7ccf478fd6 | ||
|
|
49be51a951 | ||
|
|
7827aee97b | ||
|
|
5254d57c5b | ||
|
|
731d9305ff | ||
|
|
2be528f04f | ||
|
|
d6fca6a5b6 | ||
|
|
e64ed5ef2d | ||
|
|
b7a20b81f6 | ||
|
|
9acd7716dd | ||
|
|
94068be123 | ||
|
|
6fc8d0dc64 | ||
|
|
85a33eb62b | ||
|
|
9b2e91fbf9 | ||
|
|
e9fffcc4a7 | ||
|
|
ddce50f42e | ||
|
|
da5a74da3b | ||
|
|
f0bc9af678 | ||
|
|
7fd79df4e1 | ||
|
|
b7fb7f4858 | ||
|
|
b3342d9962 | ||
|
|
bc57ce3ba7 | ||
|
|
b7c35f2568 | ||
|
|
454467d081 | ||
|
|
cc545340ca | ||
|
|
f6fa4f25bd | ||
|
|
73e2bba699 | ||
|
|
ad574ef276 | ||
|
|
1c47307bfd | ||
|
|
98f0f76e73 | ||
|
|
978978a3fe | ||
|
|
82cc186b27 | ||
|
|
a9e7d5b5ad | ||
|
|
7b930541cf | ||
|
|
b6163a2d86 | ||
|
|
9539caae6e | ||
|
|
8bf5430d7e | ||
|
|
e8ac0f580e | ||
|
|
2a67b267c8 | ||
|
|
27322f5866 | ||
|
|
ba35a41fdd | ||
|
|
6577e1eeef | ||
|
|
7f5f3fccf8 | ||
|
|
87403fadae | ||
|
|
700d33457a | ||
|
|
26bc9f66ee | ||
|
|
97dad50388 | ||
|
|
998a124bd4 | ||
|
|
9f8a03fa4e | ||
|
|
5a71f927fc | ||
|
|
ef81fc89ab | ||
|
|
7bba055c34 | ||
|
|
3ac5b7c912 | ||
|
|
a0c1a347fa | ||
|
|
64d4cd125b | ||
|
|
a90a35149a | ||
|
|
c4ae99c423 | ||
|
|
a6dc1e1af5 | ||
|
|
267b93ee74 | ||
|
|
ec2a017160 | ||
|
|
5f36263548 | ||
|
|
f804b4ae3b | ||
|
|
d34c85b7a6 | ||
|
|
70c5e77153 | ||
|
|
84eab8b4c8 | ||
|
|
a978969be5 | ||
|
|
5ede887757 | ||
|
|
cbd69fb1f4 | ||
|
|
2f09f3af69 | ||
|
|
b3cad5938d | ||
|
|
548ca00b11 | ||
|
|
3832e2d06b | ||
|
|
011d795eb0 | ||
|
|
9d04acb366 | ||
|
|
047379caaf | ||
|
|
6854ec67f0 | ||
|
|
8087ca63da | ||
|
|
429dd08950 | ||
|
|
07f4de850c | ||
|
|
88eb5f9613 | ||
|
|
f38f05040c | ||
|
|
f479c2eff6 | ||
|
|
1cf0c517a2 | ||
|
|
159bba145f | ||
|
|
2076e2fc86 | ||
|
|
6da7508765 | ||
|
|
982dc981ad | ||
|
|
794f0e5eed | ||
|
|
4258cabded | ||
|
|
b0ee102cfa | ||
|
|
8903e43a9e | ||
|
|
3670066fab | ||
|
|
05df209fa4 | ||
|
|
89fee9c24c | ||
|
|
d38bf643ed | ||
|
|
77af49c1d4 | ||
|
|
5411e73bb8 | ||
|
|
e8579020cb | ||
|
|
44bd60f7e3 | ||
|
|
40e201e061 | ||
|
|
f56b1bf38b | ||
|
|
4588a019d1 | ||
|
|
65f851b9e8 | ||
|
|
4d474617de | ||
|
|
e2d969d59d | ||
|
|
11a35fea26 | ||
|
|
8742cc06a0 | ||
|
|
351d704c23 | ||
|
|
7f7c41e4aa | ||
|
|
ff779eca8d | ||
|
|
4ed61468a2 | ||
|
|
05933ed2e9 | ||
|
|
9b83b2f7b6 | ||
|
|
fa82101b0e | ||
|
|
da14035fcf | ||
|
|
7df377415d | ||
|
|
537ff477d5 | ||
|
|
741dcb1469 | ||
|
|
ad0b79a020 | ||
|
|
0951ca9257 | ||
|
|
87d3a432af | ||
|
|
d811f92100 | ||
|
|
cbf7850daa | ||
|
|
c2ec9f795c | ||
|
|
c665a95892 | ||
|
|
1fda5b615c | ||
|
|
0a98b65b24 | ||
|
|
2a338e032c | ||
|
|
8be3016158 | ||
|
|
b4bae1a55c | ||
|
|
a5661db02a | ||
|
|
eafa0e2c9d | ||
|
|
13b450a2ad | ||
|
|
edcb427a6e | ||
|
|
8abca32b6c | ||
|
|
256e3e143b | ||
|
|
a01cb3ba66 | ||
|
|
3120df7ff7 | ||
|
|
2aab12281e | ||
|
|
1aca09ce6e | ||
|
|
98f2048979 | ||
|
|
224e68e1e5 | ||
|
|
f5e8e517ab | ||
|
|
d2b7f56627 | ||
|
|
ec78863c60 | ||
|
|
4f9882b552 | ||
|
|
f072ecaba6 | ||
|
|
dfccd9c27e | ||
|
|
ce846b3efe | ||
|
|
edafb06a9b | ||
|
|
d9bc4bb317 | ||
|
|
e3718e06c9 | ||
|
|
c0fafff838 | ||
|
|
bb03cd1c15 | ||
|
|
d7f101e6aa | ||
|
|
5cedd50480 | ||
|
|
f7f301d1d9 | ||
|
|
cd2801589d | ||
|
|
7e391959b9 | ||
|
|
9ea03a3c4b | ||
|
|
fe1c8af22a | ||
|
|
e41dfb6fb6 | ||
|
|
01aba594a2 | ||
|
|
9312fda8cd | ||
|
|
d3e059dd2a | ||
|
|
4900359445 | ||
|
|
738f288181 | ||
|
|
9a92843c21 | ||
|
|
009bcc38e5 | ||
|
|
ddf9e18ee4 | ||
|
|
8eb6822d25 | ||
|
|
b9db4d29aa | ||
|
|
caebe005dd | ||
|
|
b87acd2cc0 | ||
|
|
97c61cfb24 | ||
|
|
cb55aed8a8 | ||
|
|
5f08d2183b | ||
|
|
d8ea6a9526 | ||
|
|
576448b821 | ||
|
|
f1b139de54 | ||
|
|
e2027bf628 | ||
|
|
dc26b4113c | ||
|
|
aef1a2a06e | ||
|
|
fe5b695684 | ||
|
|
7189abc5af | ||
|
|
33442d9a94 | ||
|
|
9a717100e6 | ||
|
|
7fdf3a2c37 | ||
|
|
b6d3d72fee | ||
|
|
a60f3b6eab | ||
|
|
e9b16a4eae | ||
|
|
26758571f4 | ||
|
|
66e610c5ea | ||
|
|
1bf6246eda | ||
|
|
55464a0e9a | ||
|
|
332599307a | ||
|
|
0cc73ba1b2 | ||
|
|
5e58330196 | ||
|
|
494389d15a | ||
|
|
8493d4fdcb | ||
|
|
1253ee5fef | ||
|
|
18a82523bf | ||
|
|
9fdcd6de98 | ||
|
|
3860b2b04b | ||
|
|
39b0244eee | ||
|
|
e441778435 | ||
|
|
9f71028ed2 | ||
|
|
c7b878c6eb | ||
|
|
7880832bed | ||
|
|
d4317c32a0 | ||
|
|
69d8c61ab5 | ||
|
|
a005c10f6b | ||
|
|
f40f820ec7 | ||
|
|
c04ae66d35 | ||
|
|
84a32cc4b3 | ||
|
|
66a766beae | ||
|
|
0440a13dd0 | ||
|
|
5359c8f9e5 | ||
|
|
f9bb1803f1 | ||
|
|
7f827c55fa | ||
|
|
6105831118 | ||
|
|
ebb3724f6c | ||
|
|
7539072e72 | ||
|
|
d7d5b15d38 | ||
|
|
86ab3f8b2d | ||
|
|
b23bb7aee8 | ||
|
|
642e8814f8 | ||
|
|
b5dada36d4 | ||
|
|
ef285497fd | ||
|
|
b8638f892c | ||
|
|
bcf7bd61e9 | ||
|
|
ac033af33b | ||
|
|
adc1d3175b | ||
|
|
77d43598a3 | ||
|
|
952db2b320 | ||
|
|
9a27317209 | ||
|
|
85682ac1a5 | ||
|
|
6ffebdff6a | ||
|
|
a03c90beb2 | ||
|
|
2488a33af8 | ||
|
|
bbf813ccda | ||
|
|
69defb4011 | ||
|
|
1c9159d572 | ||
|
|
8cdfe98db9 | ||
|
|
64e828099c | ||
|
|
80552a69c4 | ||
|
|
dfb5cc29f2 | ||
|
|
5fb5ddaa1c | ||
|
|
d2aa3c25be | ||
|
|
ec744ec88a | ||
|
|
76e75bb4ed | ||
|
|
5581225a9b | ||
|
|
4466ea5121 | ||
|
|
b4e88cc517 | ||
|
|
265cb94e8d | ||
|
|
b461a3142a | ||
|
|
9f048ebd8a | ||
|
|
3586e39e35 | ||
|
|
9ca815c8d6 | ||
|
|
064c9ba638 | ||
|
|
c79e19dfc9 | ||
|
|
8cdae287f7 | ||
|
|
bc9ce394cb | ||
|
|
e4d50b07da | ||
|
|
7da5372dd2 | ||
|
|
1b5b338eeb | ||
|
|
a1a4c9a962 | ||
|
|
1dda2330dd | ||
|
|
eb1211a38d | ||
|
|
a6b0924ff5 | ||
|
|
8cc13ed2e2 | ||
|
|
2ab05c6797 | ||
|
|
517839bc96 | ||
|
|
06f5339d78 | ||
|
|
87dfe258b2 | ||
|
|
80b1422684 | ||
|
|
26f1f0ecf6 | ||
|
|
ea78b3c5b5 | ||
|
|
96373915ab | ||
|
|
60e8c6a2ea | ||
|
|
b8e6107af4 | ||
|
|
cf2216968a | ||
|
|
cf721a6540 | ||
|
|
39a55ed045 | ||
|
|
a829d5c034 | ||
|
|
9de8d7ddc3 | ||
|
|
d634326e55 | ||
|
|
9afe2f71d7 | ||
|
|
c5b3033b3a | ||
|
|
597c176900 | ||
|
|
831d523626 | ||
|
|
b0031a103d | ||
|
|
ead1b1c9df | ||
|
|
c1192daf56 | ||
|
|
26dc8b3df4 | ||
|
|
13fabd3a86 | ||
|
|
ad6a20c65e | ||
|
|
d0198ece4e | ||
|
|
8acd6170f7 | ||
|
|
26ea9b2f84 | ||
|
|
f77a27432a | ||
|
|
6f2bab52f1 | ||
|
|
58d71c0c23 | ||
|
|
261f0b967f | ||
|
|
51f9809d0e | ||
|
|
ec13857152 | ||
|
|
787a713a93 | ||
|
|
d2567a3c11 | ||
|
|
65971ffb40 | ||
|
|
c9ca206e13 | ||
|
|
4ff445ca6a | ||
|
|
da19b360f5 | ||
|
|
24580eae9c | ||
|
|
93282e101d | ||
|
|
884a7a51c3 | ||
|
|
23595c82d9 | ||
|
|
07d5168d29 | ||
|
|
f29d7f75f1 | ||
|
|
d8c84589fc | ||
|
|
cd183556f3 | ||
|
|
76169e757c | ||
|
|
b3cecf0f34 | ||
|
|
ba8d778df4 | ||
|
|
1721583af3 | ||
|
|
4f537d5231 | ||
|
|
3d544c1ef3 | ||
|
|
87c7e5e98a | ||
|
|
57a1437fdf | ||
|
|
8f3122e31c | ||
|
|
1c6dc34041 | ||
|
|
5a9b265c4b | ||
|
|
5fc8b0ca1a | ||
|
|
b740560d19 | ||
|
|
d39d0bc456 | ||
|
|
697219c9c4 | ||
|
|
5e935bc842 | ||
|
|
0547b77875 | ||
|
|
986974a7cd | ||
|
|
4fb2347af4 | ||
|
|
dafa93f05d | ||
|
|
4f3f401b0f | ||
|
|
1003caba49 | ||
|
|
4a533fd385 | ||
|
|
ef7dbc9ab9 | ||
|
|
817557365b | ||
|
|
784d1c8763 | ||
|
|
aabd4b1922 | ||
|
|
3be4eebf64 | ||
|
|
e39065d2c2 | ||
|
|
45a41a56bf | ||
|
|
8ef2f8d00f | ||
|
|
7982d3d2b4 | ||
|
|
d1f9fd8f36 | ||
|
|
9729bf6a88 | ||
|
|
765ab62949 | ||
|
|
2596c7f6be | ||
|
|
e66b3834a1 | ||
|
|
b14eeec3b6 | ||
|
|
c12136bb51 | ||
|
|
6a550b9e35 | ||
|
|
71ddfbddbf | ||
|
|
6ed94527c1 | ||
|
|
b2c39e2bd0 | ||
|
|
5856fb6533 | ||
|
|
5765ceef3d | ||
|
|
422be70442 | ||
|
|
9d3c384c84 | ||
|
|
f465587407 | ||
|
|
c6ac2ddf9d | ||
|
|
4f5c3d8ca0 | ||
|
|
65ceca640b | ||
|
|
2c16372907 | ||
|
|
4a073fa4a4 | ||
|
|
150f2d6b3a | ||
|
|
69025c5566 | ||
|
|
a9c1149155 | ||
|
|
448b33d78d | ||
|
|
6d12b1df8c | ||
|
|
9013a76bbf | ||
|
|
cb82789871 | ||
|
|
578763edcc | ||
|
|
88e4ce9610 | ||
|
|
9673817fe5 | ||
|
|
a68f032e5a | ||
|
|
96cfd521d5 | ||
|
|
4d6c991fb2 | ||
|
|
cb56c6e47f | ||
|
|
ca559989da | ||
|
|
751679fc2e | ||
|
|
8a11925ce5 | ||
|
|
771d66284b | ||
|
|
36a846c621 | ||
|
|
def23f0932 | ||
|
|
0a8917802c | ||
|
|
5799c15b90 | ||
|
|
fb2bce5367 | ||
|
|
129ac8f223 | ||
|
|
7f63b6eb8d | ||
|
|
36849974d7 | ||
|
|
28e3bc4de1 | ||
|
|
ad10d24526 | ||
|
|
ee5da1a70d | ||
|
|
f14cbd2584 | ||
|
|
c6b1bdcd56 | ||
|
|
f22d2a84a1 | ||
|
|
4e81d17254 | ||
|
|
eb1a8e88a4 | ||
|
|
cfe194013c | ||
|
|
ba7ac458c9 | ||
|
|
c263939faa | ||
|
|
234cdc45f2 | ||
|
|
679ca5efcd | ||
|
|
2c2249ffd3 | ||
|
|
8ff9f48bb4 | ||
|
|
5761530e50 | ||
|
|
6500a72e58 | ||
|
|
a7372d932e | ||
|
|
615226093e | ||
|
|
256ec4f902 | ||
|
|
25cbf98983 | ||
|
|
957e241716 | ||
|
|
570585090a | ||
|
|
629106eb84 | ||
|
|
14c841c86e | ||
|
|
02fe18c7dc | ||
|
|
e6948eeda8 | ||
|
|
3b082b5e14 | ||
|
|
a068405339 | ||
|
|
0895a2ff64 | ||
|
|
d62bcbdb55 | ||
|
|
f2663280c4 | ||
|
|
a38a6a2c8b | ||
|
|
899099f1d6 | ||
|
|
cef0f8497f | ||
|
|
71d2571e21 | ||
|
|
5b124267e6 | ||
|
|
aa8266e702 | ||
|
|
c08ab17de6 | ||
|
|
0adf6fde1a | ||
|
|
4a73a1ecef | ||
|
|
19fbd0b855 | ||
|
|
57b4d3003b | ||
|
|
6a7ecd89ee | ||
|
|
cb26ce3fe3 | ||
|
|
e07fee5cc1 | ||
|
|
332d0b106d | ||
|
|
34f407d636 | ||
|
|
ecd53f8497 | ||
|
|
13e3e211a6 | ||
|
|
f995d0a219 | ||
|
|
8ef35c39ba | ||
|
|
6cf9d57be9 | ||
|
|
9525d91f6e | ||
|
|
7e02d59d32 | ||
|
|
8ca82729fa | ||
|
|
dda47b5e0e | ||
|
|
467dc245bc | ||
|
|
9c40d0f6d6 | ||
|
|
4caac04c23 | ||
|
|
3a2a0ac666 | ||
|
|
10c54005be | ||
|
|
abc5fd0226 | ||
|
|
00c7756610 | ||
|
|
66c593f147 | ||
|
|
9f7f17b667 | ||
|
|
3727f23efd | ||
|
|
227854e258 | ||
|
|
ec5225c31c | ||
|
|
f8a3226ad5 | ||
|
|
556102cfa0 | ||
|
|
92ddbf7dc3 | ||
|
|
eb3bf8b046 | ||
|
|
7fa2356c07 | ||
|
|
330954e884 | ||
|
|
c47fb8ab2d | ||
|
|
aa5d8ab1bd | ||
|
|
99dd55b221 | ||
|
|
7d117425d8 | ||
|
|
371e05abc4 | ||
|
|
af4b7d20c5 | ||
|
|
94cfcc11aa | ||
|
|
5426cd8f34 | ||
|
|
538e1d1c7c | ||
|
|
0e31188d50 | ||
|
|
2964c5ef63 | ||
|
|
6a52694ef7 | ||
|
|
78c8057a18 | ||
|
|
4d1adcf955 | ||
|
|
1c4dc89ead | ||
|
|
9d9c19c0f8 | ||
|
|
f350775d0e | ||
|
|
96a30160b3 | ||
|
|
e7fe651b49 | ||
|
|
c207a45051 | ||
|
|
40430febc5 | ||
|
|
26afbaf0d1 | ||
|
|
24d456db40 | ||
|
|
6fb8299a67 | ||
|
|
87f7994353 | ||
|
|
6cfe2dc1bb | ||
|
|
9caec0658d | ||
|
|
ca48cef255 | ||
|
|
300348fe53 | ||
|
|
bd76b47e1d | ||
|
|
18dcdb8f45 | ||
|
|
a267da6ef6 | ||
|
|
b5b2f49e81 | ||
|
|
5048f26d66 | ||
|
|
43ac3df692 | ||
|
|
f296a5005c | ||
|
|
48f2b36854 | ||
|
|
14d98d2771 | ||
|
|
f153426ab2 | ||
|
|
a60dfdab12 | ||
|
|
8c00b866c2 | ||
|
|
c1f8cfc936 | ||
|
|
923613db5e | ||
|
|
7bb2a3d8ce | ||
|
|
2d04a1af21 | ||
|
|
463104903f | ||
|
|
6cbd15cfc7 | ||
|
|
bb58fc6c1b | ||
|
|
fdb7688804 | ||
|
|
3ebd7e53ed | ||
|
|
9d6d1067bc | ||
|
|
4ed1087cf5 | ||
|
|
8210b50647 | ||
|
|
685218e532 | ||
|
|
f74a9f63a8 | ||
|
|
56c2c7dce7 | ||
|
|
b45cf753a7 | ||
|
|
efc05e8122 | ||
|
|
d810b77c71 | ||
|
|
47874acfaf | ||
|
|
c6522a72a4 | ||
|
|
1effb80c8b | ||
|
|
50c5963d96 | ||
|
|
6351dc3a73 | ||
|
|
3d618f500e | ||
|
|
b1f95988e5 | ||
|
|
c7e3d6066d | ||
|
|
bf6d6f3ae8 | ||
|
|
d697a3de0f | ||
|
|
f96b3b00e3 | ||
|
|
9e36674378 | ||
|
|
1b3aeb75d4 | ||
|
|
fbd725dce7 | ||
|
|
005ecad6c9 | ||
|
|
e74799e1c3 | ||
|
|
276a667d77 | ||
|
|
f1bd0d8358 | ||
|
|
96a1c1c833 | ||
|
|
13c234f421 | ||
|
|
d98626913c | ||
|
|
78f08e8cac | ||
|
|
370ee14df1 | ||
|
|
d38d026356 | ||
|
|
ab3128ad3a | ||
|
|
606544c7be | ||
|
|
78b5cd4dbd | ||
|
|
6eca7eb9da | ||
|
|
3ac16655ea | ||
|
|
43e28b43ad | ||
|
|
406f977be0 | ||
|
|
d8d7eb0a31 | ||
|
|
8b31c5dc19 | ||
|
|
42c616c87f | ||
|
|
4e240908dd | ||
|
|
99b4858a95 | ||
|
|
ffa74d17cb | ||
|
|
f6c7ab68e7 | ||
|
|
6caa2377f8 | ||
|
|
00f3065e70 | ||
|
|
0ab53198c7 | ||
|
|
2290c5ee55 | ||
|
|
fdccc8455e | ||
|
|
b5993d6b03 | ||
|
|
2d4000daa8 | ||
|
|
feec831d2d | ||
|
|
bf422bcff0 | ||
|
|
f86298de3a | ||
|
|
3014713d44 | ||
|
|
bf8c0da179 | ||
|
|
3b72e771ec | ||
|
|
1539e004ee | ||
|
|
9611c5a0e6 | ||
|
|
d0d8585e8a | ||
|
|
ed46a4c93a | ||
|
|
62ddd3e939 | ||
|
|
6be4b79066 | ||
|
|
8c24b6bef1 | ||
|
|
55f7cfceba | ||
|
|
e9436a6a1b | ||
|
|
e0f644beb9 | ||
|
|
3ba4661dc7 | ||
|
|
80402e7dce | ||
|
|
838f1557af | ||
|
|
5b7fc8ae90 | ||
|
|
c754b206c2 | ||
|
|
470e085946 | ||
|
|
6b6e71594a | ||
|
|
ee16adb092 | ||
|
|
fa3eadccf6 | ||
|
|
78cfc68c83 | ||
|
|
31f97e934e | ||
|
|
7b9a89b568 | ||
|
|
22231f7c6d | ||
|
|
6e3b2df7f9 | ||
|
|
94919dc99a | ||
|
|
e37d71ad24 | ||
|
|
fc5536a641 | ||
|
|
51d8acf0f1 | ||
|
|
712b76e170 | ||
|
|
cf419e11b3 | ||
|
|
dfc6bf0c84 | ||
|
|
9f79dd39f5 | ||
|
|
49e1bc2073 | ||
|
|
aa4614e480 | ||
|
|
ec63f94894 | ||
|
|
7262cf3346 | ||
|
|
bf58aaf2bf | ||
|
|
cea49ba2b9 | ||
|
|
33e323135e | ||
|
|
ea219a201c | ||
|
|
6e6255df1f | ||
|
|
0630099f4c | ||
|
|
bf127028b2 | ||
|
|
864ae34378 | ||
|
|
762fad2aa0 | ||
|
|
98be2b8551 | ||
|
|
1515856560 | ||
|
|
8fa3090aab | ||
|
|
1c949f772f | ||
|
|
cd3ce0c7a4 | ||
|
|
3e65a610bd | ||
|
|
2711ecefc1 | ||
|
|
681366e346 | ||
|
|
97d37ae243 | ||
|
|
6e59ad0dee | ||
|
|
2f0a2b400c | ||
|
|
fc91e76354 | ||
|
|
64e6d882c6 | ||
|
|
71ac584b38 | ||
|
|
f84b585864 | ||
|
|
aa507faeab | ||
|
|
c1707b8308 | ||
|
|
29ea9c8a5e | ||
|
|
c905c5ee9b | ||
|
|
11698aa864 | ||
|
|
f01baf302e | ||
|
|
20dd65b057 | ||
|
|
3440ad6e60 | ||
|
|
553e11082c | ||
|
|
8a0244b43b | ||
|
|
76529d7680 | ||
|
|
abaccb4d4b | ||
|
|
e666764af6 | ||
|
|
4adbd6fadd | ||
|
|
ee3d320eaa | ||
|
|
f89382df90 | ||
|
|
3862ebabf6 | ||
|
|
77254b735b | ||
|
|
4274dcf442 | ||
|
|
8c39f41101 | ||
|
|
0b43fcc216 | ||
|
|
1f941bbec7 | ||
|
|
65ed5eb800 | ||
|
|
4733fc1769 | ||
|
|
751e5ecbb2 | ||
|
|
8ad20815dd | ||
|
|
9efec4293d | ||
|
|
60cbe2db29 | ||
|
|
ae9ddffcdd | ||
|
|
e84c0eb86b | ||
|
|
dd2369daf2 | ||
|
|
63b1652d98 | ||
|
|
db6a8352c3 | ||
|
|
3a03804c14 | ||
|
|
04c1590a6e | ||
|
|
910a97af4b | ||
|
|
955304a491 | ||
|
|
e6a719c1a6 | ||
|
|
5b53ccaf0c | ||
|
|
7e517369e3 | ||
|
|
742cb0737a | ||
|
|
27f1f7885d | ||
|
|
c39ec6ff2d | ||
|
|
864e9f16a3 | ||
|
|
e475af3c4b | ||
|
|
fc9ca8ea20 | ||
|
|
fae85e0ec4 | ||
|
|
597e0fac11 | ||
|
|
91c0e79f47 | ||
|
|
3220aab2bd | ||
|
|
f48fac3e50 | ||
|
|
4aeb053925 | ||
|
|
325728a9fd | ||
|
|
05fb492bd5 | ||
|
|
43c41be136 | ||
|
|
5fea67d59c | ||
|
|
5dc8768ef1 | ||
|
|
1587955171 | ||
|
|
1f332e1e0b | ||
|
|
8117f2c503 | ||
|
|
9076487d03 | ||
|
|
46b01ba176 | ||
|
|
8e34382463 | ||
|
|
326545d442 | ||
|
|
b33484a31e | ||
|
|
6211be616d | ||
|
|
112e22887e | ||
|
|
cc25229d1e | ||
|
|
bbff2c8712 | ||
|
|
6cc6a6c5bf | ||
|
|
38662ecb20 | ||
|
|
7ff7454ef9 | ||
|
|
489aaae402 | ||
|
|
440aa68e86 | ||
|
|
a1978c248c | ||
|
|
080ff34141 | ||
|
|
581a927479 | ||
|
|
dc1496029a | ||
|
|
eec7392c9b | ||
|
|
6abfa2baa8 | ||
|
|
b2aa804e50 | ||
|
|
957000ce35 | ||
|
|
a328a6e100 | ||
|
|
5bed9658aa | ||
|
|
69914dc9e2 | ||
|
|
2df9e3070a | ||
|
|
dda96797ec | ||
|
|
76862a089f | ||
|
|
cd2c8eac55 | ||
|
|
1312a811d4 | ||
|
|
80726f7ebd | ||
|
|
c8f4cf787b | ||
|
|
b57ce4d19b | ||
|
|
8bbf51c5ca | ||
|
|
a4a0107e64 | ||
|
|
72f7716385 | ||
|
|
e914910b02 | ||
|
|
30003f6679 | ||
|
|
2d40cc1ab6 | ||
|
|
bb7d11d077 | ||
|
|
9c646d8b7c | ||
|
|
09be7c7522 | ||
|
|
2c6c31ca66 | ||
|
|
adb4c5af40 | ||
|
|
d1426c70d8 | ||
|
|
9251d4e237 | ||
|
|
c5889a418a | ||
|
|
55ec58cefd | ||
|
|
0f63adee90 | ||
|
|
d3ee514b1e | ||
|
|
947ffe0131 | ||
|
|
8df6800cc1 | ||
|
|
89fc7b9e16 | ||
|
|
162b54a5e1 | ||
|
|
5a411c36b8 | ||
|
|
4e6a43be5d | ||
|
|
3a5a619e9d | ||
|
|
bf95c814f8 | ||
|
|
35f8d0565b | ||
|
|
deec679f28 | ||
|
|
e2decc637e | ||
|
|
e4c5d2b611 | ||
|
|
f2c78d68e0 | ||
|
|
5c4f4ac305 | ||
|
|
0ea2445acf | ||
|
|
bfdd954866 | ||
|
|
c85fbae7eb | ||
|
|
33bdaabcca | ||
|
|
fc28210a72 | ||
|
|
0102077fb2 | ||
|
|
90f362d782 | ||
|
|
a3729c1ad6 | ||
|
|
a0f96930ab | ||
|
|
8833670ec3 | ||
|
|
3a69bb67b1 | ||
|
|
7be56e213c | ||
|
|
3f9c9a0877 | ||
|
|
52d8b2eb43 | ||
|
|
8eeb3ff6a9 | ||
|
|
3a20261c78 | ||
|
|
73ee336359 | ||
|
|
617d54761f | ||
|
|
814d4cf6b7 | ||
|
|
8763d8d99f | ||
|
|
c44683d49f | ||
|
|
d493145644 | ||
|
|
91b47cb5e6 | ||
|
|
e5b22e4cda | ||
|
|
968bc7cbd9 | ||
|
|
7ce403f51e | ||
|
|
7c6e0388a3 | ||
|
|
1b32cc86f2 | ||
|
|
21b3a26254 | ||
|
|
d5f24de7e1 | ||
|
|
e82949d57d | ||
|
|
787ee6980f | ||
|
|
dd9e5825ae | ||
|
|
7fe95fc3f9 | ||
|
|
9d631d355c | ||
|
|
0d9b416cbc | ||
|
|
dcf00cf911 | ||
|
|
4e74a30430 | ||
|
|
dc09671841 | ||
|
|
cb0fcf3691 | ||
|
|
648ef5fb2d | ||
|
|
89d96e88a0 | ||
|
|
e4240b6bef | ||
|
|
2c8569404c | ||
|
|
ced9572d86 | ||
|
|
dc2cea5bcf | ||
|
|
2d8ca73afa | ||
|
|
dbf6cdbd92 | ||
|
|
0ab189cb3e | ||
|
|
412f4e719e | ||
|
|
f927e9b551 | ||
|
|
13f1d6cf66 | ||
|
|
c9d3a0b792 | ||
|
|
bcd31a16ab | ||
|
|
2609f9c55e | ||
|
|
cb9ed71efc | ||
|
|
3856e777b4 | ||
|
|
e52d3b16e0 | ||
|
|
d54f6fa95b | ||
|
|
fa02dcd021 | ||
|
|
c971f75acf | ||
|
|
71f18076d6 | ||
|
|
d8ebac5f1b | ||
|
|
f6d7a92779 | ||
|
|
f195a8660b | ||
|
|
bc3ddfa5f2 | ||
|
|
5590c16c68 | ||
|
|
e6b1bbc351 | ||
|
|
1b8cfd5a79 | ||
|
|
0611fbcc09 | ||
|
|
bed3ac01e2 | ||
|
|
eb7653cfec | ||
|
|
ebbaa0e92e | ||
|
|
0202d71f70 | ||
|
|
04da382a9f | ||
|
|
d273ae03da | ||
|
|
a5f463a965 | ||
|
|
f3a295a1a1 | ||
|
|
a7a0daf704 | ||
|
|
06c2fc72df | ||
|
|
ef8e2d4fae | ||
|
|
809950e764 | ||
|
|
4666e1dca6 | ||
|
|
231ee05375 | ||
|
|
763e4d68e4 | ||
|
|
465ca23154 | ||
|
|
6dc6e8b2a8 | ||
|
|
aa90bb43d8 | ||
|
|
8d248f0bfa | ||
|
|
5a05f12097 | ||
|
|
fa9ce49d9d | ||
|
|
d6364b8956 | ||
|
|
98eb0b7cd6 | ||
|
|
043cea3cf0 | ||
|
|
bdda21f2f9 | ||
|
|
c9b90ad577 | ||
|
|
8d5020fd0a | ||
|
|
29077c866c | ||
|
|
b8014dfe68 | ||
|
|
01212de2d9 | ||
|
|
71d4a08b11 | ||
|
|
cc8366c3ee | ||
|
|
356df96770 | ||
|
|
25255e4e3c | ||
|
|
f1dd03f212 | ||
|
|
7ee3115a9d | ||
|
|
0c8ad9d2c6 | ||
|
|
870cab5efd | ||
|
|
c29bfb7bf9 | ||
|
|
f283f0c978 | ||
|
|
6f1dae993a | ||
|
|
355f66f7ff | ||
|
|
0042db5ea3 | ||
|
|
81ec7ea9e7 | ||
|
|
f812291dd0 | ||
|
|
ffc16099aa | ||
|
|
c9f0e2e4d8 | ||
|
|
b2ec2f6fff | ||
|
|
9a0a76f3bc | ||
|
|
081b90edbd | ||
|
|
b98795f3b3 | ||
|
|
6aaa935019 | ||
|
|
3feb2c08b5 | ||
|
|
3314cfb899 | ||
|
|
7856d22603 | ||
|
|
a9f057bf70 | ||
|
|
ddc7740eca | ||
|
|
cbdfd9bdfa | ||
|
|
52ba264c80 | ||
|
|
f348d84c1a | ||
|
|
bf7768006c | ||
|
|
e49ecfe4ed | ||
|
|
c0eced8d7e | ||
|
|
924798f19e | ||
|
|
ae40e809b9 | ||
|
|
397ff0bd22 | ||
|
|
b21441cf59 | ||
|
|
01473479c7 | ||
|
|
5909f0a872 | ||
|
|
47561a93f2 | ||
|
|
3bc707a5a2 | ||
|
|
d54f034462 | ||
|
|
7ee7c207d5 | ||
|
|
aaf72f20c1 | ||
|
|
7d6ff0df56 | ||
|
|
b712516f50 | ||
|
|
7392525a03 | ||
|
|
81c917280a | ||
|
|
f78ed4997f | ||
|
|
9fc6675885 | ||
|
|
c0e84afffc | ||
|
|
9c5cea08c8 | ||
|
|
90d81f05c9 | ||
|
|
0064ccbce6 | ||
|
|
f611150a30 | ||
|
|
fe37dfba5e | ||
|
|
4c7cc8643f | ||
|
|
bd52dcf096 | ||
|
|
a77a92adf1 | ||
|
|
bf817f89aa | ||
|
|
766117c5ff | ||
|
|
54759038a9 | ||
|
|
17bd18b12c | ||
|
|
ef8a575d7f | ||
|
|
0fc06f1410 | ||
|
|
979f885885 | ||
|
|
88cfebe15b | ||
|
|
6afa3c1a13 | ||
|
|
57f35dcdfe | ||
|
|
4fe934e8af | ||
|
|
cc1eab1826 | ||
|
|
72620a5776 | ||
|
|
aa8bf41eb9 | ||
|
|
e9eaefa379 | ||
|
|
071aa508eb | ||
|
|
1d4ecd5e37 | ||
|
|
04cec5b5e5 | ||
|
|
f4816df891 | ||
|
|
c536c0f18c | ||
|
|
9dd6a99a64 | ||
|
|
298792f2e3 | ||
|
|
71fa043ef4 | ||
|
|
f220f8bf62 | ||
|
|
64887ce050 | ||
|
|
abc81a6e9c | ||
|
|
3c9fa960df | ||
|
|
3db444a6cf | ||
|
|
50288938d1 | ||
|
|
ac1b859b4c | ||
|
|
ac53e337a9 | ||
|
|
9672879d21 | ||
|
|
bf98b56cd6 | ||
|
|
eeeb5b86b5 | ||
|
|
b1bf48867c | ||
|
|
63a535e8d2 | ||
|
|
b92c173ca4 | ||
|
|
d275c67d6d | ||
|
|
561840fa26 | ||
|
|
f34d100282 | ||
|
|
dad56e1c65 | ||
|
|
92f20f9794 | ||
|
|
644b263c71 | ||
|
|
28bcdbc738 | ||
|
|
95383f5cd8 | ||
|
|
02b20f99af | ||
|
|
a48a75fe91 | ||
|
|
c7c3fa7c02 | ||
|
|
dce0365c23 | ||
|
|
e9d72f5d05 | ||
|
|
f516a1eb7c | ||
|
|
36d9b25e89 | ||
|
|
ae1fb2e2e4 | ||
|
|
6033330182 | ||
|
|
68cb1635a0 | ||
|
|
0c10dd0cc1 | ||
|
|
a57b25418a | ||
|
|
30688b02bd | ||
|
|
3d0fba5768 | ||
|
|
e89009eac5 | ||
|
|
6b20ef7388 | ||
|
|
7f1eeb1801 | ||
|
|
c8aec4d15e | ||
|
|
580579202a | ||
|
|
502661ba93 | ||
|
|
d56bbb8991 | ||
|
|
d0c8d675d7 | ||
|
|
292d7b49c3 | ||
|
|
4b78f15f65 | ||
|
|
6ffa71abd3 | ||
|
|
0d201dead3 | ||
|
|
daef0542ce | ||
|
|
95b8092cbd | ||
|
|
3bb9528e59 | ||
|
|
d78ad877c6 | ||
|
|
6fc677faec | ||
|
|
70488a89a8 | ||
|
|
8431dbd38a | ||
|
|
11039b7932 | ||
|
|
54b49d4bcc | ||
|
|
7bf0442748 | ||
|
|
62bf23a5ae | ||
|
|
50b2254249 | ||
|
|
e3d8378384 | ||
|
|
1f21d4a536 | ||
|
|
9197f541e5 | ||
|
|
5fb584aedd | ||
|
|
496cd0de9b | ||
|
|
1ca62cb9d0 | ||
|
|
a51b432b76 | ||
|
|
f79b3802ac | ||
|
|
f42285dd46 | ||
|
|
ce4fb98cb8 | ||
|
|
f843f1a478 | ||
|
|
8c9152d9c6 | ||
|
|
c94f4b91fc | ||
|
|
ce8f9d40f2 | ||
|
|
b33ed0716b | ||
|
|
24401543bd | ||
|
|
092655312f | ||
|
|
efb11b3b75 | ||
|
|
185676a8f8 | ||
|
|
f2b1a522a5 | ||
|
|
4096fb803b | ||
|
|
aeaa7564d6 | ||
|
|
41a9af76e0 | ||
|
|
f3b34fdd56 | ||
|
|
33c463ec27 | ||
|
|
43f59c8258 | ||
|
|
17d864f6c0 | ||
|
|
58bbcd9d75 | ||
|
|
1bbeb9c6fa | ||
|
|
81a225e6a2 | ||
|
|
78de1a2549 | ||
|
|
89ec787f7e | ||
|
|
8ca94d9acb | ||
|
|
43fa816a1e | ||
|
|
355f4d7e42 | ||
|
|
39b61a3102 | ||
|
|
01abf4fbf9 | ||
|
|
4c796d2ae1 | ||
|
|
c9a3591599 | ||
|
|
ed25f88a13 | ||
|
|
f0c0e8154f | ||
|
|
e98b8e9617 | ||
|
|
03d3a93991 | ||
|
|
8e0efbdff9 | ||
|
|
355f748add | ||
|
|
58af7ee027 | ||
|
|
8dd69484ff | ||
|
|
19e0de5e0a | ||
|
|
28c792bcd0 | ||
|
|
2f81f5c40a | ||
|
|
41fa461529 | ||
|
|
3cb95a334f | ||
|
|
7c85b981c8 | ||
|
|
9bc5df6469 | ||
|
|
59e0a3d6be | ||
|
|
c40cf3e737 | ||
|
|
a554a21a0e | ||
|
|
fc87374ff7 | ||
|
|
7c69f65fa8 | ||
|
|
51b63f7ffb | ||
|
|
8ddea56bb2 | ||
|
|
0aa9eeb533 | ||
|
|
e88c138760 | ||
|
|
fb7775ad0c | ||
|
|
bdb9232ed8 | ||
|
|
95dcf845c3 | ||
|
|
08a3da44b1 | ||
|
|
da27d8b9a1 | ||
|
|
27d3d4892b | ||
|
|
aeb0f275f9 | ||
|
|
ee8331b97f | ||
|
|
c286e6ef7d | ||
|
|
6f30de3a41 | ||
|
|
294b608022 | ||
|
|
c50c6b2549 | ||
|
|
0add6d5ead | ||
|
|
73215a9f83 | ||
|
|
0a0250a622 | ||
|
|
7abeee5888 | ||
|
|
0a90d2846f | ||
|
|
c62a768007 | ||
|
|
d6ea8e30b8 | ||
|
|
cd92990619 | ||
|
|
ee04cee0ca | ||
|
|
e3c64e3adf | ||
|
|
651868a177 | ||
|
|
e57a9370fa | ||
|
|
54df7585a2 | ||
|
|
6276b015bb | ||
|
|
825e81b688 | ||
|
|
f8ab520ad7 | ||
|
|
aeeaca64da | ||
|
|
e37404dce3 | ||
|
|
624fe4a027 | ||
|
|
e2ec889bb7 | ||
|
|
b01d5a000d | ||
|
|
0f39b4e491 | ||
|
|
858ec2fcb8 | ||
|
|
1cb2336a67 | ||
|
|
adf5d1b3bb | ||
|
|
55a60856de | ||
|
|
819330872c | ||
|
|
0fe3115dcf | ||
|
|
ec17e1e6ed | ||
|
|
cacea0f642 | ||
|
|
2f49e9e120 | ||
|
|
7f1dd9701c | ||
|
|
67ed23b8be | ||
|
|
588c780cdd | ||
|
|
7306552f44 | ||
|
|
072a29c838 | ||
|
|
75db9d7750 | ||
|
|
1d7f891ea9 | ||
|
|
f7ee7006f1 | ||
|
|
431b52309c | ||
|
|
df3b035dd8 | ||
|
|
76e1fa30fb | ||
|
|
3e413243db | ||
|
|
810a542d6b | ||
|
|
fba4dacef6 | ||
|
|
367d94ad29 | ||
|
|
e30dc06169 | ||
|
|
8c5f521735 | ||
|
|
4e97c4951e | ||
|
|
7a59ce9d95 | ||
|
|
a9a687c7da | ||
|
|
bc698d8bb2 | ||
|
|
668854d16f | ||
|
|
7f04ef89e5 | ||
|
|
1862e38c9c | ||
|
|
057cd3bc76 | ||
|
|
6f86b323bf | ||
|
|
f6fee983a5 | ||
|
|
b0ab3aaac4 | ||
|
|
dccdd5daba | ||
|
|
849bccc02a | ||
|
|
57ad13a999 | ||
|
|
8400d9b426 | ||
|
|
22fb753099 | ||
|
|
90741c375c | ||
|
|
156231be8a | ||
|
|
7040177316 | ||
|
|
1cde7541b7 | ||
|
|
7dacef600f | ||
|
|
4dc9469320 | ||
|
|
90fd6320a6 | ||
|
|
72e77c3580 | ||
|
|
6b4557ddb8 | ||
|
|
5a08833386 | ||
|
|
655b303675 | ||
|
|
cc25f59e61 | ||
|
|
8bfcf55427 | ||
|
|
5b7d8b6d82 | ||
|
|
641f964651 | ||
|
|
a0fdab27b2 | ||
|
|
4b4ec478df | ||
|
|
16d3025d81 | ||
|
|
feb0e077a9 | ||
|
|
111a99995e | ||
|
|
6779dc5a97 | ||
|
|
8fb47b368c | ||
|
|
ca8122c3f3 | ||
|
|
3f6796fba4 | ||
|
|
6d4097bfb7 | ||
|
|
0ddf5c0bfa | ||
|
|
984afb59e6 | ||
|
|
892a3e355d | ||
|
|
3128b08cfc | ||
|
|
3fc80745ee | ||
|
|
ccd3d992ea | ||
|
|
bc0731cb49 | ||
|
|
a26970e547 | ||
|
|
a565daad48 | ||
|
|
cffeedff64 | ||
|
|
c312d99ea0 | ||
|
|
04bedcd32b | ||
|
|
bc72e34d55 | ||
|
|
e507900e45 | ||
|
|
23fac2f1b8 | ||
|
|
31ef899f4c | ||
|
|
ffd569672c | ||
|
|
fb9efdf875 | ||
|
|
c55e8d7101 | ||
|
|
49179ebfec | ||
|
|
aee9803a0a | ||
|
|
43dd23137e | ||
|
|
98e09a720d | ||
|
|
453c86ebf1 | ||
|
|
de0708b401 | ||
|
|
6b7e9f8935 | ||
|
|
df72853b3c | ||
|
|
e7844e640c | ||
|
|
6eea0ae6d2 | ||
|
|
e5e2dafca3 | ||
|
|
8e0bf86bec | ||
|
|
8b47141655 | ||
|
|
91d412cc7d | ||
|
|
c4de9a9706 | ||
|
|
b2989459ae | ||
|
|
d80afaa55a | ||
|
|
585335690b | ||
|
|
9b6f61e3d0 | ||
|
|
e7b6d73147 | ||
|
|
3f22acc5d9 | ||
|
|
73a9396a0a | ||
|
|
b05bb2601e | ||
|
|
2e0884564f | ||
|
|
5c90246b3f | ||
|
|
9f5ee3a083 | ||
|
|
fe8474e9b4 | ||
|
|
e135030273 | ||
|
|
cc5c4d0699 | ||
|
|
502450cd1e | ||
|
|
b6eaf70b6a | ||
|
|
a0207294c5 | ||
|
|
683371f779 | ||
|
|
897f4f8484 | ||
|
|
d6ad92db0f | ||
|
|
6a2d039e12 | ||
|
|
d514f339d1 | ||
|
|
0fda53f265 | ||
|
|
339e26ea8f | ||
|
|
1f0ce2f5b5 | ||
|
|
b536d11532 | ||
|
|
e8222c8092 | ||
|
|
e00145735a | ||
|
|
18dd65d714 | ||
|
|
24977a92a2 | ||
|
|
4ea7f9fc82 | ||
|
|
7d892e5432 | ||
|
|
0ca95ee5eb | ||
|
|
070271939d | ||
|
|
564cc4d370 | ||
|
|
eb71828960 | ||
|
|
7d0d59da69 | ||
|
|
451683bc83 | ||
|
|
28721bce03 | ||
|
|
711d86a691 | ||
|
|
d975e0160c | ||
|
|
c64d101080 | ||
|
|
698627016d | ||
|
|
c51f58c799 | ||
|
|
1c16683b58 | ||
|
|
ba5b444dd1 | ||
|
|
e4c342eb99 | ||
|
|
0e6db14834 | ||
|
|
5d349c2661 | ||
|
|
5db395bcca | ||
|
|
d6428f7335 | ||
|
|
5e0f76726e | ||
|
|
ea16396f71 | ||
|
|
c5253e8229 | ||
|
|
aeb1e8f46b | ||
|
|
d8bfb8a36a | ||
|
|
62212dfc04 | ||
|
|
9313b0f883 | ||
|
|
9cfb3499d1 | ||
|
|
d180df817e | ||
|
|
443f153559 | ||
|
|
5545d4579a | ||
|
|
2ca98739ab | ||
|
|
b99ca2c1fd | ||
|
|
83747c5325 | ||
|
|
08fdfec954 | ||
|
|
5b6045c6b9 | ||
|
|
b696f7a6a2 | ||
|
|
5d5e2d0433 | ||
|
|
39042281a0 | ||
|
|
9f8e3a58d0 | ||
|
|
a2d3b2a6e5 | ||
|
|
bd886bb4b0 | ||
|
|
8ffc80749b | ||
|
|
a65c2f73f2 | ||
|
|
f74c0e967a | ||
|
|
66ac7843ba | ||
|
|
016389c756 | ||
|
|
d4896c233f | ||
|
|
bb9f451758 | ||
|
|
ad8c205846 | ||
|
|
7828a00244 | ||
|
|
3437fd5006 | ||
|
|
a42a85abd3 | ||
|
|
c4d9a49505 | ||
|
|
fcb9d84edb | ||
|
|
0a682f7ae3 | ||
|
|
4bd0e0216d | ||
|
|
2a32f4287d | ||
|
|
a2abf1a442 | ||
|
|
49c3ae6a57 | ||
|
|
994149877c | ||
|
|
dafcc78dfd | ||
|
|
d6a0fa1504 | ||
|
|
741b01c2d2 | ||
|
|
521ebe52bd | ||
|
|
452632ffea | ||
|
|
974a24c58c | ||
|
|
f76c659fd2 | ||
|
|
525b720871 | ||
|
|
4b7176799e | ||
|
|
f63e5fdf7c | ||
|
|
405471ba0d | ||
|
|
7b35e36329 | ||
|
|
8641cd2a7c | ||
|
|
d78edac68e | ||
|
|
9c53142c92 | ||
|
|
a0faab3cb9 | ||
|
|
87ad797688 | ||
|
|
a6c7aa5e44 | ||
|
|
ff30f6e0a4 | ||
|
|
1ad7fad702 | ||
|
|
0df29024da | ||
|
|
9a59234c42 | ||
|
|
6977c223b2 | ||
|
|
b8659ae019 | ||
|
|
a32186608a | ||
|
|
a877c47d47 | ||
|
|
c382225138 | ||
|
|
f055cde5d1 | ||
|
|
4467110df4 | ||
|
|
6689e3689b | ||
|
|
3382e8ea82 | ||
|
|
f9041cde5c | ||
|
|
2abd2ec8a5 | ||
|
|
09a49fe260 | ||
|
|
515bd8d8ad | ||
|
|
b118a0adac | ||
|
|
e7bea5fa52 | ||
|
|
c21c8249c8 | ||
|
|
fcfc099953 | ||
|
|
a8b5e7f5dc | ||
|
|
3dcf24e86e | ||
|
|
def228d0ad | ||
|
|
aba4e2d0d8 | ||
|
|
7dbed2fc0c | ||
|
|
18ea4c5200 | ||
|
|
55807a2a0b | ||
|
|
cc0b5c40df | ||
|
|
aef27e38b4 | ||
|
|
c122a3d8ab | ||
|
|
fe2f853d98 | ||
|
|
e738785539 | ||
|
|
859b4140b8 | ||
|
|
2b47327569 | ||
|
|
d2f9634443 | ||
|
|
a4bd70895d | ||
|
|
c4a2fe2b89 | ||
|
|
0abf94a334 | ||
|
|
861a7d7fd0 | ||
|
|
bdbd2b09c9 | ||
|
|
8dcd61baf0 | ||
|
|
e5a9e1117d | ||
|
|
9bfc163891 | ||
|
|
30b86c11f6 | ||
|
|
904d5e7cd2 | ||
|
|
d0c414eb62 | ||
|
|
396be81acd | ||
|
|
3897926e72 | ||
|
|
60c6d9ba88 | ||
|
|
19d9d84baf | ||
|
|
7e6948f50c | ||
|
|
3e9a3e94bf | ||
|
|
8ac0492142 | ||
|
|
c0beb19986 | ||
|
|
b3ec532227 | ||
|
|
2a199f57c5 | ||
|
|
fe4b58b2bd | ||
|
|
7f1a2b31cb | ||
|
|
2a0e4a10b6 | ||
|
|
b2c506b12a | ||
|
|
336adf7e32 | ||
|
|
3518df28ec | ||
|
|
25a7ac6a07 | ||
|
|
96a33ddd1f | ||
|
|
f08c8cce31 | ||
|
|
f3e18dfb63 | ||
|
|
23b78d9dd1 | ||
|
|
52c3db2eae | ||
|
|
0930b39329 | ||
|
|
314198bbbe | ||
|
|
46ac36b51e | ||
|
|
532d389f60 | ||
|
|
7a43e49066 | ||
|
|
3ea39a32bb | ||
|
|
3fa3e06f5f | ||
|
|
e284927eb6 | ||
|
|
14bc239f36 | ||
|
|
d8fb76d4c2 | ||
|
|
cddc197887 | ||
|
|
ea9de8ada6 | ||
|
|
455b0be998 | ||
|
|
4459865ea7 | ||
|
|
c95ebb69c9 | ||
|
|
fe7a3ec790 | ||
|
|
379114d16a | ||
|
|
5146593fe3 | ||
|
|
50514957dd | ||
|
|
36116624a3 | ||
|
|
cfc2a335fd | ||
|
|
34899c8cff | ||
|
|
20337d9053 | ||
|
|
67fecca08d | ||
|
|
ab80e48d38 | ||
|
|
aa427cd555 | ||
|
|
ffa30608a7 | ||
|
|
1b517b02b4 | ||
|
|
514ef91f2e | ||
|
|
42c741ad2c | ||
|
|
27320cb864 | ||
|
|
d367589abc | ||
|
|
aaa56b8d29 | ||
|
|
2e48b8e545 | ||
|
|
50fb4faa9c | ||
|
|
ec8992d046 | ||
|
|
dc30a6a642 | ||
|
|
b93bdea1dc | ||
|
|
8f25a613c2 | ||
|
|
2b42efcfc0 | ||
|
|
445f10d497 | ||
|
|
52aabffb87 | ||
|
|
2bad2b5a5d | ||
|
|
9814f684b9 | ||
|
|
e36a25c65b | ||
|
|
5bed3ae6de | ||
|
|
d1f41e55bb | ||
|
|
1313c0e1af | ||
|
|
57637f7c47 | ||
|
|
e83a20081c | ||
|
|
7843204d63 | ||
|
|
f6d4b2e838 | ||
|
|
790781009d | ||
|
|
680f4c0a30 | ||
|
|
d2987a5b77 | ||
|
|
4fed7392c6 | ||
|
|
d73199f8b3 | ||
|
|
35955817c1 | ||
|
|
1788e32d11 | ||
|
|
21605015bd | ||
|
|
37ef60177f | ||
|
|
0469fc17e1 | ||
|
|
0bc6756a4a | ||
|
|
d8957530a5 | ||
|
|
9c6c648436 | ||
|
|
301ceca874 | ||
|
|
ef43d02a8d | ||
|
|
06dacdcee8 | ||
|
|
5d6b2c2a4a | ||
|
|
cabde7b191 | ||
|
|
42dbfc4d70 | ||
|
|
1376e0dc3f | ||
|
|
56043427c0 | ||
|
|
026631cd83 | ||
|
|
aa72f10b5f | ||
|
|
535567e231 | ||
|
|
ee589c81d4 | ||
|
|
c81038cf24 | ||
|
|
0c9930dfe3 | ||
|
|
faca3c1ce4 | ||
|
|
3abc61fb75 | ||
|
|
97cfd71b23 | ||
|
|
4d2638bc1a | ||
|
|
02de6cd5fc | ||
|
|
d9d9a52221 | ||
|
|
18733a684e | ||
|
|
9c2c424a1e | ||
|
|
753dd912f5 | ||
|
|
40447199f0 | ||
|
|
0863b5c500 | ||
|
|
1ba896ecb4 | ||
|
|
fb4e8cffaa | ||
|
|
08936710ee | ||
|
|
735c14397a | ||
|
|
0d25c00a59 | ||
|
|
e5454c4dc7 | ||
|
|
1f7ec34374 | ||
|
|
8ab33f58d7 | ||
|
|
95c008392a | ||
|
|
0f419f36d8 | ||
|
|
4fac43125a | ||
|
|
daaff088e2 | ||
|
|
b0d20bce2b | ||
|
|
ef5c356ae8 | ||
|
|
43acebdbfa | ||
|
|
eb90de5334 | ||
|
|
5d73a8e90c | ||
|
|
9af83f4b92 | ||
|
|
a2f2c92796 | ||
|
|
a05fc0d1d6 | ||
|
|
53d228f4eb | ||
|
|
10bd5a2cac | ||
|
|
8334eefaaf | ||
|
|
3da9f9c9ec | ||
|
|
31e603ac8d | ||
|
|
2b2d1179cc | ||
|
|
138e55725f | ||
|
|
c696c02133 | ||
|
|
1cbae0dd16 | ||
|
|
e6b06db813 | ||
|
|
74e89952c5 | ||
|
|
71c9b7675f | ||
|
|
13bd2264e3 | ||
|
|
f4796c9a14 | ||
|
|
9e26bf541d | ||
|
|
6403f7c8ac | ||
|
|
14d163a69c | ||
|
|
ab6a1e6dcb | ||
|
|
cd9f0a61b7 | ||
|
|
467d2f7184 | ||
|
|
64e0e89808 | ||
|
|
19632293df | ||
|
|
5ccb0057e6 | ||
|
|
d9134ee760 | ||
|
|
5c4ff0b6ab | ||
|
|
f4976244f2 | ||
|
|
05d1148783 | ||
|
|
d34bcffd2e | ||
|
|
ceaf5b9b40 | ||
|
|
cdd7d8cafc | ||
|
|
3d9ce99e4e | ||
|
|
deea20c712 | ||
|
|
b1208ef298 | ||
|
|
c25ddd3101 | ||
|
|
caf2524ec9 | ||
|
|
87ba5a6a13 | ||
|
|
2196edacb9 | ||
|
|
245e21875f | ||
|
|
bb9729e8a1 | ||
|
|
4955776845 | ||
|
|
b1dd67aa77 | ||
|
|
e5781a9d02 | ||
|
|
5a347a4635 | ||
|
|
32969cf7cc | ||
|
|
4c083c6f23 | ||
|
|
92d1d9a106 | ||
|
|
85387cdb6b | ||
|
|
74cc0fe2f4 | ||
|
|
ba7bd0606c | ||
|
|
1c9c5ae64e | ||
|
|
757e09051a | ||
|
|
e4033faa38 | ||
|
|
612d0a68bf | ||
|
|
babe072c95 | ||
|
|
2350ee4cac | ||
|
|
ccd7288ef3 | ||
|
|
837430f8bc | ||
|
|
8cff58c1f6 | ||
|
|
ea095bdc7c | ||
|
|
1fd50fba04 | ||
|
|
0fa4c54a98 | ||
|
|
59f8183aec | ||
|
|
1ee1b4c8cd | ||
|
|
d6627830b4 | ||
|
|
b80ea56686 | ||
|
|
6a9777fff2 | ||
|
|
a980bf720e | ||
|
|
0428c48339 | ||
|
|
7a6f7d4597 | ||
|
|
878e00a9bb | ||
|
|
0996c19055 | ||
|
|
013889de23 | ||
|
|
b2627e9fae | ||
|
|
9c7624d7c1 | ||
|
|
ac64612dc2 | ||
|
|
6e68abc2ae | ||
|
|
8a0f494bab | ||
|
|
b922a37513 | ||
|
|
2cef4a1aa9 | ||
|
|
992c164b49 | ||
|
|
30849cdca8 | ||
|
|
f05e2573ea | ||
|
|
09276c37c6 | ||
|
|
a9b9792150 | ||
|
|
99101abf82 | ||
|
|
e8164be949 | ||
|
|
b7d9d4c8a9 | ||
|
|
657add7a8a | ||
|
|
27547306f5 | ||
|
|
c402c51a15 | ||
|
|
b372cdcc0e | ||
|
|
f9616a2673 | ||
|
|
8d4a47f8a5 | ||
|
|
0fc0ed5d58 | ||
|
|
116e279e5a | ||
|
|
e19fb38ff5 | ||
|
|
57a22c1ddd | ||
|
|
6a5adc4a81 | ||
|
|
b056224747 | ||
|
|
af29f5521d | ||
|
|
9645227115 | ||
|
|
ae48128ae2 | ||
|
|
e76102f885 | ||
|
|
7407866317 | ||
|
|
3a96bb9f7f | ||
|
|
53398b5183 | ||
|
|
5333b404da | ||
|
|
27f5db221a | ||
|
|
2f6573aef9 | ||
|
|
5b0c08130c | ||
|
|
4e55f96a6d | ||
|
|
d7f3b46efe | ||
|
|
bee95b19b5 | ||
|
|
6b395f61d9 | ||
|
|
d9247a9b55 | ||
|
|
6861a06332 | ||
|
|
c56cd8a6fd | ||
|
|
6e075c5ced | ||
|
|
81ff4dae91 | ||
|
|
69db56b49b | ||
|
|
8375a67cff | ||
|
|
c1e800a7fd | ||
|
|
ee5b2e3afc | ||
|
|
db64728aff | ||
|
|
397b9ce1a9 | ||
|
|
2dd4a5d693 | ||
|
|
e9ee747c99 | ||
|
|
86ca92a5cf | ||
|
|
9e2abf8ef4 | ||
|
|
f42be248f5 | ||
|
|
5624447be5 | ||
|
|
ff6a9a6a7c | ||
|
|
a1f1104d7a | ||
|
|
515042bb2e | ||
|
|
fac64cd5d5 | ||
|
|
75cad9d952 | ||
|
|
f41d6789f6 | ||
|
|
9a0ca3338f | ||
|
|
ce496ea5ca | ||
|
|
eba0b9e9c2 | ||
|
|
49ac9b23df | ||
|
|
7e7e15d6c6 | ||
|
|
4d139f83d7 | ||
|
|
8bbed8c675 | ||
|
|
a39e093a9e | ||
|
|
d200d421ec | ||
|
|
dcb628064a | ||
|
|
bd61e84ef1 | ||
|
|
abd0bd5b10 | ||
|
|
46be66ed42 | ||
|
|
9492cf3c27 | ||
|
|
efc0b6c0f5 | ||
|
|
dea7694a14 | ||
|
|
5f608b6e94 | ||
|
|
d234c6aea2 | ||
|
|
0cff9ce3cd | ||
|
|
983c9f7aec | ||
|
|
31c4fcdd8f | ||
|
|
d68a1231a4 | ||
|
|
35492de285 | ||
|
|
923af3611a | ||
|
|
6b3f2c6cf9 | ||
|
|
ab140e5a56 | ||
|
|
75501a16e1 | ||
|
|
93c44d9da7 | ||
|
|
16ab635645 | ||
|
|
609a4e8c8b | ||
|
|
a32b7ea859 | ||
|
|
cdd484578e | ||
|
|
87d02909fc | ||
|
|
6ddf0af2e7 | ||
|
|
2049c4b82a | ||
|
|
d23caef6f6 | ||
|
|
509a228bc4 | ||
|
|
1e115626bc | ||
|
|
e58a669a44 | ||
|
|
19e770e08f | ||
|
|
fbe45d635c | ||
|
|
e1efdfef8b | ||
|
|
562723cfa9 | ||
|
|
93a995ca0c | ||
|
|
1018f5346f | ||
|
|
d2b61d0bf5 | ||
|
|
d4284d7f14 | ||
|
|
cfc24bb046 | ||
|
|
bc7221f5c5 | ||
|
|
4076c6a918 | ||
|
|
914e4e5136 | ||
|
|
77562a60dd | ||
|
|
5567e86977 | ||
|
|
ede4b3fe23 | ||
|
|
25f526f45d | ||
|
|
1ae705868f | ||
|
|
12d9cdc0a8 | ||
|
|
0028264b73 | ||
|
|
9ea398e5be | ||
|
|
d3229bf600 | ||
|
|
abbc2b97c5 | ||
|
|
e292bdab10 | ||
|
|
bf24d366fd | ||
|
|
3cc94a24f3 | ||
|
|
5ca5039cf2 | ||
|
|
7d07df5bd8 | ||
|
|
a4097358b9 | ||
|
|
df8ba7e8ac | ||
|
|
c8a49b35cd | ||
|
|
3fee9db359 | ||
|
|
8295e4a3e0 | ||
|
|
4762a2fa7d | ||
|
|
939fa27625 | ||
|
|
2809154caf | ||
|
|
26d3559aeb | ||
|
|
e141d8e106 | ||
|
|
d6780c1094 | ||
|
|
bc5eb31751 | ||
|
|
4bda616956 | ||
|
|
c919775fdb | ||
|
|
981c294d1d | ||
|
|
73aa872155 | ||
|
|
565b1e9809 | ||
|
|
cd48d403ac | ||
|
|
2bf3414afb | ||
|
|
deb85fdefe | ||
|
|
af357c8d30 | ||
|
|
d9c53bfefc | ||
|
|
ce54aab92e | ||
|
|
9f4a4e416f | ||
|
|
950b910030 | ||
|
|
3ede42b462 | ||
|
|
ce08c799e1 | ||
|
|
0bbfc654a3 | ||
|
|
a1507450b7 | ||
|
|
cf2dca60cf | ||
|
|
c256d51915 | ||
|
|
7a1e2cad32 | ||
|
|
6172a1a0bf | ||
|
|
d6c9d2cf66 | ||
|
|
979c5d7e6b | ||
|
|
1a7f4dce2a | ||
|
|
d805e631e4 | ||
|
|
c452721442 | ||
|
|
86f47a99bd | ||
|
|
730a352b0a | ||
|
|
9b2eb526f1 | ||
|
|
cd8ba48926 | ||
|
|
2377c638b2 | ||
|
|
84256a0a7c | ||
|
|
ce7c059f78 | ||
|
|
efae407c06 | ||
|
|
1ac4a4dbfe | ||
|
|
21ce241763 | ||
|
|
a3d66328d7 | ||
|
|
7166be445a | ||
|
|
dfc112c4d1 | ||
|
|
6f2c021d97 | ||
|
|
48f2b02899 | ||
|
|
cee7e93dd3 | ||
|
|
a5b6ce7c3f | ||
|
|
82100602c7 | ||
|
|
bc745afe94 | ||
|
|
23f3e123dd | ||
|
|
275744f332 | ||
|
|
02a0f59000 | ||
|
|
d5bbf84dd8 | ||
|
|
430d400a29 | ||
|
|
466d6e8223 | ||
|
|
7c1c2c91e5 | ||
|
|
e61ce3c26e | ||
|
|
7539520d50 | ||
|
|
e991124b07 | ||
|
|
179c6c7451 | ||
|
|
b6102fb6a8 | ||
|
|
9b1d32b78d | ||
|
|
e9ba371ef2 | ||
|
|
1fb9c870c9 | ||
|
|
c5bda905ac | ||
|
|
9f7a16080a | ||
|
|
c06d8d7bef | ||
|
|
feab9b6380 | ||
|
|
ae3e30a715 | ||
|
|
e0dd83ffed | ||
|
|
5c3139be4b | ||
|
|
8f77ce5068 | ||
|
|
8c43cd7b73 | ||
|
|
26d2907f57 | ||
|
|
e5d9bb5475 | ||
|
|
9d80495901 | ||
|
|
e73d5c6cba | ||
|
|
40204f63d2 | ||
|
|
2100a73dce | ||
|
|
4eea902c54 | ||
|
|
77233670c8 |
@@ -1,32 +0,0 @@
|
||||
language: "en"
|
||||
early_access: false
|
||||
reviews:
|
||||
request_changes_workflow: false
|
||||
high_level_summary: true
|
||||
poem: false
|
||||
review_status: true
|
||||
collapse_walkthrough: true
|
||||
path_filters:
|
||||
- "!api/"
|
||||
path_instructions:
|
||||
- path: "**/*.go"
|
||||
instructions: "Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations."
|
||||
- path: "tests/**/*"
|
||||
instructions: |
|
||||
"Assess the integration and e2e test code assessing sufficient code coverage for the changes associated in the pull request"
|
||||
- path: "**/*_test.go"
|
||||
instructions: |
|
||||
"Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request"
|
||||
- path: "**/*.md"
|
||||
instructions: |
|
||||
"Assess the documentation for misspellings, grammatical errors, missing documentation and correctness"
|
||||
auto_review:
|
||||
enabled: true
|
||||
ignore_title_keywords:
|
||||
- "WIP"
|
||||
- "DO NOT MERGE"
|
||||
drafts: false
|
||||
base_branches:
|
||||
- "main"
|
||||
chat:
|
||||
auto_reply: true
|
||||
@@ -1,9 +0,0 @@
|
||||
cips
|
||||
pullrequest
|
||||
keypair
|
||||
pastTime
|
||||
hasTables
|
||||
Nam
|
||||
EyT
|
||||
upTo
|
||||
pullRequests
|
||||
+8
-7
@@ -2,13 +2,14 @@
|
||||
|
||||
# NOTE: Order is important; the last matching pattern takes the most precedence
|
||||
|
||||
# Primary repo maintainers
|
||||
# Cosmos SDK Codeowners
|
||||
|
||||
* @cosmos/sdk-core-dev
|
||||
# Core team as default owners
|
||||
|
||||
# CODEOWNERS for docs configuration
|
||||
* @cosmos/sdk-core-dev
|
||||
|
||||
/docs/docusaurus.config.js @julienrbrt @tac0turtle
|
||||
/docs/sidebars.js @julienrbrt @tac0turtle
|
||||
/docs/pre.sh @julienrbrt @tac0turtle
|
||||
/docs/post.sh @julienrbrt @tac0turtle
|
||||
# Components
|
||||
|
||||
# docs configuration
|
||||
|
||||
/docs/ @cosmos/sdk-core-dev
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Create a report to help us squash bugs!
|
||||
title: "[Bug]: "
|
||||
labels: "T:Bug"
|
||||
---
|
||||
|
||||
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
|
||||
v ✰ Thanks for opening an issue! ✰
|
||||
v Before smashing the submit button please review the template.
|
||||
v Please also ensure that this is not a duplicate issue :)
|
||||
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
|
||||
|
||||
<!--
|
||||
IMPORTANT: Prior to opening a bug report, check if it affects one of the core modules
|
||||
and if its elegible for a bug bounty on `SECURITY.md`. Bugs that are not submitted
|
||||
through the appropriate channels won't receive any bounty.
|
||||
-->
|
||||
|
||||
## Summary of Bug
|
||||
|
||||
<!-- Concisely describe the issue -->
|
||||
|
||||
## Version
|
||||
|
||||
<!-- git commit hash or release version -->
|
||||
|
||||
## Steps to Reproduce
|
||||
|
||||
<!-- What commands in order should someone run to reproduce your problem? -->
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: Epic
|
||||
about: Create an epic/user
|
||||
title: "[Epic]: "
|
||||
labels: T:Epic
|
||||
---
|
||||
|
||||
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
|
||||
v ✰ Thanks for opening an issue! ✰
|
||||
v Before smashing the submit button please review the template.
|
||||
v Word of caution: poorly thought-out proposals may be rejected
|
||||
v without deliberation
|
||||
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- Short, concise description of the proposed feature/changes to the repository
|
||||
What are the user needs?
|
||||
How could this solution fix the user facing problem? -->
|
||||
|
||||
## Problem Definition
|
||||
|
||||
<!-- Why do we need this feature?
|
||||
What problems may be addressed by introducing this feature?
|
||||
What benefits does the SDK stand to gain by including this feature?
|
||||
Are there any disadvantages of including this feature? -->
|
||||
|
||||
## Work Breakdown
|
||||
|
||||
<!-- Break the work into many bullet points that will later be turned into issues that can be assigned to developers to work on
|
||||
This work may been to be broken up into phases of work in order to better organize when and how things get done. -->
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Create a proposal to request a feature
|
||||
title: "[Feature]: "
|
||||
labels: T:feature-request
|
||||
---
|
||||
|
||||
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
|
||||
v ✰ Thanks for opening an issue! ✰
|
||||
v Before smashing the submit button please review the template.
|
||||
v Word of caution: poorly thought-out proposals may be rejected
|
||||
v without deliberation
|
||||
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -->
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- Short, concise description of the proposed feature -->
|
||||
|
||||
## Problem Definition
|
||||
|
||||
<!-- Why do we need this feature?
|
||||
What problems may be addressed by introducing this feature?
|
||||
What benefits does the SDK stand to gain by including this feature?
|
||||
Are there any disadvantages of including this feature? -->
|
||||
|
||||
## Proposal
|
||||
|
||||
<!-- Detailed description of requirements of implementation -->
|
||||
@@ -25,10 +25,8 @@ v without deliberation
|
||||
* [ ] Audit x/auth
|
||||
* [ ] Audit x/authz
|
||||
* [ ] Audit x/bank
|
||||
* [ ] Audit x/bank/v2
|
||||
* [ ] Audit x/circuit
|
||||
* [ ] Audit x/consensus
|
||||
* [ ] Audit x/crisis
|
||||
* [ ] Audit x/distribution
|
||||
* [ ] Audit x/evidence
|
||||
* [ ] Audit x/epochs
|
||||
|
||||
@@ -10,7 +10,8 @@ are the most critical to review. -->
|
||||
## Author Checklist
|
||||
|
||||
*All items are required. Please add a note to the item if the item is not applicable and
|
||||
please add links to any relevant follow up issues.*
|
||||
please add links to any relevant follow up issues. Your PR will not be merged unless you satisfy
|
||||
all of these items.*
|
||||
|
||||
I have...
|
||||
|
||||
@@ -35,15 +36,3 @@ I have...
|
||||
* [ ] updated the relevant documentation or specification, including comments for [documenting Go code](https://blog.golang.org/godoc)
|
||||
* [ ] confirmed all CI checks have passed
|
||||
|
||||
## Reviewers Checklist
|
||||
|
||||
*All items are required. Please add a note if the item is not applicable and please add
|
||||
your handle next to the items reviewed if you only reviewed selected items.*
|
||||
|
||||
Please see [Pull Request Reviewer section in the contributing guide](../CONTRIBUTING.md#reviewer) for more information on how to review a pull request.
|
||||
|
||||
I have...
|
||||
|
||||
* [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
|
||||
* [ ] confirmed all author checklist items have been addressed
|
||||
* [ ] reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
# from https://github.com/MercymeIlya/last-workflow-status with fixes
|
||||
name: "Get status of last workflow"
|
||||
description: "Get conclusion of last workflow run on current branch."
|
||||
branding:
|
||||
icon: "arrow-left"
|
||||
color: "yellow"
|
||||
inputs:
|
||||
github_token:
|
||||
description: Secret GitHub API token to use for making API requests.
|
||||
default: ${{ github.token }}
|
||||
required: true
|
||||
outputs:
|
||||
last_status:
|
||||
description: "Conclusion of last workflow run on current branch"
|
||||
value: ${{ steps.last_status.outputs.last_status }}
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Get workflow id
|
||||
shell: bash
|
||||
run: |
|
||||
WORKFLOW_ID=$(curl --header 'authorization: Bearer ${{ inputs.github_token }}' \
|
||||
--header 'content-type: application/json' \
|
||||
https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }} | jq -r .workflow_id)
|
||||
echo "WORKFLOW_ID=$WORKFLOW_ID" >> $GITHUB_ENV
|
||||
echo "Workflow id: ${WORKFLOW_ID}"
|
||||
- name: Get previous build status
|
||||
shell: bash
|
||||
id: last_status
|
||||
run: |
|
||||
last_status=$(curl --silent --header 'authorization: Bearer ${{ inputs.github_token }}' \
|
||||
--header 'content-type: application/json' \
|
||||
"https://api.github.com/repos/${{ github.repository }}/actions/workflows/${{ env.WORKFLOW_ID }}/runs?per_page=1&status=completed&branch=${{ env.GITHUB_HEAD_REF }}" \
|
||||
| jq -r .workflow_runs[0].conclusion)
|
||||
echo "Status of the previous build: $last_status"
|
||||
echo "::set-output name=last_status::${last_status}"
|
||||
@@ -8,4 +8,4 @@ paths-ignore:
|
||||
- api
|
||||
- '**/*_test.go'
|
||||
- '**/*.pulsar.go'
|
||||
- '**/*.pb.gp'
|
||||
- '**/*.pb.go'
|
||||
|
||||
@@ -43,15 +43,6 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/orm"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "01:25"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/core"
|
||||
schedule:
|
||||
@@ -61,15 +52,6 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/core/testing"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: thursday
|
||||
time: "01:30"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/depinject"
|
||||
schedule:
|
||||
@@ -106,24 +88,6 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/indexer/postgres"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "01:53"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/indexer/postgres/tests"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "01:53"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/schema"
|
||||
schedule:
|
||||
@@ -160,15 +124,6 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/tools/hubl"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: thursday
|
||||
time: "02:15"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/collections"
|
||||
schedule:
|
||||
@@ -178,42 +133,6 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "x/accounts"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "02:35"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "x/accounts/defaults/base"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "02:45"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "x/accounts/defaults/multisig"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "02:45"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "x/accounts/defaults/lockup"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "02:55"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/nft"
|
||||
schedule:
|
||||
@@ -278,51 +197,6 @@ updates:
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/protocolpool"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "03:00"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/params"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "03:05"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/auth"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "03:10"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/epochs"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "03:15"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/x/bank"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: wednesday
|
||||
time: "03:20"
|
||||
labels:
|
||||
- "A:automerge"
|
||||
- dependencies
|
||||
- package-ecosystem: gomod
|
||||
directory: "/tools/benchmark"
|
||||
schedule:
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
needs-triage: # if no label is set then set triage
|
||||
- ''
|
||||
@@ -5,8 +5,6 @@
|
||||
- tools/confix/**/*
|
||||
"C:Cosmovisor":
|
||||
- tools/cosmovisor/**/*
|
||||
"C:Hubl":
|
||||
- tools/hubl/**/*
|
||||
"C:Keys":
|
||||
- client/keys/**/*
|
||||
"C:Simulations":
|
||||
@@ -19,24 +17,8 @@
|
||||
- store/**/*
|
||||
"C:collections":
|
||||
- collections/**/*
|
||||
"C:core/testing":
|
||||
- core/testing/**/*
|
||||
"C:log":
|
||||
- log/*
|
||||
"C:orm":
|
||||
- orm/**/*
|
||||
"C:schema":
|
||||
- schema/**/*
|
||||
"C:indexer/postgres":
|
||||
- indexer/postgres/**/*
|
||||
"C:x/accounts":
|
||||
- x/accounts/**/*
|
||||
"C:x/accounts/base":
|
||||
- x/accounts/defaults/base/**/*
|
||||
"C:x/accounts/multisig":
|
||||
- x/accounts/defaults/multisig/**/*
|
||||
"C:x/accounts/lockup":
|
||||
- x/accounts/defaults/lockup/**/*
|
||||
"C:x/auth":
|
||||
- x/auth/**/*
|
||||
"C:x/authz":
|
||||
@@ -47,8 +29,6 @@
|
||||
- x/circuit/**/*
|
||||
"C:x/consensus":
|
||||
- x/consensus/**/*
|
||||
"C:x/crisis":
|
||||
- x/crisis/**/*
|
||||
"C:x/distribution":
|
||||
- x/distribution/**/*
|
||||
"C:x/evidence":
|
||||
@@ -65,8 +45,6 @@
|
||||
- x/mint/**/*
|
||||
"C:x/nft":
|
||||
- x/nft/**/*
|
||||
"C:x/params":
|
||||
- x/params/**/*
|
||||
"C:x/protocolpool":
|
||||
- x/protocolpool/**/*
|
||||
"C:x/slashing":
|
||||
@@ -79,18 +57,6 @@
|
||||
- x/upgrade/**/*
|
||||
"C:x/epochs":
|
||||
- x/epochs/**/*
|
||||
"C:x/validate":
|
||||
- x/validate/**/*
|
||||
"C:server/v2":
|
||||
- server/v2/**/*
|
||||
"C:server/v2 stf":
|
||||
- server/v2/stf/**/*
|
||||
"C:server/v2 appmanager":
|
||||
- server/v2/appmanager/**/*
|
||||
"C:server/v2 cometbft":
|
||||
- server/v2/cometbft/**/*
|
||||
"C:server/v2 api":
|
||||
- server/v2/api/**/*
|
||||
"Type: ADR":
|
||||
- docs/architecture/**/*
|
||||
"Type: Build":
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
name: Build Docs
|
||||
# This workflow runs when a PR is labeled with `docs`
|
||||
# This will check if the docs build successfully by running `make build-docs`
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- "release/**"
|
||||
paths:
|
||||
- "docs/**"
|
||||
- "x/**/*.md"
|
||||
- .github/workflows/deploy-docs.yml
|
||||
- .github/workflows/build-docs.yml
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-docs-build:
|
||||
name: Check docs build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout 🛎️
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js 🔧
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "16.x"
|
||||
|
||||
# npm install npm should be removed when https://github.com/npm/cli/issues/4942 is fixed
|
||||
- name: Build docs 🔧
|
||||
run: |
|
||||
npm install -g npm@8.5.5
|
||||
make build-docs
|
||||
@@ -15,7 +15,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
strategy:
|
||||
matrix:
|
||||
go-arch: ["amd64", "arm64"] # drop 32 bit support for now (and maybe forever)
|
||||
@@ -33,14 +33,22 @@ jobs:
|
||||
###################
|
||||
- name: Build
|
||||
run: GOARCH=${{ matrix.go-arch }} make build
|
||||
- name: Build with BLS12381
|
||||
if: matrix.go-arch == 'amd64'
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS=bls12381 make build
|
||||
- name: Build with legacy app.go
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS="legacy" make build
|
||||
# TODO re-add with comet v1
|
||||
#- name: Build with BLS12381
|
||||
# if: matrix.go-arch == 'amd64'
|
||||
# run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS="bls12381" make build
|
||||
- name: Build with Secp_cgo
|
||||
if: matrix.go-arch == 'amd64'
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS=secp make build
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS="secp" make build
|
||||
- name: Build with legacy app.go and Secp_cgo
|
||||
if: matrix.go-arch == 'amd64'
|
||||
run: GOARCH=${{ matrix.go-arch }} COSMOS_BUILD_OPTIONS="legacy,secp" make build
|
||||
###################
|
||||
## Build Tooling ##
|
||||
###################
|
||||
- name: Build Cosmovisor
|
||||
run: GOARCH=${{ matrix.go-arch }} make cosmovisor
|
||||
- name: Build Confix
|
||||
run: GOARCH=${{ matrix.go-arch }} make confix
|
||||
|
||||
@@ -9,7 +9,7 @@ permissions:
|
||||
jobs:
|
||||
remind:
|
||||
name: Changelog Reminder
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
# Skip draft PRs and PRs starting with: revert, test, chore, ci, docs, style, build, refactor
|
||||
if: "!github.event.pull_request.draft && !contains(github.event.pull_request.title, 'revert') && !contains(github.event.pull_request.title, 'test') && !contains(github.event.pull_request.title, 'chore') && !contains(github.event.pull_request.title, 'ci') && !contains(github.event.pull_request.title, 'docs') && !contains(github.event.pull_request.title, 'style') && !contains(github.event.pull_request.title, 'build') && !contains(github.event.pull_request.title, 'refactor')"
|
||||
steps:
|
||||
|
||||
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
jobs:
|
||||
remove-old-artifacts:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
timeout-minutes: 30
|
||||
|
||||
steps:
|
||||
|
||||
@@ -18,7 +18,7 @@ concurrency:
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
@@ -38,11 +38,6 @@ jobs:
|
||||
languages: "go"
|
||||
config-file: ./.github/codeql/config.yml
|
||||
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
main:
|
||||
permissions:
|
||||
pull-requests: write # For reading the PR and posting comment
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: orijtech/consensuswarn@main
|
||||
|
||||
@@ -2,19 +2,28 @@ name: Dependabot Update All Go Modules
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
env:
|
||||
PR_TITLE: ${{ github.event.pull_request.title }}
|
||||
|
||||
jobs:
|
||||
update-all:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: ${{ github.actor == 'dependabot[bot]' }}
|
||||
steps:
|
||||
- name: Generate Token
|
||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v1
|
||||
id: app-token
|
||||
with:
|
||||
app-id: "${{ secrets.APP_ID }}"
|
||||
private-key: "${{ secrets.APP_PRIVATE_KEY }}"
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
# Secret to be added in the repo under Settings > Secrets > Dependabot
|
||||
token: ${{ secrets.PRBOT_PAT }}
|
||||
token: "${{ steps.app-token.outputs.token }}"
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
@@ -25,8 +34,8 @@ jobs:
|
||||
# Extract the dependency name from the PR title
|
||||
# Example: "build(deps): Bump github.com/cosmos/cosmos-sdk from 0.46.0 to 0.47.0"
|
||||
# Extracts "github.com/cosmos/cosmos-sdk" and "0.47.0"
|
||||
echo "name=$(echo "${{ github.event.pull_request.title }}" | cut -d ' ' -f 3)" >> $GITHUB_OUTPUT
|
||||
echo "version=$(echo "${{ github.event.pull_request.title }}" | cut -d ' ' -f 7)" >> $GITHUB_OUTPUT
|
||||
echo "name=$(echo "$PR_TITLE" | cut -d ' ' -f 3)" >> $GITHUB_OUTPUT
|
||||
echo "version=$(echo "$PR_TITLE" | cut -d ' ' -f 7)" >> $GITHUB_OUTPUT
|
||||
- name: Update all Go modules
|
||||
run: |
|
||||
./scripts/go-update-dep-all.sh ${{ format('{0}@v{1}', steps.deps.outputs.name, steps.deps.outputs.version) }}
|
||||
@@ -34,5 +43,5 @@ jobs:
|
||||
- name: Commit changes
|
||||
uses: EndBug/add-and-commit@v9
|
||||
with:
|
||||
default_author: github_actions
|
||||
default_author: user_info
|
||||
message: "${{ github.event.pull_request.title }} for all modules"
|
||||
|
||||
@@ -8,21 +8,39 @@ permissions:
|
||||
|
||||
jobs:
|
||||
dependency-review:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- name: "Checkout Repository"
|
||||
uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
- name: "Setup Go"
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
go-version: "1.24"
|
||||
check-latest: true
|
||||
- name: "Dependency Review"
|
||||
uses: actions/dependency-review-action@v4
|
||||
with:
|
||||
base-ref: ${{ github.event.pull_request.base.sha || 'main' }}
|
||||
head-ref: ${{ github.event.pull_request.head.sha || github.ref }}
|
||||
fail-on-severity: high # otherwise we fail on ourselves due to https://github.com/advisories/GHSA-qfc5-6r3j-jj22, https://github.com/advisories/GHSA-w44m-8mv2-v78h TODO(@julienrbrt) submit a PR to the action to ignore packages
|
||||
fail-on-severity: high
|
||||
- name: "Dependency audit"
|
||||
run: ./scripts/dep-assert.sh
|
||||
- name: "Go vulnerability check"
|
||||
run: make vulncheck
|
||||
id: govuln
|
||||
run: |
|
||||
# Run the vulnerability check and capture its output (ignoring non-zero exit codes)
|
||||
make vulncheck 2>&1 | tee govulncheck-output.txt || true
|
||||
|
||||
# Extract vulnerability identifiers from the output (e.g., GO-2025-3443)
|
||||
vulnerabilities=$(grep -o 'GO-[0-9]\{4\}-[0-9]\+' govulncheck-output.txt | sort | uniq)
|
||||
echo "Detected vulnerabilities: $vulnerabilities"
|
||||
|
||||
# Check if any vulnerability other than GO-2025-3443 exists
|
||||
for vuln in $vulnerabilities; do
|
||||
if [ "$vuln" != "GO-2025-3443" ]; then
|
||||
echo "Found vulnerability $vuln, failing..."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Only known vulnerability (GO-2025-3443) present. Continuing."
|
||||
|
||||
@@ -22,6 +22,7 @@ on:
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
sid-token: write
|
||||
|
||||
env:
|
||||
# Use docker.io for Docker Hub if empty
|
||||
@@ -31,7 +32,7 @@ env:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -60,9 +61,13 @@ jobs:
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Depot
|
||||
uses: depot/setup-action@v1
|
||||
|
||||
- name: Publish to GitHub Packages
|
||||
uses: docker/build-push-action@v6
|
||||
uses: depot/build-push-action@v1
|
||||
with:
|
||||
project: gnm1jqptpw
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
name: Run Gosec
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- "**/*.go"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "**/*.go"
|
||||
- "go.mod"
|
||||
- "go.sum"
|
||||
|
||||
jobs:
|
||||
Gosec:
|
||||
permissions:
|
||||
security-events: write
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GO111MODULE: on
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Gosec Security Scanner
|
||||
uses: securego/gosec@master
|
||||
with:
|
||||
args: "-exclude=G101,G107 -exclude-generated -no-fail -fmt sarif -out results.sarif ./..."
|
||||
|
||||
- name: Upload SARIF file
|
||||
uses: github/codeql-action/upload-sarif@v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
@@ -5,7 +5,7 @@ on:
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: github/issue-labeler@v3.4
|
||||
if: join(github.event.issue.labels) == ''
|
||||
|
||||
@@ -9,7 +9,7 @@ on:
|
||||
jobs:
|
||||
add-to-project:
|
||||
name: Add issue to project
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/add-to-project@v1.0.2
|
||||
with:
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
permissions:
|
||||
pull-requests: read # for amannn/action-semantic-pull-request to analyze PRs
|
||||
statuses: write # for amannn/action-semantic-pull-request to mark status of analyzed PR
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: amannn/action-semantic-pull-request@v5.5.3
|
||||
id: lint_pr_title
|
||||
|
||||
@@ -12,7 +12,7 @@ permissions:
|
||||
jobs:
|
||||
golangci:
|
||||
name: golangci-lint
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
|
||||
@@ -5,22 +5,22 @@ on:
|
||||
- "docs/**"
|
||||
jobs:
|
||||
markdown-link-check:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: cd docs && sh ./pre.sh
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.15
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.17
|
||||
with:
|
||||
folder-path: "docs"
|
||||
- run: cd docs && sh ./post.sh
|
||||
sims-notify-failure:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: ${{ failure() }}
|
||||
steps:
|
||||
- name: Notify Slack on failure
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
name: Spell Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "0 12 * * *"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run codespell
|
||||
continue-on-error: true
|
||||
run: |
|
||||
sudo apt-get install codespell -y
|
||||
codespell -w --skip="*.pulsar.go,*.pb.go,*.pb.gw.go,*.cosmos_orm.go,*.json,*.git,*.js,crypto/keys,fuzz,*.h,proto/tendermint,*.bin,go.sum,go.mod" --ignore-words=.github/.codespellignore
|
||||
- uses: peter-evans/create-pull-request@v6
|
||||
if: github.event_name != 'pull_request'
|
||||
with:
|
||||
token: ${{ secrets.PRBOT_PAT }}
|
||||
commit-message: "chore: spelling errors fixes"
|
||||
title: "chore: fix spelling errors"
|
||||
branch: "bot/fix-typos"
|
||||
delete-branch: true
|
||||
body: |
|
||||
This PR fixes typos in the codebase.
|
||||
Please review it, and merge if everything is fine.
|
||||
If there are proto changes, run `make proto-gen` and commit the changes.
|
||||
@@ -13,7 +13,7 @@ concurrency:
|
||||
jobs:
|
||||
go-mod-tidy:
|
||||
name: Check go mod tidy
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
|
||||
generate-mocks:
|
||||
name: Check up to date mocks
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
permissions:
|
||||
contents: read # for actions/labeler to determine modified files
|
||||
pull-requests: write # for actions/labeler to add labels to PRs
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/labeler@v4 # v5 is broken, ref https://github.com/actions/labeler/issues/712. Do not bump.
|
||||
with:
|
||||
|
||||
@@ -26,10 +26,12 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
# set VERSION to new version when making changes, when merged to main the image will automatically be pushed
|
||||
- uses: actions/checkout@v4
|
||||
@@ -57,9 +59,13 @@ jobs:
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Depot
|
||||
uses: depot/setup-action@v1
|
||||
|
||||
- name: Publish to GHCR
|
||||
uses: docker/build-push-action@v6
|
||||
uses: depot/build-push-action@v1
|
||||
with:
|
||||
project: gnm1jqptpw
|
||||
context: ./contrib/devtools
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
|
||||
# jobs:
|
||||
# root:
|
||||
# runs-on: ubuntu-latest
|
||||
# runs-on: depot-ubuntu-22.04-4
|
||||
# name: "Push to buf.build/cosmos/cosmos-sdk"
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
# - uses: bufbuild/buf-setup-action@v1.29.0
|
||||
# - uses: bufbuild/buf-setup-action@v1.50.0
|
||||
# - run: buf push proto --tag ${{ github.ref_type == 'tag' && github.ref_name || github.sha }} # https://github.com/bufbuild/buf-push-action/issues/20
|
||||
|
||||
## TODO at each module tag to their own buf repository
|
||||
|
||||
@@ -11,20 +11,20 @@ permissions:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: bufbuild/buf-setup-action@v1.35.0
|
||||
- uses: bufbuild/buf-setup-action@v1.50.0
|
||||
- uses: bufbuild/buf-lint-action@v1
|
||||
with:
|
||||
input: "proto"
|
||||
|
||||
break-check:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: bufbuild/buf-setup-action@v1.35.0
|
||||
- uses: bufbuild/buf-setup-action@v1.50.0
|
||||
- uses: bufbuild/buf-breaking-action@v1
|
||||
with:
|
||||
input: "proto"
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
goreleaser:
|
||||
permissions:
|
||||
contents: write # for goreleaser/goreleaser-action to create a GitHub release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
goreleaser:
|
||||
permissions:
|
||||
contents: write # for goreleaser/goreleaser-action to create a GitHub release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
name: Release Simd
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "simd/v*.*.*"
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
goreleaser:
|
||||
permissions:
|
||||
contents: write # for goreleaser/goreleaser-action to create a GitHub release
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
check-latest: true
|
||||
# get 'v*.*.*' part from 'simd/v*.*.*' and save to $GITHUB_ENV
|
||||
- name: Set env
|
||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/simd/}" >> $GITHUB_ENV
|
||||
# remove the possible pre-existing same tag for cosmos-sdk related tags instead of simd tags
|
||||
# Because goreleaser enforces semantic versioning and will error on non compliant tags.(https://goreleaser.com/limitations/semver/)
|
||||
- name: Tag without prefix locally to avoid error in goreleaser
|
||||
run: |-
|
||||
git tag -d ${{ env.RELEASE_VERSION }} || echo "No such a tag exists before"
|
||||
git tag ${{ env.RELEASE_VERSION }} HEAD
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v3
|
||||
with:
|
||||
# stick to version v0.179.0(https://github.com/cosmos/cosmos-sdk/issues/11125)
|
||||
version: v0.179.0
|
||||
args: release --rm-dist --skip-validate
|
||||
workdir: simapp
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GORELEASER_CURRENT_TAG: simd/${{ env.RELEASE_VERSION }}
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
release:
|
||||
permissions:
|
||||
contents: write # for goreleaser/goreleaser-action to create a GitHub release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Go
|
||||
@@ -34,10 +34,10 @@ jobs:
|
||||
release-success:
|
||||
needs: release
|
||||
if: ${{ success() }}
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- name: Notify Slack on success
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: cosmos-tech
|
||||
|
||||
@@ -115,7 +115,7 @@ jobs:
|
||||
|
||||
- name: Notify Slack on success
|
||||
if: ${{ steps.last_status.outputs.last_status == 'failure' }}
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
@@ -134,7 +134,7 @@ jobs:
|
||||
if: ${{ failure() }}
|
||||
steps:
|
||||
- name: Notify Slack on failure
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
name: Sims release/0.50.x
|
||||
# Sims workflow runs multiple types of simulations (nondeterminism, import-export, after-import, multi-seed-short)
|
||||
# This workflow will run on all Pull Requests, if a .go, .mod or .sum file have been changed
|
||||
|
||||
# TODO - update to 53 once we have cut release
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0,12 * * *"
|
||||
@@ -13,7 +16,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: "!contains(github.event.head_commit.message, 'skip-sims')"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -28,7 +31,7 @@ jobs:
|
||||
install-runsim:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
needs: build
|
||||
steps:
|
||||
- uses: actions/setup-go@v5
|
||||
@@ -43,7 +46,7 @@ jobs:
|
||||
key: ${{ runner.os }}-go-runsim-binary
|
||||
|
||||
test-sim-import-export:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
needs: [build, install-runsim]
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -63,7 +66,7 @@ jobs:
|
||||
make test-sim-import-export
|
||||
|
||||
test-sim-after-import:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
needs: [build, install-runsim]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -82,7 +85,7 @@ jobs:
|
||||
make test-sim-after-import
|
||||
|
||||
test-sim-multi-seed-short:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
needs: [build, install-runsim]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -103,7 +106,7 @@ jobs:
|
||||
sims-notify-success:
|
||||
needs:
|
||||
[test-sim-multi-seed-short, test-sim-after-import, test-sim-import-export]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: ${{ success() }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -115,7 +118,7 @@ jobs:
|
||||
|
||||
- name: Notify Slack on success
|
||||
if: ${{ steps.last_status.outputs.last_status == 'failure' }}
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
@@ -130,11 +133,11 @@ jobs:
|
||||
contents: none
|
||||
needs:
|
||||
[test-sim-multi-seed-short, test-sim-after-import, test-sim-import-export]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: ${{ failure() }}
|
||||
steps:
|
||||
- name: Notify Slack on failure
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
|
||||
@@ -16,7 +16,7 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
test-sim-multi-seed-long:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
@@ -29,9 +29,24 @@ jobs:
|
||||
run: |
|
||||
make test-sim-multi-seed-long
|
||||
|
||||
test-sim-import-export:
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
check-latest: true
|
||||
- name: test-sim-import-export
|
||||
env:
|
||||
GOMEMLIMIT: 14GiB # reserve 2 GiB as buffer for GC to avoid OOM
|
||||
run: |
|
||||
make test-sim-import-export
|
||||
|
||||
sims-notify-success:
|
||||
needs: [test-sim-multi-seed-long]
|
||||
runs-on: ubuntu-latest
|
||||
needs: [test-sim-multi-seed-long, test-sim-import-export]
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: ${{ success() }}
|
||||
steps:
|
||||
- name: Check out repository
|
||||
@@ -44,7 +59,7 @@ jobs:
|
||||
|
||||
- name: Notify Slack on success
|
||||
if: ${{ steps.last_status.outputs.last_status == 'failure' }}
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
@@ -58,11 +73,11 @@ jobs:
|
||||
permissions:
|
||||
contents: none
|
||||
needs: [test-sim-multi-seed-long]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
if: ${{ failure() }}
|
||||
steps:
|
||||
- name: Notify Slack on failure
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
uses: rtCamp/action-slack-notify@v2.3.3
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: read # for actions/checkout to fetch code
|
||||
runs-on: large-sdk-runner
|
||||
runs-on: depot-ubuntu-22.04-16
|
||||
if: "!contains(github.event.head_commit.message, 'skip-sims')"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
- run: make build
|
||||
|
||||
test-sim-import-export:
|
||||
runs-on: large-sdk-runner
|
||||
runs-on: depot-ubuntu-22.04-16
|
||||
needs: [build]
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
make test-sim-import-export
|
||||
|
||||
test-sim-after-import:
|
||||
runs-on: large-sdk-runner
|
||||
runs-on: depot-ubuntu-22.04-16
|
||||
needs: [build]
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -54,7 +54,7 @@ jobs:
|
||||
make test-sim-after-import
|
||||
|
||||
test-sim-deterministic:
|
||||
runs-on: large-sdk-runner
|
||||
runs-on: depot-ubuntu-22.04-16
|
||||
needs: [build]
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
make test-sim-nondeterminism-streaming
|
||||
|
||||
test-sim-multi-seed-short:
|
||||
runs-on: large-sdk-runner
|
||||
runs-on: depot-ubuntu-22.04-16
|
||||
needs: [build]
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
@@ -80,58 +80,3 @@ jobs:
|
||||
- name: test-sim-multi-seed-short
|
||||
run: |
|
||||
make test-sim-multi-seed-short
|
||||
|
||||
sims-notify-success:
|
||||
needs:
|
||||
[
|
||||
test-sim-multi-seed-short,
|
||||
test-sim-after-import,
|
||||
test-sim-import-export,
|
||||
test-sim-deterministic,
|
||||
]
|
||||
runs-on: large-sdk-runner
|
||||
if: ${{ success() }}
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Get previous workflow status
|
||||
uses: ./.github/actions/last-workflow-status
|
||||
id: last_status
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Notify Slack on success
|
||||
if: ${{ steps.last_status.outputs.last_status == 'failure' }}
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
SLACK_USERNAME: Sim Tests
|
||||
SLACK_ICON_EMOJI: ":white_check_mark:"
|
||||
SLACK_COLOR: good
|
||||
SLACK_MESSAGE: Sims are passing
|
||||
SLACK_FOOTER: ""
|
||||
|
||||
sims-notify-failure:
|
||||
permissions:
|
||||
contents: none
|
||||
needs:
|
||||
[
|
||||
test-sim-multi-seed-short,
|
||||
test-sim-after-import,
|
||||
test-sim-import-export,
|
||||
test-sim-deterministic,
|
||||
]
|
||||
runs-on: large-sdk-runner
|
||||
if: ${{ failure() }}
|
||||
steps:
|
||||
- name: Notify Slack on failure
|
||||
uses: rtCamp/action-slack-notify@v2.3.0
|
||||
env:
|
||||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
||||
SLACK_CHANNEL: sdk-sims
|
||||
SLACK_USERNAME: Sim Tests
|
||||
SLACK_ICON_EMOJI: ":skull:"
|
||||
SLACK_COLOR: danger
|
||||
SLACK_MESSAGE: Sims are failing
|
||||
SLACK_FOOTER: ""
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
name: "Close stale issues & pull requests"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
permissions:
|
||||
issues: write # for actions/stale to close stale issues
|
||||
pull-requests: write # for actions/stale to close stale PRs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-pr-message: "This pull request has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions."
|
||||
days-before-stale: -1
|
||||
days-before-close: -1
|
||||
days-before-pr-stale: 30
|
||||
days-before-pr-close: 4
|
||||
exempt-pr-labels: "pinned, security, proposal, blocked"
|
||||
@@ -0,0 +1,63 @@
|
||||
name: System Tests
|
||||
on:
|
||||
pull_request:
|
||||
merge_group:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release/v0.53.x
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: ci-${{ github.ref }}-system-tests
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
setup:
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
outputs:
|
||||
git_diff: ${{ steps.git_diff.outputs.diff }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-tags: true
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.23"
|
||||
check-latest: true
|
||||
cache: true
|
||||
cache-dependency-path: |
|
||||
./go.sum
|
||||
- uses: technote-space/get-diff-action@v6.1.2
|
||||
id: git_diff
|
||||
with:
|
||||
PATTERNS: |
|
||||
**/*.go
|
||||
go.mod
|
||||
go.sum
|
||||
**/go.mod
|
||||
**/go.sum
|
||||
**/Makefile
|
||||
Makefile
|
||||
|
||||
test-system:
|
||||
needs: setup
|
||||
if: needs.setup.outputs.git_diff
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run system tests
|
||||
run: |
|
||||
make test-system
|
||||
|
||||
test-system-legacy:
|
||||
needs: setup
|
||||
if: needs.setup.outputs.git_diff
|
||||
runs-on: depot-ubuntu-22.04-4
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run legacy system tests
|
||||
run: |
|
||||
COSMOS_BUILD_OPTIONS=legacy make test-system
|
||||
+42
-876
File diff suppressed because it is too large
Load Diff
+3
-2
@@ -13,7 +13,7 @@ private
|
||||
|
||||
# Build
|
||||
vendor
|
||||
/build
|
||||
build
|
||||
dist
|
||||
tools-stamp
|
||||
buf-stamp
|
||||
@@ -52,6 +52,8 @@ vagrant
|
||||
.dir-locals.el
|
||||
.vscode
|
||||
|
||||
.venv
|
||||
|
||||
# Depinject & Graphviz
|
||||
dependency-graph.png
|
||||
debug_container.dot
|
||||
@@ -63,4 +65,3 @@ debug_container.log
|
||||
*.synctex.gz
|
||||
/x/genutil/config/priv_validator_key.json
|
||||
/x/genutil/data/priv_validator_state.json
|
||||
simapp/simapp.test
|
||||
+118
-97
@@ -1,25 +1,22 @@
|
||||
version: "2"
|
||||
run:
|
||||
tests: true
|
||||
timeout: 15m
|
||||
allow-parallel-runners: true
|
||||
build-tags:
|
||||
- e2e
|
||||
- ledger
|
||||
- test_ledger_mock
|
||||
|
||||
- sims
|
||||
tests: true
|
||||
allow-parallel-runners: true
|
||||
linters:
|
||||
disable-all: true
|
||||
default: none
|
||||
enable:
|
||||
- copyloopvar
|
||||
- dogsled
|
||||
- errcheck
|
||||
- errorlint
|
||||
- copyloopvar
|
||||
- gci
|
||||
- goconst
|
||||
- gocritic
|
||||
- gofumpt
|
||||
- gosec
|
||||
- gosimple
|
||||
- govet
|
||||
- ineffassign
|
||||
- misspell
|
||||
@@ -27,97 +24,121 @@ linters:
|
||||
- nolintlint
|
||||
- revive
|
||||
- staticcheck
|
||||
- stylecheck
|
||||
- thelper
|
||||
- typecheck
|
||||
- unconvert
|
||||
- unused
|
||||
|
||||
settings:
|
||||
dogsled:
|
||||
max-blank-identifiers: 6
|
||||
gocritic:
|
||||
disabled-checks:
|
||||
- regexpMust
|
||||
- appendAssign
|
||||
- ifElseChain
|
||||
gosec:
|
||||
excludes:
|
||||
- G101
|
||||
- G107
|
||||
- G404
|
||||
confidence: medium
|
||||
misspell:
|
||||
locale: US
|
||||
nolintlint:
|
||||
require-explanation: true
|
||||
require-specific: false
|
||||
allow-unused: false
|
||||
revive:
|
||||
rules:
|
||||
- name: redefines-builtin-id
|
||||
disabled: true
|
||||
staticcheck:
|
||||
checks:
|
||||
- all
|
||||
unused:
|
||||
local-variables-are-used: false
|
||||
exclusions:
|
||||
generated: lax
|
||||
presets:
|
||||
- comments
|
||||
- common-false-positives
|
||||
- legacy
|
||||
- std-error-handling
|
||||
rules:
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'ST1003:'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'ST1016:'
|
||||
- linters:
|
||||
- staticcheck
|
||||
path: migrations
|
||||
text: 'SA1019:'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: codec.NewAminoCodec is deprecated'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: legacybech32.MustMarshalPubKey'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: legacybech32.MarshalPubKey'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: legacybech32.UnmarshalPubKey'
|
||||
- linters:
|
||||
- staticcheck
|
||||
text: 'SA1019: params.SendEnabled is deprecated'
|
||||
- linters:
|
||||
- gosec
|
||||
text: 'G115: integer overflow conversion'
|
||||
- linters:
|
||||
- nolintlint
|
||||
text: leading space
|
||||
paths:
|
||||
- server/grpc/gogoreflection/fix_registration.go
|
||||
- fix_registration.go
|
||||
- .*\.pb\.go$
|
||||
- .*\.pb\.gw\.go$
|
||||
- .*\.pulsar\.go$
|
||||
- crypto/keys/secp256k1/internal/*
|
||||
- types/coin_regex.go
|
||||
- testutil/testdata
|
||||
- x/params
|
||||
- x/crisis
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
issues:
|
||||
exclude-dirs:
|
||||
- testutil/testdata
|
||||
exclude-files:
|
||||
- server/grpc/gogoreflection/fix_registration.go
|
||||
- "fix_registration.go"
|
||||
- ".*\\.pb\\.go$"
|
||||
- ".*\\.pb\\.gw\\.go$"
|
||||
- ".*\\.pulsar\\.go$"
|
||||
- crypto/keys/secp256k1/internal/*
|
||||
- types/coin_regex.go
|
||||
exclude-rules:
|
||||
- text: "ST1003:" # We are fine with our current naming
|
||||
linters:
|
||||
- stylecheck
|
||||
# FIXME: Disabled until golangci-lint updates stylecheck with this fix:
|
||||
# https://github.com/dominikh/go-tools/issues/389
|
||||
- text: "ST1016:" # Ok with inconsistent receiver names
|
||||
linters:
|
||||
- stylecheck
|
||||
- path: "migrations" # migraitions always use deprecated code
|
||||
text: "SA1019:"
|
||||
linters:
|
||||
- staticcheck
|
||||
- text: "SA1019: codec.NewAminoCodec is deprecated" # TODO remove once migration path is set out
|
||||
linters:
|
||||
- staticcheck
|
||||
- text: "SA1019: legacybech32.MustMarshalPubKey" # TODO remove once ready to remove from the sdk
|
||||
linters:
|
||||
- staticcheck
|
||||
- text: "SA1019: legacybech32.MarshalPubKey" # TODO remove once ready to remove from the sdk
|
||||
linters:
|
||||
- staticcheck
|
||||
- text: "SA1019: legacybech32.UnmarshalPubKey" # TODO remove once ready to remove from the sdk
|
||||
linters:
|
||||
- staticcheck
|
||||
- text: "SA1019: params.SendEnabled is deprecated" # TODO remove once ready to remove from the sdk
|
||||
linters:
|
||||
- staticcheck
|
||||
- text: "G115: integer overflow conversion" # We are doing this everywhere.
|
||||
linters:
|
||||
- gosec
|
||||
- text: "leading space"
|
||||
linters:
|
||||
- nolintlint
|
||||
max-issues-per-linter: 10000
|
||||
max-same-issues: 10000
|
||||
|
||||
linters-settings:
|
||||
gci:
|
||||
custom-order: true
|
||||
sections:
|
||||
- standard # Standard section: captures all standard packages.
|
||||
- default # Default section: contains all imports that could not be matched to another section type.
|
||||
- prefix(cosmossdk.io)
|
||||
- prefix(github.com/cosmos/cosmos-sdk)
|
||||
revive:
|
||||
rules:
|
||||
- name: redefines-builtin-id
|
||||
disabled: true
|
||||
|
||||
gosec:
|
||||
# Available rules: https://github.com/securego/gosec#available-rules
|
||||
excludes:
|
||||
- G101 # Potential hardcoded credentials
|
||||
- G107 # Potential HTTP request made with variable url
|
||||
- G404 # Use of weak random number generator (math/rand instead of crypto/rand)
|
||||
exclude-generated: true
|
||||
confidence: medium
|
||||
misspell:
|
||||
locale: US
|
||||
gofumpt:
|
||||
extra-rules: true
|
||||
dogsled:
|
||||
max-blank-identifiers: 6
|
||||
nolintlint:
|
||||
allow-unused: false
|
||||
require-explanation: true
|
||||
require-specific: false
|
||||
gosimple:
|
||||
checks: ["all"]
|
||||
gocritic:
|
||||
disabled-checks:
|
||||
- regexpMust
|
||||
- appendAssign
|
||||
- ifElseChain
|
||||
unused:
|
||||
local-variables-are-used: false
|
||||
formatters:
|
||||
enable:
|
||||
- gci
|
||||
- gofumpt
|
||||
settings:
|
||||
gci:
|
||||
sections:
|
||||
- standard
|
||||
- default
|
||||
- prefix(cosmossdk.io)
|
||||
- prefix(github.com/cosmos/cosmos-sdk)
|
||||
custom-order: true
|
||||
gofumpt:
|
||||
extra-rules: true
|
||||
exclusions:
|
||||
generated: lax
|
||||
paths:
|
||||
- server/grpc/gogoreflection/fix_registration.go
|
||||
- fix_registration.go
|
||||
- .*\.pb\.go$
|
||||
- .*\.pb\.gw\.go$
|
||||
- .*\.pulsar\.go$
|
||||
- crypto/keys/secp256k1/internal/*
|
||||
- types/coin_regex.go
|
||||
- testutil/testdata
|
||||
- x/params
|
||||
- x/crisis
|
||||
- third_party$
|
||||
- builtin$
|
||||
- examples$
|
||||
|
||||
+20
-12
@@ -1,21 +1,25 @@
|
||||
queue_rules:
|
||||
- name: default
|
||||
conditions:
|
||||
- "#approved-reviews-by>1"
|
||||
|
||||
pull_request_rules:
|
||||
- name: automerge to main with label automerge and branch protection passing
|
||||
conditions:
|
||||
queue_conditions:
|
||||
- "#approved-reviews-by>1"
|
||||
- base=main
|
||||
- label=A:automerge
|
||||
merge_conditions:
|
||||
- "#approved-reviews-by>1"
|
||||
commit_message_template: |
|
||||
{{ title }} (#{{ number }})
|
||||
{{ body }}
|
||||
merge_method: squash
|
||||
|
||||
pull_request_rules:
|
||||
- name: backport patches to v0.53.x branch
|
||||
conditions:
|
||||
- base=main
|
||||
- label=backport/v0.53.x
|
||||
actions:
|
||||
queue:
|
||||
name: default
|
||||
method: squash
|
||||
commit_message_template: |
|
||||
{{ title }} (#{{ number }})
|
||||
{{ body }}
|
||||
backport:
|
||||
branches:
|
||||
- release/v0.53.x
|
||||
- name: backport patches to v0.50.x branch
|
||||
conditions:
|
||||
- base=main
|
||||
@@ -48,3 +52,7 @@ pull_request_rules:
|
||||
backport:
|
||||
branches:
|
||||
- release/v0.45.x
|
||||
- name: automerge to main with label automerge and branch protection passing
|
||||
conditions: []
|
||||
actions:
|
||||
queue:
|
||||
Vendored
-18
@@ -11,24 +11,6 @@
|
||||
"program": "${fileDirname}",
|
||||
"args": ["-test.timeout", "30m", "-test.v"],
|
||||
"buildFlags": "-tags e2e"
|
||||
},
|
||||
{
|
||||
"name": "Start: simapp/v2",
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "debug",
|
||||
"program": "${workspaceFolder}/simapp/v2/simdv2",
|
||||
"args": ["start"],
|
||||
"buildFlags": ""
|
||||
},
|
||||
{
|
||||
"name": "Start: simapp/v1",
|
||||
"type": "go",
|
||||
"request": "launch",
|
||||
"mode": "debug",
|
||||
"program": "${workspaceFolder}/simapp/simd",
|
||||
"args": ["start"],
|
||||
"buildFlags": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+620
-200
@@ -36,243 +36,663 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
|
||||
# Changelog
|
||||
|
||||
## [Unreleased]
|
||||
## [v0.53.4](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.53.3) - 2025-07-25
|
||||
|
||||
Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
|
||||
|
||||
## [v0.52.0-rc.2](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.52.0-rc.2) - 2025-01-23
|
||||
|
||||
Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
|
||||
This patch update also includes minor dependency bumps.
|
||||
|
||||
### Features
|
||||
|
||||
* (sims) [#23013](https://github.com/cosmos/cosmos-sdk/pull/23013) Integration with app v2
|
||||
* (x/auth/ante) [#23128](https://github.com/cosmos/cosmos-sdk/pull/23128) Allow custom verifyIsOnCurve when validate tx for public key like ethsecp256k1.
|
||||
* (server) [#23321](https://github.com/cosmos/cosmos-sdk/pull/23321) Add custom rollback command option. In order to use it, you need to implement the Rollback interface and remove the default rollback command with `cmd.RemoveCommand(cmd.RollbackCmd)` and then add it back with `cmd.AddCommand(cmd.NewCustomRollbackCmd(appCreator, rollbackable))`.
|
||||
* (abci_utils) [#25008](https://github.com/cosmos/cosmos-sdk/pull/24861) add the ability to assign a custom signer extraction adapter in `DefaultProposalHandler`.
|
||||
|
||||
### Improvements
|
||||
|
||||
* [#23470](https://github.com/cosmos/cosmos-sdk/pull/23470) Converge to use of one single sign mode type and signer data:
|
||||
* Use api's signmode throughout the SDK to align with `cosmossdk.io/tx`. This allows developer not to juggle between sign mode types
|
||||
* Deprecate `authsigning.SignerData` in favor of txsigning.SignerData and replace its usage
|
||||
* Remove `APISignModeToInternal` from `x/auth` as no conversion is necessary by the user anymore
|
||||
* (all) [#23445](https://github.com/cosmos/cosmos-sdk/pull/23445) Remove `v2` code from codebase.
|
||||
* (codec) [#22988](https://github.com/cosmos/cosmos-sdk/pull/22988) Improve edge case handling for recursion limits.
|
||||
* (proto) [#23437](https://github.com/cosmos/cosmos-sdk/pull/23437) Deprecate `Block` field from `GetBlockByHeightResponse` and return empty comet block for `GetBlockByHeight`.
|
||||
* (module) [#23488](https://github.com/cosmos/cosmos-sdk/pull/23488) Remove CoreAppModuleAdaptor which is no longer used and add HasRegisterServices public interface.
|
||||
## [v0.53.3](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.53.3) - 2025-07-08
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (x/auth/tx) [#23492](https://github.com/cosmos/cosmos-sdk/pull/23492) Add missing timeoutTimestamp in newBuilderFromDecodedTx.
|
||||
* (query) [#23002](https://github.com/cosmos/cosmos-sdk/pull/23002) Fix collection filtered pagination.
|
||||
* (x/auth/tx) [#23170](https://github.com/cosmos/cosmos-sdk/pull/23170) Avoid panic from `newWrapperFromDecodedTx` when `AuthInfo.Fee` is optional in decodedTx.
|
||||
* (x/auth/tx) [#23144](https://github.com/cosmos/cosmos-sdk/pull/23144) Add missing `CacheWithValue` for `ExtensionOptions`.
|
||||
* (x/auth/tx) [#23148](https://github.com/cosmos/cosmos-sdk/pull/23148) Avoid panic from `intoAnyV2` when v1.PublicKey is optional.
|
||||
* (server) [#23244](https://github.com/cosmos/cosmos-sdk/pull/23244) Allow align block header with skip check header in grpc server.
|
||||
* (x/auth) [#23357](https://github.com/cosmos/cosmos-sdk/pull/23357) Fixes accessibility of the AddressStringToBytes HTTP binding and adds another binding to AddressBytesToString.
|
||||
* [GHSA-p22h-3m2v-cmgh](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-p22h-3m2v-cmgh) Fix x/distribution can halt when historical rewards overflow.
|
||||
|
||||
### Deprecated
|
||||
|
||||
* (modules) [#22994](https://github.com/cosmos/cosmos-sdk/pull/22994) Deprecate `Invariants` and associated methods.
|
||||
## [v0.53.2](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.53.2) - 2025-06-02
|
||||
|
||||
## [v0.52.0-rc.1](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.52.0-rc.1) - 2024-12-18
|
||||
This patch update also includes minor dependency bumps.
|
||||
|
||||
Every module contains its own CHANGELOG.md. Please refer to the module you are interested in.
|
||||
### Bug Fixes
|
||||
|
||||
* (x/epochs) [#24770](https://github.com/cosmos/cosmos-sdk/pull/24770) Fix register of epoch hooks in `InvokeSetHooks`.
|
||||
|
||||
## [v0.53.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.53.0) - 2025-04-29
|
||||
|
||||
### Features
|
||||
|
||||
* (client) [#17513](https://github.com/cosmos/cosmos-sdk/pull/17513) Allow overwriting `client.toml`. Use `client.CreateClientConfig` in place of `client.ReadFromClientConfig` and provide a custom template and a custom config.
|
||||
* (tests) [#17868](https://github.com/cosmos/cosmos-sdk/pull/17868) Added helper method `SubmitTestTx` in testutil to broadcast test txns to test e2e tests.
|
||||
* (client) [#18101](https://github.com/cosmos/cosmos-sdk/pull/18101) Add a `keyring-default-keyname` in `client.toml` for specifying a default key name, and skip the need to use the `--from` flag when signing transactions.
|
||||
* (runtime) [#18475](https://github.com/cosmos/cosmos-sdk/pull/18475) Adds an implementation for core.branch.Service.
|
||||
* (baseapp) [#18499](https://github.com/cosmos/cosmos-sdk/pull/18499) Add `MsgRouter` response type from message name function.
|
||||
* (simsx) [#24062](https://github.com/cosmos/cosmos-sdk/pull/24062) [#24145](https://github.com/cosmos/cosmos-sdk/pull/24145) Add new simsx framework on top of simulations for better module dev experience.
|
||||
* (baseapp) [#24069](https://github.com/cosmos/cosmos-sdk/pull/24069) Create CheckTxHandler to allow extending the logic of CheckTx.
|
||||
* (types) [#24093](https://github.com/cosmos/cosmos-sdk/pull/24093) Added a new method, `IsGT`, for `types.Coin`. This method is used to check if a `types.Coin` is greater than another `types.Coin`.
|
||||
* (client/keys) [#24071](https://github.com/cosmos/cosmos-sdk/pull/24071) Add support for importing hex key using standard input.
|
||||
* (types) [#23780](https://github.com/cosmos/cosmos-sdk/pull/23780) Add a ValueCodec for the math.Uint type that can be used in collections maps.
|
||||
* (perf)[#24045](https://github.com/cosmos/cosmos-sdk/pull/24045) Sims: Replace runsim command with Go stdlib testing. CLI: `Commit` default true, `Lean`, `SimulateEveryOperation`, `PrintAllInvariants`, `DBBackend` params removed
|
||||
* (crypto/keyring) [#24040](https://github.com/cosmos/cosmos-sdk/pull/24040) Expose the db keyring used in the keystore.
|
||||
* (types) [#23919](https://github.com/cosmos/cosmos-sdk/pull/23919) Add MustValAddressFromBech32 function.
|
||||
* (all) [#23708](https://github.com/cosmos/cosmos-sdk/pull/23708) Add unordered transaction support.
|
||||
* Adds a `--timeout-timestamp` flag that allows users to specify a block time at which the unordered transactions should expire from the mempool.
|
||||
* (x/epochs) [#23815](https://github.com/cosmos/cosmos-sdk/pull/23815) Upstream `x/epochs` from Osmosis
|
||||
* (client) [#23811](https://github.com/cosmos/cosmos-sdk/pull/23811) Add auto cli for node service.
|
||||
* (genutil) [#24018](https://github.com/cosmos/cosmos-sdk/pull/24018) Allow manually setting the consensus key type in genesis
|
||||
* (client) [#18557](https://github.com/cosmos/cosmos-sdk/pull/18557) Add `--qrcode` flag to `keys show` command to support displaying keys address QR code.
|
||||
* (types) [#18768](https://github.com/cosmos/cosmos-sdk/pull/18768) Add MustValAddressFromBech32 function.
|
||||
* (gRPC) [#19049](https://github.com/cosmos/cosmos-sdk/pull/19049) Add debug log prints for each gRPC request.
|
||||
* (types) [#19164](https://github.com/cosmos/cosmos-sdk/pull/19164) Add a ValueCodec for the math.Uint type that can be used in collections maps.
|
||||
* (types) [#19281](https://github.com/cosmos/cosmos-sdk/pull/19281) Added a new method, `IsGT`, for `types.Coin`. This method is used to check if a `types.Coin` is greater than another `types.Coin`.
|
||||
* (runtime) [#19571](https://github.com/cosmos/cosmos-sdk/pull/19571) Implement `core/router.Service` in runtime. This service is present in all modules (when using depinject).
|
||||
* (types) [#19759](https://github.com/cosmos/cosmos-sdk/pull/19759) Align SignerExtractionAdapter in PriorityNonceMempool Remove.
|
||||
* (client) [#19870](https://github.com/cosmos/cosmos-sdk/pull/19870) Add new query command `wait-tx`. Alias `event-query-tx-for` to `wait-tx` for backward compatibility.
|
||||
* (client) [#19905](https://github.com/cosmos/cosmos-sdk/pull/19905) Add grpc client config to `client.toml`.
|
||||
* (genutil) [#19971](https://github.com/cosmos/cosmos-sdk/pull/19971) Allow manually setting the consensus key type in genesis
|
||||
* (runtime) [#19953](https://github.com/cosmos/cosmos-sdk/pull/19953) Implement `core/transaction.Service` in runtime.
|
||||
* (runtime) [#18475](https://github.com/cosmos/cosmos-sdk/pull/18475) Adds an implementation for `core.branch.Service`.
|
||||
* (runtime) [#19004](https://github.com/cosmos/cosmos-sdk/pull/19004) Adds an implementation for `core/header.Service` in runtime.
|
||||
* (runtime) [#20238](https://github.com/cosmos/cosmos-sdk/pull/20238) Adds an implementation for `core/comet.Service` in runtime.
|
||||
* (tests) [#20013](https://github.com/cosmos/cosmos-sdk/pull/20013) Introduce system tests to run multi node local testnet in CI
|
||||
* (crypto/keyring) [#20212](https://github.com/cosmos/cosmos-sdk/pull/20212) Expose the db keyring used in the keystore.
|
||||
* (client/tx) [#20870](https://github.com/cosmos/cosmos-sdk/pull/20870) Add `timeout-timestamp` field for tx body defines time based timeout.Add `WithTimeoutTimestamp` to tx factory. Increased gas cost for processing newly added timeout timestamp field in tx body.
|
||||
* (client) [#21074](https://github.com/cosmos/cosmos-sdk/pull/21074) Add auto cli for node service
|
||||
* (x/validate) [#21822](https://github.com/cosmos/cosmos-sdk/pull/21822) New module solely responsible for providing ante/post handlers and tx validators for v2. It can be extended by the app developer to provide extra tx validators.
|
||||
* In comparison to x/auth/tx/config, there is no app config to skip ante/post handlers, as overwriting them in baseapp or not injecting the x/validate module has the same effect.
|
||||
* (baseapp) [#21979](https://github.com/cosmos/cosmos-sdk/pull/21979) Create CheckTxHandler to allow extending the logic of CheckTx.
|
||||
* (x/auth) [#24030](https://github.com/cosmos/cosmos-sdk/pull/24030) Allow usage of ed25519 keys for transaction signing.
|
||||
* (baseapp) [#24163](https://github.com/cosmos/cosmos-sdk/pull/24163) Add `StreamingManager` to baseapp to extend the abci listeners.
|
||||
* (x/protocolpool) [#23933](https://github.com/cosmos/cosmos-sdk/pull/23933) Add x/protocolpool module.
|
||||
* x/distribution can now utilize an externally managed community pool. NOTE: this will make the message handlers for FundCommunityPool and CommunityPoolSpend error, as well as the query handler for CommunityPool.
|
||||
* (client) [#18101](https://github.com/cosmos/cosmos-sdk/pull/18101) Add a `keyring-default-keyname` in `client.toml` for specifying a default key name, and skip the need to use the `--from` flag when signing transactions.
|
||||
* (x/gov) [#24355](https://github.com/cosmos/cosmos-sdk/pull/24355) Allow users to set a custom CalculateVoteResultsAndVotingPower function to be used in govkeeper.Tally.
|
||||
* (x/mint) [#24436](https://github.com/cosmos/cosmos-sdk/pull/24436) Allow users to set a custom minting function used in the `x/mint` begin blocker.
|
||||
* The `InflationCalculationFn` argument to `mint.NewAppModule()` is now ignored and must be nil. To set a custom `InflationCalculationFn` on the default minter, use `mintkeeper.WithMintFn(mintkeeper.DefaultMintFn(customInflationFn))`.
|
||||
* (api) [#24428](https://github.com/cosmos/cosmos-sdk/pull/24428) Add block height to response headers
|
||||
|
||||
### Improvements
|
||||
|
||||
* RocksDB libraries have been upgraded to support RockDB v9 instead of v8.
|
||||
* (all) [#16537](https://github.com/cosmos/cosmos-sdk/pull/16537) Properly propagated `fmt.Errorf` errors and using `errors.New` where appropriate.
|
||||
* (client) [#17503](https://github.com/cosmos/cosmos-sdk/pull/17503) Add `client.Context{}.WithAddressCodec`, `WithValidatorAddressCodec`, `WithConsensusAddressCodec` to provide address codecs to the client context. See the [UPGRADING.md](./UPGRADING.md) for more details.
|
||||
* (crypto/keyring) [#17503](https://github.com/cosmos/cosmos-sdk/pull/17503) Simplify keyring interfaces to use `[]byte` instead of `sdk.Address` for addresses.
|
||||
* (rpc) [#17470](https://github.com/cosmos/cosmos-sdk/pull/17470) Avoid open 0.0.0.0 to public by default and add `listen-ip-address` argument for `testnet init-files` cmd.
|
||||
* (types) [#17670](https://github.com/cosmos/cosmos-sdk/pull/17670) Use `ctx.CometInfo` in place of `ctx.VoteInfos`
|
||||
* [#17733](https://github.com/cosmos/cosmos-sdk/pull/17733) Ensure `buf export` exports all proto dependencies
|
||||
* (crypto/keys) [#18026](https://github.com/cosmos/cosmos-sdk/pull/18026) Made public key generation constant time on `secp256k1`
|
||||
* (crypto | x/auth) [#14372](https://github.com/cosmos/cosmos-sdk/pull/18194) Key checks on signatures antehandle.
|
||||
* (types) [#18440](https://github.com/cosmos/cosmos-sdk/pull/18440) Add `AmountOfNoValidation` to `sdk.DecCoins`.
|
||||
* (client/keys) [#18663](https://github.com/cosmos/cosmos-sdk/pull/18663) Improve `<appd> keys add` by displaying mnemonic discreetly on an alternate screen and adding `--indiscreet` option to disable it.
|
||||
* (client/keys) [#18684](https://github.com/cosmos/cosmos-sdk/pull/18684) Improve `<appd> keys export` by displaying unarmored hex private key discreetly on an alternate screen and adding `--indiscreet` option to disable it.
|
||||
* (client/keys) [#18687](https://github.com/cosmos/cosmos-sdk/pull/18687) Improve `<appd> keys mnemonic` by displaying mnemonic discreetly on an alternate screen and adding `--indiscreet` option to disable it.
|
||||
* (client/keys) [#18703](https://github.com/cosmos/cosmos-sdk/pull/18703) Improve `<appd> keys add` and `<appd> keys show` by checking whether there are duplicate keys in the multisig case.
|
||||
* Usage of `Must...` kind of functions are avoided in keeper methods.
|
||||
* (client/keys) [#18743](https://github.com/cosmos/cosmos-sdk/pull/18743) Improve `<appd> keys add -i` by hiding inputting of bip39 passphrase.
|
||||
* (client/keys) [#18745](https://github.com/cosmos/cosmos-sdk/pull/18745) Improve `<appd> keys export` and `<appd> keys mnemonic` by adding --yes option to skip interactive confirmation.
|
||||
* (client) [#24561](https://github.com/cosmos/cosmos-sdk/pull/24561) TimeoutTimestamp flag has been changed to TimeoutDuration, which now sets the timeout timestamp of unordered transactions to the current time + duration passed.
|
||||
* (telemetry) [#24541](https://github.com/cosmos/cosmos-sdk/pull/24541) Telemetry now includes a pre_blocker metric key. x/upgrade should migrate to this key in v0.54.0.
|
||||
* (x/auth) [#24541](https://github.com/cosmos/cosmos-sdk/pull/24541) x/auth's PreBlocker now emits telemetry under the pre_blocker metric key.
|
||||
* (x/bank) [#24431](https://github.com/cosmos/cosmos-sdk/pull/24431) Reduce the number of `ValidateDenom` calls in `bank.SendCoins` and `Coin`.
|
||||
* The `AmountOf()` method on`sdk.Coins` no longer will `panic` if given an invalid denom and will instead return a zero value.
|
||||
* (x/staking) [#24391](https://github.com/cosmos/cosmos-sdk/pull/24391) Replace panics with error results; more verbose error messages
|
||||
* (x/staking) [#24354](https://github.com/cosmos/cosmos-sdk/pull/24354) Optimize validator endblock by reducing bech32 conversions, resulting in significant performance improvement
|
||||
* (client/keys) [#18950](https://github.com/cosmos/cosmos-sdk/pull/18950) Improve `<appd> keys add`, `<appd> keys import` and `<appd> keys rename` by checking name validation.
|
||||
* (types) [#18963](https://github.com/cosmos/cosmos-sdk/pull/18963) Swap out amino json encoding of `ABCIMessageLogs` for std lib json encoding
|
||||
* (types) [#19512](https://github.com/cosmos/cosmos-sdk/pull/19512) The notion of basic manager does not exist anymore (and all related helpers).
|
||||
* The module manager now can do everything that the basic manager was doing.
|
||||
* `AppModuleBasic` has been deprecated for extension interfaces.
|
||||
* Modules can now implement `appmodule.HasRegisterInterfaces`, `module.HasGRPCGateway` and `module.HasAminoCodec` when relevant.
|
||||
* SDK modules now directly implement those extension interfaces on `AppModule` instead of `AppModuleBasic`.
|
||||
* (server) [#19455](https://github.com/cosmos/cosmos-sdk/pull/19455) Allow calling back into the application struct in PostSetup.
|
||||
* (types) [#19672](https://github.com/cosmos/cosmos-sdk/pull/19672) `PreBlock` now returns only an error for consistency with server/v2. The SDK has upgraded x/upgrade accordingly. `ResponsePreBlock` hence has been removed.
|
||||
* (x/auth) [#19651](https://github.com/cosmos/cosmos-sdk/pull/19651) Allow empty public keys in `GetSignBytesAdapter`.
|
||||
* (x/genutil) [#19735](https://github.com/cosmos/cosmos-sdk/pull/19735) Update genesis api to match new `appmodule.HasGenesis` interface.
|
||||
* (types) [#19869](https://github.com/cosmos/cosmos-sdk/pull/19869) Removed `Any` type from `codec/types` and replaced it with an alias for `cosmos/gogoproto/types/any`.
|
||||
* (server) [#19854](https://github.com/cosmos/cosmos-sdk/pull/19854) Add customizability to start command.
|
||||
* Add `StartCmdOptions` in `server.AddCommands` instead of `servertypes.ModuleInitFlags`. To set custom flags set them in the `StartCmdOptions` struct on the `AddFlags` field.
|
||||
* Add `StartCommandHandler` to `StartCmdOptions` to allow custom start command handlers. Users now have total control over how the app starts.
|
||||
* (server) [#19966](https://github.com/cosmos/cosmos-sdk/pull/19966) Return BlockHeader by shallow copy in server Context.
|
||||
* (codec) [#20122](https://github.com/cosmos/cosmos-sdk/pull/20122) Added a cache to address codec.
|
||||
* (proto) [#20098](https://github.com/cosmos/cosmos-sdk/pull/20098) Use cosmos_proto added_in annotation instead of // Since comments.
|
||||
* (baseapp) [#20208](https://github.com/cosmos/cosmos-sdk/pull/20208) Skip running validateBasic for rechecking txs.
|
||||
* (baseapp) [#20380](https://github.com/cosmos/cosmos-sdk/pull/20380) Enhanced OfferSnapshot documentation.
|
||||
* (client) [#20771](https://github.com/cosmos/cosmos-sdk/pull/20771) Remove `ReadDefaultValuesFromDefaultClientConfig` from `client` package. (It was introduced in `v0.50.6` as a quick fix).
|
||||
* (grpcserver) [#20945](https://github.com/cosmos/cosmos-sdk/pull/20945) Adds error handling for out-of-gas panics in grpc query handlers.
|
||||
* (internal) [#21412](https://github.com/cosmos/cosmos-sdk/pull/21412) Using unsafe.String and unsafe.SliceData.
|
||||
* (client) [#21436](https://github.com/cosmos/cosmos-sdk/pull/21436) Use `address.Codec` from client.Context in `tx.Sign`.
|
||||
* (x/genutil) [#21249](https://github.com/cosmos/cosmos-sdk/pull/21249) Incremental JSON parsing for AppGenesis where possible.
|
||||
* (genutil) [#21701](https://github.com/cosmos/cosmos-sdk/pull/21701) Improved error messages for genesis validation.
|
||||
* (runtime) [#21704](https://github.com/cosmos/cosmos-sdk/pull/21704) Move `upgradetypes.StoreLoader` to runtime and alias it in upgrade for backward compatibility.
|
||||
* (sims)[#21613](https://github.com/cosmos/cosmos-sdk/pull/21613) Add sims2 framework and factory methods for simpler message factories in modules
|
||||
* (modules) [#21963](https://github.com/cosmos/cosmos-sdk/pull/21963) Duplicatable metrics are no more collected in modules. They were unnecessary overhead.
|
||||
* (crypto/ledger) [#22116](https://github.com/cosmos/cosmos-sdk/pull/22116) Improve error message when deriving paths using index >100
|
||||
* (testutil/integration) [#22616](https://github.com/cosmos/cosmos-sdk/pull/22616) Remove double context in integration tests v1.
|
||||
* Use `integrationApp.Context()` instead of creating a context prior.
|
||||
* (version) [#22807](https://github.com/cosmos/cosmos-sdk/pull/22807) Return server/v2 information in the `version` functions and commands.
|
||||
* [#22826](https://github.com/cosmos/cosmos-sdk/pull/22826) Simplify testing frameworks by removing `testutil/cmdtest`.
|
||||
* (client/keys) [#18703](https://github.com/cosmos/cosmos-sdk/pull/18703) Improve `<appd> keys add` and `<appd> keys show` by checking whether there are duplicate keys in the multisig case.
|
||||
* (client/keys) [#18745](https://github.com/cosmos/cosmos-sdk/pull/18745) Improve `<appd> keys export` and `<appd> keys mnemonic` by adding --yes option to skip interactive confirmation.
|
||||
* (x/bank) [#24106](https://github.com/cosmos/cosmos-sdk/pull/24106) `SendCoins` now checks for `SendRestrictions` before instead of after deducting coins using `subUnlockedCoins`.
|
||||
* (crypto/ledger) [#24036](https://github.com/cosmos/cosmos-sdk/pull/24036) Improve error message when deriving paths using index > 100
|
||||
* (gRPC) [#23844](https://github.com/cosmos/cosmos-sdk/pull/23844) Add debug log prints for each gRPC request.
|
||||
* (gRPC) [#24073](https://github.com/cosmos/cosmos-sdk/pull/24073) Adds error handling for out-of-gas panics in grpc query handlers.
|
||||
* (server) [#24072](https://github.com/cosmos/cosmos-sdk/pull/24072) Return BlockHeader by shallow copy in server Context.
|
||||
* (x/bank) [#24053](https://github.com/cosmos/cosmos-sdk/pull/24053) Resolve a foot-gun by swapping send restrictions check in `InputOutputCoins` before coin deduction.
|
||||
* (codec/types) [#24336](https://github.com/cosmos/cosmos-sdk/pull/24336) Most types definitions were moved to `github.com/cosmos/gogoproto/types/any` with aliases to these left in `codec/types` so that there should be no breakage to existing code. This allows protobuf generated code to optionally reference the SDK's custom `Any` type without a direct dependency on the SDK. This can be done by changing the `protoc` `M` parameter for `any.proto` to `Mgoogle/protobuf/any.proto=github.com/cosmos/gogoproto/types/any`.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (baseapp) [#18383](https://github.com/cosmos/cosmos-sdk/pull/18383) Fixed a data race inside BaseApp.getContext, found by end-to-end (e2e) tests.
|
||||
* (client/server) [#18345](https://github.com/cosmos/cosmos-sdk/pull/18345) Consistently set viper prefix in client and server. It defaults for the binary name for both client and server.
|
||||
* (baseapp) [#18551](https://github.com/cosmos/cosmos-sdk/pull/18551) Fix SelectTxForProposal the calculation method of tx bytes size is inconsistent with CometBFT
|
||||
* (client/keys) [#18562](https://github.com/cosmos/cosmos-sdk/pull/18562) `keys delete` won't terminate when a key is not found.
|
||||
* (client) [#18622](https://github.com/cosmos/cosmos-sdk/pull/18622) Fixed a potential under/overflow from `uint64->int64` when computing gas fees as a LegacyDec.
|
||||
* (baseapp) [#18727](https://github.com/cosmos/cosmos-sdk/pull/18727) Ensure that `BaseApp.Init` firstly returns any errors from a nil commit multistore instead of panicking on nil dereferencing and before sealing the app.
|
||||
* (server) [#18994](https://github.com/cosmos/cosmos-sdk/pull/18994) Update server context directly rather than a reference to a sub-object
|
||||
* [#19833](https://github.com/cosmos/cosmos-sdk/pull/19833) Fix some places in which we call Remove inside a Walk.
|
||||
* [#19851](https://github.com/cosmos/cosmos-sdk/pull/19851) Fix some places in which we call Remove inside a Walk (x/staking and x/gov).
|
||||
* (sims) [#21952](https://github.com/cosmos/cosmos-sdk/pull/21952) Use liveness matrix for validator sign status in sims
|
||||
* (baseapp) [#21003](https://github.com/cosmos/cosmos-sdk/pull/21003) Align block header when query with latest height.
|
||||
* (x/gov)[#24460](https://github.com/cosmos/cosmos-sdk/pull/24460) Do not call Remove during Walk in defaultCalculateVoteResultsAndVotingPower.
|
||||
* (baseapp) [24261](https://github.com/cosmos/cosmos-sdk/pull/24261) Fix post handler error always results in code 1
|
||||
* (server) [#24068](https://github.com/cosmos/cosmos-sdk/pull/24068) Allow align block header with skip check header in grpc server.
|
||||
* (x/gov) [#24044](https://github.com/cosmos/cosmos-sdk/pull/24044) Fix some places in which we call Remove inside a Walk (x/gov).
|
||||
* (baseapp) [#24042](https://github.com/cosmos/cosmos-sdk/pull/24042) Fixed a data race inside BaseApp.getContext, found by end-to-end (e2e) tests.
|
||||
* (client/server) [#24059](https://github.com/cosmos/cosmos-sdk/pull/24059) Consistently set viper prefix in client and server. It defaults for the binary name for both client and server.
|
||||
* (client/keys) [#24041](https://github.com/cosmos/cosmos-sdk/pull/24041) `keys delete` won't terminate when a key is not found, but will log the error.
|
||||
* (baseapp) [#24027](https://github.com/cosmos/cosmos-sdk/pull/24027) Ensure that `BaseApp.Init` checks that the commit multistore is set to protect against nil dereferences.
|
||||
* (x/group) [GHSA-47ww-ff84-4jrg](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-47ww-ff84-4jrg) Fix x/group can halt when erroring in EndBlocker
|
||||
* (x/distribution) [#23934](https://github.com/cosmos/cosmos-sdk/pull/23934) Fix vulnerability in `incrementReferenceCount` in distribution.
|
||||
* (baseapp) [#23879](https://github.com/cosmos/cosmos-sdk/pull/23879) Ensure finalize block response is not empty in the defer check of FinalizeBlock to avoid panic by nil pointer.
|
||||
* (query) [#23883](https://github.com/cosmos/cosmos-sdk/pull/23883) Fix NPE in query pagination.
|
||||
* (client) [#23860](https://github.com/cosmos/cosmos-sdk/pull/23860) Add missing `unordered` field for legacy amino signing of tx body.
|
||||
* (x/bank) [#23836](https://github.com/cosmos/cosmos-sdk/pull/23836) Fix `DenomMetadata` rpc allow value with slashes.
|
||||
* (query) [87d3a43](https://github.com/cosmos/cosmos-sdk/commit/87d3a432af95f4cf96aa02351ed5fcc51cca6e7b) Fix collection filtered pagination.
|
||||
* (sims) [#23952](https://github.com/cosmos/cosmos-sdk/pull/23952) Use liveness matrix for validator sign status in sims
|
||||
* (baseapp) [#24055](https://github.com/cosmos/cosmos-sdk/pull/24055) Align block header when query with latest height.
|
||||
* (baseapp) [#24074](https://github.com/cosmos/cosmos-sdk/pull/24074) Use CometBFT's ComputeProtoSizeForTxs in defaultTxSelector.SelectTxForProposal for consistency.
|
||||
* (cli) [#24090](https://github.com/cosmos/cosmos-sdk/pull/24090) Prune cmd should disable async pruning.
|
||||
* (x/auth) [#19239](https://github.com/cosmos/cosmos-sdk/pull/19239) Sets from flag in multi-sign command to avoid no key name provided error.
|
||||
* (x/auth) [#23741](https://github.com/cosmos/cosmos-sdk/pull/23741) Support legacy global AccountNumber for legacy compatibility.
|
||||
* (baseapp) [#24526](https://github.com/cosmos/cosmos-sdk/pull/24526) Fix incorrect retention height when `commitHeight` equals `minRetainBlocks`.
|
||||
* (x/protocolpool) [#24594](https://github.com/cosmos/cosmos-sdk/pull/24594) Fix NPE when initializing module via depinject.
|
||||
* (x/epochs) [#24610](https://github.com/cosmos/cosmos-sdk/pull/24610) Fix semantics of `CurrentEpochStartHeight` being set before epoch has started.
|
||||
|
||||
## [v0.50.13](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.13) - 2025-03-12
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [GHSA-47ww-ff84-4jrg](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-47ww-ff84-4jrg) Fix x/group can halt when erroring in EndBlocker
|
||||
|
||||
## [v0.50.12](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.12) - 2025-02-20
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [GHSA-x5vx-95h7-rv4p](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-x5vx-95h7-rv4p) Fix Group module can halt chain when handling a malicious proposal.
|
||||
|
||||
## [v0.50.11](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.11) - 2024-12-16
|
||||
|
||||
### Features
|
||||
|
||||
* (crypto/keyring) [#21653](https://github.com/cosmos/cosmos-sdk/pull/21653) New Linux-only backend that adds Linux kernel's `keyctl` support.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (server) [#21941](https://github.com/cosmos/cosmos-sdk/pull/21941) Regenerate addrbook.json for in place testnet.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fix [ABS-0043/ABS-0044](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-8wcc-m6j2-qxvm) Limit recursion depth for unknown field detection and unpack any
|
||||
* (server) [#22564](https://github.com/cosmos/cosmos-sdk/pull/22564) Fix fallback genesis path in server
|
||||
* (x/group) [#22425](https://github.com/cosmos/cosmos-sdk/pull/22425) Proper address rendering in error
|
||||
* (sims) [#21906](https://github.com/cosmos/cosmos-sdk/pull/21906) Skip sims test when running dry on validators
|
||||
* (cli) [#21919](https://github.com/cosmos/cosmos-sdk/pull/21919) Query address-by-acc-num by account_id instead of id.
|
||||
* (cli) [#22656](https://github.com/cosmos/cosmos-sdk/pull/22656) Prune cmd should disable async pruning.
|
||||
* (x/group) [#22229](https://github.com/cosmos/cosmos-sdk/pull/22229) Accept `1` and `try` in CLI for group proposal exec.
|
||||
|
||||
## [v0.50.10](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.10) - 2024-09-20
|
||||
|
||||
### Features
|
||||
|
||||
* (cli) [#20779](https://github.com/cosmos/cosmos-sdk/pull/20779) Added `module-hash-by-height` command to query and retrieve module hashes at a specified blockchain height, enhancing debugging capabilities.
|
||||
* (cli) [#21372](https://github.com/cosmos/cosmos-sdk/pull/21372) Added a `bulk-add-genesis-account` genesis command to add many genesis accounts at once.
|
||||
* (types/collections) [#21724](https://github.com/cosmos/cosmos-sdk/pull/21724) Added `LegacyDec` collection value.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (x/bank) [#21460](https://github.com/cosmos/cosmos-sdk/pull/21460) Added `Sender` attribute in `MsgMultiSend` event.
|
||||
* (genutil) [#21701](https://github.com/cosmos/cosmos-sdk/pull/21701) Improved error messages for genesis validation.
|
||||
* (testutil/integration) [#21816](https://github.com/cosmos/cosmos-sdk/pull/21816) Allow to pass baseapp options in `NewIntegrationApp`.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (runtime) [#21769](https://github.com/cosmos/cosmos-sdk/pull/21769) Fix baseapp options ordering to avoid overwriting options set by modules.
|
||||
* (x/consensus) [#21493](https://github.com/cosmos/cosmos-sdk/pull/21493) Fix regression that prevented to upgrade to > v0.50.7 without consensus version params.
|
||||
* (baseapp) [#21256](https://github.com/cosmos/cosmos-sdk/pull/21256) Halt height will not commit the block indicated, meaning that if halt-height is set to 10, only blocks until 9 (included) will be committed. This is to go back to the original behavior before a change was introduced in v0.50.0.
|
||||
* (baseapp) [#21444](https://github.com/cosmos/cosmos-sdk/pull/21444) Follow-up, Return PreBlocker events in FinalizeBlockResponse.
|
||||
* (baseapp) [#21413](https://github.com/cosmos/cosmos-sdk/pull/21413) Fix data race in sdk mempool.
|
||||
|
||||
## [v0.50.9](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.9) - 2024-08-07
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* (baseapp) [#21159](https://github.com/cosmos/cosmos-sdk/pull/21159) Return PreBlocker events in FinalizeBlockResponse.
|
||||
* [#20939](https://github.com/cosmos/cosmos-sdk/pull/20939) Fix collection reverse iterator to include `pagination.key` in the result.
|
||||
* (client/grpc) [#20969](https://github.com/cosmos/cosmos-sdk/pull/20969) Fix `node.NewQueryServer` method not setting `cfg`.
|
||||
* (testutil/integration) [#21006](https://github.com/cosmos/cosmos-sdk/pull/21006) Fix `NewIntegrationApp` method not writing default genesis to state.
|
||||
* (runtime) [#21080](https://github.com/cosmos/cosmos-sdk/pull/21080) Fix `app.yaml` / `app.json` incompatibility with `depinject v1.0.0`.
|
||||
|
||||
## [v0.50.8](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.8) - 2024-07-15
|
||||
|
||||
## Features
|
||||
|
||||
* (client) [#20690](https://github.com/cosmos/cosmos-sdk/pull/20690) Import mnemonic from file
|
||||
|
||||
## Improvements
|
||||
|
||||
* (x/authz,x/feegrant) [#20590](https://github.com/cosmos/cosmos-sdk/pull/20590) Provide updated keeper in depinject for authz and feegrant modules.
|
||||
* [#20631](https://github.com/cosmos/cosmos-sdk/pull/20631) Fix json parsing in the wait-tx command.
|
||||
* (x/auth) [#20438](https://github.com/cosmos/cosmos-sdk/pull/20438) Add `--skip-signature-verification` flag to multisign command to allow nested multisigs.
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* (simulation) [#17911](https://github.com/cosmos/cosmos-sdk/pull/17911) Fix all problems with executing command `make test-sim-custom-genesis-fast` for simulation test.
|
||||
* (simulation) [#18196](https://github.com/cosmos/cosmos-sdk/pull/18196) Fix the problem of `validator set is empty after InitGenesis` in simulation test.
|
||||
|
||||
## [v0.50.7](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.7) - 2024-06-04
|
||||
|
||||
### Improvements
|
||||
|
||||
* (debug) [#20328](https://github.com/cosmos/cosmos-sdk/pull/20328) Add consensus address for debug cmd.
|
||||
* (runtime) [#20264](https://github.com/cosmos/cosmos-sdk/pull/20264) Expose grpc query router via depinject.
|
||||
* (x/consensus) [#20381](https://github.com/cosmos/cosmos-sdk/pull/20381) Use Comet utility for consensus module consensus param updates.
|
||||
* (client) [#20356](https://github.com/cosmos/cosmos-sdk/pull/20356) Overwrite client context when available in `SetCmdClientContext`.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (baseapp) [#20346](https://github.com/cosmos/cosmos-sdk/pull/20346) Correctly assign `execModeSimulate` to context for `simulateTx`.
|
||||
* (baseapp) [#20144](https://github.com/cosmos/cosmos-sdk/pull/20144) Remove txs from mempool when AnteHandler fails in recheck.
|
||||
* (baseapp) [#20107](https://github.com/cosmos/cosmos-sdk/pull/20107) Avoid header height overwrite block height.
|
||||
* (cli) [#20020](https://github.com/cosmos/cosmos-sdk/pull/20020) Make bootstrap-state command support both new and legacy genesis format.
|
||||
* (testutil/sims) [#20151](https://github.com/cosmos/cosmos-sdk/pull/20151) Set all signatures and don't overwrite the previous one in `GenSignedMockTx`.
|
||||
|
||||
## [v0.50.6](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.6) - 2024-04-22
|
||||
|
||||
### Features
|
||||
|
||||
* (types) [#19759](https://github.com/cosmos/cosmos-sdk/pull/19759) Align SignerExtractionAdapter in PriorityNonceMempool Remove.
|
||||
* (client) [#19870](https://github.com/cosmos/cosmos-sdk/pull/19870) Add new query command `wait-tx`. Alias `event-query-tx-for` to `wait-tx` for backward compatibility.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (telemetry) [#19903](https://github.com/cosmos/cosmos-sdk/pull/19903) Conditionally emit metrics based on enablement.
|
||||
* **Introduction of `Now` Function**: Added a new function called `Now` to the telemetry package. It returns the current system time if telemetry is enabled, or a zero time if telemetry is not enabled.
|
||||
* **Atomic Global Variable**: Implemented an atomic global variable to manage the state of telemetry's enablement. This ensures thread safety for the telemetry state.
|
||||
* **Conditional Telemetry Emission**: All telemetry functions have been updated to emit metrics only when telemetry is enabled. They perform a check with `isTelemetryEnabled()` and return early if telemetry is disabled, minimizing unnecessary operations and overhead.
|
||||
* (deps) [#19810](https://github.com/cosmos/cosmos-sdk/pull/19810) Upgrade prometheus version and fix API breaking change due to prometheus bump.
|
||||
* (deps) [#19810](https://github.com/cosmos/cosmos-sdk/pull/19810) Bump `cosmossdk.io/store` to v1.1.0.
|
||||
* (server) [#19884](https://github.com/cosmos/cosmos-sdk/pull/19884) Add start customizability to start command options.
|
||||
* (x/gov) [#19853](https://github.com/cosmos/cosmos-sdk/pull/19853) Emit `depositor` in `EventTypeProposalDeposit`.
|
||||
* (x/gov) [#19844](https://github.com/cosmos/cosmos-sdk/pull/19844) Emit the proposer of governance proposals.
|
||||
* (baseapp) [#19616](https://github.com/cosmos/cosmos-sdk/pull/19616) Don't share gas meter in tx execution.
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
* (x/authz) [#20114](https://github.com/cosmos/cosmos-sdk/pull/20114) Follow up of [GHSA-4j93-fm92-rp4m](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-4j93-fm92-rp4m) for `x/authz`.
|
||||
* (crypto) [#19691](https://github.com/cosmos/cosmos-sdk/pull/19745) Fix tx sign doesn't throw an error when incorrect Ledger is used.
|
||||
* (baseapp) [#19970](https://github.com/cosmos/cosmos-sdk/pull/19970) Fix default config values to use no-op mempool as default.
|
||||
* (crypto) [#20027](https://github.com/cosmos/cosmos-sdk/pull/20027) secp256r1 keys now implement gogoproto's customtype interface.
|
||||
* (x/bank) [#20028](https://github.com/cosmos/cosmos-sdk/pull/20028) Align query with multi denoms for send-enabled.
|
||||
|
||||
## [v0.50.5](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.5) - 2024-03-12
|
||||
|
||||
### Features
|
||||
|
||||
* (baseapp) [#19626](https://github.com/cosmos/cosmos-sdk/pull/19626) Add `DisableBlockGasMeter` option to `BaseApp`, which removes the block gas meter during transaction execution.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (x/distribution) [#19707](https://github.com/cosmos/cosmos-sdk/pull/19707) Add autocli config for `DelegationTotalRewards` for CLI consistency with `q rewards` commands in previous versions.
|
||||
* (x/auth) [#19651](https://github.com/cosmos/cosmos-sdk/pull/19651) Allow empty public keys in `GetSignBytesAdapter`.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (x/gov) [#19725](https://github.com/cosmos/cosmos-sdk/pull/19725) Fetch a failed proposal tally from proposal.FinalTallyResult in the gprc query.
|
||||
* (types) [#19709](https://github.com/cosmos/cosmos-sdk/pull/19709) Fix skip staking genesis export when using `CoreAppModuleAdaptor` / `CoreAppModuleBasicAdaptor` for it.
|
||||
* (x/auth) [#19549](https://github.com/cosmos/cosmos-sdk/pull/19549) Accept custom get signers when injecting `x/auth/tx`.
|
||||
* (x/staking) Fix a possible bypass of delegator slashing: [GHSA-86h5-xcpx-cfqc](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-86h5-xcpx-cfqc)
|
||||
* (baseapp) Fix a bug in `baseapp.ValidateVoteExtensions` helper ([GHSA-95rx-m9m5-m94v](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-95rx-m9m5-m94v)). The helper has been fixed and for avoiding API breaking changes `currentHeight` and `chainID` arguments are ignored. Those arguments are removed from the helper in v0.51+.
|
||||
|
||||
## [v0.50.4](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.4) - 2024-02-19
|
||||
|
||||
### Features
|
||||
|
||||
* (server) [#19280](https://github.com/cosmos/cosmos-sdk/pull/19280) Adds in-place testnet CLI command.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (client) [#19393](https://github.com/cosmos/cosmos-sdk/pull/19393/) Add `ReadDefaultValuesFromDefaultClientConfig` to populate the default values from the default client config in client.Context without creating a app folder.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (x/auth/vesting) [GHSA-4j93-fm92-rp4m](#bug-fixes) Add `BlockedAddr` check in `CreatePeriodicVestingAccount`.
|
||||
* (baseapp) [#19338](https://github.com/cosmos/cosmos-sdk/pull/19338) Set HeaderInfo in context when calling `setState`.
|
||||
* (baseapp): [#19200](https://github.com/cosmos/cosmos-sdk/pull/19200) Ensure that sdk side ve math matches cometbft.
|
||||
* [#19106](https://github.com/cosmos/cosmos-sdk/pull/19106) Allow empty public keys when setting signatures. Public keys aren't needed for every transaction.
|
||||
* (baseapp) [#19198](https://github.com/cosmos/cosmos-sdk/pull/19198) Remove usage of pointers in logs in all optimistic execution goroutines.
|
||||
* (baseapp) [#19177](https://github.com/cosmos/cosmos-sdk/pull/19177) Fix baseapp `DefaultProposalHandler` same-sender non-sequential sequence.
|
||||
* (crypto) [#19371](https://github.com/cosmos/cosmos-sdk/pull/19371) Avoid CLI redundant log in stdout, log to stderr instead.
|
||||
|
||||
## [v0.50.3](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.3) - 2024-01-15
|
||||
|
||||
### Features
|
||||
|
||||
* (types) [#18991](https://github.com/cosmos/cosmos-sdk/pull/18991) Add SignerExtractionAdapter to PriorityNonceMempool/Config and provide Default implementation matching existing behavior.
|
||||
* (gRPC) [#19043](https://github.com/cosmos/cosmos-sdk/pull/19043) Add `halt_height` to the gRPC `/cosmos/base/node/v1beta1/config` request.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (x/bank) [#18956](https://github.com/cosmos/cosmos-sdk/pull/18956) Introduced a new `DenomOwnersByQuery` query method for `DenomOwners`, which accepts the denom value as a query string parameter, resolving issues with denoms containing slashes.
|
||||
* (x/gov) [#18707](https://github.com/cosmos/cosmos-sdk/pull/18707) Improve genesis validation.
|
||||
* (x/auth/tx) [#18772](https://github.com/cosmos/cosmos-sdk/pull/18772) Remove misleading gas wanted from tx simulation failure log.
|
||||
* (client/tx) [#18852](https://github.com/cosmos/cosmos-sdk/pull/18852) Add `WithFromName` to tx factory.
|
||||
* (types) [#18888](https://github.com/cosmos/cosmos-sdk/pull/18888) Speedup DecCoin.Sort() if len(coins) <= 1
|
||||
* (types) [#18875](https://github.com/cosmos/cosmos-sdk/pull/18875) Speedup coins.Sort() if len(coins) <= 1
|
||||
* (baseapp) [#18915](https://github.com/cosmos/cosmos-sdk/pull/18915) Add a new `ExecModeVerifyVoteExtension` exec mode and ensure it's populated in the `Context` during `VerifyVoteExtension` execution.
|
||||
* (testutil) [#18930](https://github.com/cosmos/cosmos-sdk/pull/18930) Add NodeURI for clientCtx.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (baseapp) [#19058](https://github.com/cosmos/cosmos-sdk/pull/19058) Fix baseapp posthandler branch would fail if the `runMsgs` had returned an error.
|
||||
* (baseapp) [#18609](https://github.com/cosmos/cosmos-sdk/issues/18609) Fixed accounting in the block gas meter after module's beginBlock and before DeliverTx, ensuring transaction processing always starts with the expected zeroed out block gas meter.
|
||||
* (baseapp) [#18895](https://github.com/cosmos/cosmos-sdk/pull/18895) Fix de-duplicating vote extensions during validation in ValidateVoteExtensions.
|
||||
|
||||
## [v0.50.2](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.2) - 2023-12-11
|
||||
|
||||
### Features
|
||||
|
||||
* (debug) [#18219](https://github.com/cosmos/cosmos-sdk/pull/18219) Add debug commands for application codec types.
|
||||
* (client/keys) [#17639](https://github.com/cosmos/cosmos-sdk/pull/17639) Allows using and saving public keys encoded as base64.
|
||||
* (server) [#17094](https://github.com/cosmos/cosmos-sdk/pull/17094) Add a `shutdown-grace` flag for waiting a given time before exit.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (telemetry) [#18646] (https://github.com/cosmos/cosmos-sdk/pull/18646) Enable statsd and dogstatsd telemetry sinks.
|
||||
* (server) [#18478](https://github.com/cosmos/cosmos-sdk/pull/18478) Add command flag to disable colored logs.
|
||||
* (x/gov) [#18025](https://github.com/cosmos/cosmos-sdk/pull/18025) Improve `<appd> q gov proposer` by querying directly a proposal instead of tx events. It is an alias of `q gov proposal` as the proposer is a field of the proposal.
|
||||
* (version) [#18063](https://github.com/cosmos/cosmos-sdk/pull/18063) Allow to define extra info to be displayed in `<appd> version --long` command.
|
||||
* (codec/unknownproto)[#18541](https://github.com/cosmos/cosmos-sdk/pull/18541) Remove the use of "protoc-gen-gogo/descriptor" in favour of using the official protobuf descriptorpb types inside unknownproto.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (x/auth) [#18564](https://github.com/cosmos/cosmos-sdk/pull/18564) Fix total fees calculation when batch signing.
|
||||
* (server) [#18537](https://github.com/cosmos/cosmos-sdk/pull/18537) Fix panic when defining minimum gas config as `100stake;100uatom`. Use a `,` delimiter instead of `;`. Fixes the server config getter to use the correct delimiter.
|
||||
* [#18531](https://github.com/cosmos/cosmos-sdk/pull/18531) Baseapp's `GetConsensusParams` returns an empty struct instead of panicking if no params are found.
|
||||
* (client/tx) [#18472](https://github.com/cosmos/cosmos-sdk/pull/18472) Utilizes the correct Pubkey when simulating a transaction.
|
||||
* (baseapp) [#18486](https://github.com/cosmos/cosmos-sdk/pull/18486) Fixed FinalizeBlock calls not being passed to ABCIListeners.
|
||||
* (baseapp) [#18627](https://github.com/cosmos/cosmos-sdk/pull/18627) Post handlers are run on non successful transaction executions too.
|
||||
* (baseapp) [#18654](https://github.com/cosmos/cosmos-sdk/pull/18654) Fixes an issue in which `gogoproto.Merge` does not work with gogoproto messages with custom types.
|
||||
|
||||
## [v0.50.1](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.1) - 2023-11-07
|
||||
|
||||
> v0.50.0 has been retracted due to a mistake in tagging the release. Please use v0.50.1 instead.
|
||||
|
||||
### Features
|
||||
|
||||
* (baseapp) [#18071](https://github.com/cosmos/cosmos-sdk/pull/18071) Add hybrid handlers to `MsgServiceRouter`.
|
||||
* (server) [#18162](https://github.com/cosmos/cosmos-sdk/pull/18162) Start gRPC & API server in standalone mode.
|
||||
* (baseapp & types) [#17712](https://github.com/cosmos/cosmos-sdk/pull/17712) Introduce `PreBlock`, which runs before begin blocker other modules, and allows to modify consensus parameters, and the changes are visible to the following state machine logics. Additionally it can be used for vote extensions.
|
||||
* (genutil) [#17571](https://github.com/cosmos/cosmos-sdk/pull/17571) Allow creation of `AppGenesis` without a file lookup.
|
||||
* (codec) [#17042](https://github.com/cosmos/cosmos-sdk/pull/17042) Add `CollValueV2` which supports encoding of protov2 messages in collections.
|
||||
* (x/gov) [#16976](https://github.com/cosmos/cosmos-sdk/pull/16976) Add `failed_reason` field to `Proposal` under `x/gov` to indicate the reason for a failed proposal. Referenced from [#238](https://github.com/bnb-chain/greenfield-cosmos-sdk/pull/238) under `bnb-chain/greenfield-cosmos-sdk`.
|
||||
* (baseapp) [#16898](https://github.com/cosmos/cosmos-sdk/pull/16898) Add `preFinalizeBlockHook` to allow vote extensions persistence.
|
||||
* (cli) [#16887](https://github.com/cosmos/cosmos-sdk/pull/16887) Add two new CLI commands: `<appd> tx simulate` for simulating a transaction; `<appd> query block-results` for querying CometBFT RPC for block results.
|
||||
* (x/bank) [#16852](https://github.com/cosmos/cosmos-sdk/pull/16852) Add `DenomMetadataByQueryString` query in bank module to support metadata query by query string.
|
||||
* (baseapp) [#16581](https://github.com/cosmos/cosmos-sdk/pull/16581) Implement Optimistic Execution as an experimental feature (not enabled by default).
|
||||
* (types) [#16257](https://github.com/cosmos/cosmos-sdk/pull/16257) Allow setting the base denom in the denom registry.
|
||||
* (baseapp) [#16239](https://github.com/cosmos/cosmos-sdk/pull/16239) Add Gas Limits to allow node operators to resource bound queries.
|
||||
* (cli) [#16209](https://github.com/cosmos/cosmos-sdk/pull/16209) Make `StartCmd` more customizable.
|
||||
* (types/simulation) [#16074](https://github.com/cosmos/cosmos-sdk/pull/16074) Add generic SimulationStoreDecoder for modules using collections.
|
||||
* (genutil) [#16046](https://github.com/cosmos/cosmos-sdk/pull/16046) Add "module-name" flag to genutil `add-genesis-account` to enable intializing module accounts at genesis.* [#15970](https://github.com/cosmos/cosmos-sdk/pull/15970) Enable SIGN_MODE_TEXTUAL.
|
||||
* (types) [#15958](https://github.com/cosmos/cosmos-sdk/pull/15958) Add `module.NewBasicManagerFromManager` for creating a basic module manager from a module manager.
|
||||
* (types/module) [#15829](https://github.com/cosmos/cosmos-sdk/pull/15829) Add new endblocker interface to handle valset updates.
|
||||
* (runtime) [#15818](https://github.com/cosmos/cosmos-sdk/pull/15818) Provide logger through `depinject` instead of appBuilder.
|
||||
* (types) [#15735](https://github.com/cosmos/cosmos-sdk/pull/15735) Make `ValidateBasic() error` method of `Msg` interface optional. Modules should validate messages directly in their message handlers ([RFC 001](https://docs.cosmos.network/main/rfc/rfc-001-tx-validation)).
|
||||
* (x/genutil) [#15679](https://github.com/cosmos/cosmos-sdk/pull/15679) Allow applications to specify a custom genesis migration function for the `genesis migrate` command.
|
||||
* (telemetry) [#15657](https://github.com/cosmos/cosmos-sdk/pull/15657) Emit more data (go version, sdk version, upgrade height) in prom metrics.
|
||||
* (client) [#15597](https://github.com/cosmos/cosmos-sdk/pull/15597) Add status endpoint for clients.
|
||||
* (testutil/integration) [#15556](https://github.com/cosmos/cosmos-sdk/pull/15556) Introduce `testutil/integration` package for module integration testing.
|
||||
* (runtime) [#15547](https://github.com/cosmos/cosmos-sdk/pull/15547) Allow runtime to pass event core api service to modules.
|
||||
* (client) [#15458](https://github.com/cosmos/cosmos-sdk/pull/15458) Add a `CmdContext` field to client.Context initialized to cobra command's context.
|
||||
* (x/genutil) [#15301](https://github.com/cosmos/cosmos-sdk/pull/15031) Add application genesis. The genesis is now entirely managed by the application and passed to CometBFT at note instantiation. Functions that were taking a `cmttypes.GenesisDoc{}` now takes a `genutiltypes.AppGenesis{}`.
|
||||
* (core) [#15133](https://github.com/cosmos/cosmos-sdk/pull/15133) Implement RegisterServices in the module manager.
|
||||
* (x/bank) [#14894](https://github.com/cosmos/cosmos-sdk/pull/14894) Return a human readable denomination for IBC vouchers when querying bank balances. Added a `ResolveDenom` parameter to `types.QueryAllBalancesRequest` and `--resolve-denom` flag to `GetBalancesCmd()`.
|
||||
* (core) [#14860](https://github.com/cosmos/cosmos-sdk/pull/14860) Add `Precommit` and `PrepareCheckState` AppModule callbacks.
|
||||
* (x/gov) [#14720](https://github.com/cosmos/cosmos-sdk/pull/14720) Upstream expedited proposals from Osmosis.
|
||||
* (cli) [#14659](https://github.com/cosmos/cosmos-sdk/pull/14659) Added ability to query blocks by events with queries directly passed to Tendermint, which will allow for full query operator support, e.g. `>`.
|
||||
* (x/auth) [#14650](https://github.com/cosmos/cosmos-sdk/pull/14650) Add Textual SignModeHandler. Enable `SIGN_MODE_TEXTUAL` by following the [UPGRADING.md](./UPGRADING.md) instructions.
|
||||
* (x/crisis) [#14588](https://github.com/cosmos/cosmos-sdk/pull/14588) Use CacheContext() in AssertInvariants().
|
||||
* (mempool) [#14484](https://github.com/cosmos/cosmos-sdk/pull/14484) Add priority nonce mempool option for transaction replacement.
|
||||
* (query) [#14468](https://github.com/cosmos/cosmos-sdk/pull/14468) Implement pagination for collections.
|
||||
* (x/gov) [#14373](https://github.com/cosmos/cosmos-sdk/pull/14373) Add new proto field `constitution` of type `string` to gov module genesis state, which allows chain builders to lay a strong foundation by specifying purpose.
|
||||
* (client) [#14342](https://github.com/cosmos/cosmos-sdk/pull/14342) Add `<app> config` command is now a sub-command, for setting, getting and migrating Cosmos SDK configuration files.
|
||||
* (x/distribution) [#14322](https://github.com/cosmos/cosmos-sdk/pull/14322) Introduce a new gRPC message handler, `DepositValidatorRewardsPool`, that allows explicit funding of a validator's reward pool.
|
||||
* (x/bank) [#14224](https://github.com/cosmos/cosmos-sdk/pull/14224) Allow injection of restrictions on transfers using `AppendSendRestriction` or `PrependSendRestriction`.
|
||||
|
||||
### Improvements
|
||||
|
||||
* (x/gov) [#18189](https://github.com/cosmos/cosmos-sdk/pull/18189) Limit the accepted deposit coins for a proposal to the minimum proposal deposit denoms.
|
||||
* (x/staking) [#18049](https://github.com/cosmos/cosmos-sdk/pull/18049) Return early if Slash encounters zero tokens to burn.
|
||||
* (x/staking) [#18035](https://github.com/cosmos/cosmos-sdk/pull/18035) Hoisted out of the redelegation loop, the non-changing validator and delegator addresses parsing.
|
||||
* (keyring) [#17913](https://github.com/cosmos/cosmos-sdk/pull/17913) Add `NewAutoCLIKeyring` for creating an AutoCLI keyring from a SDK keyring.
|
||||
* (x/consensus) [#18041](https://github.com/cosmos/cosmos-sdk/pull/18041) Let `ToProtoConsensusParams()` return an error.
|
||||
* (x/gov) [#17780](https://github.com/cosmos/cosmos-sdk/pull/17780) Recover panics and turn them into errors when executing x/gov proposals.
|
||||
* (baseapp) [#17667](https://github.com/cosmos/cosmos-sdk/pull/17667) Close databases opened by SDK in `baseApp.Close()`.
|
||||
* (types/module) [#17554](https://github.com/cosmos/cosmos-sdk/pull/17554) Introduce `HasABCIGenesis` which is implemented by a module only when a validatorset update needs to be returned.
|
||||
* (cli) [#17389](https://github.com/cosmos/cosmos-sdk/pull/17389) gRPC CometBFT commands have been added under `<aapd> q consensus comet`. CometBFT commands placement in the SDK has been simplified. See the exhaustive list below.
|
||||
* `client/rpc.StatusCommand()` is now at `server.StatusCommand()`
|
||||
* (testutil) [#17216](https://github.com/cosmos/cosmos-sdk/issues/17216) Add `DefaultContextWithKeys` to `testutil` package.
|
||||
* (cli) [#17187](https://github.com/cosmos/cosmos-sdk/pull/17187) Do not use `ctx.PrintObjectLegacy` in commands anymore.
|
||||
* `<appd> q gov proposer [proposal-id]` now returns a proposal id as int instead of string.
|
||||
* (x/staking) [#17164](https://github.com/cosmos/cosmos-sdk/pull/17164) Add `BondedTokensAndPubKeyByConsAddr` to the keeper to enable vote extension verification.
|
||||
* (x/group, x/gov) [#17109](https://github.com/cosmos/cosmos-sdk/pull/17109) Let proposal summary be 40x longer than metadata limit.
|
||||
* (version) [#17096](https://github.com/cosmos/cosmos-sdk/pull/17096) Improve `getSDKVersion()` to handle module replacements.
|
||||
* (types) [#16890](https://github.com/cosmos/cosmos-sdk/pull/16890) Remove `GetTxCmd() *cobra.Command` and `GetQueryCmd() *cobra.Command` from `module.AppModuleBasic` interface.
|
||||
* (x/authz) [#16869](https://github.com/cosmos/cosmos-sdk/pull/16869) Improve error message when grant not found.
|
||||
* (all) [#16497](https://github.com/cosmos/cosmos-sdk/pull/16497) Removed all exported vestiges of `sdk.MustSortJSON` and `sdk.SortJSON`.
|
||||
* (server) [#16238](https://github.com/cosmos/cosmos-sdk/pull/16238) Don't setup p2p node keys if starting a node in GRPC only mode.
|
||||
* (cli) [#16206](https://github.com/cosmos/cosmos-sdk/pull/16206) Make ABCI handshake profileable.
|
||||
* (types) [#16076](https://github.com/cosmos/cosmos-sdk/pull/16076) Optimize `ChainAnteDecorators`/`ChainPostDecorators` to instantiate the functions once instead of on every invocation of the returned `AnteHandler`/`PostHandler`.
|
||||
* (server) [#16071](https://github.com/cosmos/cosmos-sdk/pull/16071) When `mempool.max-txs` is set to a negative value, use a no-op mempool (effectively disable the app mempool).
|
||||
* (types/query) [#16041](https://github.com/cosmos/cosmos-sdk/pull/16041) Change pagination max limit to a variable in order to be modifed by application devs.
|
||||
* (simapp) [#15958](https://github.com/cosmos/cosmos-sdk/pull/15958) Refactor SimApp for removing the global basic manager.
|
||||
* (all modules) [#15901](https://github.com/cosmos/cosmos-sdk/issues/15901) All core Cosmos SDK modules query commands have migrated to [AutoCLI](https://docs.cosmos.network/main/core/autocli), ensuring parity between gRPC and CLI queries.
|
||||
* (x/auth) [#15867](https://github.com/cosmos/cosmos-sdk/pull/15867) Support better logging for signature verification failure.
|
||||
* (store/cachekv) [#15767](https://github.com/cosmos/cosmos-sdk/pull/15767) Reduce peak RAM usage during and after `InitGenesis`.
|
||||
* (x/bank) [#15764](https://github.com/cosmos/cosmos-sdk/pull/15764) Speedup x/bank `InitGenesis`.
|
||||
* (x/slashing) [#15580](https://github.com/cosmos/cosmos-sdk/pull/15580) Refactor the validator's missed block signing window to be a chunked bitmap instead of a "logical" bitmap, significantly reducing the storage footprint.
|
||||
* (x/gov) [#15554](https://github.com/cosmos/cosmos-sdk/pull/15554) Add proposal result log in `active_proposal` event. When a proposal passes but fails to execute, the proposal result is logged in the `active_proposal` event.
|
||||
* (x/consensus) [#15553](https://github.com/cosmos/cosmos-sdk/pull/15553) Migrate consensus module to use collections.
|
||||
* (server) [#15358](https://github.com/cosmos/cosmos-sdk/pull/15358) Add `server.InterceptConfigsAndCreateContext` as alternative to `server.InterceptConfigsPreRunHandler` which does not set the server context and the default SDK logger.
|
||||
* (mempool) [#15328](https://github.com/cosmos/cosmos-sdk/pull/15328) Improve the `PriorityNonceMempool`:
|
||||
* Support generic transaction prioritization, instead of `ctx.Priority()`
|
||||
* Improve construction through the use of a single `PriorityNonceMempoolConfig` instead of option functions
|
||||
* (x/authz) [#15164](https://github.com/cosmos/cosmos-sdk/pull/15164) Add `MsgCancelUnbondingDelegation` to staking authorization.
|
||||
* (server) [#15041](https://github.com/cosmos/cosmos-sdk/pull/15041) Remove unnecessary sleeps from gRPC and API server initiation. The servers will start and accept requests as soon as they're ready.
|
||||
* (baseapp) [#15023](https://github.com/cosmos/cosmos-sdk/pull/15023) & [#15213](https://github.com/cosmos/cosmos-sdk/pull/15213) Add `MessageRouter` interface to baseapp and pass it to authz, gov and groups instead of concrete type.
|
||||
* [#15011](https://github.com/cosmos/cosmos-sdk/pull/15011) Introduce `cosmossdk.io/log` package to provide a consistent logging interface through the SDK. CometBFT logger is now replaced by `cosmossdk.io/log.Logger`.
|
||||
* (x/staking) [#14864](https://github.com/cosmos/cosmos-sdk/pull/14864) `<appd> tx staking create-validator` CLI command now takes a json file as an arg instead of using required flags.
|
||||
* (x/auth) [#14758](https://github.com/cosmos/cosmos-sdk/pull/14758) Allow transaction event queries to directly passed to Tendermint, which will allow for full query operator support, e.g. `>`.
|
||||
* (x/evidence) [#14757](https://github.com/cosmos/cosmos-sdk/pull/14757) Evidence messages do not need to implement a `.Type()` anymore.
|
||||
* (x/auth/tx) [#14751](https://github.com/cosmos/cosmos-sdk/pull/14751) Remove `.Type()` and `Route()` methods from all msgs and `legacytx.LegacyMsg` interface.
|
||||
* (cli) [#14659](https://github.com/cosmos/cosmos-sdk/pull/14659) Added ability to query blocks by either height/hash `<app> q block --type=height|hash <height|hash>`.
|
||||
* (x/staking) [#14590](https://github.com/cosmos/cosmos-sdk/pull/14590) Return undelegate amount in MsgUndelegateResponse.
|
||||
* [#14529](https://github.com/cosmos/cosmos-sdk/pull/14529) Add new property `BondDenom` to `SimulationState` struct.
|
||||
* (store) [#14439](https://github.com/cosmos/cosmos-sdk/pull/14439) Remove global metric gatherer from store.
|
||||
* By default store has a no op metric gatherer, the application developer must set another metric gatherer or us the provided one in `store/metrics`.
|
||||
* (store) [#14438](https://github.com/cosmos/cosmos-sdk/pull/14438) Pass logger from baseapp to store.
|
||||
* (baseapp) [#14417](https://github.com/cosmos/cosmos-sdk/pull/14417) The store package no longer has a dependency on baseapp.
|
||||
* (module) [#14415](https://github.com/cosmos/cosmos-sdk/pull/14415) Loosen assertions in SetOrderBeginBlockers() and SetOrderEndBlockers().
|
||||
* (store) [#14410](https://github.com/cosmos/cosmos-sdk/pull/14410) `rootmulti.Store.loadVersion` has validation to check if all the module stores' height is correct, it will error if any module store has incorrect height.
|
||||
* [#14406](https://github.com/cosmos/cosmos-sdk/issues/14406) Migrate usage of `types/store.go` to `store/types/..`.
|
||||
* (context)[#14384](https://github.com/cosmos/cosmos-sdk/pull/14384) Refactor(context): Pass EventManager to the context as an interface.
|
||||
* (types) [#14354](https://github.com/cosmos/cosmos-sdk/pull/14354) Improve performance on Context.KVStore and Context.TransientStore by 40%.
|
||||
* (crypto/keyring) [#14151](https://github.com/cosmos/cosmos-sdk/pull/14151) Move keys presentation from `crypto/keyring` to `client/keys`
|
||||
* (signing) [#14087](https://github.com/cosmos/cosmos-sdk/pull/14087) Add SignModeHandlerWithContext interface with a new `GetSignBytesWithContext` to get the sign bytes using `context.Context` as an argument to access state.
|
||||
* (server) [#14062](https://github.com/cosmos/cosmos-sdk/pull/14062) Remove rosetta from server start.
|
||||
* (crypto) [#3129](https://github.com/cosmos/cosmos-sdk/pull/3129) New armor and keyring key derivation uses aead and encryption uses chacha20poly.
|
||||
|
||||
### State Machine Breaking
|
||||
|
||||
* (x/gov) [#18146](https://github.com/cosmos/cosmos-sdk/pull/18146) Add denom check to reject denoms outside of those listed in `MinDeposit`. A new `MinDepositRatio` param is added (with a default value of `0.001`) and now deposits are required to be at least `MinDepositRatio*MinDeposit` to be accepted.
|
||||
* (x/group,x/gov) [#16235](https://github.com/cosmos/cosmos-sdk/pull/16235) A group and gov proposal is rejected if the proposal metadata title and summary do not match the proposal title and summary.
|
||||
* (baseapp) [#15930](https://github.com/cosmos/cosmos-sdk/pull/15930) change vote info provided by prepare and process proposal to the one in the block.
|
||||
* (x/staking) [#15731](https://github.com/cosmos/cosmos-sdk/pull/15731) Introducing a new index to retrieve the delegations by validator efficiently.
|
||||
* (x/staking) [#15701](https://github.com/cosmos/cosmos-sdk/pull/15701) The `HistoricalInfoKey` has been updated to use a binary format.
|
||||
* (x/slashing) [#15580](https://github.com/cosmos/cosmos-sdk/pull/15580) The validator slashing window now stores "chunked" bitmap entries for each validator's signing window instead of a single boolean entry per signing window index.
|
||||
* (x/staking) [#14590](https://github.com/cosmos/cosmos-sdk/pull/14590) `MsgUndelegateResponse` now includes undelegated amount. `x/staking` module's `keeper.Undelegate` now returns 3 values (completionTime,undelegateAmount,error) instead of 2.
|
||||
* (x/feegrant) [#14294](https://github.com/cosmos/cosmos-sdk/pull/14294) Moved the logic of rejecting duplicate grant from `msg_server` to `keeper` method.
|
||||
|
||||
### API Breaking Changes
|
||||
|
||||
* (baseapp) [#16244](https://github.com/cosmos/cosmos-sdk/pull/16244) `SetProtocolVersion` has been renamed to `SetAppVersion`. It now updates the consensus params in baseapp's `ParamStore`.
|
||||
* (types) [#16918](https://github.com/cosmos/cosmos-sdk/pull/16918), [#22925](https://github.com/cosmos/cosmos-sdk/pull/22925) Deprecate `IntProto` and `DecProto`. Instead, `math.Int` and `math.LegacyDec` should be used respectively. Both types support `Marshal` and `Unmarshal` which should be used for binary marshaling.
|
||||
* (client) [#17215](https://github.com/cosmos/cosmos-sdk/pull/17215) `server.StartCmd`,`server.ExportCmd`,`server.NewRollbackCmd`,`pruning.Cmd`,`genutilcli.InitCmd`,`genutilcli.GenTxCmd`,`genutilcli.CollectGenTxsCmd`,`genutilcli.AddGenesisAccountCmd`, do not take a home directory anymore. It is inferred from the root command.
|
||||
* (client) [#17259](https://github.com/cosmos/cosmos-sdk/pull/17259) Remove deprecated `clientCtx.PrintObjectLegacy`. Use `clientCtx.PrintProto` or `clientCtx.PrintRaw` instead.
|
||||
* (types) [#17348](https://github.com/cosmos/cosmos-sdk/pull/17348) Remove the `WrapServiceResult` function.
|
||||
* The `*sdk.Result` returned by the msg server router will not contain the `.Data` field.
|
||||
* (types) [#17426](https://github.com/cosmos/cosmos-sdk/pull/17426) `NewContext` does not take a `cmtproto.Header{}` any longer.
|
||||
* `WithChainID` / `WithBlockHeight` / `WithBlockHeader` must be used to set values on the context
|
||||
* (client/keys) [#17503](https://github.com/cosmos/cosmos-sdk/pull/17503) `clientkeys.NewKeyOutput`, `MkConsKeyOutput`, `MkValKeyOutput`, `MkAccKeyOutput`, `MkAccKeysOutput` now take their corresponding address codec instead of using the global SDK config.
|
||||
* (types/simulation) [#17737](https://github.com/cosmos/cosmos-sdk/pull/17737) Remove unused parameter from `RandomFees`
|
||||
* (types) [#17738](https://github.com/cosmos/cosmos-sdk/pull/17738) `WithBlockTime()` was removed & `BlockTime()` were deprecated in favor of `WithHeaderInfo()` & `HeaderInfo()`. `BlockTime` now gets data from `HeaderInfo()` instead of `BlockHeader()`.
|
||||
* (client) [#17746](https://github.com/cosmos/cosmos-sdk/pull/17746) `txEncodeAmino` & `txDecodeAmino` txs via grpc and rest were removed
|
||||
* (app) [#17838](https://github.com/cosmos/cosmos-sdk/pull/17838) Params module was removed from simapp and all imports of the params module removed throughout the repo.
|
||||
* The Cosmos SDK has migrated away from using params, if your app still uses it, then you can leave it plugged into your app
|
||||
* (x/bank/testutil) [#17868](https://github.com/cosmos/cosmos-sdk/pull/17868) `MsgSendExec` has been removed because of AutoCLI migration.
|
||||
* (types) [#17885](https://github.com/cosmos/cosmos-sdk/pull/17885) `InitGenesis` & `ExportGenesis` now take `context.Context` instead of `sdk.Context`
|
||||
* (x/gov/testutil) [#17986](https://github.com/cosmos/cosmos-sdk/pull/18036) `MsgDeposit` has been removed because of AutoCLI migration.
|
||||
* (x/staking/testutil) [#17986](https://github.com/cosmos/cosmos-sdk/pull/17986) `MsgRedelegateExec`, `MsgUnbondExec` has been removed because of AutoCLI migration.
|
||||
* (x/group) [#17937](https://github.com/cosmos/cosmos-sdk/pull/17937) Groups module was moved to its own go.mod `cosmossdk.io/x/group`
|
||||
* (x/gov) [#18197](https://github.com/cosmos/cosmos-sdk/pull/18197) Gov module was moved to its own go.mod `cosmossdk.io/x/gov`
|
||||
* (x/distribution) [#18199](https://github.com/cosmos/cosmos-sdk/pull/18199) Distribution module was moved to its own go.mod `cosmossdk.io/x/distribution`
|
||||
* (x/slashing) [#18201](https://github.com/cosmos/cosmos-sdk/pull/18201) Slashing module was moved to its own go.mod `cosmossdk.io/x/slashing`
|
||||
* (x/staking) [#18257](https://github.com/cosmos/cosmos-sdk/pull/18257) Staking module was moved to its own go.mod `cosmossdk.io/x/staking`
|
||||
* (types) [#18268](https://github.com/cosmos/cosmos-sdk/pull/18268) Remove global setting of basedenom. Use the staking module parameter instead
|
||||
* (x/authz) [#18265](https://github.com/cosmos/cosmos-sdk/pull/18265) Authz module was moved to its own go.mod `cosmossdk.io/x/authz`
|
||||
* (x/mint) [#18283](https://github.com/cosmos/cosmos-sdk/pull/18283) Mint module was moved to its own go.mod `cosmossdk.io/x/mint`
|
||||
* (server) [#18303](https://github.com/cosmos/cosmos-sdk/pull/18303) `x/genutil` now handles the application export. `server.AddCommands` does not take an `AppExporter` but instead `genutilcli.Commands` does.
|
||||
* (types) [#18372](https://github.com/cosmos/cosmos-sdk/pull/18372) Removed global configuration for coin type and purpose. Setters and getters should be removed and access directly to defined types.
|
||||
* (types) [#18607](https://github.com/cosmos/cosmos-sdk/pull/18607) Removed address verifier from global config, moved verifier function to bech32 codec.
|
||||
* (types) [#18695](https://github.com/cosmos/cosmos-sdk/pull/18695) Removed global configuration for txEncoder.
|
||||
* (server) [#18909](https://github.com/cosmos/cosmos-sdk/pull/18909) Remove configuration endpoint on grpc reflection endpoint in favour of auth module bech32prefix endpoint already exposed.
|
||||
* (crypto) [#19541](https://github.com/cosmos/cosmos-sdk/pull/19541) The deprecated `FromTmProtoPublicKey`, `ToTmProtoPublicKey`, `FromTmPubKeyInterface` and `ToTmPubKeyInterface` functions have been removed. Use their replacements (`Cmt` instead of `Tm`) instead.
|
||||
* (types) [#19512](https://github.com/cosmos/cosmos-sdk/pull/19512) Remove basic manager and all related functions (`module.BasicManager`, `module.NewBasicManager`, `module.NewBasicManagerFromManager`, `NewGenesisOnlyAppModule`).
|
||||
* The module manager now can do everything that the basic manager was doing.
|
||||
* When using runtime, just inject the module manager when needed using your app config.
|
||||
* All `AppModuleBasic` structs have been removed.
|
||||
* (types) [#19627](https://github.com/cosmos/cosmos-sdk/pull/19627) and [#19735](https://github.com/cosmos/cosmos-sdk/pull/19735) All genesis interfaces now don't take `codec.JsonCodec`:
|
||||
* Every module has the codec already, passing it created an unneeded dependency.
|
||||
* Additionally, to reflect this change, the module manager does not take a codec either.
|
||||
* (types) [#19652](https://github.com/cosmos/cosmos-sdk/pull/19652) and [#19758](https://github.com/cosmos/cosmos-sdk/pull/19758)
|
||||
* Moved`types/module.HasRegisterInterfaces` to `cosmossdk.io/core`.
|
||||
* Moved `RegisterInterfaces` and `RegisterImplementations` from `InterfaceRegistry` to `cosmossdk.io/core/registry.InterfaceRegistrar` interface.
|
||||
* (types) [#19742](https://github.com/cosmos/cosmos-sdk/pull/19742) Removes the use of `Accounts.String`
|
||||
* `SimulationState` now has address and validator codecs as fields.
|
||||
* (runtime) [#19747](https://github.com/cosmos/cosmos-sdk/pull/19747) `runtime.ValidatorAddressCodec` and `runtime.ConsensusAddressCodec` have been moved to `core`.
|
||||
* (all) [#19726](https://github.com/cosmos/cosmos-sdk/pull/19726) Integrate comet v1
|
||||
* [#19833](https://github.com/cosmos/cosmos-sdk/pull/19833) Fix some places in which we call Remove inside a Walk.
|
||||
* [#19839](https://github.com/cosmos/cosmos-sdk/pull/19839) `Tx.GetMsgsV2` has been replaced with `Tx.GetReflectMessages`, and `Codec.GetMsgV1Signers` and `Codec.GetMsgV2Signers` have been replaced with `GetMsgSigners` and `GetReflectMsgSigners` respectively. These API changes clear up confusion as to the use and purpose of these methods.
|
||||
* [#19851](https://github.com/cosmos/cosmos-sdk/pull/19851) Fix some places in which we call Remove inside a Walk (x/staking and x/gov).
|
||||
* (server) [#19854](https://github.com/cosmos/cosmos-sdk/pull/19854) Remove `servertypes.ModuleInitFlags` types and from `server.AddCommands` as `StartCmdOptions` already achieves the same goal.
|
||||
* (x/genutil) [#19926](https://github.com/cosmos/cosmos-sdk/pull/19926) Removal of the `Address.String()` method and related changes:
|
||||
* Added an address codec as an argument to `CollectTxs`, `GenAppStateFromConfig`, and `AddGenesisAccount`.
|
||||
* Removed the `ValidatorAddressCodec` argument from `CollectGenTxsCmd`, now utilizing the context for this purpose.
|
||||
* Changed `ValidateAccountInGenesis` to accept a string instead of an `AccAddress`.
|
||||
* (baseapp) [#19993](https://github.com/cosmos/cosmos-sdk/pull/19993) Indicate pruning with error code "not found" rather than "invalid request".
|
||||
* (x/consensus) [#20010](https://github.com/cosmos/cosmos-sdk/pull/20010) Move consensus module to be its own go.mod
|
||||
* (x/crisis) [#20043](https://github.com/cosmos/cosmos-sdk/pull/20043) Changed `NewMsgVerifyInvariant` to accept a string as argument instead of an `AccAddress`.
|
||||
* (x/simulation)[#20056](https://github.com/cosmos/cosmos-sdk/pull/20056) `SimulateFromSeed` now takes an address codec as argument.
|
||||
* (server) [#20140](https://github.com/cosmos/cosmos-sdk/pull/20140) Remove embedded grpc-web proxy in favor of standalone grpc-web proxy. [Envoy Proxy](https://www.envoyproxy.io/docs/envoy/latest/start/start)
|
||||
* (client) [#20255](https://github.com/cosmos/cosmos-sdk/pull/20255) Use comet proofOp proto type instead of sdk version to avoid needing to translate to later be proven in the merkle proof runtime.
|
||||
* (types)[#20369](https://github.com/cosmos/cosmos-sdk/pull/20369) The signature of `HasAminoCodec` has changed to accept a `core/legacy.Amino` interface instead of `codec.LegacyAmino`.
|
||||
* (server) [#20422](https://github.com/cosmos/cosmos-sdk/pull/20422) Deprecated `ServerContext`. To get `cmtcfg.Config` from cmd, use `client.GetCometConfigFromCmd(cmd)` instead of `server.GetServerContextFromCmd(cmd).Config`
|
||||
* (x/genutil) [#20740](https://github.com/cosmos/cosmos-sdk/pull/20740) Update `genutilcli.Commands` and `genutilcli.CommandsWithCustomMigrationMap` to take the genesis module and abstract the module manager.
|
||||
* (types/errors) [#20756](https://github.com/cosmos/cosmos-sdk/pull/20756) Remove `ResponseCheckTxWithEvents`, `ResponseExecTxResultWithEvents` & `QueryResult` from types/errors pkg. They have been moved to `baseapp/errors.go` and made private.
|
||||
* (client) [#20976](https://github.com/cosmos/cosmos-sdk/pull/20976) Simplified command initialization by removing unnecessary parameters such as `txConfig` and `addressCodec`.
|
||||
* Remove parameter `txConfig` from `genutilcli.Commands`,`genutilcli.CommandsWithCustomMigrationMap`,`genutilcli.GenTxCmd`.
|
||||
* Remove parameter `addressCodec` from `genutilcli.GenTxCmd`,`genutilcli.AddGenesisAccountCmd`,`stakingcli.BuildCreateValidatorMsg`.
|
||||
* (sims) [#21039](https://github.com/cosmos/cosmos-sdk/pull/21039): Remove Baseapp from sims by a new interface `simtypes.AppEntrypoint`.
|
||||
* (x/genutil) [#21372](https://github.com/cosmos/cosmos-sdk/pull/21372) Remove `AddGenesisAccount` for `AddGenesisAccounts`.
|
||||
* (baseapp) [#21413](https://github.com/cosmos/cosmos-sdk/pull/21413) Add `SelectBy` method to `Mempool` interface, which is thread-safe to use.
|
||||
* (types/mempool) [#21744](https://github.com/cosmos/cosmos-sdk/pull/21744) Update types/mempool.Mempool interface to take decoded transactions. This avoid to decode the transaction twice.
|
||||
* (x/auth/tx/config) [#21822](https://github.com/cosmos/cosmos-sdk/pull/21822) Sign mode textual is no more automatically added to tx config when using runtime. Should be added manually on the server side.
|
||||
* (x/auth/tx/config) [#21822](https://github.com/cosmos/cosmos-sdk/pull/21822) This depinject module now only provide txconfig and tx config options. `x/validate` now handles the providing of ante/post handlers, alongside tx validators for v2. The corresponding app config options have been removed from the depinject module config.
|
||||
* (x/crisis) [#20809](https://github.com/cosmos/cosmos-sdk/pull/20809) Crisis module was removed from the Cosmos SDK.
|
||||
* (client) [#22775](https://github.com/cosmos/cosmos-sdk/pull/22775) Removed client prompt validations.
|
||||
* (x/auth) [#17787](https://github.com/cosmos/cosmos-sdk/pull/17787) Remove Tip functionality.
|
||||
* (types) `module.EndBlockAppModule` has been replaced by Core API `appmodule.HasEndBlocker` or `module.HasABCIEndBlock` when needing validator updates.
|
||||
* (types) `module.BeginBlockAppModule` has been replaced by Core API `appmodule.HasBeginBlocker`.
|
||||
* (types) [#17358](https://github.com/cosmos/cosmos-sdk/pull/17358) Remove deprecated `sdk.Handler`, use `baseapp.MsgServiceHandler` instead.
|
||||
* (client) [#17197](https://github.com/cosmos/cosmos-sdk/pull/17197) `keys.Commands` does not take a home directory anymore. It is inferred from the root command.
|
||||
* (x/staking) [#17157](https://github.com/cosmos/cosmos-sdk/pull/17157) `GetValidatorsByPowerIndexKey` and `ValidateBasic` for historical info takes a validator address codec in order to be able to decode/encode addresses.
|
||||
* `GetOperator()` now returns the address as it is represented in state, by default this is an encoded address
|
||||
* `GetConsAddr() ([]byte, error)` returns `[]byte` instead of sdk.ConsAddres.
|
||||
* `FromABCIEvidence` & `GetConsensusAddress(consAc address.Codec)` now take a consensus address codec to be able to decode the incoming address.
|
||||
* (x/distribution) `Delegate` & `SlashValidator` helper function added the mock staking keeper as a parameter passed to the function
|
||||
* (x/staking) [#17098](https://github.com/cosmos/cosmos-sdk/pull/17098) `NewMsgCreateValidator`, `NewValidator`, `NewMsgCancelUnbondingDelegation`, `NewMsgUndelegate`, `NewMsgBeginRedelegate`, `NewMsgDelegate` and `NewMsgEditValidator` takes a string instead of `sdk.ValAddress` or `sdk.AccAddress`:
|
||||
* `NewRedelegation` and `NewUnbondingDelegation` takes a validatorAddressCodec and a delegatorAddressCodec in order to decode the addresses.
|
||||
* `NewRedelegationResponse` takes a string instead of `sdk.ValAddress` or `sdk.AccAddress`.
|
||||
* `NewMsgCreateValidator.Validate()` takes an address codec in order to decode the address.
|
||||
* `BuildCreateValidatorMsg` takes a ValidatorAddressCodec in order to decode addresses.
|
||||
* (x/slashing) [#17098](https://github.com/cosmos/cosmos-sdk/pull/17098) `NewMsgUnjail` takes a string instead of `sdk.ValAddress`
|
||||
* (x/genutil) [#17098](https://github.com/cosmos/cosmos-sdk/pull/17098) `GenAppStateFromConfig`, AddGenesisAccountCmd and `GenTxCmd` takes an addresscodec to decode addresses.
|
||||
* (x/distribution) [#17098](https://github.com/cosmos/cosmos-sdk/pull/17098) `NewMsgDepositValidatorRewardsPool`, `NewMsgFundCommunityPool`, `NewMsgWithdrawValidatorCommission` and `NewMsgWithdrawDelegatorReward` takes a string instead of `sdk.ValAddress` or `sdk.AccAddress`.
|
||||
* (x/staking) [#16959](https://github.com/cosmos/cosmos-sdk/pull/16959) Add validator and consensus address codec as staking keeper arguments.
|
||||
* (x/staking) [#16958](https://github.com/cosmos/cosmos-sdk/pull/16958) DelegationI interface `GetDelegatorAddr` & `GetValidatorAddr` have been migrated to return string instead of sdk.AccAddress and sdk.ValAddress respectively. stakingtypes.NewDelegation takes a string instead of sdk.AccAddress and sdk.ValAddress.
|
||||
* (testutil) [#16899](https://github.com/cosmos/cosmos-sdk/pull/16899) The *cli testutil* `QueryBalancesExec` has been removed. Use the gRPC or REST query instead.
|
||||
* (x/staking) [#16795](https://github.com/cosmos/cosmos-sdk/pull/16795) `DelegationToDelegationResponse`, `DelegationsToDelegationResponses`, `RedelegationsToRedelegationResponses` are no longer exported.
|
||||
* (x/auth/vesting) [#16741](https://github.com/cosmos/cosmos-sdk/pull/16741) Vesting account constructor now return an error with the result of their validate function.
|
||||
* (x/auth) [#16650](https://github.com/cosmos/cosmos-sdk/pull/16650) The *cli testutil* `QueryAccountExec` has been removed. Use the gRPC or REST query instead.
|
||||
* (x/auth) [#16621](https://github.com/cosmos/cosmos-sdk/pull/16621) Pass address codec to auth new keeper constructor.
|
||||
* (x/auth) [#16423](https://github.com/cosmos/cosmos-sdk/pull/16423) `helpers.AddGenesisAccount` has been moved to `x/genutil` to remove the cyclic dependency between `x/auth` and `x/genutil`.
|
||||
* (baseapp) [#16342](https://github.com/cosmos/cosmos-sdk/pull/16342) NewContext was renamed to NewContextLegacy. The replacement (NewContext) now does not take a header, instead you should set the header via `WithHeaderInfo` or `WithBlockHeight`. Note that `WithBlockHeight` will soon be depreacted and its recommneded to use `WithHeaderInfo`.
|
||||
* (x/mint) [#16329](https://github.com/cosmos/cosmos-sdk/pull/16329) Use collections for state management:
|
||||
* Removed: keeper `GetParams`, `SetParams`, `GetMinter`, `SetMinter`.
|
||||
* (x/crisis) [#16328](https://github.com/cosmos/cosmos-sdk/pull/16328) Use collections for state management:
|
||||
* Removed: keeper `GetConstantFee`, `SetConstantFee`
|
||||
* (x/staking) [#16324](https://github.com/cosmos/cosmos-sdk/pull/16324) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context` and return an `error`. Notable changes:
|
||||
* `Validator` method now returns `types.ErrNoValidatorFound` instead of `nil` when not found.
|
||||
* (x/distribution) [#16302](https://github.com/cosmos/cosmos-sdk/pull/16302) Use collections for FeePool state management.
|
||||
* Removed: keeper `GetFeePool`, `SetFeePool`, `GetFeePoolCommunityCoins`
|
||||
* (types) [#16272](https://github.com/cosmos/cosmos-sdk/pull/16272) `FeeGranter` in the `FeeTx` interface returns `[]byte` instead of `string`.
|
||||
* (x/gov) [#16268](https://github.com/cosmos/cosmos-sdk/pull/16268) Use collections for proposal state management (part 2):
|
||||
* this finalizes the gov collections migration
|
||||
* Removed: types all the key related functions
|
||||
* Removed: keeper `InsertActiveProposalsQueue`, `RemoveActiveProposalsQueue`, `InsertInactiveProposalsQueue`, `RemoveInactiveProposalsQueue`, `IterateInactiveProposalsQueue`, `IterateActiveProposalsQueue`, `ActiveProposalsQueueIterator`, `InactiveProposalsQueueIterator`
|
||||
* (x/slashing) [#16246](https://github.com/cosmos/cosmos-sdk/issues/16246) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context` and return an `error`. `GetValidatorSigningInfo` now returns an error instead of a `found bool`, the error can be `nil` (found), `ErrNoSigningInfoFound` (not found) and any other error.
|
||||
* (module) [#16227](https://github.com/cosmos/cosmos-sdk/issues/16227) `manager.RunMigrations()` now take a `context.Context` instead of a `sdk.Context`.
|
||||
* (x/crisis) [#16216](https://github.com/cosmos/cosmos-sdk/issues/16216) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context` and return an `error` instead of panicking.
|
||||
* (x/distribution) [#16211](https://github.com/cosmos/cosmos-sdk/pull/16211) Use collections for params state management.
|
||||
* (cli) [#16209](https://github.com/cosmos/cosmos-sdk/pull/16209) Add API `StartCmdWithOptions` to create customized start command.
|
||||
* (x/mint) [#16179](https://github.com/cosmos/cosmos-sdk/issues/16179) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context` and return an `error`.
|
||||
* (x/gov) [#16171](https://github.com/cosmos/cosmos-sdk/pull/16171) Use collections for proposal state management (part 1):
|
||||
* Removed: keeper: `GetProposal`, `UnmarshalProposal`, `MarshalProposal`, `IterateProposal`, `GetProposal`, `GetProposalFiltered`, `GetProposals`, `GetProposalID`, `SetProposalID`
|
||||
* Removed: errors unused errors
|
||||
* (x/gov) [#16164](https://github.com/cosmos/cosmos-sdk/pull/16164) Use collections for vote state management:
|
||||
* Removed: types `VoteKey`, `VoteKeys`
|
||||
* Removed: keeper `IterateVotes`, `IterateAllVotes`, `GetVotes`, `GetVote`, `SetVote`
|
||||
* (sims) [#16155](https://github.com/cosmos/cosmos-sdk/pull/16155)
|
||||
* `simulation.NewOperationMsg` now marshals the operation msg as proto bytes instead of legacy amino JSON bytes.
|
||||
* `simulation.NewOperationMsg` is now 2-arity instead of 3-arity with the obsolete argument `codec.ProtoCodec` removed.
|
||||
* The field `OperationMsg.Msg` is now of type `[]byte` instead of `json.RawMessage`.
|
||||
* (x/gov) [#16127](https://github.com/cosmos/cosmos-sdk/pull/16127) Use collections for deposit state management:
|
||||
* The following methods are removed from the gov keeper: `GetDeposit`, `GetAllDeposits`, `IterateAllDeposits`.
|
||||
* The following functions are removed from the gov types: `DepositKey`, `DepositsKey`.
|
||||
* (x/gov) [#16118](https://github.com/cosmos/cosmos-sdk/pull/16118/) Use collections for constituion and params state management.
|
||||
* (x/gov) [#16106](https://github.com/cosmos/cosmos-sdk/pull/16106) Remove gRPC query methods from gov keeper.
|
||||
* (x/*all*) [#16052](https://github.com/cosmos/cosmos-sdk/pull/16062) `GetSignBytes` implementations on messages and global legacy amino codec definitions have been removed from all modules.
|
||||
* (sims) [#16052](https://github.com/cosmos/cosmos-sdk/pull/16062) `GetOrGenerate` no longer requires a codec argument is now 4-arity instead of 5-arity.
|
||||
* (types/math) [#16040](https://github.com/cosmos/cosmos-sdk/pull/16798) Remove aliases in `types/math.go` (part 2).
|
||||
* (types/math) [#16040](https://github.com/cosmos/cosmos-sdk/pull/16040) Remove aliases in `types/math.go` (part 1).
|
||||
* (x/auth) [#16016](https://github.com/cosmos/cosmos-sdk/pull/16016) Use collections for accounts state management:
|
||||
* removed: keeper `HasAccountByID`, `AccountAddressByID`, `SetParams
|
||||
* (x/genutil) [#15999](https://github.com/cosmos/cosmos-sdk/pull/15999) Genutil now takes the `GenesisTxHanlder` interface instead of deliverTx. The interface is implemented on baseapp
|
||||
* (x/gov) [#15988](https://github.com/cosmos/cosmos-sdk/issues/15988) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context` and return an `error` (instead of panicking or returning a `found bool`). Iterators callback functions now return an error instead of a `bool`.
|
||||
* (x/auth) [#15985](https://github.com/cosmos/cosmos-sdk/pull/15985) The `AccountKeeper` does not expose the `QueryServer` and `MsgServer` APIs anymore.
|
||||
* (x/authz) [#15962](https://github.com/cosmos/cosmos-sdk/issues/15962) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`, methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. The `Authorization` interface's `Accept` method now takes a `context.Context` instead of a `sdk.Context`.
|
||||
* (x/distribution) [#15948](https://github.com/cosmos/cosmos-sdk/issues/15948) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. Keeper methods also now return an `error`.
|
||||
* (x/bank) [#15891](https://github.com/cosmos/cosmos-sdk/issues/15891) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. Also `FundAccount` and `FundModuleAccount` from the `testutil` package accept a `context.Context` instead of a `sdk.Context`, and it's position was moved to the first place.
|
||||
* (x/slashing) [#15875](https://github.com/cosmos/cosmos-sdk/pull/15875) `x/slashing.NewAppModule` now requires an `InterfaceRegistry` parameter.
|
||||
* (x/crisis) [#15852](https://github.com/cosmos/cosmos-sdk/pull/15852) Crisis keeper now takes a instance of the address codec to be able to decode user addresses
|
||||
* (x/auth) [#15822](https://github.com/cosmos/cosmos-sdk/pull/15822) The type of struct field `ante.HandlerOptions.SignModeHandler` has been changed to `x/tx/signing.HandlerMap`.
|
||||
* (client) [#15822](https://github.com/cosmos/cosmos-sdk/pull/15822) The return type of the interface method `TxConfig.SignModeHandler` has been changed to `x/tx/signing.HandlerMap`.
|
||||
* The signature of `VerifySignature` has been changed to accept a `x/tx/signing.HandlerMap` and other structs from `x/tx` as arguments.
|
||||
* The signature of `NewTxConfigWithTextual` has been deprecated and its signature changed to accept a `SignModeOptions`.
|
||||
* The signature of `NewSigVerificationDecorator` has been changed to accept a `x/tx/signing.HandlerMap`.
|
||||
* (x/bank) [#15818](https://github.com/cosmos/cosmos-sdk/issues/15818) `BaseViewKeeper`'s `Logger` method now doesn't require a context. `NewBaseKeeper`, `NewBaseSendKeeper` and `NewBaseViewKeeper` now also require a `log.Logger` to be passed in.
|
||||
* (x/genutil) [#15679](https://github.com/cosmos/cosmos-sdk/pull/15679) `MigrateGenesisCmd` now takes a `MigrationMap` instead of having the SDK genesis migration hardcoded.
|
||||
* (client) [#15673](https://github.com/cosmos/cosmos-sdk/pull/15673) Move `client/keys.OutputFormatJSON` and `client/keys.OutputFormatText` to `client/flags` package.
|
||||
* (x/*all*) [#15648](https://github.com/cosmos/cosmos-sdk/issues/15648) Make `SetParams` consistent across all modules and validate the params at the message handling instead of `SetParams` method.
|
||||
* (codec) [#15600](https://github.com/cosmos/cosmos-sdk/pull/15600) [#15873](https://github.com/cosmos/cosmos-sdk/pull/15873) add support for getting signers to `codec.Codec` and `InterfaceRegistry`:
|
||||
* `InterfaceRegistry` is has unexported methods and implements `protodesc.Resolver` plus the `RangeFiles` and `SigningContext` methods. All implementations of `InterfaceRegistry` by other users must now embed the official implementation.
|
||||
* `Codec` has new methods `InterfaceRegistry`, `GetMsgAnySigners`, `GetMsgV1Signers`, and `GetMsgV2Signers` as well as unexported methods. All implementations of `Codec` by other users must now embed an official implementation from the `codec` package.
|
||||
* `AminoCodec` is marked as deprecated and no longer implements `Codec.
|
||||
* (client) [#15597](https://github.com/cosmos/cosmos-sdk/pull/15597) `RegisterNodeService` now requires a config parameter.
|
||||
* (x/nft) [#15588](https://github.com/cosmos/cosmos-sdk/pull/15588) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`.
|
||||
* (baseapp) [#15568](https://github.com/cosmos/cosmos-sdk/pull/15568) `SetIAVLLazyLoading` is removed from baseapp.
|
||||
* (x/genutil) [#15567](https://github.com/cosmos/cosmos-sdk/pull/15567) `CollectGenTxsCmd` & `GenTxCmd` takes a address.Codec to be able to decode addresses.
|
||||
* (x/bank) [#15567](https://github.com/cosmos/cosmos-sdk/pull/15567) `GenesisBalance.GetAddress` now returns a string instead of `sdk.AccAddress`
|
||||
* `MsgSendExec` test helper function now takes a address.Codec
|
||||
* (x/auth) [#15520](https://github.com/cosmos/cosmos-sdk/pull/15520) `NewAccountKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`.
|
||||
* (baseapp) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) `runTxMode`s were renamed to `execMode`. `ModeDeliver` as changed to `ModeFinalize` and a new `ModeVoteExtension` was added for vote extensions.
|
||||
* (baseapp) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) Writing of state to the multistore was moved to `FinalizeBlock`. `Commit` still handles the committing values to disk.
|
||||
* (baseapp) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) Calls to BeginBlock and EndBlock have been replaced with core api beginblock & endblock.
|
||||
* (baseapp) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) BeginBlock and EndBlock are now internal to baseapp. For testing, user must call `FinalizeBlock`. BeginBlock and EndBlock calls are internal to Baseapp.
|
||||
* (baseapp) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) All calls to ABCI methods now accept a pointer of the abci request and response types
|
||||
* (x/consensus) [#15517](https://github.com/cosmos/cosmos-sdk/pull/15517) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`.
|
||||
* (x/bank) [#15477](https://github.com/cosmos/cosmos-sdk/pull/15477) `banktypes.NewMsgMultiSend` and `keeper.InputOutputCoins` only accept one input.
|
||||
* (server) [#15358](https://github.com/cosmos/cosmos-sdk/pull/15358) Remove `server.ErrorCode` that was not used anywhere.
|
||||
* (x/capability) [#15344](https://github.com/cosmos/cosmos-sdk/pull/15344) Capability module was removed and is now housed in [IBC-GO](https://github.com/cosmos/ibc-go).
|
||||
* (mempool) [#15328](https://github.com/cosmos/cosmos-sdk/pull/15328) The `PriorityNonceMempool` is now generic over type `C comparable` and takes a single `PriorityNonceMempoolConfig[C]` argument. See `DefaultPriorityNonceMempoolConfig` for how to construct the configuration and a `TxPriority` type.
|
||||
* [#15299](https://github.com/cosmos/cosmos-sdk/pull/15299) Remove `StdTx` transaction and signing APIs. No SDK version has actually supported `StdTx` since before Stargate.
|
||||
* [#15284](https://github.com/cosmos/cosmos-sdk/pull/15284)
|
||||
* (x/gov) [#15284](https://github.com/cosmos/cosmos-sdk/pull/15284) `NewKeeper` now requires `codec.Codec`.
|
||||
* (x/authx) [#15284](https://github.com/cosmos/cosmos-sdk/pull/15284) `NewKeeper` now requires `codec.Codec`.
|
||||
* `types/tx.Tx` no longer implements `sdk.Tx`.
|
||||
* `sdk.Tx` now requires a new method `GetMsgsV2()`.
|
||||
* `sdk.Msg.GetSigners` was deprecated and is no longer supported. Use the `cosmos.msg.v1.signer` protobuf annotation instead.
|
||||
* `TxConfig` has a new method `SigningContext() *signing.Context`.
|
||||
* `SigVerifiableTx.GetSigners()` now returns `([][]byte, error)` instead of `[]sdk.AccAddress`.
|
||||
* `AccountKeeper` now has an `AddressCodec() address.Codec` method and the expected `AccountKeeper` for `x/auth/ante` expects this method.
|
||||
* [#15211](https://github.com/cosmos/cosmos-sdk/pull/15211) Remove usage of `github.com/cometbft/cometbft/libs/bytes.HexBytes` in favor of `[]byte` thorough the SDK.
|
||||
* (crypto) [#15070](https://github.com/cosmos/cosmos-sdk/pull/15070) `GenerateFromPassword` and `Cost` from `bcrypt.go` now take a `uint32` instead of a `int` type.
|
||||
* (types) [#15067](https://github.com/cosmos/cosmos-sdk/pull/15067) Remove deprecated alias from `types/errors`. Use `cosmossdk.io/errors` instead.
|
||||
* (server) [#15041](https://github.com/cosmos/cosmos-sdk/pull/15041) Refactor how gRPC and API servers are started to remove unnecessary sleeps:
|
||||
* `api.Server#Start` now accepts a `context.Context`. The caller is responsible for ensuring that the context is canceled such that the API server can gracefully exit. The caller does not need to stop the server.
|
||||
* To start the gRPC server you must first create the server via `NewGRPCServer`, after which you can start the gRPC server via `StartGRPCServer` which accepts a `context.Context`. The caller is responsible for ensuring that the context is canceled such that the gRPC server can gracefully exit. The caller does not need to stop the server.
|
||||
* Rename `WaitForQuitSignals` to `ListenForQuitSignals`. Note, this function is no longer blocking. Thus the caller is expected to provide a `context.CancelFunc` which indicates that when a signal is caught, that any spawned processes can gracefully exit.
|
||||
* Remove `ServerStartTime` constant.
|
||||
* [#15011](https://github.com/cosmos/cosmos-sdk/pull/15011) All functions that were taking a CometBFT logger, now take `cosmossdk.io/log.Logger` instead.
|
||||
* (simapp) [#14977](https://github.com/cosmos/cosmos-sdk/pull/14977) Move simulation helpers functions (`AppStateFn` and `AppStateRandomizedFn`) to `testutil/sims`. These takes an extra genesisState argument which is the default state of the app.
|
||||
* (x/bank) [#14894](https://github.com/cosmos/cosmos-sdk/pull/14894) Allow a human readable denomination for coins when querying bank balances. Added a `ResolveDenom` parameter to `types.QueryAllBalancesRequest`.
|
||||
* [#14847](https://github.com/cosmos/cosmos-sdk/pull/14847) App and ModuleManager methods `InitGenesis`, `ExportGenesis`, `BeginBlock` and `EndBlock` now also return an error.
|
||||
* (x/upgrade) [#14764](https://github.com/cosmos/cosmos-sdk/pull/14764) The `x/upgrade` module is extracted to have a separate go.mod file which allows it to be a standalone module.
|
||||
* (x/auth) [#14758](https://github.com/cosmos/cosmos-sdk/pull/14758) Refactor transaction searching:
|
||||
* Refactor `QueryTxsByEvents` to accept a `query` of type `string` instead of `events` of type `[]string`
|
||||
* Refactor CLI methods to accept `--query` flag instead of `--events`
|
||||
* Pass `prove=false` to Tendermint's `TxSearch` RPC method
|
||||
* (simulation) [#14751](https://github.com/cosmos/cosmos-sdk/pull/14751) Remove the `MsgType` field from `simulation.OperationInput` struct.
|
||||
* (store) [#14746](https://github.com/cosmos/cosmos-sdk/pull/14746) Extract Store in its own go.mod and rename the package to `cosmossdk.io/store`.
|
||||
* (x/nft) [#14725](https://github.com/cosmos/cosmos-sdk/pull/14725) Extract NFT in its own go.mod and rename the package to `cosmossdk.io/x/nft`.
|
||||
* (x/gov) [#14720](https://github.com/cosmos/cosmos-sdk/pull/14720) Add an expedited field in the gov v1 proposal and `MsgNewMsgProposal`.
|
||||
* (x/feegrant) [#14649](https://github.com/cosmos/cosmos-sdk/pull/14649) Extract Feegrant in its own go.mod and rename the package to `cosmossdk.io/x/feegrant`.
|
||||
* (tx) [#14634](https://github.com/cosmos/cosmos-sdk/pull/14634) Move the `tx` go module to `x/tx`.
|
||||
* (store/streaming)[#14603](https://github.com/cosmos/cosmos-sdk/pull/14603) `StoreDecoderRegistry` moved from store to `types/simulations` this breaks the `AppModuleSimulation` interface.
|
||||
* (snapshots) [#14597](https://github.com/cosmos/cosmos-sdk/pull/14597) Move `snapshots` to `store/snapshots`, rename and bump proto package to v1.
|
||||
* (x/staking) [#14590](https://github.com/cosmos/cosmos-sdk/pull/14590) `MsgUndelegateResponse` now includes undelegated amount. `x/staking` module's `keeper.Undelegate` now returns 3 values (completionTime,undelegateAmount,error) instead of 2.
|
||||
* (crypto/keyring) [#14151](https://github.com/cosmos/cosmos-sdk/pull/14151) Move keys presentation from `crypto/keyring` to `client/keys`
|
||||
* (baseapp) [#14050](https://github.com/cosmos/cosmos-sdk/pull/14050) Refactor `ABCIListener` interface to accept Go contexts.
|
||||
* (x/auth) [#13850](https://github.com/cosmos/cosmos-sdk/pull/13850/) Remove `MarshalYAML` methods from module (`x/...`) types.
|
||||
* (modules) [#13850](https://github.com/cosmos/cosmos-sdk/pull/13850) and [#14046](https://github.com/cosmos/cosmos-sdk/pull/14046) Remove gogoproto stringer annotations. This removes the custom `String()` methods on all types that were using the annotations.
|
||||
* (x/evidence) [14724](https://github.com/cosmos/cosmos-sdk/pull/14724) Extract Evidence in its own go.mod and rename the package to `cosmossdk.io/x/evidence`.
|
||||
* (crypto/keyring) [#13734](https://github.com/cosmos/cosmos-sdk/pull/13834) The keyring's `Sign` method now takes a new `signMode` argument. It is only used if the signing key is a Ledger hardware device. You can set it to 0 in all other cases.
|
||||
* (snapshots) [14048](https://github.com/cosmos/cosmos-sdk/pull/14048) Move the Snapshot package to the store package. This is done in an effort group all storage related logic under one package.
|
||||
* (signing) [#13701](https://github.com/cosmos/cosmos-sdk/pull/) Add `context.Context` as an argument `x/auth/signing.VerifySignature`.
|
||||
* (store) [#11825](https://github.com/cosmos/cosmos-sdk/pull/11825) Make extension snapshotter interface safer to use, renamed the util function `WriteExtensionItem` to `WriteExtensionPayload`.
|
||||
|
||||
### Client Breaking Changes
|
||||
|
||||
* (runtime) [#19040](https://github.com/cosmos/cosmos-sdk/pull/19040) Simplify app config implementation and deprecate `/cosmos/app/v1alpha1/config` query.
|
||||
* (x/gov) [#17910](https://github.com/cosmos/cosmos-sdk/pull/17910) Remove telemetry for counting votes and proposals. It was incorrectly counting votes. Use alternatives, such as state streaming.
|
||||
* (abci) [#15845](https://github.com/cosmos/cosmos-sdk/pull/15845) Remove duplicating events in `logs`.
|
||||
* (abci) [#15845](https://github.com/cosmos/cosmos-sdk/pull/15845) Add `msg_index` to all event attributes to associate events and messages.
|
||||
* (x/staking) [#15701](https://github.com/cosmos/cosmos-sdk/pull/15701) `HistoricalInfoKey` now has a binary format.
|
||||
* (store/streaming) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) State Streaming removed emitting of beginblock, endblock and delivertx in favour of emitting FinalizeBlock.
|
||||
* (baseapp) [#15519](https://github.com/cosmos/cosmos-sdk/pull/15519/files) BeginBlock & EndBlock events have begin or endblock in the events in order to identify which stage they are emitted from since they are returned to comet as FinalizeBlock events.
|
||||
* (grpc-web) [#14652](https://github.com/cosmos/cosmos-sdk/pull/14652) Use same port for gRPC-Web and the API server.
|
||||
|
||||
### CLI Breaking Changes
|
||||
|
||||
* (server) [#18303](https://github.com/cosmos/cosmos-sdk/pull/18303) `appd export` has moved with other genesis commands, use `appd genesis export` instead.
|
||||
* (perf)[#20490](https://github.com/cosmos/cosmos-sdk/pull/20490) Sims: Replace runsim command with Go stdlib testing. CLI: `Commit` default true, `Lean`, `SimulateEveryOperation`, `PrintAllInvariants`, `DBBackend` params removed
|
||||
* (client/tx) [#20870](https://github.com/cosmos/cosmos-sdk/pull/20870) Removed `timeout-height` flag replace with `timeout-timestamp` flag for a time based timeout.
|
||||
* (all) The migration of modules to [AutoCLI](https://docs.cosmos.network/main/core/autocli) led to no changes in UX but a [small change in CLI outputs](https://github.com/cosmos/cosmos-sdk/issues/16651) where results can be nested.
|
||||
* (all) Query pagination flags have been renamed with the migration to AutoCLI:
|
||||
* `--reverse` -> `--page-reverse`
|
||||
* `--offset` -> `--page-offset`
|
||||
* `--limit` -> `--page-limit`
|
||||
* `--count-total` -> `--page-count-total`
|
||||
* (cli) [#17184](https://github.com/cosmos/cosmos-sdk/pull/17184) All json keys returned by the `status` command are now snake case instead of pascal case.
|
||||
* (server) [#17177](https://github.com/cosmos/cosmos-sdk/pull/17177) Remove `iavl-lazy-loading` configuration.
|
||||
* (x/gov) [#16987](https://github.com/cosmos/cosmos-sdk/pull/16987) In `<appd> query gov proposals` the proposal status flag have renamed from `--status` to `--proposal-status`. Additionally, that flags now uses the ENUM values: `PROPOSAL_STATUS_DEPOSIT_PERIOD`, `PROPOSAL_STATUS_VOTING_PERIOD`, `PROPOSAL_STATUS_PASSED`, `PROPOSAL_STATUS_REJECTED`, `PROPOSAL_STATUS_FAILED`.
|
||||
* (x/bank) [#16899](https://github.com/cosmos/cosmos-sdk/pull/16899) With the migration to AutoCLI some bank commands have been split in two:
|
||||
* Use `total-supply` (or `total`) for querying the total supply and `total-supply-of` for querying the supply of a specific denom.
|
||||
* Use `denoms-metadata` for querying all denom metadata and `denom-metadata` for querying a specific denom metadata.
|
||||
* (rosetta) [#16276](https://github.com/cosmos/cosmos-sdk/issues/16276) Rosetta migration to standalone repo.
|
||||
* (cli) [#15826](https://github.com/cosmos/cosmos-sdk/pull/15826) Remove `<appd> q account` command. Use `<appd> q auth account` instead.
|
||||
* (cli) [#15299](https://github.com/cosmos/cosmos-sdk/pull/15299) Remove `--amino` flag from `sign` and `multi-sign` commands. Amino `StdTx` has been deprecated for a while. Amino JSON signing still works as expected.
|
||||
* (x/gov) [#14880](https://github.com/cosmos/cosmos-sdk/pull/14880) Remove `<app> tx gov submit-legacy-proposal cancel-software-upgrade` and `software-upgrade` commands. These commands are now in the `x/upgrade` module and using gov v1. Use `tx upgrade software-upgrade` instead.
|
||||
* (x/staking) [#14864](https://github.com/cosmos/cosmos-sdk/pull/14864) `<appd> tx staking create-validator` CLI command now takes a json file as an arg instead of using required flags.
|
||||
* (cli) [#14659](https://github.com/cosmos/cosmos-sdk/pull/14659) `<app> q block <height>` is removed as it just output json. The new command allows either height/hash and is `<app> q block --type=height|hash <height|hash>`.
|
||||
* (grpc-web) [#14652](https://github.com/cosmos/cosmos-sdk/pull/14652) Remove `grpc-web.address` flag.
|
||||
* (client) [#14342](https://github.com/cosmos/cosmos-sdk/pull/14342) `<app> config` command is now a sub-command using Confix. Use `<app> config --help` to learn more.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* (server) [#18254](https://github.com/cosmos/cosmos-sdk/pull/18254) Don't hardcode gRPC address to localhost.
|
||||
* (x/gov) [#18173](https://github.com/cosmos/cosmos-sdk/pull/18173) Gov hooks now return an error and are *blocking* when they fail. Expect for `AfterProposalFailedMinDeposit` and `AfterProposalVotingPeriodEnded` which log the error and continue.
|
||||
* (x/gov) [#17873](https://github.com/cosmos/cosmos-sdk/pull/17873) Fail any inactive and active proposals that cannot be decoded.
|
||||
* (x/slashing) [#18016](https://github.com/cosmos/cosmos-sdk/pull/18016) Fixed builder function for missed blocks key (`validatorMissedBlockBitArrayPrefixKey`) in slashing/migration/v4.
|
||||
* (x/bank) [#18107](https://github.com/cosmos/cosmos-sdk/pull/18107) Add missing keypair of SendEnabled to restore legacy param set before migration.
|
||||
* (baseapp) [#17769](https://github.com/cosmos/cosmos-sdk/pull/17769) Ensure we respect block size constraints in the `DefaultProposalHandler`'s `PrepareProposal` handler when a nil or no-op mempool is used. We provide a `TxSelector` type to assist in making transaction selection generalized. We also fix a comparison bug in tx selection when `req.maxTxBytes` is reached.
|
||||
* (mempool) [#17668](https://github.com/cosmos/cosmos-sdk/pull/17668) Fix `PriorityNonceIterator.Next()` nil pointer ref for min priority at the end of iteration.
|
||||
* (config) [#17649](https://github.com/cosmos/cosmos-sdk/pull/17649) Fix `mempool.max-txs` configuration is invalid in `app.config`.
|
||||
* (baseapp) [#17518](https://github.com/cosmos/cosmos-sdk/pull/17518) Utilizing voting power from vote extensions (CometBFT) instead of the current bonded tokens (x/staking) to determine if a set of vote extensions are valid.
|
||||
* (baseapp) [#17251](https://github.com/cosmos/cosmos-sdk/pull/17251) VerifyVoteExtensions and ExtendVote initialize their own contexts/states, allowing VerifyVoteExtensions being called without ExtendVote.
|
||||
* (x/distribution) [#17236](https://github.com/cosmos/cosmos-sdk/pull/17236) Using "validateCommunityTax" in "Params.ValidateBasic", preventing panic when field "CommunityTax" is nil.
|
||||
* (x/bank) [#17170](https://github.com/cosmos/cosmos-sdk/pull/17170) Avoid empty spendable error message on send coins.
|
||||
* (x/group) [#17146](https://github.com/cosmos/cosmos-sdk/pull/17146) Rename x/group legacy ORM package's error codespace from "orm" to "legacy_orm", preventing collisions with ORM's error codespace "orm".
|
||||
* (types/query) [#16905](https://github.com/cosmos/cosmos-sdk/pull/16905) Collections Pagination now applies proper count when filtering results.
|
||||
* (x/bank) [#16841](https://github.com/cosmos/cosmos-sdk/pull/16841) Correctly process legacy `DenomAddressIndex` values.
|
||||
* (x/auth/vesting) [#16733](https://github.com/cosmos/cosmos-sdk/pull/16733) Panic on overflowing and negative EndTimes when creating a PeriodicVestingAccount.
|
||||
* (x/consensus) [#16713](https://github.com/cosmos/cosmos-sdk/pull/16713) Add missing ABCI param in `MsgUpdateParams`.
|
||||
* (baseapp) [#16700](https://github.com/cosmos/cosmos-sdk/pull/16700) Fix consensus failure in returning no response to malformed transactions.
|
||||
* [#16639](https://github.com/cosmos/cosmos-sdk/pull/16639) Make sure we don't execute blocks beyond the halt height.
|
||||
* (baseapp) [#16613](https://github.com/cosmos/cosmos-sdk/pull/16613) Ensure each message in a transaction has a registered handler, otherwise `CheckTx` will fail.
|
||||
* (baseapp) [#16596](https://github.com/cosmos/cosmos-sdk/pull/16596) Return error during `ExtendVote` and `VerifyVoteExtension` if the request height is earlier than `VoteExtensionsEnableHeight`.
|
||||
* (baseapp) [#16259](https://github.com/cosmos/cosmos-sdk/pull/16259) Ensure the `Context` block height is correct after `InitChain` and prior to the second block.
|
||||
* (x/gov) [#16231](https://github.com/cosmos/cosmos-sdk/pull/16231) Fix Rawlog JSON formatting of proposal_vote option field.* (cli) [#16138](https://github.com/cosmos/cosmos-sdk/pull/16138) Fix snapshot commands panic if snapshot don't exists.
|
||||
* (x/staking) [#16043](https://github.com/cosmos/cosmos-sdk/pull/16043) Call `AfterUnbondingInitiated` hook for new unbonding entries only and fix `UnbondingDelegation` entries handling. This is a behavior change compared to Cosmos SDK v0.47.x, now the hook is called only for new unbonding entries.
|
||||
* (types) [#16010](https://github.com/cosmos/cosmos-sdk/pull/16010) Let `module.CoreAppModuleBasicAdaptor` fallback to legacy genesis handling.
|
||||
* (types) [#15691](https://github.com/cosmos/cosmos-sdk/pull/15691) Make `Coin.Validate()` check that `.Amount` is not nil.
|
||||
* (x/crypto) [#15258](https://github.com/cosmos/cosmos-sdk/pull/15258) Write keyhash file with permissions 0600 instead of 0555.
|
||||
* (x/auth) [#15059](https://github.com/cosmos/cosmos-sdk/pull/15059) `ante.CountSubKeys` returns 0 when passing a nil `Pubkey`.
|
||||
* (x/capability) [#15030](https://github.com/cosmos/cosmos-sdk/pull/15030) Prevent `x/capability` from consuming `GasMeter` gas during `InitMemStore`
|
||||
* (types/coin) [#14739](https://github.com/cosmos/cosmos-sdk/pull/14739) Deprecate the method `Coin.IsEqual` in favour of `Coin.Equal`. The difference between the two methods is that the first one results in a panic when denoms are not equal. This panic lead to unexpected behavior.
|
||||
|
||||
### Deprecated
|
||||
|
||||
* (simapp) [#19146](https://github.com/cosmos/cosmos-sdk/pull/19146) Replace `--v` CLI option with `--validator-count`/`-n`.
|
||||
* (module) [#19370](https://github.com/cosmos/cosmos-sdk/pull/19370) Deprecate `module.Configurator`, use `appmodule.HasMigrations` and `appmodule.HasServices` instead from Core API.
|
||||
* (types) [#21435](https://github.com/cosmos/cosmos-sdk/pull/21435) The `String()` method on `AccAddress`, `ValAddress` and `ConsAddress` have been deprecated. This is done because those are still using the deprecated global `sdk.Config`. Use an `address.Codec` instead.
|
||||
* (types) [#16980](https://github.com/cosmos/cosmos-sdk/pull/16980) Deprecate `IntProto` and `DecProto`. Instead, `math.Int` and `math.LegacyDec` should be used respectively. Both types support `Marshal` and `Unmarshal` for binary serialization.
|
||||
* (x/staking) [#14567](https://github.com/cosmos/cosmos-sdk/pull/14567) The `delegator_address` field of `MsgCreateValidator` has been deprecated.
|
||||
The validator address bytes and delegator address bytes refer to the same account while creating validator (defer only in bech32 notation).
|
||||
|
||||
## Previous Versions
|
||||
|
||||
[CHANGELOG of previous versions](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md#v0509---2024-08-07).
|
||||
[CHANGELOG of previous versions](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md#v0470---2023-03-14).
|
||||
|
||||
+14
-19
@@ -7,7 +7,7 @@ This document is an extension to [CONTRIBUTING](./CONTRIBUTING.md) and provides
|
||||
* Code must be well structured:
|
||||
* packages must have a limited responsibility (different concerns can go to different packages),
|
||||
* types must be easy to compose,
|
||||
* think about maintainability and testability.
|
||||
* think about maintainbility and testability.
|
||||
* "Depend upon abstractions, [not] concretions".
|
||||
* Try to limit the number of methods you are exposing. It's easier to expose something later than to hide it.
|
||||
* Take advantage of `internal` package concept.
|
||||
@@ -18,11 +18,11 @@ This document is an extension to [CONTRIBUTING](./CONTRIBUTING.md) and provides
|
||||
* Minimize code duplication.
|
||||
* Limit third-party dependencies.
|
||||
|
||||
### Performance
|
||||
Performance:
|
||||
|
||||
* Avoid unnecessary operations or memory allocations.
|
||||
|
||||
### Security
|
||||
Security:
|
||||
|
||||
* Pay proper attention to exploits involving:
|
||||
* gas usage
|
||||
@@ -31,12 +31,6 @@ This document is an extension to [CONTRIBUTING](./CONTRIBUTING.md) and provides
|
||||
* code must be always deterministic
|
||||
* Thread safety. If some functionality is not thread-safe, or uses something that is not thread-safe, then clearly indicate the risk on each level.
|
||||
|
||||
### Documentation
|
||||
|
||||
When writing code that is complex or relies on another piece of the code, it is advised to create a diagram or a flowchart to explain the logic. This will help other developers to understand the code and will also help you to understand the logic better.
|
||||
|
||||
The Cosmos SDK uses [Mermaid.js](https://mermaid.js.org/), you can find the documentation on how to use it [here](https://mermaid.js.org/intro/).
|
||||
|
||||
## Acceptance tests
|
||||
|
||||
Start the design by defining Acceptance Tests. The purpose of Acceptance Testing is to
|
||||
@@ -47,6 +41,7 @@ and API.
|
||||
|
||||
UAT should be revisited at each stage of the product development:
|
||||
|
||||

|
||||
|
||||
### Why Acceptance Testing
|
||||
|
||||
@@ -98,7 +93,7 @@ Make sure your code is well tested:
|
||||
* Provide unit tests for every unit of your code if possible. Unit tests are expected to comprise 70%-80% of your tests.
|
||||
* Describe the test scenarios you are implementing for integration tests.
|
||||
* Create integration tests for queries and msgs.
|
||||
* Use both test cases and property / fuzzy testing. We use the [rapid](https://github.com/flyingmutant/rapid) Go library for property-based and fuzzy testing.
|
||||
* Use both test cases and property / fuzzy testing. We use the [rapid](pgregory.net/rapid) Go library for property-based and fuzzy testing.
|
||||
* Do not decrease code test coverage. Explain in a PR if test coverage is decreased.
|
||||
|
||||
We expect tests to use `require` or `assert` rather than `t.Skip` or `t.Fail`,
|
||||
@@ -107,21 +102,21 @@ When testing a function under a variety of different inputs, we prefer to use
|
||||
[table driven tests](https://github.com/golang/go/wiki/TableDrivenTests).
|
||||
Table driven test error messages should follow the following format
|
||||
`<desc>, tc #<index>, i #<index>`.
|
||||
`<desc>` is an optional short description of what's failing, `tc` is the
|
||||
`<desc>` is an optional short description of whats failing, `tc` is the
|
||||
index within the test case table that is failing, and `i` is when there
|
||||
is a loop, exactly which iteration of the loop failed.
|
||||
The idea is you should be able to see the
|
||||
error message and figure out exactly what failed.
|
||||
Here is an example check:
|
||||
|
||||
```go
|
||||
<some table>
|
||||
for tcIndex, tc := range cases {
|
||||
<some code>
|
||||
resp, err := doSomething()
|
||||
require.NoError(err)
|
||||
require.Equal(t, tc.expected, resp, "should correctly perform X")
|
||||
```
|
||||
```go
|
||||
<some table>
|
||||
for tcIndex, tc := range cases {
|
||||
<some code>
|
||||
resp, err := doSomething()
|
||||
require.NoError(err)
|
||||
require.Equal(t, tc.expected, resp, "should correctly perform X")
|
||||
```
|
||||
|
||||
## Quality Assurance
|
||||
|
||||
|
||||
+53
-98
@@ -6,13 +6,9 @@
|
||||
* [Testing](#testing)
|
||||
* [Pull Requests](#pull-requests)
|
||||
* [Pull Request Templates](#pull-request-templates)
|
||||
* [Pull Request Accountability](#pull-request-accountability)
|
||||
* [Owner](#owner)
|
||||
* [Reviewer](#reviewer)
|
||||
* [External Contributors](#external-contributors)
|
||||
* [Requesting Reviews](#requesting-reviews)
|
||||
* [Updating Documentation](#updating-documentation)
|
||||
* [RFC & ADR](#rfc--adr)
|
||||
* [RFC & ADR](#RFC & ADR)
|
||||
* [Dependencies](#dependencies)
|
||||
* [`go.work`](#gowork)
|
||||
* [`go.mod`](#gomod)
|
||||
@@ -24,6 +20,9 @@
|
||||
* [Strategy Discovery](#strategy-discovery)
|
||||
* [Concept Approval](#concept-approval)
|
||||
* [Time Bound Period](#time-bound-period)
|
||||
* [Approval Committee & Decision Making](#approval-committee--decision-making)
|
||||
* [Committee Members](#committee-members)
|
||||
* [Committee Criteria](#committee-criteria)
|
||||
* [Implementation & Release Approval](#implementation--release-approval)
|
||||
|
||||
Thank you for considering making contributions to the Cosmos SDK and related repositories!
|
||||
@@ -43,38 +42,34 @@ contributors, the general procedure for contributing has been established:
|
||||
1. Ensure that the proposal has been accepted.
|
||||
2. Ensure that nobody else has already begun working on this issue. If they have,
|
||||
make sure to contact them to collaborate.
|
||||
3. If nobody has been assigned to the issue and you would like to work on it,
|
||||
3. If nobody has been assigned for the issue and you would like to work on it,
|
||||
make a comment on the issue to inform the community of your intentions
|
||||
to begin work.
|
||||
5. To submit your work as a contribution to the repository follow standard GitHub best practices. See [pull request guideline](#pull-requests) below.
|
||||
|
||||
**Note:** For very small or blatantly obvious problems, you are
|
||||
**Note:** For very small or blatantly obvious problems such as typos, you are
|
||||
not required to an open issue to submit a PR, but be aware that for more complex
|
||||
problems/features, if a PR is opened before an adequate design discussion has
|
||||
taken place in a GitHub issue, that PR runs a high likelihood of being rejected.
|
||||
|
||||
**Note 2:** At this time, we will not be accepting contributions that only fix spelling
|
||||
or grammar errors in documentation, code or elsewhere. The repository has a nightly job that
|
||||
spell checks all files and will automatically open PRs for any spelling errors.
|
||||
|
||||
## Teams Dev Calls
|
||||
|
||||
The Cosmos SDK has many stakeholders contributing and shaping the project. The Core SDK team is composed of Binary Builders & Zondax. Any long-term contributors and additional maintainers from other projects are welcome. We use self-organizing principles to coordinate and collaborate across organizations in structured "EPIC" that focus on specific problem domains or architectural components of the Cosmos SDK.
|
||||
The Cosmos SDK has many stakeholders contributing and shaping the project. The Core SDK team is composed of Interchain GmbH and Regen Network Development developers. Any long-term contributors and additional maintainers from other projects are welcome. We use self-organizing principles to coordinate and collaborate across organizations in structured "EPIC" that focus on specific problem domains or architectural components of the Cosmos SDK.
|
||||
|
||||
The developers work in sprints, which are available in a [GitHub Project](https://github.com/orgs/cosmos/projects/26/views/22). The current EPICs are pinned at the top of the [issues list](https://github.com/cosmos/cosmos-sdk/issues).
|
||||
|
||||
The important development announcements are shared on [Discord](https://discord.gg/interchain) in the `#dev-announcements` channel.
|
||||
The important development announcements are shared on [Discord](https://discord.com/invite/cosmosnetwork) in the `#dev-announcements` channel.
|
||||
|
||||
To synchronize we have few major meetings:
|
||||
|
||||
* Cosmos SDK Standup on Monday and Thursday at 14:00 UTC (limited participation to core devs).
|
||||
* Cosmos SDK Community Call on the second Thursday of the month at 13:00 UTC.
|
||||
* Cosmos SDK Sprint Review on Monday and Thursday at 14:00 UTC (limited participation to core devs).
|
||||
* Cosmos SDK Community Call on Thursday at 16:00 UTC.
|
||||
|
||||
If you would like to join one of the community call, then please request to join the [Cosmos SDK Google Group](https://groups.google.com/g/cosmos-sdk-community).
|
||||
If you would like to join one of the community call, then please contact us on [Discord](https://discord.com/invite/cosmosnetwork) or reach out directly to Marko (@tac0turtle).
|
||||
|
||||
## Architecture Decision Records (ADR)
|
||||
|
||||
When proposing an architecture decision for the Cosmos SDK, please start by opening an [issue](https://github.com/cosmos/cosmos-sdk/issues/new/choose). Once the proposal has been discussed and there is rough alignment on a high-level approach to the design, the [ADR creation process](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/PROCESS.md) can begin. We are following this process to ensure all involved parties are in agreement before any party begins coding the proposed implementation. If you would like to see examples of how these are written, please refer to the current [ADRs](https://github.com/cosmos/cosmos-sdk/tree/main/docs/architecture).
|
||||
When proposing an architecture decision for the Cosmos SDK, please start by opening an [issue](https://github.com/cosmos/cosmos-sdk/issues/new/choose) or a [discussion](https://github.com/cosmos/cosmos-sdk/discussions/new) with a summary of the proposal. Once the proposal has been discussed and there is rough alignment on a high-level approach to the design, the [ADR creation process](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/PROCESS.md) can begin. We are following this process to ensure all involved parties are in agreement before any party begins coding the proposed implementation. If you would like to see examples of how these are written, please refer to the current [ADRs](https://github.com/cosmos/cosmos-sdk/tree/main/docs/architecture).
|
||||
|
||||
## Development Procedure
|
||||
|
||||
@@ -122,74 +117,16 @@ PRs must have a category prefix that is based on the type of changes being made
|
||||
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
|
||||
Additionally, each PR should only address a single issue.
|
||||
|
||||
Pull requests are merged automatically using the automerge functionality of Github.
|
||||
Pull requests are merged automatically using [`A:automerge` action](https://docs.mergify.com/workflow/automerge/).
|
||||
|
||||
NOTE: when merging, GitHub will squash commits and rebase on top of the main.
|
||||
|
||||
### Pull Request Templates
|
||||
|
||||
There are three PR templates. The [default template](./.github/PULL_REQUEST_TEMPLATE.md) is for types `fix`, `feat`, and `refactor`. We also have a [docs template](./.github/PULL_REQUEST_TEMPLATE/docs.md) for documentation changes. When previewing a PR before it has been opened, you can change the template by adding one of the following parameters to the url:
|
||||
There are three PR templates. The [default template](./.github/PULL_REQUEST_TEMPLATE.md) is for types `fix`, `feat`, and `refactor`. We also have a [docs template](./.github/PULL_REQUEST_TEMPLATE/docs.md) for documentation changes and an [other template](./.github/PULL_REQUEST_TEMPLATE/other.md) for changes that do not affect production code. When previewing a PR before it has been opened, you can change the template by adding one of the following parameters to the url:
|
||||
|
||||
* `template=docs.md`
|
||||
|
||||
### Pull Request Accountability
|
||||
|
||||
#### Owner
|
||||
|
||||
The pull request owner is responsible for ensuring that the PR is ready for review and merging after reviews are delivered. This includes:
|
||||
|
||||
* Ensuring that the PR is up to date with the latest changes in the main branch.
|
||||
* Ensuring that the PR passes all checks.
|
||||
* Ensuring that the PR has a clear description of the changes.
|
||||
* Ensuring that the PR has a clear description of the testing strategy.
|
||||
* Ensuring that the PR has a clear description of the impact of the changes.
|
||||
* Ensuring that the PR has a clear description of the risks associated with the changes.
|
||||
* Ensuring that the PR has a clear description of the next steps.
|
||||
* Ensuring that the PR has a clear description of the dependencies.
|
||||
|
||||
The pull request owner is responsible for assigning reviewers on the team, responding to feedback, and ensuring that the PR is merged in a timely manner. If a PR is reviewed, but an approval is not given by the reviewer the pull request owner is responsible for addressing the feedback, ensuring that the PR is ready for review again and notifying the reviewers that the PR is ready for review.
|
||||
|
||||
Once approvals have been given by the reviewer(s) it is the responsibility of the pull request owner to merge the PR.
|
||||
|
||||
#### Reviewer
|
||||
|
||||
Reviewers or other contributors should not merge main into the PR unless discussed with the pull request owner and ownership has been transferred.
|
||||
|
||||
The reviewer is responsible for ensuring that the PR meets the following criteria:
|
||||
|
||||
##### Code Quality
|
||||
|
||||
* *Readability*: Ensure the code is easy to read and understand. Check for clear and concise variable names, appropriate comments, and overall readability.
|
||||
* *Coding Standards*: Verify adherence to the team’s coding standards and style guides. This includes indentation, spacing, naming conventions, and file organization.
|
||||
* *Code Structure*: Check for proper use of functions, classes, and modules. Ensure the code is organized logically and is modular.
|
||||
* *Complexity*: Look for complex code that could be simplified. Ensure there are no nested loops.
|
||||
|
||||
##### Functionality
|
||||
|
||||
* *Correctness*: Verify that the code performs the intended function correctly. Check the logic and ensure that edge cases are handled.
|
||||
* *Bug Fixes*: Ensure any reported bugs are adequately addressed. Verify that the fixes resolve the issues without introducing new bugs.
|
||||
* *Feature Implementation*: Confirm that new features are implemented as specified in the requirements or user stories.
|
||||
|
||||
##### Testing
|
||||
|
||||
* *Test Coverage*: Check that there are sufficient unit tests, integration tests and E2E tests for the new code. Ensure tests cover both normal and edge cases.
|
||||
* *Test Quality*: Review the quality of the tests. Ensure they are meaningful and not just checking trivial cases.
|
||||
* *Passing Tests*: Verify that all tests pass, including any new tests added with the PR.
|
||||
|
||||
##### Documentation
|
||||
|
||||
* *Code* Comments: Ensure there are comments explaining non-obvious parts of the code.
|
||||
* *API Documentation*: Verify that any new or modified public methods, classes, or modules are properly documented.
|
||||
* *User Documentation*: Check for updates to user documentation, if the PR includes changes that affect the user experience.
|
||||
|
||||
##### Performance
|
||||
|
||||
* *Efficiency*: Ensure the code performs efficiently and does not introduce performance bottlenecks.
|
||||
* *Resource Usage*: Check for appropriate use of resources, such as memory and CPU. Ensure there are no memory leaks or excessive resource consumption.
|
||||
|
||||
### External Contributors
|
||||
|
||||
External contributors can not manage getting reviewers and assigning reviewers to PRs. When an external contribution requires reviewers, they will be assigned in the team meeting or adhoc based on current workloads. One of the reviewers will be assigned the owner of the PR and will be responsible for ensuring the PR is ready for review and merging after reviews are delivered. The owner has the right to overtake the contribution if the external contributor is not responsive or the PR is not moving forward.
|
||||
* `template=other.md`
|
||||
|
||||
### Requesting Reviews
|
||||
|
||||
@@ -202,7 +139,7 @@ that you would like early feedback and tagging whoever you would like to receive
|
||||
Codeowners are marked automatically as the reviewers.
|
||||
|
||||
All PRs require at least two review approvals before they can be merged (one review might be acceptable in
|
||||
the case of minor changes to [docs](./.github/PULL_REQUEST_TEMPLATE/docs.md) changes that do not affect production code). Each PR template has a reviewers checklist that must be completed before the PR can be merged. Each reviewer is responsible
|
||||
the case of minor changes to [docs](./.github/PULL_REQUEST_TEMPLATE/docs.md) or [other](./.github/PULL_REQUEST_TEMPLATE/other.md) changes that do not affect production code). Each PR template has a reviewers checklist that must be completed before the PR can be merged. Each reviewer is responsible
|
||||
for all checked items unless they have indicated otherwise by leaving their handle next to specific
|
||||
items. In addition, use the following review explanations:
|
||||
|
||||
@@ -217,7 +154,6 @@ items. In addition, use the following review explanations:
|
||||
* If you sat down with the PR submitter and did a pairing review, add this information in the `Approval` or your PR comments.
|
||||
* If you are only making "surface level" reviews, submit notes as a `comment` review.
|
||||
|
||||
|
||||
### Updating Documentation
|
||||
|
||||
If you open a PR on the Cosmos SDK, it is mandatory to update the relevant documentation in `/docs`.
|
||||
@@ -232,8 +168,8 @@ When writing documentation, follow the [Documentation Writing Guidelines](./docs
|
||||
|
||||
Within the Cosmos SDK we have two forms of documenting decisions, Request For Comment (RFC) & Architecture Design Record (ADR). They perform two different functions. The process for assessing if something needs an RFC is located in the respective folders:
|
||||
|
||||
* [RFC Process](./docs/rfc/PROCESS.md)
|
||||
* [ADR Process](./docs/architecture/PROCESS.md)
|
||||
* [RFC Process](./docs/rfc/process.md)
|
||||
* [ADR Process](./docs/adr/process.md)
|
||||
|
||||
|
||||
## Dependencies
|
||||
@@ -248,26 +184,14 @@ get away with telling people they can just `go get` our software.
|
||||
Since some dependencies are not under our control, a third party may break our
|
||||
build, in which case we can fall back on `go mod tidy -v`.
|
||||
|
||||
### `go.work`
|
||||
|
||||
The Cosmos SDK is a multi-module repo, for this reason, the use of a `go.work` file is handy.
|
||||
We provide a [`go.work.example`](./go.work.example) that contains all the modules used in the SDK.
|
||||
Do note that contributions modifying multiple Go modules should be submitted as separate PRs, this allows us to tag the changes and avoid `replace`s.
|
||||
For consistency between our CI and the local tests, `GOWORK=off` is set in the `Makefile`. This means that the `go.work` file is not used when using `make test` or any other `make` command.
|
||||
|
||||
### `go.mod`
|
||||
|
||||
When extracting a package to its own go modules, some extra steps are required, for keeping our CI checks and Dev UX:
|
||||
|
||||
* Add a CHANGELOG.md / README.md under the new package folder
|
||||
* Add the package in [`labeler.yml`](./.github/pr_labeler.yml)
|
||||
* Add the package in [`go.work.example`](./go.work.example)
|
||||
* Add the package in [`labeler.yml`](./.github/labeler.yml)
|
||||
* Add weekly dependabot checks (see [dependabot.yml](./.github/dependabot.yml))
|
||||
* Add tests to github workflow [test.yml](.github/workflows/test.yml) (under submodules)
|
||||
* Configure SonarCloud
|
||||
* Add `sonar-projects.properties` (see math [sonar-project.properties](./math/sonar-project.properties) for example)
|
||||
* Add a GitHub Workflow entry for running the scans (see [test.yml](.github/workflows/test.yml))
|
||||
* Ask the team to add the project to SonarCloud
|
||||
* (optional) Configure a `cosmossdk.io` vanity url by submitting a PR to [cosmos/vanity](https://github.com/cosmos/vanity).
|
||||
|
||||
## Protobuf
|
||||
@@ -322,11 +246,11 @@ to developers who show an aptitude towards developing with this code base.
|
||||
|
||||
Several different kinds of privileges may be granted however most common
|
||||
privileges to be granted are merge rights to either part of, or the entirety of the
|
||||
code base (through the GitHub `CODEOWNERS` file). The onboarding process for
|
||||
code base (through the GitHub `CODEOWNERS` file). The on-boarding process for
|
||||
new code owners is as follows: On a bi-monthly basis (or more frequently if
|
||||
agreeable) all the existing code owners will privately convene to discuss
|
||||
potential new candidates as well as the potential for existing code-owners to
|
||||
exit or "pass on the torch". This private meeting is to be held as a
|
||||
exit or "pass on the torch". This private meeting is to be a held as a
|
||||
phone/video meeting.
|
||||
|
||||
Subsequently after the meeting, and pending final approval from the ICF,
|
||||
@@ -380,12 +304,43 @@ If an individual Pull Request for an ADR needs more time than 2 weeks to reach r
|
||||
in current state (`Draft` or `Proposed`), with its contents updated to summarize
|
||||
the current state of its discussion.
|
||||
|
||||
If an ADR is taking longer than 4 weeks to reach a final conclusion, there should be a synchronous meeting with reviewers and all stake holders
|
||||
If an ADR is taking longer than 4 weeks to reach a final conclusion, the **Concept Approval Committee**
|
||||
should convene to rectify the situation by either:
|
||||
|
||||
* unanimously setting a new time bound period for this ADR
|
||||
* making changes to the Concept Approval Process (as outlined here)
|
||||
* making changes to the members of the Concept Approval Committee
|
||||
|
||||
#### Approval Committee & Decision Making
|
||||
|
||||
In absence of general consensus, decision making requires 1/2 vote from the two members
|
||||
of the **Concept Approval Committee**.
|
||||
|
||||
#### Committee Members
|
||||
|
||||
* Core Members: **Aaron** (Regen), **Bez** (IG)
|
||||
|
||||
#### Committee Criteria
|
||||
|
||||
Members must:
|
||||
|
||||
* Participate in all or almost all ADR discussions, both on GitHub as well as in bi-weekly Architecture Review
|
||||
meetings
|
||||
* Be active contributors to the Cosmos SDK, and furthermore should be continuously making substantial contributions
|
||||
to the project's codebase, review process, documentation and ADRs
|
||||
* Have stake in the Cosmos SDK project, represented by:
|
||||
* Being a client / user of the Comsos SDK
|
||||
* "[giving back](https://www.debian.org/social_contract)" to the software
|
||||
* Delegate representation in case of vacation or absence
|
||||
|
||||
Code owners need to maintain participation in the process, ideally as members of **Concept Approval Committee**
|
||||
members, but at the very least as active participants in ADR discussions
|
||||
|
||||
Removal criteria:
|
||||
|
||||
* Missing 3 meetings results in ICF evaluating whether the member should be removed / replaced
|
||||
* Violation of Code of Conduct
|
||||
|
||||
### Implementation & Release Approval
|
||||
|
||||
The following process should be adhered to both for implementation PRs corresponding to ADRs, as
|
||||
|
||||
+4
-10
@@ -23,16 +23,10 @@ WORKDIR /go/src/github.com/cosmos/cosmos-sdk
|
||||
|
||||
# optimization: if go.sum didn't change, docker will use cached image
|
||||
COPY go.mod go.sum ./
|
||||
COPY x/accounts/go.mod x/accounts/go.sum ./x/accounts/
|
||||
COPY x/protocolpool/go.mod x/protocolpool/go.sum ./x/protocolpool/
|
||||
COPY x/gov/go.mod x/gov/go.sum ./x/gov/
|
||||
COPY x/distribution/go.mod x/distribution/go.sum ./x/distribution/
|
||||
COPY x/slashing/go.mod x/slashing/go.sum ./x/slashing/
|
||||
COPY x/staking/go.mod x/staking/go.sum ./x/staking/
|
||||
COPY x/authz/go.mod x/authz/go.sum ./x/authz/
|
||||
COPY x/bank/go.mod x/bank/go.sum ./x/bank/
|
||||
COPY x/mint/go.mod x/mint/go.sum ./x/mint/
|
||||
COPY x/consensus/go.mod x/consensus/go.sum ./x/consensus/
|
||||
COPY collections/go.mod collections/go.sum ./collections/
|
||||
COPY store/go.mod store/go.sum ./store/
|
||||
COPY log/go.mod log/go.sum ./log/
|
||||
|
||||
RUN go mod download
|
||||
|
||||
# Add source files
|
||||
|
||||
@@ -1,17 +1,536 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
include scripts/build/linting.mk
|
||||
include scripts/build/protobuf.mk
|
||||
include scripts/build/localnet.mk
|
||||
include scripts/build/simulations.mk
|
||||
include scripts/build/testing.mk
|
||||
include scripts/build/documentation.mk
|
||||
include scripts/build/build.mk
|
||||
PACKAGES_NOSIMULATION=$(shell go list ./... | grep -v '/simulation')
|
||||
PACKAGES_SIMTEST=$(shell go list ./... | grep '/simulation')
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
# Ensure all tags are fetched
|
||||
VERSION_RAW := $(shell git fetch --tags --force >/dev/null 2>&1; git describe --tags --always --match "v*")
|
||||
VERSION := $(shell echo $(VERSION_RAW) | sed -E 's/^v?([0-9]+\.[0-9]+\.[0-9]+.*)/\1/')
|
||||
|
||||
# Fallback if the version is just a commit hash (not semver-like)
|
||||
ifeq ($(findstring -,$(VERSION)),) # No "-" means it's just a hash
|
||||
VERSION := 0.0.0-$(VERSION_RAW)
|
||||
endif
|
||||
export VERSION
|
||||
export CMTVERSION := $(shell go list -m github.com/cometbft/cometbft | sed 's:.* ::')
|
||||
export COMMIT := $(shell git log -1 --format='%H')
|
||||
LEDGER_ENABLED ?= true
|
||||
BINDIR ?= $(GOPATH)/bin
|
||||
BUILDDIR ?= $(CURDIR)/build
|
||||
SIMAPP = ./simapp
|
||||
MOCKS_DIR = $(CURDIR)/tests/mocks
|
||||
HTTPS_GIT := https://github.com/cosmos/cosmos-sdk.git
|
||||
DOCKER := $(shell which docker)
|
||||
PROJECT_NAME = $(shell git remote get-url origin | xargs basename -s .git)
|
||||
|
||||
# process build tags
|
||||
build_tags = netgo
|
||||
ifeq ($(LEDGER_ENABLED),true)
|
||||
ifeq ($(OS),Windows_NT)
|
||||
GCCEXE = $(shell where gcc.exe 2> NUL)
|
||||
ifeq ($(GCCEXE),)
|
||||
$(error gcc.exe not installed for ledger support, please install or set LEDGER_ENABLED=false)
|
||||
else
|
||||
build_tags += ledger
|
||||
endif
|
||||
else
|
||||
UNAME_S = $(shell uname -s)
|
||||
ifeq ($(UNAME_S),OpenBSD)
|
||||
$(warning OpenBSD detected, disabling ledger support (https://github.com/cosmos/cosmos-sdk/issues/1988))
|
||||
else
|
||||
GCC = $(shell command -v gcc 2> /dev/null)
|
||||
ifeq ($(GCC),)
|
||||
$(error gcc not installed for ledger support, please install or set LEDGER_ENABLED=false)
|
||||
else
|
||||
build_tags += ledger
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq (secp,$(findstring secp,$(COSMOS_BUILD_OPTIONS)))
|
||||
build_tags += libsecp256k1_sdk
|
||||
endif
|
||||
|
||||
ifeq (legacy,$(findstring legacy,$(COSMOS_BUILD_OPTIONS)))
|
||||
build_tags += app_v1
|
||||
endif
|
||||
|
||||
whitespace :=
|
||||
whitespace += $(whitespace)
|
||||
comma := ,
|
||||
build_tags_comma_sep := $(subst $(whitespace),$(comma),$(build_tags))
|
||||
|
||||
# process linker flags
|
||||
ldflags = -X github.com/cosmos/cosmos-sdk/version.Name=sim \
|
||||
-X github.com/cosmos/cosmos-sdk/version.AppName=simd \
|
||||
-X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \
|
||||
-X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \
|
||||
-X "github.com/cosmos/cosmos-sdk/version.BuildTags=$(build_tags_comma_sep)" \
|
||||
-X github.com/cometbft/cometbft/version.TMCoreSemVer=$(CMTVERSION)
|
||||
|
||||
# DB backend selection
|
||||
ifeq (cleveldb,$(findstring cleveldb,$(COSMOS_BUILD_OPTIONS)))
|
||||
build_tags += gcc
|
||||
endif
|
||||
ifeq (badgerdb,$(findstring badgerdb,$(COSMOS_BUILD_OPTIONS)))
|
||||
build_tags += badgerdb
|
||||
endif
|
||||
# handle rocksdb
|
||||
ifeq (rocksdb,$(findstring rocksdb,$(COSMOS_BUILD_OPTIONS)))
|
||||
CGO_ENABLED=1
|
||||
build_tags += rocksdb
|
||||
endif
|
||||
# handle boltdb
|
||||
ifeq (boltdb,$(findstring boltdb,$(COSMOS_BUILD_OPTIONS)))
|
||||
build_tags += boltdb
|
||||
endif
|
||||
|
||||
ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS)))
|
||||
ldflags += -w -s
|
||||
endif
|
||||
ldflags += $(LDFLAGS)
|
||||
ldflags := $(strip $(ldflags))
|
||||
|
||||
build_tags += $(BUILD_TAGS)
|
||||
build_tags := $(strip $(build_tags))
|
||||
|
||||
BUILD_FLAGS := -tags "$(build_tags)" -ldflags '$(ldflags)'
|
||||
# check for nostrip option
|
||||
ifeq (,$(findstring nostrip,$(COSMOS_BUILD_OPTIONS)))
|
||||
BUILD_FLAGS += -trimpath
|
||||
endif
|
||||
|
||||
# Check for debug option
|
||||
ifeq (debug,$(findstring debug,$(COSMOS_BUILD_OPTIONS)))
|
||||
BUILD_FLAGS += -gcflags "all=-N -l"
|
||||
endif
|
||||
|
||||
all: tools build lint test vulncheck
|
||||
|
||||
###############################################################################
|
||||
### Build ###
|
||||
###############################################################################
|
||||
|
||||
BUILD_TARGETS := build install
|
||||
|
||||
build: BUILD_ARGS=-o $(BUILDDIR)/
|
||||
|
||||
build-linux-amd64:
|
||||
GOOS=linux GOARCH=amd64 LEDGER_ENABLED=false $(MAKE) build
|
||||
|
||||
build-linux-arm64:
|
||||
GOOS=linux GOARCH=arm64 LEDGER_ENABLED=false $(MAKE) build
|
||||
|
||||
$(BUILD_TARGETS): go.sum $(BUILDDIR)/
|
||||
cd ${CURRENT_DIR}/simapp && go $@ -mod=readonly $(BUILD_FLAGS) $(BUILD_ARGS) ./...
|
||||
|
||||
$(BUILDDIR)/:
|
||||
mkdir -p $(BUILDDIR)/
|
||||
|
||||
cosmovisor:
|
||||
$(MAKE) -C tools/cosmovisor cosmovisor
|
||||
|
||||
confix:
|
||||
$(MAKE) -C tools/confix confix
|
||||
|
||||
hubl:
|
||||
$(MAKE) -C tools/hubl hubl
|
||||
|
||||
.PHONY: build build-linux-amd64 build-linux-arm64 cosmovisor confix
|
||||
|
||||
|
||||
#? mocks: Generate mock file
|
||||
mocks: $(MOCKS_DIR)
|
||||
@go install go.uber.org/mock/mockgen@v0.5.0
|
||||
sh ./scripts/mockgen.sh
|
||||
.PHONY: mocks
|
||||
|
||||
|
||||
vulncheck: $(BUILDDIR)/
|
||||
GOBIN=$(BUILDDIR) go install golang.org/x/vuln/cmd/govulncheck@latest
|
||||
$(BUILDDIR)/govulncheck ./...
|
||||
|
||||
$(MOCKS_DIR):
|
||||
mkdir -p $(MOCKS_DIR)
|
||||
|
||||
distclean: clean tools-clean
|
||||
clean:
|
||||
rm -rf \
|
||||
$(BUILDDIR)/ \
|
||||
artifacts/ \
|
||||
tmp-swagger-gen/ \
|
||||
.testnets
|
||||
|
||||
.PHONY: distclean clean
|
||||
|
||||
###############################################################################
|
||||
### Tools & Dependencies ###
|
||||
###############################################################################
|
||||
|
||||
#? go.sum: Run go mod tidy and ensure dependencies have not been modified.
|
||||
go.sum: go.mod
|
||||
echo "Ensure dependencies have not been modified ..." >&2
|
||||
go mod verify
|
||||
go mod tidy
|
||||
|
||||
###############################################################################
|
||||
### Documentation ###
|
||||
###############################################################################
|
||||
|
||||
godocs:
|
||||
@echo "--> Wait a few seconds and visit http://localhost:6060/pkg/github.com/cosmos/cosmos-sdk/types"
|
||||
go install golang.org/x/tools/cmd/godoc@latest
|
||||
godoc -http=:6060
|
||||
|
||||
build-docs:
|
||||
@cd docs && DOCS_DOMAIN=docs.cosmos.network sh ./build-all.sh
|
||||
|
||||
.PHONY: build-docs
|
||||
|
||||
###############################################################################
|
||||
### Tests & Simulation ###
|
||||
###############################################################################
|
||||
|
||||
# make init-simapp initializes a single local node network
|
||||
# it is useful for testing and development
|
||||
# Usage: make install && make init-simapp && simd start
|
||||
# Warning: make init-simapp will remove all data in simapp home directory
|
||||
init-simapp:
|
||||
./scripts/init-simapp.sh
|
||||
|
||||
test: test-unit
|
||||
test-e2e:
|
||||
$(MAKE) -C tests test-e2e
|
||||
test-e2e-cov:
|
||||
$(MAKE) -C tests test-e2e-cov
|
||||
test-integration:
|
||||
$(MAKE) -C tests test-integration
|
||||
test-integration-cov:
|
||||
$(MAKE) -C tests test-integration-cov
|
||||
test-all: test-unit test-e2e test-integration test-ledger-mock test-race
|
||||
|
||||
TEST_PACKAGES=./...
|
||||
TEST_TARGETS := test-unit test-unit-amino test-unit-proto test-ledger-mock test-race test-ledger test-race
|
||||
|
||||
# Test runs-specific rules. To add a new test target, just add
|
||||
# a new rule, customise ARGS or TEST_PACKAGES ad libitum, and
|
||||
# append the new rule to the TEST_TARGETS list.
|
||||
test-unit: test_tags += cgo ledger test_ledger_mock norace
|
||||
test-unit-amino: test_tags += ledger test_ledger_mock test_amino norace
|
||||
test-ledger: test_tags += cgo ledger norace
|
||||
test-ledger-mock: test_tags += ledger test_ledger_mock norace
|
||||
test-race: test_tags += cgo ledger test_ledger_mock
|
||||
test-race: ARGS=-race
|
||||
test-race: TEST_PACKAGES=$(PACKAGES_NOSIMULATION)
|
||||
$(TEST_TARGETS): run-tests
|
||||
|
||||
# check-* compiles and collects tests without running them
|
||||
# note: go test -c doesn't support multiple packages yet (https://github.com/golang/go/issues/15513)
|
||||
CHECK_TEST_TARGETS := check-test-unit check-test-unit-amino
|
||||
check-test-unit: test_tags += cgo ledger test_ledger_mock norace
|
||||
check-test-unit-amino: test_tags += ledger test_ledger_mock test_amino norace
|
||||
$(CHECK_TEST_TARGETS): EXTRA_ARGS=-run=none
|
||||
$(CHECK_TEST_TARGETS): run-tests
|
||||
|
||||
ARGS += -tags "$(test_tags)"
|
||||
SUB_MODULES = $(shell find . -type f -name 'go.mod' -print0 | xargs -0 -n1 dirname | sort | grep -v './tests/systemtests')
|
||||
CURRENT_DIR = $(shell pwd)
|
||||
run-tests:
|
||||
@(cd store/streaming/abci/examples/file && go build .)
|
||||
ifneq (,$(shell which tparse 2>/dev/null))
|
||||
@echo "Starting unit tests"; \
|
||||
finalec=0; \
|
||||
for module in $(SUB_MODULES); do \
|
||||
cd ${CURRENT_DIR}/$$module; \
|
||||
echo "Running unit tests for $$(grep '^module' go.mod)"; \
|
||||
go test -mod=readonly -json $(ARGS) $(TEST_PACKAGES) ./... | tparse; \
|
||||
ec=$$?; \
|
||||
if [ "$$ec" -ne '0' ]; then finalec=$$ec; fi; \
|
||||
done; \
|
||||
exit $$finalec
|
||||
else
|
||||
@echo "Starting unit tests"; \
|
||||
finalec=0; \
|
||||
for module in $(SUB_MODULES); do \
|
||||
cd ${CURRENT_DIR}/$$module; \
|
||||
echo "Running unit tests for $$(grep '^module' go.mod)"; \
|
||||
go test -mod=readonly $(ARGS) $(TEST_PACKAGES) ./... ; \
|
||||
ec=$$?; \
|
||||
if [ "$$ec" -ne '0' ]; then finalec=$$ec; fi; \
|
||||
done; \
|
||||
exit $$finalec
|
||||
endif
|
||||
|
||||
.PHONY: run-tests test test-all $(TEST_TARGETS)
|
||||
|
||||
test-sim-nondeterminism:
|
||||
@echo "Running non-determinism test..."
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout=30m -tags='sims' -run TestAppStateDeterminism \
|
||||
-NumBlocks=100 -BlockSize=200 -Period=0
|
||||
|
||||
# Requires an exported plugin. See store/streaming/README.md for documentation.
|
||||
#
|
||||
# example:
|
||||
# export COSMOS_SDK_ABCI_V1=<path-to-plugin-binary>
|
||||
# make test-sim-nondeterminism-streaming
|
||||
#
|
||||
# Using the built-in examples:
|
||||
# export COSMOS_SDK_ABCI_V1=<path-to-sdk>/store/streaming/abci/examples/file/file
|
||||
# make test-sim-nondeterminism-streaming
|
||||
test-sim-nondeterminism-streaming:
|
||||
@echo "Running non-determinism-streaming test..."
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout=30m -tags='sims' -run TestAppStateDeterminism \
|
||||
-NumBlocks=100 -BlockSize=200 -Period=0 -EnableStreaming=true
|
||||
|
||||
test-sim-custom-genesis-fast:
|
||||
@echo "Running custom genesis simulation..."
|
||||
@echo "By default, ${HOME}/.simapp/config/genesis.json will be used."
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout=30m -tags='sims' -run TestFullAppSimulation -Genesis=${HOME}/.simapp/config/genesis.json \
|
||||
-NumBlocks=100 -BlockSize=200 -Seed=99 -Period=5 -SigverifyTx=false
|
||||
|
||||
test-sim-import-export:
|
||||
@echo "Running application import/export simulation. This may take several minutes..."
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout 20m -tags='sims' -run TestAppImportExport \
|
||||
-NumBlocks=50 -Period=5
|
||||
|
||||
test-sim-after-import:
|
||||
@echo "Running application simulation-after-import. This may take several minutes..."
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout 30m -tags='sims' -run TestAppSimulationAfterImport \
|
||||
-NumBlocks=50 -Period=5
|
||||
|
||||
test-sim-custom-genesis-multi-seed:
|
||||
@echo "Running multi-seed custom genesis simulation..."
|
||||
@echo "By default, ${HOME}/.simapp/config/genesis.json will be used."
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout 30m -tags='sims' -run TestFullAppSimulation -Genesis=${HOME}/.simapp/config/genesis.json \
|
||||
-NumBlocks=400 -Period=5
|
||||
|
||||
test-sim-multi-seed-long:
|
||||
@echo "Running long multi-seed application simulation. This may take awhile!"
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout=1h -tags='sims' -run TestFullAppSimulation \
|
||||
-NumBlocks=500 -Period=50
|
||||
|
||||
test-sim-multi-seed-short:
|
||||
@echo "Running short multi-seed application simulation. This may take awhile!"
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -timeout 30m -tags='sims' -run TestFullAppSimulation \
|
||||
-NumBlocks=50 -Period=10
|
||||
|
||||
.PHONY: \
|
||||
test-sim-nondeterminism \
|
||||
test-sim-nondeterminism-streaming \
|
||||
test-sim-custom-genesis-fast \
|
||||
test-sim-import-export \
|
||||
test-sim-after-import \
|
||||
test-sim-custom-genesis-multi-seed \
|
||||
test-sim-multi-seed-short \
|
||||
test-sim-multi-seed-long
|
||||
|
||||
SIM_NUM_BLOCKS ?= 500
|
||||
SIM_BLOCK_SIZE ?= 200
|
||||
SIM_COMMIT ?= true
|
||||
|
||||
#? test-sim-fuzz: Run fuzz test for simapp
|
||||
test-sim-fuzz:
|
||||
@echo "Running application fuzz for numBlocks=2, blockSize=20. This may take awhile!"
|
||||
#ld flags are a quick fix to make it work on current osx
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -json -tags='sims' -ldflags="-extldflags=-Wl,-ld_classic" -timeout=60m -fuzztime=60m -run=^$$ -fuzz=FuzzFullAppSimulation -GenesisTime=1714720615 -NumBlocks=2 -BlockSize=20
|
||||
|
||||
#? test-sim-benchmark: Run benchmark test for simapp
|
||||
test-sim-benchmark:
|
||||
@echo "Running application benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!"
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -tags='sims' -run=^$$ $(.) -bench ^BenchmarkFullAppSimulation$$ \
|
||||
-NumBlocks=$(SIM_NUM_BLOCKS) -BlockSize=$(SIM_BLOCK_SIZE) -Commit=$(SIM_COMMIT) -Seed=57 -timeout 30m
|
||||
|
||||
# Requires an exported plugin. See store/streaming/README.md for documentation.
|
||||
#
|
||||
# example:
|
||||
# export COSMOS_SDK_ABCI_V1=<path-to-plugin-binary>
|
||||
# make test-sim-benchmark-streaming
|
||||
#
|
||||
# Using the built-in examples:
|
||||
# export COSMOS_SDK_ABCI_V1=<path-to-sdk>/store/streaming/abci/examples/file/file
|
||||
# make test-sim-benchmark-streaming
|
||||
test-sim-benchmark-streaming:
|
||||
@echo "Running application benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!"
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -run=^$$ $(.) -bench ^BenchmarkFullAppSimulation$$ \
|
||||
-NumBlocks=$(SIM_NUM_BLOCKS) -BlockSize=$(SIM_BLOCK_SIZE) -Commit=$(SIM_COMMIT) -timeout 24h -EnableStreaming=true
|
||||
|
||||
test-sim-profile:
|
||||
@echo "Running application benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!"
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -benchmem -run=^$$ $(.) -bench ^BenchmarkFullAppSimulation$$ \
|
||||
-NumBlocks=$(SIM_NUM_BLOCKS) -BlockSize=$(SIM_BLOCK_SIZE) -Commit=$(SIM_COMMIT) -timeout 24h -cpuprofile cpu.out -memprofile mem.out
|
||||
|
||||
# Requires an exported plugin. See store/streaming/README.md for documentation.
|
||||
#
|
||||
# example:
|
||||
# export COSMOS_SDK_ABCI_V1=<path-to-plugin-binary>
|
||||
# make test-sim-profile-streaming
|
||||
#
|
||||
# Using the built-in examples:
|
||||
# export COSMOS_SDK_ABCI_V1=<path-to-sdk>/store/streaming/abci/examples/file/file
|
||||
# make test-sim-profile-streaming
|
||||
test-sim-profile-streaming:
|
||||
@echo "Running application benchmark for numBlocks=$(SIM_NUM_BLOCKS), blockSize=$(SIM_BLOCK_SIZE). This may take awhile!"
|
||||
@cd ${CURRENT_DIR}/simapp && go test -failfast -mod=readonly -benchmem -run=^$$ $(.) -bench ^BenchmarkFullAppSimulation$$ \
|
||||
-NumBlocks=$(SIM_NUM_BLOCKS) -BlockSize=$(SIM_BLOCK_SIZE) -Commit=$(SIM_COMMIT) -timeout 24h -cpuprofile cpu.out -memprofile mem.out -EnableStreaming=true
|
||||
|
||||
.PHONY: test-sim-profile test-sim-benchmark test-sim-fuzz
|
||||
|
||||
benchmark:
|
||||
@go test -mod=readonly -bench=. $(PACKAGES_NOSIMULATION)
|
||||
.PHONY: benchmark
|
||||
|
||||
###############################################################################
|
||||
### Linting ###
|
||||
###############################################################################
|
||||
|
||||
golangci_version=v2.1.6
|
||||
|
||||
lint-install:
|
||||
@echo "--> Installing golangci-lint $(golangci_version)"
|
||||
@go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(golangci_version)
|
||||
|
||||
lint:
|
||||
@echo "--> Running linter on all files"
|
||||
$(MAKE) lint-install
|
||||
@./scripts/go-lint-all.bash --timeout=15m
|
||||
|
||||
lint-fix:
|
||||
@echo "--> Running linter"
|
||||
$(MAKE) lint-install
|
||||
@./scripts/go-lint-all.bash --fix
|
||||
|
||||
.PHONY: lint lint-fix
|
||||
|
||||
###############################################################################
|
||||
### Protobuf ###
|
||||
###############################################################################
|
||||
|
||||
protoVer=0.16.0
|
||||
protoImageName=ghcr.io/cosmos/proto-builder:$(protoVer)
|
||||
protoImage=$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(protoImageName)
|
||||
|
||||
proto-all: proto-format proto-lint proto-gen
|
||||
|
||||
proto-gen:
|
||||
@echo "Generating Protobuf files"
|
||||
@$(protoImage) sh ./scripts/protocgen.sh
|
||||
|
||||
proto-swagger-gen:
|
||||
@echo "Generating Protobuf Swagger"
|
||||
@$(protoImage) sh ./scripts/protoc-swagger-gen.sh
|
||||
|
||||
proto-format:
|
||||
@$(protoImage) find ./ -name "*.proto" -exec clang-format -i {} \;
|
||||
|
||||
proto-lint:
|
||||
@$(protoImage) buf lint --error-format=json
|
||||
|
||||
proto-check-breaking:
|
||||
@$(protoImage) buf breaking --against $(HTTPS_GIT)#branch=main
|
||||
|
||||
CMT_URL = https://raw.githubusercontent.com/cometbft/cometbft/v0.38.0/proto/tendermint
|
||||
|
||||
CMT_CRYPTO_TYPES = proto/tendermint/crypto
|
||||
CMT_ABCI_TYPES = proto/tendermint/abci
|
||||
CMT_TYPES = proto/tendermint/types
|
||||
CMT_VERSION = proto/tendermint/version
|
||||
CMT_LIBS = proto/tendermint/libs/bits
|
||||
CMT_P2P = proto/tendermint/p2p
|
||||
|
||||
proto-update-deps:
|
||||
@echo "Updating Protobuf dependencies"
|
||||
|
||||
@mkdir -p $(CMT_ABCI_TYPES)
|
||||
@curl -sSL $(CMT_URL)/abci/types.proto > $(CMT_ABCI_TYPES)/types.proto
|
||||
|
||||
@mkdir -p $(CMT_VERSION)
|
||||
@curl -sSL $(CMT_URL)/version/types.proto > $(CMT_VERSION)/types.proto
|
||||
|
||||
@mkdir -p $(CMT_TYPES)
|
||||
@curl -sSL $(CMT_URL)/types/types.proto > $(CMT_TYPES)/types.proto
|
||||
@curl -sSL $(CMT_URL)/types/evidence.proto > $(CMT_TYPES)/evidence.proto
|
||||
@curl -sSL $(CMT_URL)/types/params.proto > $(CMT_TYPES)/params.proto
|
||||
@curl -sSL $(CMT_URL)/types/validator.proto > $(CMT_TYPES)/validator.proto
|
||||
@curl -sSL $(CMT_URL)/types/block.proto > $(CMT_TYPES)/block.proto
|
||||
|
||||
@mkdir -p $(CMT_CRYPTO_TYPES)
|
||||
@curl -sSL $(CMT_URL)/crypto/proof.proto > $(CMT_CRYPTO_TYPES)/proof.proto
|
||||
@curl -sSL $(CMT_URL)/crypto/keys.proto > $(CMT_CRYPTO_TYPES)/keys.proto
|
||||
|
||||
@mkdir -p $(CMT_LIBS)
|
||||
@curl -sSL $(CMT_URL)/libs/bits/types.proto > $(CMT_LIBS)/types.proto
|
||||
|
||||
@mkdir -p $(CMT_P2P)
|
||||
@curl -sSL $(CMT_URL)/p2p/types.proto > $(CMT_P2P)/types.proto
|
||||
|
||||
$(DOCKER) run --rm -v $(CURDIR)/proto:/workspace --workdir /workspace $(protoImageName) buf mod update
|
||||
|
||||
.PHONY: proto-all proto-gen proto-swagger-gen proto-format proto-lint proto-check-breaking proto-update-deps
|
||||
|
||||
###############################################################################
|
||||
### Localnet ###
|
||||
###############################################################################
|
||||
|
||||
localnet-build-env:
|
||||
$(MAKE) -C contrib/images simd-env
|
||||
localnet-build-dlv:
|
||||
$(MAKE) -C contrib/images simd-dlv
|
||||
|
||||
localnet-build-nodes:
|
||||
$(DOCKER) run --rm -v $(CURDIR)/.testnets:/data cosmossdk/simd \
|
||||
testnet init-files --validator-count 4 -o /data --starting-ip-address 192.168.10.2 --keyring-backend=test
|
||||
docker compose up -d
|
||||
|
||||
localnet-stop:
|
||||
docker compose down
|
||||
|
||||
# localnet-start will run a 4-node testnet locally. The nodes are
|
||||
# based off the docker images in: ./contrib/images/simd-env
|
||||
localnet-start: localnet-stop localnet-build-env localnet-build-nodes
|
||||
|
||||
# localnet-debug will run a 4-node testnet locally in debug mode
|
||||
# you can read more about the debug mode here: ./contrib/images/simd-dlv/README.md
|
||||
localnet-debug: localnet-stop localnet-build-dlv localnet-build-nodes
|
||||
|
||||
.PHONY: localnet-start localnet-stop localnet-debug localnet-build-env localnet-build-dlv localnet-build-nodes
|
||||
|
||||
test-system: build-v50 build
|
||||
mkdir -p ./tests/systemtests/binaries/
|
||||
cp $(BUILDDIR)/simd ./tests/systemtests/binaries/
|
||||
mkdir -p ./tests/systemtests/binaries/v0.50
|
||||
mv $(BUILDDIR)/simdv50 ./tests/systemtests/binaries/v0.50/simd
|
||||
$(MAKE) -C tests/systemtests test
|
||||
.PHONY: test-system
|
||||
|
||||
# build-v50 checks out the v0.50.x branch, builds the binary, and renames it to simdv50.
|
||||
build-v50:
|
||||
@echo "Starting v50 build process..."
|
||||
git_status=$$(git status --porcelain) && \
|
||||
has_changes=false && \
|
||||
if [ -n "$$git_status" ]; then \
|
||||
echo "Stashing uncommitted changes..." && \
|
||||
git stash push -m "Temporary stash for v50 build" && \
|
||||
has_changes=true; \
|
||||
else \
|
||||
echo "No changes to stash"; \
|
||||
fi && \
|
||||
echo "Saving current reference..." && \
|
||||
CURRENT_REF=$$(git symbolic-ref --short HEAD 2>/dev/null || git rev-parse HEAD) && \
|
||||
echo "Checking out release branch..." && \
|
||||
git checkout release/v0.50.x && \
|
||||
echo "Building v50 binary..." && \
|
||||
make build && \
|
||||
mv build/simd build/simdv50 && \
|
||||
echo "Returning to original branch..." && \
|
||||
if [ "$$CURRENT_REF" = "HEAD" ]; then \
|
||||
git checkout $$(git rev-parse HEAD); \
|
||||
else \
|
||||
git checkout $$CURRENT_REF; \
|
||||
fi && \
|
||||
if [ "$$has_changes" = "true" ]; then \
|
||||
echo "Reapplying stashed changes..." && \
|
||||
git stash pop || echo "Warning: Could not pop stash, your changes may be in the stash list"; \
|
||||
else \
|
||||
echo "No changes to reapply"; \
|
||||
fi
|
||||
.PHONY: build-v50
|
||||
@@ -2,7 +2,7 @@
|
||||
<h1> Cosmos SDK </h1>
|
||||
</div>
|
||||
|
||||

|
||||

|
||||
|
||||
<div align="center">
|
||||
<a href="https://github.com/cosmos/cosmos-sdk/blob/main/LICENSE">
|
||||
@@ -14,95 +14,55 @@
|
||||
<a href="https://goreportcard.com/report/github.com/cosmos/cosmos-sdk">
|
||||
<img alt="Go report card" src="https://goreportcard.com/badge/github.com/cosmos/cosmos-sdk" />
|
||||
</a>
|
||||
<a href="https://sonarcloud.io/summary/overall?id=cosmos_cosmos-sdk">
|
||||
<img alt="Code Coverage" src="https://sonarcloud.io/api/project_badges/measure?project=cosmos_cosmos-sdk&metric=coverage" />
|
||||
</a>
|
||||
<a href="https://sonarcloud.io/summary/overall?id=cosmos_cosmos-sdk">
|
||||
<img alt="SonarCloud Analysis" src="https://sonarcloud.io/api/project_badges/measure?project=cosmos_cosmos-sdk&metric=alert_status">
|
||||
</a>
|
||||
</div>
|
||||
<div align="center">
|
||||
<a href="https://discord.gg/interchain">
|
||||
<a href="https://discord.gg/AzefAFd">
|
||||
<img alt="Discord" src="https://img.shields.io/discord/669268347736686612.svg" />
|
||||
</a>
|
||||
<a href="https://sourcegraph.com/github.com/cosmos/cosmos-sdk?badge">
|
||||
<img alt="Imported by" src="https://sourcegraph.com/github.com/cosmos/cosmos-sdk/-/badge.svg" />
|
||||
</a>
|
||||
<img alt="Sims" src="https://github.com/cosmos/cosmos-sdk/workflows/Sims/badge.svg" />
|
||||
<img alt="Lint Status" src="https://github.com/cosmos/cosmos-sdk/workflows/Lint/badge.svg" />
|
||||
<img alt="Lint Satus" src="https://github.com/cosmos/cosmos-sdk/workflows/Lint/badge.svg" />
|
||||
</div>
|
||||
|
||||
The Cosmos SDK is a framework for building blockchain applications. [CometBFT (BFT Consensus)](https://github.com/cometbft/cometbft) and the Cosmos SDK are written in the Go programming language. Cosmos SDK is used to build [Gaia](https://github.com/cosmos/gaia), the implementation of the Cosmos Hub.
|
||||
|
||||
**Note**: Always use the latest maintained [Go](https://go.dev/dl) version for building Cosmos SDK applications.
|
||||
**WARNING**: The Cosmos SDK has mostly stabilized, but we are still making some breaking changes.
|
||||
|
||||
**Note**: We advise to always use the latest maintained [Go](https://go.dev/dl) version for building Cosmos SDK applications.
|
||||
|
||||
## Quick Start
|
||||
|
||||
To learn how the Cosmos SDK works from a high-level perspective, see the Cosmos SDK [High-Level Intro](https://docs.cosmos.network/v0.50/learn/intro/overview).
|
||||
To learn how the Cosmos SDK works from a high-level perspective, see the Cosmos SDK [High-Level Intro](https://docs.cosmos.network/main/intro/overview).
|
||||
|
||||
If you want to get started quickly and learn how to build on top of Cosmos SDK, visit [Cosmos SDK Tutorials](https://tutorials.cosmos.network). You can also fork the tutorial's repository to get started building your own Cosmos SDK application.
|
||||
|
||||
For more information, see the [Cosmos SDK Documentation](https://docs.cosmos.network).
|
||||
|
||||
## Modules
|
||||
|
||||
The Cosmos SDK maintains a set of modules that can be included in your blockchain application. For more information
|
||||
on modules, see our [introduction doc](./x/README.md).
|
||||
|
||||
## Contributing
|
||||
|
||||
See [CONTRIBUTING.md](./CONTRIBUTING.md) for details on how to contribute and participate in our [dev calls](./CONTRIBUTING.md#teams-dev-calls).
|
||||
If you want to follow the updates or learn more about the latest design then join our [Discord](https://discord.gg/interchain).
|
||||
If you want to follow the updates or learn more about the latest design then join our [Discord](https://discord.com/invite/cosmosnetwork).
|
||||
|
||||
## Tools and Frameworks
|
||||
|
||||
The Cosmos ecosystem is vast.
|
||||
[Awesome Cosmos](https://github.com/cosmos/awesome-cosmos) is a community-curated list of notable frameworks, modules and tools.
|
||||
|
||||
### Cosmos Hub Mainnet
|
||||
|
||||
The Cosmos Hub application, `gaia`, has its own [cosmos/gaia repository](https://github.com/cosmos/gaia). Go there to join the Cosmos Hub mainnet and more.
|
||||
|
||||
### Inter-Blockchain Communication (IBC)
|
||||
|
||||
The IBC module for the Cosmos SDK has its own [cosmos/ibc-go repository](https://github.com/cosmos/ibc-go). Go there to build and integrate with the IBC module.
|
||||
|
||||
### Version Matrix
|
||||
|
||||
The version matrix below shows which versions of the Cosmos SDK, modules and libraries are compatible with each other.
|
||||
|
||||
#### Core Dependencies
|
||||
|
||||
Core dependencies are the core libraries that an application may depend on.
|
||||
Core dependencies not mentioned here as compatible across all maintained SDK versions.
|
||||
See an exhaustive list of core dependencies at [cosmossdk.io](https://cosmossdk.io).
|
||||
|
||||
| Version | 0.52.z | 0.50.z | 0.47.z |
|
||||
|--------------------------|-----------|----------------|---------|
|
||||
| cosmossdk.io/core | 1.y.z | 0.11.z | 0.5.z |
|
||||
| cosmossdk.io/api | 0.8.z | 0.7.z | 0.3.z |
|
||||
| cosmossdk.io/x/tx | 1.y.z | < 1.y.z | N/A |
|
||||
| cosmossdk.io/store | >= 1.10.z | 1.0.0 >= 1.9.z | N/A |
|
||||
| cosmossdk.io/collections | 1.y.z | < 1.y.z | < 1.y.z |
|
||||
|
||||
#### Module Dependencies
|
||||
|
||||
Module Dependencies are the modules that an application may depend on and which version of the Cosmos SDK they are compatible with.
|
||||
|
||||
> Note: The version table only goes back to 0.50.x, as modules started to become modular with 0.50.z.
|
||||
> X signals that the module was not spun out into its own go.mod file.
|
||||
> N/A signals that the module was not available in the Cosmos SDK at that time.
|
||||
|
||||
| Cosmos SDK | 0.52.z | 0.50.z |
|
||||
|-----------------------------|--------|--------|
|
||||
| cosmossdk.io/x/accounts | 0.2.z | N/A |
|
||||
| cosmossdk.io/x/bank | 0.2.z | X |
|
||||
| cosmossdk.io/x/circuit | 0.2.z | 0.1.z |
|
||||
| cosmossdk.io/x/consensus | 0.2.z | X |
|
||||
| cosmossdk.io/x/distribution | 0.2.z | X |
|
||||
| cosmossdk.io/x/epochs | 0.2.z | N/A |
|
||||
| cosmossdk.io/x/evidence | 0.2.z | 0.1.z |
|
||||
| cosmossdk.io/x/feegrant | 0.2.z | 0.1.z |
|
||||
| cosmossdk.io/x/gov | 0.2.z | X |
|
||||
| cosmossdk.io/x/group | 0.2.z | X |
|
||||
| cosmossdk.io/x/mint | 0.2.z | X |
|
||||
| cosmossdk.io/x/nft | 0.2.z | 0.1.z |
|
||||
| cosmossdk.io/x/protocolpool | 0.2.z | N/A |
|
||||
| cosmossdk.io/x/slashing | 0.2.z | X |
|
||||
| cosmossdk.io/x/staking | 0.2.z | X |
|
||||
| cosmossdk.io/x/upgrade | 0.2.z | 0.1.z |
|
||||
|
||||
## Disambiguation
|
||||
|
||||
This Cosmos SDK project is not related to the [React-Cosmos](https://github.com/react-cosmos/react-cosmos) project (yet). Many thanks to Evan Coury and Ovidiu (@skidding) for this Github organization name. As per our agreement, this disambiguation notice will stay here.
|
||||
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
# Releases
|
||||
|
||||
The Cosmos-SDK follows both [0ver](https://0ver.org/) and [Semver](https://semver.org/). While this is confusing let's break it down: 0ver is used for the main Cosmos-SDK dependency (`github.com/cosmos/cosmos-sdk`) and Semver is used for all other dependencies.
|
||||
|
||||
## Semver Dependencies
|
||||
|
||||
Although we adhere to semantic versioning (semver), we have introduced a few modifications to accommodate the unique characteristics of blockchains. One significant divergence is that the major version (Y.x.x) is incremented solely when a consensus-breaking change occurs. On the other hand, the minor version (x.Y.x) is increased when there is a non-consensus-breaking alteration that also results in an incompatible API change. Patch versions will be bumped for all other changes that don't break the API nor Consensus.
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[Change] --> B{Consensus Breaking?}
|
||||
B -->|Yes| C[Increase Major Version]
|
||||
B -->|No| D{API Breaking?}
|
||||
D -->|Yes| E[Increase Minor Version]
|
||||
D -->|No| F[Increase Patch Version]
|
||||
```
|
||||
|
||||
## 0ver Dependencies
|
||||
|
||||
In terms of the Cosmos-SDK dependency, we adhere to a simpler versioning approach known as 0ver. This flow differs from the previous Semver flow. Under this system, when a consensus-breaking change or an API-breaking change occurs, the Cosmos-SDK team increments the minor version (x.Y.x). Conversely, when a non-consensus-breaking change and a non-API-breaking change take place, the team bumps the patch version (x.x.Y).
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
A[Change] --> B{Consensus Breaking?}
|
||||
B -->|Yes| C[Increase Minor Version]
|
||||
B -->|No| D{API Breaking?}
|
||||
D -->|Yes| E[Increase Minor Version]
|
||||
D -->|No| F[Increase Patch Version]
|
||||
```
|
||||
+6
-17
@@ -1,22 +1,11 @@
|
||||
# Cosmos SDK v0.52.0-rc.2 Release Notes
|
||||
# Cosmos SDK v0.53.4 Release Notes
|
||||
|
||||
This second release canditate include bug fixes found during integration.
|
||||
Additionally, it bumps the SDK dependencies to their final release:
|
||||
## 🚀 Highlights
|
||||
|
||||
* cosmossdk.io/core v1.0.0
|
||||
* cosmossdk.io/collection v1.0.0
|
||||
* cosmossdk.io/schema v1.0.0
|
||||
* cosmossdk.io/x/tx v1.0.0
|
||||
This patch release includes minor dependency and non-breaking functionality additions.
|
||||
|
||||
Modules remained stable and nothing has changed since their first release candidate.
|
||||
We encourage chains to already start integrating with this release candidate as APIs are stable.
|
||||
This is fully API and state-compatible with all v0.53.x releases.
|
||||
|
||||
Cosmos SDK Olympus is the first totally modular (as in package) release of the Cosmos SDK. Many components have been extracted in their own modules. Refer to the [version matrix](https://github.com/cosmos/cosmos-sdk?tab=readme-ov-file#version-matrix) to understand what it means.
|
||||
## 📝 Changelog
|
||||
|
||||
A final release is expected in the coming **days**.
|
||||
|
||||
Please see the [CHANGELOG](https://github.com/cosmos/cosmos-sdk/blob/release/v0.52.x/CHANGELOG.md) for an exhaustive list of changes.
|
||||
Refer to the [UPGRADING.md](https://github.com/cosmos/cosmos-sdk/blob/release/v0.52.x/UPGRADING.md) for upgrading your application.
|
||||
|
||||
Full Commit History: https://github.com/cosmos/cosmos-sdk/compare/v0.52.0-rc.1...v0.52.0-rc.
|
||||
`v0.50..v0.52`: https://github.com/cosmos/cosmos-sdk/compare/release/v0.50.x...release/v0.52.x
|
||||
Check out the [changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.53.4/CHANGELOG.md) for an exhaustive list of changes or [compare changes](https://github.com/cosmos/cosmos-sdk/compare/v0.53.3...v0.53.4) from the last release.
|
||||
+22
-43
@@ -20,7 +20,7 @@ v1.0.0-beta1 → v1.0.0-beta2 → ... → v1.0.0-rc1 → v1.0.0-rc2 → ... →
|
||||
* perform functional tests
|
||||
* add more tests
|
||||
* release new beta version as the bugs are discovered and fixed.
|
||||
* After the team feels that the `main` works fine we create a `release/vY` branch (going forward known as release branch), where `Y` is the version number, with the patch part substituted to `x` (eg: 0.42.x, 1.0.x). Ensure the release branch is protected so that pushes against the release branch are permitted only by the release manager or release coordinator.
|
||||
* After the team feels that the `main` works fine we create a `release/vY` branch (going forward known a release branch), where `Y` is the version number, with the patch part substituted to `x` (eg: 0.42.x, 1.0.x). Ensure the release branch is protected so that pushes against the release branch are permitted only by the release manager or release coordinator.
|
||||
* **PRs targeting this branch can be merged _only_ when exceptional circumstances arise**
|
||||
* update the GitHub mergify integration by adding instructions for automatically backporting commits from `main` to the `release/vY` using the `backport/Y` label.
|
||||
* In the release branch prepare a new version section in the `CHANGELOG.md`
|
||||
@@ -29,12 +29,11 @@ v1.0.0-beta1 → v1.0.0-beta2 → ... → v1.0.0-rc1 → v1.0.0-rc2 → ... →
|
||||
* Create release notes, in `RELEASE_NOTES.md`, highlighting the new features and changes in the version. This is needed so the bot knows which entries to add to the release page on GitHub.
|
||||
* Additionally verify that the `UPGRADING.md` file is up to date and contains all the necessary information for upgrading to the new version.
|
||||
* Remove GitHub workflows that should not be in the release branch
|
||||
* `test.yml`: All standalone go module tests should be removed (expect `./simapp`, and `./tests`, SDK and modules tests).
|
||||
* `deploy-docs.yml`: must be removed to avoid duplicate documentation deployment.
|
||||
* `test.yml`: All standalone go module tests should be removed (expect `./simapp`, and `./tests` and SDK tests).
|
||||
* These packages are tracked and tested directly on main.
|
||||
* `build.yml`: Only the SDK and SimApp need to be built on release branches.
|
||||
* `build.yml`: Only the SDK and SimApp needs to be built on release branches.
|
||||
* Tooling is tracked and tested directly on main.
|
||||
* This does not apply for tooling depending on the SDK (e.g. `confix`)
|
||||
* Update `Dockerfile` to not use latest go.mod and go.sum files.
|
||||
* Create a new annotated git tag for a release candidate (eg: `git tag -a v1.1.0-rc1`) in the release branch.
|
||||
* from this point we unfreeze main.
|
||||
* the SDK teams collaborate and do their best to run testnets in order to validate the release.
|
||||
@@ -46,7 +45,12 @@ v1.0.0-beta1 → v1.0.0-beta2 → ... → v1.0.0-rc1 → v1.0.0-rc2 → ... →
|
||||
* create a new annotated git tag (eg `git -a v1.1.0`) in the release branch.
|
||||
* Create a GitHub release.
|
||||
|
||||
See the [Releases document](./RELEASES.md) for more information on the versioning scheme.
|
||||
Following _semver_ philosophy, point releases after `v1.0`:
|
||||
|
||||
* must not break API
|
||||
* can break consensus
|
||||
|
||||
Before `v1.0`, point release can break both point API and consensus.
|
||||
|
||||
## Patch Release Procedure
|
||||
|
||||
@@ -66,7 +70,7 @@ After the release branch has all commits required for the next patch release:
|
||||
|
||||
* Update `CHANGELOG.md` and `RELEASE_NOTES.md` (if applicable).
|
||||
* Create a new annotated git tag (eg `git -a v1.1.0`) in the release branch.
|
||||
* If the release is a submodule update, first go to the submodule folder and name the tag prepending the path to the version:
|
||||
* If the release is a submodule update, first go the submodule folder and name the tag prepending the path to the version:
|
||||
`cd core && git -a core/v1.1.0` or `cd tools/cosmovisor && git -a tools/cosmovisor/v1.4.0`
|
||||
* Create a GitHub release (if applicable).
|
||||
|
||||
@@ -77,8 +81,8 @@ Major Release series is maintained in compliance with the **Stable Release Polic
|
||||
|
||||
Only the following major release series have a stable release status:
|
||||
|
||||
* **0.47** is the previous major release and is supported until the release of **0.52.0**. A fairly strict **bugfix-only** rule applies to pull requests that are requested to be included into a not latest stable point-release.
|
||||
* **0.50** is the last major release and is supported until the release of **0.54.0**.
|
||||
* **0.46** is the previous major release and is supported until the release of **0.50.0**. A fairly strict **bugfix-only** rule applies to pull requests that are requested to be included into a not latest stable point-release.
|
||||
* **0.47** is the last major release and is supported until the release of **0.51.0**.
|
||||
|
||||
The SDK team maintains the last two major releases, any other major release is considered to have reached end of life.
|
||||
The SDK team will not backport any bug fixes to releases that are not supported.
|
||||
@@ -138,7 +142,7 @@ See the SDK's policy on migrations [here](https://docs.cosmos.network/main/migra
|
||||
|
||||
* State machine changes.
|
||||
* Breaking changes in Protobuf definitions, as specified in [ADR-044](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-044-protobuf-updates-guidelines.md).
|
||||
* Changes that introduce API breakages (e.g. public functions and interfaces removal/renaming).
|
||||
* Changes that introduces API breakages (e.g. public functions and interfaces removal/renaming).
|
||||
* Client-breaking changes in gRPC and HTTP request and response types.
|
||||
* CLI-breaking changes.
|
||||
* Cosmetic fixes, such as formatting or linter warning fixes.
|
||||
@@ -159,7 +163,7 @@ Pull requests that fix bugs and add features that fall in the following categori
|
||||
As rule of thumb, the following changes will **NOT** be automatically accepted into stable point-releases:
|
||||
|
||||
* **State machine changes**.
|
||||
* **Protobug-breaking changes**, as specified in [ADR-044](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-044-protobuf-updates-guidelines.md).
|
||||
* **Protobug-breaking changes**, as specified in [ADR-044](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-044-protobuf-updates- guidelines.md).
|
||||
* **Client-breaking changes**, i.e. changes that prevent gRPC, HTTP and RPC clients to continue interacting with the node without any change.
|
||||
* **API-breaking changes**, i.e. changes that prevent client applications to _build without modifications_ to the client application's source code.
|
||||
* **CLI-breaking changes**, i.e. changes that require usage changes for CLI users.
|
||||
@@ -182,7 +186,7 @@ As rule of thumb, the following changes will **NOT** be automatically accepted i
|
||||
```md
|
||||
#### Impact
|
||||
|
||||
Brief explanation of the effects of the bug on users and a justification for backporting the fix to the stable release.
|
||||
Brief xplanation of the effects of the bug on users and a justification for backporting the fix to the stable release.
|
||||
|
||||
#### Test Case
|
||||
|
||||
@@ -190,7 +194,7 @@ Detailed instructions on how to reproduce the bug on Stargate's most recently pu
|
||||
|
||||
#### Regression Potential
|
||||
|
||||
Explanation of how regressions might manifest - even if it's unlikely.
|
||||
Explanation on how regressions might manifest - even if it's unlikely.
|
||||
It is assumed that stable release fixes are well-tested and they come with a low risk of regressions.
|
||||
It's crucial to make the effort of thinking about what could happen in case a regression emerges.
|
||||
```
|
||||
@@ -201,7 +205,7 @@ The **Stable Release Managers** evaluate and approve or reject updates and backp
|
||||
according to the [stable release policy](#stable-release-policy) and [release procedure](#major-release-procedure).
|
||||
Decisions are made by consensus.
|
||||
|
||||
Their responsibilities include:
|
||||
Their responsibilites include:
|
||||
|
||||
* Driving the Stable Release Exception process.
|
||||
* Approving/rejecting proposed changes to a stable release series.
|
||||
@@ -230,40 +234,15 @@ Note: The Cosmos SDK team is in an active process of limiting Go modules that de
|
||||
The Cosmos SDK team should strive to release modules that depend on the Cosmos SDK at the same time or soon after a major version Cosmos SDK itself.
|
||||
Those modules can be considered as part of the Cosmos SDK, but features and improvements are released at a different cadence.
|
||||
|
||||
* When a module is supposed to be used in an app (e.g `x/` modules), due to the dependency on the SDK, tagging a new version of a module must be done from a Cosmos SDK release branch. A compatibility matrix must be provided in the `README.md` of that module with the corresponding versions.
|
||||
* When a module is supposed to be used in an app (e.g `x/` modules), due to the dependency on the SDK, tagging a new version of a module must be done from a Cosmos SDK release branch. A compability matrix must be provided in the `README.md` of that module with the corresponding versions.
|
||||
* Modules that import the SDK but do not need to be imported in an app (`e.g. cosmovisor`) must be released from the `main` branch and follow the process defined below.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> A module depending on a non stabilized version of `github.com/cosmos/cosmos-sdk` (any version prior to the removal of baseapp, runtime, server) SHOULD NOT be tagged following semver.
|
||||
> For instance, modules are still using 0ver until the main `github.com/cosmos/cosmos-sdk` has stabilized.
|
||||
|
||||
### Modules that do not depend on the Cosmos SDK
|
||||
|
||||
Modules that do not depend on the Cosmos SDK can be released at any time from the `main` branch of the Cosmos SDK repository.
|
||||
|
||||
## Go Monorepo Branching Strategy
|
||||
#### Branches For Go Modules
|
||||
|
||||
The Cosmos SDK uses a monorepo structure with multiple Go modules. Some components are tagged from the main branch, while others are tagged from release branches, as described above.
|
||||
Branches that go modules are released from:
|
||||
|
||||
Here's the strategy for managing this structure:
|
||||
|
||||
All modules that do not depend on the Cosmos SDK and tagged from main in a release branch **must be removed from the release branch**.
|
||||
|
||||
There are two exceptions to this rule, due to the stabilization of core v1: `cosmossdk.io/x/tx` and `cosmossdk.io/store` are still tagged from the `release/v0.50.x` branch for `v0.50.x` releases.
|
||||
|
||||
### Rationale
|
||||
|
||||
This strategy provides several benefits:
|
||||
|
||||
1. Clean separation: Release branches only contain components that are actually released from those branches.
|
||||
2. Avoid confusion: Prevents having outdated versions of standalone go modules in release branches.
|
||||
3. Accurate representation: The release branch accurately represents what's being released from that branch.
|
||||
4. Consistency: Aligns with the tagging strategy - components tagged from main aren't in release branches, and vice versa.
|
||||
|
||||
### Additional Considerations
|
||||
|
||||
* When backporting changes, be aware that standalone go modules changes will not be present in release branches.
|
||||
* To reference the full state of the SDK at the time of branching, consider creating a separate tag on main at the point where each release branch is created.
|
||||
* Ensure thorough testing of the release branch structure to avoid any integration issues.
|
||||
|
||||
This branching strategy helps maintain a clear separation between components tagged from main and those tagged from release branches, while ensuring that release branches accurately represent the state of components that depend on the SDK.
|
||||
* Store v1 is released from `release/v0.50.x` branch.
|
||||
|
||||
+7
-7
@@ -2,7 +2,7 @@
|
||||
|
||||
Welcome to the Cosmos SDK's team roadmap.
|
||||
|
||||
> This document is meant to help the team get feedback on the proposed work and for others to follow where we stand in our process. This will be a living document updated on a regular basis. If you'd like to participate in any workscope or would like to suggest another feature please reach out to [Marko](mailto:marko@binary.builders) or [Sam](mailto:sam@binary.builders) and we will schedule a call to discuss the feature request.
|
||||
> This document is meant to help the team get feedback on the proposed work and for others to follow where we stand in our process. This will be a living document updated on a regular basis. If you'd like to participate in any workscope or would like to suggest another feature please reach out to [Marko](marko@binary.builders) or [Sam](sam@binary.builders) and we will schedule a call to discuss the feature request.
|
||||
|
||||
|
||||
## Q1
|
||||
@@ -45,7 +45,7 @@ Welcome to the Cosmos SDK's team roadmap.
|
||||
* Migrating 3 modules to use collections would help in show users how to migrate users
|
||||
* [ ] [Release ORM v1](https://github.com/cosmos/cosmos-sdk/issues/11088)
|
||||
* [x] [Sign mode textual](https://github.com/cosmos/cosmos-sdk/issues/11970)
|
||||
* Sign mode textual has been under construction for 2 quarters now, this quarter the goal is to move towards v1 and potentially line up an audit before final release.
|
||||
* Sign mode textual has been under construction for 2 quarters now, this quarter the goal is to move towards v1 and potentially line up a audit before final release.
|
||||
* [x] Core API
|
||||
* [Merge ADR for Core API](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-063-core-module-api.md)
|
||||
* Migrate three modules to use core api
|
||||
@@ -66,7 +66,7 @@ Welcome to the Cosmos SDK's team roadmap.
|
||||
### Testing
|
||||
|
||||
* [x] [integration testing framework](https://github.com/cosmos/cosmos-sdk/issues/14145)
|
||||
* design and merge an integration testing framework.
|
||||
* design and merge a integration testing framework.
|
||||
* The goals of the framework would that a module only needs to depend on modules that it depends on outside of testing, not all modules in the sdk like today.
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ Issue: https://github.com/cosmos/iavl/issues/548
|
||||
* Users should be able to pick between delayed execution and optimistic
|
||||
* RFC/ADR is merged
|
||||
* Implementation started.
|
||||
* Progress:
|
||||
* Progess:
|
||||
* On pause till ABCI 2.0 is merged
|
||||
|
||||
### Client UX
|
||||
@@ -159,14 +159,14 @@ Issue: https://github.com/cosmos/iavl/issues/548
|
||||
* KvStoreService is being added to all modules
|
||||
* [ ] [Remove global bech32](https://github.com/cosmos/cosmos-sdk/issues/13140)
|
||||
* Objective:
|
||||
* Deprecate global bech32 setting
|
||||
* Depreacte global bech32 setting
|
||||
* Progress:
|
||||
* All modules except bank use the `address.Codec`
|
||||
* [ ] Make sdk.Msg only be `proto.message`
|
||||
* Objectives:
|
||||
* Reduce sdk.Msg to only be proto.message
|
||||
* Reduce boilerplate in `msgs.go`
|
||||
* Progress:
|
||||
* Progess:
|
||||
* [x] [Make ValidateBasic Optional](https://github.com/cosmos/cosmos-sdk/issues/15648)
|
||||
* [ ] [Make GetSigners be optional](https://github.com/cosmos/cosmos-sdk/issues/15677)
|
||||
* [ ] Remove GetsignBytes for legacy amino encoding
|
||||
@@ -200,7 +200,7 @@ Issue: https://github.com/cosmos/iavl/issues/548
|
||||
|
||||
* [ ] [Invariant Checking](https://github.com/cosmos/cosmos-sdk/issues/15706)
|
||||
* Objective:
|
||||
* Design a new system for checking invariants
|
||||
* Design a new system for checking invairants
|
||||
* Implement changes
|
||||
* Audit current invariants
|
||||
* Progress:
|
||||
|
||||
+19
-9
@@ -21,17 +21,26 @@ the vulnerability can be reproduced on either one of those.
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
| Reporting methods | Bounty eligible |
|
||||
|---------------------------------------------------------------|-----------------|
|
||||
| [HackerOne program][h1] | yes |
|
||||
| [security@interchain.io](mailto:security@interchain.io) | no |
|
||||
| Reporting methods |
|
||||
|---------------------------------------------------------------|
|
||||
| [GitHub Private Vulnerability Reporting][gh-private-advisory] |
|
||||
| [HackerOne bug bounty program][h1] |
|
||||
|
||||
Issues identified in this repository may be eligible for a [bug bounty][h1]. For your report to be bounty
|
||||
eligible it must be reported exclusively through the [HackerOne Bug Bounty][h1].
|
||||
All security vulnerabilities can be reported under GitHub's [Private
|
||||
vulnerability reporting][gh-private-advisory] system. This will open a private
|
||||
issue for the developers. Try to fill in as much of the questions as possible.
|
||||
If you are not familiar with the CVSS system for assessing vulnerabilities, just
|
||||
use the Low/High/Critical severity ratings. A partially filled in report for a
|
||||
critical vulnerability is still better than no report at all.
|
||||
|
||||
If you do not wish to be eligible for a bounty or do not want to use the HackerOne platform to report an
|
||||
issue, please send your report via email to [security@interchain.io](mailto:security@interchain.io) with
|
||||
reproduction steps and details of the issue.
|
||||
Vulnerabilities associated with the **Go, Rust or Protobuf code** of the
|
||||
repository may be eligible for a [bug bounty][h1]. Please see the bug bounty
|
||||
page for more details on submissions and rewards. If you think the vulnerability
|
||||
is eligible for a payout, **report on HackerOne first**.
|
||||
|
||||
Vulnerabilities in services and their source codes (JavaScript, web page, Google
|
||||
Workspace) are not in scope for the bug bounty program, but they are welcome to
|
||||
be reported in GitHub.
|
||||
|
||||
### Guidelines
|
||||
|
||||
@@ -63,6 +72,7 @@ If you follow these guidelines when reporting an issue to us, we commit to:
|
||||
* See [EXAMPLES.md] for some of the examples that we are interested in for the
|
||||
bug bounty program.
|
||||
|
||||
[gh-private-advisory]: /../../security/advisories/new
|
||||
[h1]: https://hackerone.com/cosmos
|
||||
[TIMELINE.md]: https://github.com/cosmos/security/blob/main/TIMELINE.md
|
||||
[DISCLOSURE.md]: https://github.com/cosmos/security/blob/main/DISCLOSURE.md
|
||||
|
||||
@@ -0,0 +1,503 @@
|
||||
# Upgrade Guide
|
||||
|
||||
This document provides a full guide for upgrading a Cosmos SDK chain from `v0.50.x` to `v0.53.x`.
|
||||
|
||||
This guide includes one **required** change and three **optional** features.
|
||||
|
||||
After completing this guide, applications will have:
|
||||
|
||||
- The `x/protocolpool` module
|
||||
- The `x/epochs` module
|
||||
- Unordered Transaction support
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [App Wiring Changes (REQUIRED)](#app-wiring-changes-required)
|
||||
- [Adding ProtocolPool Module (OPTIONAL)](#adding-protocolpool-module-optional)
|
||||
- [ProtocolPool Manual Wiring](#protocolpool-manual-wiring)
|
||||
- [ProtocolPool DI Wiring](#protocolpool-di-wiring)
|
||||
- [Adding Epochs Module (OPTIONAL)](#adding-epochs-module-optional)
|
||||
- [Epochs Manual Wiring](#epochs-manual-wiring)
|
||||
- [Epochs DI Wiring](#epochs-di-wiring)
|
||||
- [Enable Unordered Transactions (OPTIONAL)](#enable-unordered-transactions-optional)
|
||||
- [Upgrade Handler](#upgrade-handler)
|
||||
|
||||
## App Wiring Changes **REQUIRED**
|
||||
|
||||
The `x/auth` module now contains a `PreBlocker` that _must_ be set in the module manager's `SetOrderPreBlockers` method.
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderPreBlockers(
|
||||
upgradetypes.ModuleName,
|
||||
authtypes.ModuleName, // NEW
|
||||
)
|
||||
```
|
||||
|
||||
## Adding ProtocolPool Module **OPTIONAL**
|
||||
|
||||
:::warning
|
||||
|
||||
Using an external community pool such as `x/protocolpool` will cause the following `x/distribution` handlers to return an error:
|
||||
|
||||
**QueryService**
|
||||
|
||||
- `CommunityPool`
|
||||
|
||||
**MsgService**
|
||||
|
||||
- `CommunityPoolSpend`
|
||||
- `FundCommunityPool`
|
||||
|
||||
If your services depend on this functionality from `x/distribution`, please update them to use either `x/protocolpool` or your custom external community pool alternatives.
|
||||
|
||||
:::
|
||||
|
||||
### Manual Wiring
|
||||
|
||||
Import the following:
|
||||
|
||||
```go
|
||||
import (
|
||||
// ...
|
||||
"github.com/cosmos/cosmos-sdk/x/protocolpool"
|
||||
protocolpoolkeeper "github.com/cosmos/cosmos-sdk/x/protocolpool/keeper"
|
||||
protocolpooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types"
|
||||
)
|
||||
```
|
||||
|
||||
Set the module account permissions.
|
||||
|
||||
```go
|
||||
maccPerms = map[string][]string{
|
||||
// ...
|
||||
protocolpooltypes.ModuleName: nil,
|
||||
protocolpooltypes.ProtocolPoolEscrowAccount: nil,
|
||||
}
|
||||
```
|
||||
|
||||
Add the protocol pool keeper to your application struct.
|
||||
|
||||
```go
|
||||
ProtocolPoolKeeper protocolpoolkeeper.Keeper
|
||||
```
|
||||
|
||||
Add the store key:
|
||||
|
||||
```go
|
||||
keys := storetypes.NewKVStoreKeys(
|
||||
// ...
|
||||
protocolpooltypes.StoreKey,
|
||||
)
|
||||
```
|
||||
|
||||
Instantiate the keeper.
|
||||
|
||||
Make sure to do this before the distribution module instantiation, as you will pass the keeper there next.
|
||||
|
||||
```go
|
||||
app.ProtocolPoolKeeper = protocolpoolkeeper.NewKeeper(
|
||||
appCodec,
|
||||
runtime.NewKVStoreService(keys[protocolpooltypes.StoreKey]),
|
||||
app.AccountKeeper,
|
||||
app.BankKeeper,
|
||||
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
)
|
||||
```
|
||||
|
||||
Pass the protocolpool keeper to the distribution keeper:
|
||||
|
||||
```go
|
||||
app.DistrKeeper = distrkeeper.NewKeeper(
|
||||
appCodec,
|
||||
runtime.NewKVStoreService(keys[distrtypes.StoreKey]),
|
||||
app.AccountKeeper,
|
||||
app.BankKeeper,
|
||||
app.StakingKeeper,
|
||||
authtypes.FeeCollectorName,
|
||||
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
distrkeeper.WithExternalCommunityPool(app.ProtocolPoolKeeper), // NEW
|
||||
)
|
||||
```
|
||||
|
||||
Add the protocolpool module to the module manager:
|
||||
|
||||
```go
|
||||
app.ModuleManager = module.NewManager(
|
||||
// ...
|
||||
protocolpool.NewAppModule(appCodec, app.ProtocolPoolKeeper, app.AccountKeeper, app.BankKeeper),
|
||||
)
|
||||
```
|
||||
|
||||
Add an entry for SetOrderBeginBlockers, SetOrderEndBlockers, SetOrderInitGenesis, and SetOrderExportGenesis.
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderBeginBlockers(
|
||||
// must come AFTER distribution.
|
||||
distrtypes.ModuleName,
|
||||
protocolpooltypes.ModuleName,
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderEndBlockers(
|
||||
// order does not matter.
|
||||
protocolpooltypes.ModuleName,
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderInitGenesis(
|
||||
// order does not matter.
|
||||
protocolpooltypes.ModuleName,
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderInitGenesis(
|
||||
protocolpooltypes.ModuleName, // must be exported before bank.
|
||||
banktypes.ModuleName,
|
||||
)
|
||||
```
|
||||
|
||||
### DI Wiring
|
||||
|
||||
Note: _as long as an external community pool keeper (here, `x/protocolpool`) is wired in DI configs, `x/distribution` will automatically use it for its external pool._
|
||||
|
||||
First, set up the keeper for the application.
|
||||
|
||||
Import the protocolpool keeper:
|
||||
|
||||
```go
|
||||
protocolpoolkeeper "github.com/cosmos/cosmos-sdk/x/protocolpool/keeper"
|
||||
```
|
||||
|
||||
Add the keeper to your application struct:
|
||||
|
||||
```go
|
||||
ProtocolPoolKeeper protocolpoolkeeper.Keeper
|
||||
```
|
||||
|
||||
Add the keeper to the depinject system:
|
||||
|
||||
```go
|
||||
depinject.Inject(
|
||||
appConfig,
|
||||
&appBuilder,
|
||||
&app.appCodec,
|
||||
&app.legacyAmino,
|
||||
&app.txConfig,
|
||||
&app.interfaceRegistry,
|
||||
// ... other modules
|
||||
&app.ProtocolPoolKeeper, // NEW MODULE!
|
||||
)
|
||||
```
|
||||
|
||||
Next, set up configuration for the module.
|
||||
|
||||
Import the following:
|
||||
|
||||
```go
|
||||
import (
|
||||
protocolpoolmodulev1 "cosmossdk.io/api/cosmos/protocolpool/module/v1"
|
||||
|
||||
_ "github.com/cosmos/cosmos-sdk/x/protocolpool" // import for side-effects
|
||||
protocolpooltypes "github.com/cosmos/cosmos-sdk/x/protocolpool/types"
|
||||
)
|
||||
```
|
||||
|
||||
The protocolpool module has module accounts that handle funds. Add them to the module account permission configuration:
|
||||
|
||||
```go
|
||||
moduleAccPerms = []*authmodulev1.ModuleAccountPermission{
|
||||
// ...
|
||||
{Account: protocolpooltypes.ModuleName},
|
||||
{Account: protocolpooltypes.ProtocolPoolEscrowAccount},
|
||||
}
|
||||
```
|
||||
|
||||
Next, add an entry for BeginBlockers, EndBlockers, InitGenesis, and ExportGenesis.
|
||||
|
||||
```go
|
||||
BeginBlockers: []string{
|
||||
// ...
|
||||
// must be AFTER distribution.
|
||||
distrtypes.ModuleName,
|
||||
protocolpooltypes.ModuleName,
|
||||
},
|
||||
```
|
||||
|
||||
```go
|
||||
EndBlockers: []string{
|
||||
// ...
|
||||
// order for protocolpool does not matter.
|
||||
protocolpooltypes.ModuleName,
|
||||
},
|
||||
```
|
||||
|
||||
```go
|
||||
InitGenesis: []string{
|
||||
// ... must be AFTER distribution.
|
||||
distrtypes.ModuleName,
|
||||
protocolpooltypes.ModuleName,
|
||||
},
|
||||
```
|
||||
|
||||
```go
|
||||
ExportGenesis: []string{
|
||||
// ...
|
||||
// Must be exported before x/bank.
|
||||
protocolpooltypes.ModuleName,
|
||||
banktypes.ModuleName,
|
||||
},
|
||||
```
|
||||
|
||||
Lastly, add an entry for protocolpool in the ModuleConfig.
|
||||
|
||||
```go
|
||||
{
|
||||
Name: protocolpooltypes.ModuleName,
|
||||
Config: appconfig.WrapAny(&protocolpoolmodulev1.Module{}),
|
||||
},
|
||||
```
|
||||
|
||||
## Adding Epochs Module **OPTIONAL**
|
||||
|
||||
### Manual Wiring
|
||||
|
||||
Import the following:
|
||||
|
||||
```go
|
||||
import (
|
||||
// ...
|
||||
"github.com/cosmos/cosmos-sdk/x/epochs"
|
||||
epochskeeper "github.com/cosmos/cosmos-sdk/x/epochs/keeper"
|
||||
epochstypes "github.com/cosmos/cosmos-sdk/x/epochs/types"
|
||||
)
|
||||
```
|
||||
|
||||
Add the epochs keeper to your application struct:
|
||||
|
||||
```go
|
||||
EpochsKeeper epochskeeper.Keeper
|
||||
```
|
||||
|
||||
Add the store key:
|
||||
|
||||
```go
|
||||
keys := storetypes.NewKVStoreKeys(
|
||||
// ...
|
||||
epochstypes.StoreKey,
|
||||
)
|
||||
```
|
||||
|
||||
Instantiate the keeper:
|
||||
|
||||
```go
|
||||
app.EpochsKeeper = epochskeeper.NewKeeper(
|
||||
runtime.NewKVStoreService(keys[epochstypes.StoreKey]),
|
||||
appCodec,
|
||||
)
|
||||
```
|
||||
|
||||
Set up hooks for the epochs keeper:
|
||||
|
||||
To learn how to write hooks for the epoch keeper, see the [x/epoch README](https://github.com/cosmos/cosmos-sdk/blob/main/x/epochs/README.md)
|
||||
|
||||
```go
|
||||
app.EpochsKeeper.SetHooks(
|
||||
epochstypes.NewMultiEpochHooks(
|
||||
// insert epoch hooks receivers here
|
||||
app.SomeOtherModule
|
||||
),
|
||||
)
|
||||
```
|
||||
|
||||
Add the epochs module to the module manager:
|
||||
|
||||
```go
|
||||
app.ModuleManager = module.NewManager(
|
||||
// ...
|
||||
epochs.NewAppModule(appCodec, app.EpochsKeeper),
|
||||
)
|
||||
```
|
||||
|
||||
Add entries for SetOrderBeginBlockers and SetOrderInitGenesis:
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderBeginBlockers(
|
||||
// ...
|
||||
epochstypes.ModuleName,
|
||||
)
|
||||
```
|
||||
|
||||
```go
|
||||
app.ModuleManager.SetOrderInitGenesis(
|
||||
// ...
|
||||
epochstypes.ModuleName,
|
||||
)
|
||||
```
|
||||
|
||||
### DI Wiring
|
||||
|
||||
First, set up the keeper for the application.
|
||||
|
||||
Import the epochs keeper:
|
||||
|
||||
```go
|
||||
epochskeeper "github.com/cosmos/cosmos-sdk/x/epochs/keeper"
|
||||
```
|
||||
|
||||
Add the keeper to your application struct:
|
||||
|
||||
```go
|
||||
EpochsKeeper epochskeeper.Keeper
|
||||
```
|
||||
|
||||
Add the keeper to the depinject system:
|
||||
|
||||
```go
|
||||
depinject.Inject(
|
||||
appConfig,
|
||||
&appBuilder,
|
||||
&app.appCodec,
|
||||
&app.legacyAmino,
|
||||
&app.txConfig,
|
||||
&app.interfaceRegistry,
|
||||
// ... other modules
|
||||
&app.EpochsKeeper, // NEW MODULE!
|
||||
)
|
||||
```
|
||||
|
||||
Next, set up configuration for the module.
|
||||
|
||||
Import the following:
|
||||
|
||||
```go
|
||||
import (
|
||||
epochsmodulev1 "cosmossdk.io/api/cosmos/epochs/module/v1"
|
||||
|
||||
_ "github.com/cosmos/cosmos-sdk/x/epochs" // import for side-effects
|
||||
epochstypes "github.com/cosmos/cosmos-sdk/x/epochs/types"
|
||||
)
|
||||
```
|
||||
|
||||
Add an entry for BeginBlockers and InitGenesis:
|
||||
|
||||
```go
|
||||
BeginBlockers: []string{
|
||||
// ...
|
||||
epochstypes.ModuleName,
|
||||
},
|
||||
```
|
||||
|
||||
```go
|
||||
InitGenesis: []string{
|
||||
// ...
|
||||
epochstypes.ModuleName,
|
||||
},
|
||||
```
|
||||
|
||||
Lastly, add an entry for epochs in the ModuleConfig:
|
||||
|
||||
```go
|
||||
{
|
||||
Name: epochstypes.ModuleName,
|
||||
Config: appconfig.WrapAny(&epochsmodulev1.Module{}),
|
||||
},
|
||||
```
|
||||
|
||||
## Enable Unordered Transactions **OPTIONAL**
|
||||
|
||||
To enable unordered transaction support on an application, the `x/auth` keeper must be supplied with the `WithUnorderedTransactions` option.
|
||||
|
||||
Note that unordered transactions require sequence values to be zero, and will **FAIL** if a non-zero sequence value is set.
|
||||
Please ensure no sequence value is set when submitting an unordered transaction.
|
||||
Services that rely on prior assumptions about sequence values should be updated to handle unordered transactions.
|
||||
Services should be aware that when the transaction is unordered, the transaction sequence will always be zero.
|
||||
|
||||
```go
|
||||
app.AccountKeeper = authkeeper.NewAccountKeeper(
|
||||
appCodec,
|
||||
runtime.NewKVStoreService(keys[authtypes.StoreKey]),
|
||||
authtypes.ProtoBaseAccount,
|
||||
maccPerms,
|
||||
authcodec.NewBech32Codec(sdk.Bech32MainPrefix),
|
||||
sdk.Bech32MainPrefix,
|
||||
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
authkeeper.WithUnorderedTransactions(true), // new option!
|
||||
)
|
||||
```
|
||||
|
||||
If using dependency injection, update the auth module config.
|
||||
|
||||
```go
|
||||
{
|
||||
Name: authtypes.ModuleName,
|
||||
Config: appconfig.WrapAny(&authmodulev1.Module{
|
||||
Bech32Prefix: "cosmos",
|
||||
ModuleAccountPermissions: moduleAccPerms,
|
||||
EnableUnorderedTransactions: true, // remove this line if you do not want unordered transactions.
|
||||
}),
|
||||
},
|
||||
```
|
||||
|
||||
By default, unordered transactions use a transaction timeout duration of 10 minutes and a default gas charge of 2240 gas units.
|
||||
To modify these default values, pass in the corresponding options to the new `SigVerifyOptions` field in `x/auth's` `ante.HandlerOptions`.
|
||||
|
||||
```go
|
||||
options := ante.HandlerOptions{
|
||||
SigVerifyOptions: []ante.SigVerificationDecoratorOption{
|
||||
// change below as needed.
|
||||
ante.WithUnorderedTxGasCost(ante.DefaultUnorderedTxGasCost),
|
||||
ante.WithMaxUnorderedTxTimeoutDuration(ante.DefaultMaxTimoutDuration),
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
```go
|
||||
anteDecorators := []sdk.AnteDecorator{
|
||||
// ... other decorators ...
|
||||
ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler, options.SigVerifyOptions...), // supply new options
|
||||
}
|
||||
```
|
||||
|
||||
## Upgrade Handler
|
||||
|
||||
The upgrade handler only requires adding the store upgrades for the modules added above.
|
||||
If your application is not adding `x/protocolpool` or `x/epochs`, you do not need to add the store upgrade.
|
||||
|
||||
```go
|
||||
// UpgradeName defines the on-chain upgrade name for the sample SimApp upgrade
|
||||
// from v050 to v053.
|
||||
//
|
||||
// NOTE: This upgrade defines a reference implementation of what an upgrade
|
||||
// could look like when an application is migrating from Cosmos SDK version
|
||||
// v0.50.x to v0.53.x.
|
||||
const UpgradeName = "v050-to-v053"
|
||||
|
||||
func (app SimApp) RegisterUpgradeHandlers() {
|
||||
app.UpgradeKeeper.SetUpgradeHandler(
|
||||
UpgradeName,
|
||||
func(ctx context.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
|
||||
return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM)
|
||||
},
|
||||
)
|
||||
|
||||
upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if upgradeInfo.Name == UpgradeName && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
|
||||
storeUpgrades := storetypes.StoreUpgrades{
|
||||
Added: []string{
|
||||
epochstypes.ModuleName, // if not adding x/epochs to your chain, remove this line.
|
||||
protocolpooltypes.ModuleName, // if not adding x/protocolpool to your chain, remove this line.
|
||||
},
|
||||
}
|
||||
|
||||
// configure store loader that checks if version == upgradeHeight and applies store upgrades
|
||||
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
|
||||
}
|
||||
}
|
||||
```
|
||||
+177
-463
@@ -1,513 +1,227 @@
|
||||
# Upgrading Cosmos SDK
|
||||
# Upgrade Reference
|
||||
|
||||
This guide provides instructions for upgrading to specific versions of Cosmos SDK.
|
||||
Note, always read the **SimApp** section for more information on application wiring updates.
|
||||
This document provides a quick reference for the upgrades from `v0.50.x` to `v0.53.x` of Cosmos SDK.
|
||||
|
||||
## [v0.52.x](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.52.0-alpha.0)
|
||||
Note, always read the **App Wiring Changes** section for more information on application wiring updates.
|
||||
|
||||
🚨Upgrading to v0.53.x will require a **coordinated** chain upgrade.🚨
|
||||
|
||||
### SimApp
|
||||
### TLDR;
|
||||
|
||||
In this section we describe the changes made in Cosmos SDK' SimApp.
|
||||
**These changes are directly applicable to your application wiring.**
|
||||
Please read this section first, but for an exhaustive list of changes, refer to the [CHANGELOG](https://github.com/cosmos/cosmos-sdk/blob/release/v0.52.x/simapp/CHANGELOG.md).
|
||||
Unordered transactions, `x/protocolpool`, and `x/epoch` are the major new features added in v0.53.x.
|
||||
|
||||
#### Client (`root.go`)
|
||||
We also added the ability to add a `CheckTx` handler and enabled ed25519 signature verification.
|
||||
|
||||
The `client` package has been refactored to make use of the address codecs (address, validator address, consensus address, etc.)
|
||||
and address bech32 prefixes (address and validator address).
|
||||
This is part of the work of abstracting the SDK from the global bech32 config.
|
||||
For a full list of changes, see the [Changelog](https://github.com/cosmos/cosmos-sdk/blob/release/v0.53.x/CHANGELOG.md).
|
||||
|
||||
This means the address codecs and prefixes must be provided in the `client.Context` in the application client (usually `root.go`).
|
||||
### Unordered Transactions
|
||||
|
||||
```diff
|
||||
clientCtx = clientCtx.
|
||||
+ WithAddressCodec(addressCodec).
|
||||
+ WithValidatorAddressCodec(validatorAddressCodec).
|
||||
+ WithConsensusAddressCodec(consensusAddressCodec).
|
||||
+ WithAddressPrefix("cosmos").
|
||||
+ WithValidatorPrefix("cosmosvaloper")
|
||||
```
|
||||
The Cosmos SDK now supports unordered transactions. _This is an opt-in feature_.
|
||||
|
||||
**When using `depinject` / `app_di`, the client codecs can be provided directly from application config.**
|
||||
Clients that use this feature may now submit their transactions in a fire-and-forget manner to chains that enabled unordered transactions.
|
||||
|
||||
Refer to SimApp `root.go` for an example with an app di and a legacy app.
|
||||
To submit an unordered transaction, clients must set the `unordered` flag to
|
||||
`true` and ensure a reasonable `timeout_timestamp` is set. The `timeout_timestamp` is
|
||||
used as a TTL for the transaction and provides replay protection. Each transaction's `timeout_timestamp` must be
|
||||
unique to the account; however, the difference may be as small as a nanosecond. See [ADR-070](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-070-unordered-transactions.md) for more details.
|
||||
|
||||
Additionally, a simplification of the start command leads to the following change:
|
||||
Note that unordered transactions require sequence values to be zero, and will **FAIL** if a non-zero sequence value is set.
|
||||
Please ensure no sequence value is set when submitting an unordered transaction.
|
||||
Services that rely on prior assumptions about sequence values should be updated to handle unordered transactions.
|
||||
Services should be aware that when the transaction is unordered, the transaction sequence will always be zero.
|
||||
|
||||
```diff
|
||||
- server.AddCommands(rootCmd, newApp, func(startCmd *cobra.Command) {})
|
||||
+ server.AddCommands(rootCmd, newApp, server.StartCmdOptions[servertypes.Application]{})
|
||||
```
|
||||
#### Enabling Unordered Transactions
|
||||
|
||||
#### Server (`app.go`)
|
||||
To enable unordered transactions, supply the `WithUnorderedTransactions` option to the `x/auth` keeper:
|
||||
|
||||
##### Module Manager
|
||||
|
||||
The basic module manager has been deleted. It was not necessary anymore and was simplified to use the `module.Manager` directly.
|
||||
It can be removed from your `app.go`.
|
||||
|
||||
For depinject users, it isn't necessary anymore to supply a `map[string]module.AppModuleBasic` for customizing the app module basic instantiation.
|
||||
The custom parameters (such as genutil message validator or gov proposal handler, or evidence handler) can directly be supplied.
|
||||
When requiring a module manager in `root.go`, inject `*module.Manager` using `depinject.Inject`.
|
||||
|
||||
For non depinject users, simply call `RegisterLegacyAminoCodec` and `RegisterInterfaces` on the module manager:
|
||||
|
||||
```diff
|
||||
-app.BasicModuleManager = module.NewBasicManagerFromManager(...)
|
||||
-app.BasicModuleManager.RegisterLegacyAminoCodec(legacyAmino)
|
||||
-app.BasicModuleManager.RegisterInterfaces(interfaceRegistry)
|
||||
+app.ModuleManager.RegisterLegacyAminoCodec(legacyAmino)
|
||||
+app.ModuleManager.RegisterInterfaces(interfaceRegistry)
|
||||
```
|
||||
|
||||
Additionally, thanks to the genesis simplification, as explained in [the genesis interface update](#genesis-interface), the module manager `InitGenesis` and `ExportGenesis` methods do not require the codec anymore.
|
||||
|
||||
##### gRPC Web
|
||||
|
||||
Grpc-web embedded client has been removed from the server. If you would like to use grpc-web, you can use the [envoy proxy](https://www.envoyproxy.io/docs/envoy/latest/start/start). Here's how to set it up:
|
||||
|
||||
<details>
|
||||
<summary>Step by step guide</summary>
|
||||
|
||||
1. Install Envoy following the [official installation guide](https://www.envoyproxy.io/docs/envoy/latest/start/install).
|
||||
|
||||
2. Create an Envoy configuration file named `envoy.yaml` with the following content:
|
||||
|
||||
```yaml
|
||||
static_resources:
|
||||
listeners:
|
||||
- name: listener_0
|
||||
address:
|
||||
socket_address: { address: 0.0.0.0, port_value: 8080 }
|
||||
filter_chains:
|
||||
- filters:
|
||||
- name: envoy.filters.network.http_connection_manager
|
||||
typed_config:
|
||||
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
|
||||
codec_type: auto
|
||||
stat_prefix: ingress_http
|
||||
route_config:
|
||||
name: local_route
|
||||
virtual_hosts:
|
||||
- name: local_service
|
||||
domains: ["*"]
|
||||
routes:
|
||||
- match: { prefix: "/" }
|
||||
route:
|
||||
cluster: grpc_service
|
||||
timeout: 0s
|
||||
max_stream_duration:
|
||||
grpc_timeout_header_max: 0s
|
||||
cors:
|
||||
allow_origin_string_match:
|
||||
- prefix: "*"
|
||||
allow_methods: GET, PUT, DELETE, POST, OPTIONS
|
||||
allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
|
||||
max_age: "1728000"
|
||||
expose_headers: custom-header-1,grpc-status,grpc-message
|
||||
http_filters:
|
||||
- name: envoy.filters.http.grpc_web
|
||||
typed_config:
|
||||
"@type": type.googleapis.com/envoy.extensions.filters.http.grpc_web.v3.GrpcWeb
|
||||
- name: envoy.filters.http.cors
|
||||
typed_config:
|
||||
"@type": type.googleapis.com/envoy.extensions.filters.http.cors.v3.Cors
|
||||
- name: envoy.filters.http.router
|
||||
typed_config:
|
||||
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
|
||||
clusters:
|
||||
- name: grpc_service
|
||||
connect_timeout: 0.25s
|
||||
type: logical_dns
|
||||
http2_protocol_options: {}
|
||||
lb_policy: round_robin
|
||||
load_assignment:
|
||||
cluster_name: cluster_0
|
||||
endpoints:
|
||||
- lb_endpoints:
|
||||
- endpoint:
|
||||
address:
|
||||
socket_address:
|
||||
address: 0.0.0.0
|
||||
port_value: 9090
|
||||
```
|
||||
|
||||
This configuration tells Envoy to listen on port 8080 and forward requests to your gRPC service on port 9090. Note that this configuration is a starting point and can be modified according to your specific needs and preferences. You may need to adjust ports, addresses, or add additional settings based on your particular setup and requirements.
|
||||
|
||||
3. Start your Cosmos SDK application, ensuring it's configured to serve gRPC on port 9090.
|
||||
|
||||
4. Start Envoy with the configuration file:
|
||||
|
||||
```bash
|
||||
envoy -c envoy.yaml
|
||||
```
|
||||
|
||||
5. If Envoy starts successfully, you should see output similar to this:
|
||||
|
||||
```bash
|
||||
[2024-08-29 10:47:08.753][6281320][info][config] [source/common/listener_manager/listener_manager_impl.cc:930] all dependencies initialized. starting workers
|
||||
[2024-08-29 10:47:08.754][6281320][info][main] [source/server/server.cc:978] starting main dispatch loop
|
||||
```
|
||||
|
||||
This indicates that Envoy has started and is ready to proxy requests.
|
||||
|
||||
6. Update your client applications to connect to Envoy (http://localhost:8080 by default).
|
||||
|
||||
</details>
|
||||
|
||||
By following these steps, Envoy will handle the translation between gRPC-Web and gRPC, allowing your existing gRPC-Web clients to continue functioning without modifications to your Cosmos SDK application.
|
||||
|
||||
To test the setup, you can use a tool like [grpcurl](https://github.com/fullstorydev/grpcurl). For example:
|
||||
|
||||
```bash
|
||||
grpcurl -plaintext localhost:8080 cosmos.base.tendermint.v1beta1.Service/GetLatestBlock
|
||||
```
|
||||
|
||||
##### AnteHandlers
|
||||
|
||||
The `GasConsumptionDecorator` and `IncreaseSequenceDecorator` have been merged with the SigVerificationDecorator, so you'll
|
||||
need to remove them both from your app.go code, they will yield to unresolvable symbols when compiling.
|
||||
|
||||
#### Unordered Transactions
|
||||
|
||||
The Cosmos SDK now supports unordered transactions. This means that transactions
|
||||
can be executed in any order and doesn't require the client to deal with or manage
|
||||
nonces. This also means the order of execution is not guaranteed.
|
||||
|
||||
Unordered transactions are automatically enabled when using `depinject` / app di, simply supply the `servertypes.AppOptions` in `app.go`:
|
||||
|
||||
```diff
|
||||
depinject.Supply(
|
||||
+ // supply the application options
|
||||
+ appOpts,
|
||||
// supply the logger
|
||||
logger,
|
||||
```go
|
||||
app.AccountKeeper = authkeeper.NewAccountKeeper(
|
||||
appCodec,
|
||||
runtime.NewKVStoreService(keys[authtypes.StoreKey]),
|
||||
authtypes.ProtoBaseAccount,
|
||||
maccPerms,
|
||||
authcodec.NewBech32Codec(sdk.Bech32MainPrefix),
|
||||
sdk.Bech32MainPrefix,
|
||||
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
authkeeper.WithUnorderedTransactions(true), // new option!
|
||||
)
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Step-by-step Wiring </summary>
|
||||
If you are still using the legacy wiring, you must enable unordered transactions manually:
|
||||
|
||||
* Update the `App` constructor to create, load, and save the unordered transaction
|
||||
manager.
|
||||
|
||||
```go
|
||||
func NewApp(...) *App {
|
||||
// ...
|
||||
|
||||
// create, start, and load the unordered tx manager
|
||||
utxDataDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data")
|
||||
app.UnorderedTxManager = unorderedtx.NewManager(utxDataDir)
|
||||
app.UnorderedTxManager.Start()
|
||||
|
||||
if err := app.UnorderedTxManager.OnInit(); err != nil {
|
||||
panic(fmt.Errorf("failed to initialize unordered tx manager: %w", err))
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* Add the decorator to the existing AnteHandler chain, which should be as early
|
||||
as possible.
|
||||
|
||||
```go
|
||||
anteDecorators := []sdk.AnteDecorator{
|
||||
ante.NewSetUpContextDecorator(),
|
||||
// ...
|
||||
ante.NewUnorderedTxDecorator(unorderedtx.DefaultMaxTimeoutDuration, options.TxManager, options.Environment),
|
||||
// ...
|
||||
}
|
||||
|
||||
return sdk.ChainAnteDecorators(anteDecorators...), nil
|
||||
```
|
||||
|
||||
* If the App has a SnapshotManager defined, you must also register the extension
|
||||
for the TxManager.
|
||||
|
||||
```go
|
||||
if manager := app.SnapshotManager(); manager != nil {
|
||||
err := manager.RegisterExtensions(unorderedtx.NewSnapshotter(app.UnorderedTxManager))
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("failed to register snapshot extension: %s", err))
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
* Create or update the App's `Preblocker()` method to call the unordered tx
|
||||
manager's `OnNewBlock()` method.
|
||||
|
||||
```go
|
||||
...
|
||||
app.SetPreblocker(app.PreBlocker)
|
||||
...
|
||||
|
||||
func (app *SimApp) PreBlocker(ctx sdk.Context, req *abci.RequestFinalizeBlock) (*sdk.ResponsePreBlock, error) {
|
||||
app.UnorderedTxManager.OnNewBlock(ctx.BlockTime())
|
||||
return app.ModuleManager.PreBlock(ctx, req)
|
||||
}
|
||||
```
|
||||
|
||||
* Create or update the App's `Close()` method to close the unordered tx manager.
|
||||
Note, this is critical as it ensures the manager's state is written to file
|
||||
such that when the node restarts, it can recover the state to provide replay
|
||||
protection.
|
||||
|
||||
```go
|
||||
func (app *App) Close() error {
|
||||
// ...
|
||||
|
||||
// close the unordered tx manager
|
||||
if e := app.UnorderedTxManager.Close(); e != nil {
|
||||
err = errors.Join(err, e)
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
To submit an unordered transaction, the client must set the `unordered` flag to
|
||||
`true` and ensure a reasonable `timeout_height` is set. The `timeout_height` is
|
||||
used as a TTL for the transaction and is used to provide replay protection. See
|
||||
[ADR-070](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-070-unordered-transactions.md)
|
||||
for more details.
|
||||
|
||||
#### Sign Mode Textual
|
||||
|
||||
With the split of `x/auth/tx/config` in two (x/auth/tx/config as depinject module for txconfig and tx options) and `x/validate`, sign mode textual is no more automatically configured when using runtime (it was previously the case).
|
||||
For the same instructions than for legacy app wiring to enable sign mode textual (see in v0.50 UPGRADING documentation).
|
||||
|
||||
### Depinject `app_config.go` / `app.yml`
|
||||
|
||||
With the introduction of [environment in modules](#core-api), depinject automatically creates the environment for all modules.
|
||||
The 'Environment struct provides essential services](https://docs.cosmos.network/main/learn/advanced/core#environment) to modules including logging, event handling, gas metering, header access, routing, and both KV and memory store services. Given the fields of environment, this means runtime creates a kv store service for all modules by default. It can happen that some modules do not have a store necessary (such as `x/auth/tx` for instance). In this case, the store creation should be skipped in `app_config.go`:
|
||||
|
||||
```diff
|
||||
InitGenesis: []string{
|
||||
"..."
|
||||
},
|
||||
+ // SkipStoreKeys is an optional list of store keys to skip when constructing the
|
||||
+ // module's keeper. This is useful when a module does not have a store key.
|
||||
+ SkipStoreKeys: []string{
|
||||
+ "tx",
|
||||
+ },
|
||||
```
|
||||
|
||||
### Protobuf
|
||||
|
||||
The `cosmossdk.io/api/tendermint` package has been removed as CometBFT now publishes its protos to `buf.build/tendermint` and `buf.build/cometbft`.
|
||||
There is no longer a need for the Cosmos SDK to host these protos for itself and its dependencies.
|
||||
That package containing proto v2 generated code, but the SDK now uses [buf generated go SDK instead](https://buf.build/docs/bsr/generated-sdks/go).
|
||||
If you were depending on `cosmossdk.io/api/tendermint`, please use the buf generated go SDK instead, or ask CometBFT host the generated proto v2 code.
|
||||
|
||||
The `codectypes.Any` has moved to `github.com/cosmos/gogoproto/types/any`. Module developers need to update the `buf.gen.gogo.yaml` configuration files by adjusting the corresponding `opt` option to `Mgoogle/protobuf/any.proto=github.com/cosmos/gogoproto/types/any` for directly mapping the`Any` type to its new location:
|
||||
|
||||
```diff
|
||||
version: v1
|
||||
plugins:
|
||||
- name: gocosmos
|
||||
out: ..
|
||||
- opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types,Mcosmos/orm/v1/orm.proto=cosmossdk.io/orm
|
||||
+ opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/gogoproto/types/any,Mcosmos/orm/v1/orm.proto=cosmossdk.io/orm
|
||||
- name: grpc-gateway
|
||||
out: ..
|
||||
opt: logtostderr=true,allow_colon_final_segments=true
|
||||
|
||||
```
|
||||
|
||||
Also, any usages of the interfaces `AnyUnpacker` and `UnpackInterfacesMessage` must be replaced with the interfaces of the same name in the `github.com/cosmos/gogoproto/types/any` package.
|
||||
|
||||
### Modules
|
||||
|
||||
#### `**all**`
|
||||
|
||||
All modules (expect `auth`) were spun out into their own `go.mod`. Replace their imports by `cosmossdk.io/x/{moduleName}`.
|
||||
|
||||
##### Core API
|
||||
|
||||
Core API has been introduced for modules since v0.47. With the deprecation of `sdk.Context`, we strongly recommend to use the `cosmossdk.io/core/appmodule` interfaces for the modules. This will allow the modules to work out of the box with baseapp, as well as limit their dependencies on the SDK.
|
||||
|
||||
Additionally, the `appmodule.Environment` struct is introduced to fetch different services from the application.
|
||||
This should be used as an alternative to using `sdk.UnwrapContext(ctx)` to fetch the services.
|
||||
It needs to be passed into a module at instantiation (or depinject will inject the correct environment).
|
||||
|
||||
`x/circuit` is used as an example:
|
||||
If using dependency injection, update the auth module config.
|
||||
|
||||
```go
|
||||
app.CircuitKeeper = circuitkeeper.NewKeeper(runtime.NewEnvironment(runtime.NewKVStoreService(keys[circuittypes.StoreKey]), logger.With(log.ModuleKey, "x/circuit")), appCodec, authtypes.NewModuleAddress(govtypes.ModuleName).String(), app.AuthKeeper.AddressCodec())
|
||||
{
|
||||
Name: authtypes.ModuleName,
|
||||
Config: appconfig.WrapAny(&authmodulev1.Module{
|
||||
Bech32Prefix: "cosmos",
|
||||
ModuleAccountPermissions: moduleAccPerms,
|
||||
EnableUnorderedTransactions: true, // remove this line if you do not want unordered transactions.
|
||||
}),
|
||||
},
|
||||
```
|
||||
|
||||
If your module requires a message server or query server, it should be passed in the environment as well.
|
||||
|
||||
```diff
|
||||
-govKeeper := govkeeper.NewKeeper(appCodec, runtime.NewKVStoreService(keys[govtypes.StoreKey]), app.AuthKeeper, app.BankKeeper,app.StakingKeeper, app.PoolKeeper, app.MsgServiceRouter(), govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String())
|
||||
+govKeeper := govkeeper.NewKeeper(appCodec, runtime.NewEnvironment(runtime.NewKVStoreService(keys[govtypes.StoreKey]), logger.With(log.ModuleKey, "x/circuit"), runtime.EnvWithMsgRouterService(app.MsgServiceRouter()), runtime.EnvWithQueryRouterService(app.GRPCQueryRouter())), app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.PoolKeeper, govConfig, authtypes.NewModuleAddress(govtypes.ModuleName).String())
|
||||
```
|
||||
|
||||
The signature of the extension interface `HasRegisterInterfaces` has been changed to accept a `cosmossdk.io/core/registry.InterfaceRegistrar` instead of a `codec.InterfaceRegistry`. `HasRegisterInterfaces` is now a part of `cosmossdk.io/core/appmodule`. Modules should update their `HasRegisterInterfaces` implementation to accept a `cosmossdk.io/core/registry.InterfaceRegistrar` interface.
|
||||
|
||||
```diff
|
||||
-func (AppModule) RegisterInterfaces(registry codectypes.InterfaceRegistry) {
|
||||
+func (AppModule) RegisterInterfaces(registry registry.InterfaceRegistrar) {
|
||||
```
|
||||
|
||||
The signature of the extension interface `HasAminoCodec` has been changed to accept a `cosmossdk.io/core/registry.AminoRegistrar` instead of a `codec.LegacyAmino`. Modules should update their `HasAminoCodec` implementation to accept a `cosmossdk.io/core/registry.AminoRegistrar` interface.
|
||||
|
||||
```diff
|
||||
-func (AppModule) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
|
||||
+func (AppModule) RegisterLegacyAminoCodec(registrar registry.AminoRegistrar) {
|
||||
```
|
||||
|
||||
##### Simulation
|
||||
|
||||
`MsgSimulatorFn` has been updated to return an error. Its context argument has been removed, and an address.Codec has
|
||||
been added to avoid the use of the Accounts.String() method.
|
||||
|
||||
```diff
|
||||
-type MsgSimulatorFn func(r *rand.Rand, ctx sdk.Context, accs []Account) sdk.Msg
|
||||
+type MsgSimulatorFn func(r *rand.Rand, accs []Account, cdc address.Codec) (sdk.Msg, error)
|
||||
```
|
||||
|
||||
The interface `HasProposalMsgs` has been renamed to `HasLegacyProposalMsgs`, as we've introduced a new simulation framework, simpler and easier to use, named [simsx](https://github.com/cosmos/cosmos-sdk/blob/main/simsx/README.md).
|
||||
|
||||
##### Depinject
|
||||
|
||||
Previously `cosmossdk.io/core` held functions `Invoke`, `Provide` and `Register` were moved to `cosmossdk.io/depinject/appconfig`.
|
||||
All modules using dependency injection must update their imports.
|
||||
|
||||
##### Params
|
||||
|
||||
Previous module migrations have been removed. It is required to migrate to v0.50 prior to upgrading to v0.52 for not missing any module migrations.
|
||||
|
||||
##### Genesis Interface
|
||||
|
||||
All genesis interfaces have been migrated to take `context.Context` instead of `sdk.Context`.
|
||||
Secondly, the codec is no longer passed in by the framework. The codec is now passed in by the module.
|
||||
Lastly, all InitGenesis and ExportGenesis functions now return an error.
|
||||
By default, unordered transactions use a transaction timeout duration of 10 minutes and a default gas charge of 2240 gas units.
|
||||
To modify these default values, pass in the corresponding options to the new `SigVerifyOptions` field in `x/auth's` `ante.HandlerOptions`.
|
||||
|
||||
```go
|
||||
// InitGenesis performs genesis initialization for the module.
|
||||
func (am AppModule) InitGenesis(ctx context.Context, data json.RawMessage) error {
|
||||
}
|
||||
|
||||
// ExportGenesis returns the exported genesis state as raw bytes for the module.
|
||||
func (am AppModule) ExportGenesis(ctx context.Context) (json.RawMessage, error) {
|
||||
options := ante.HandlerOptions{
|
||||
SigVerifyOptions: []ante.SigVerificationDecoratorOption{
|
||||
// change below as needed.
|
||||
ante.WithUnorderedTxGasCost(ante.DefaultUnorderedTxGasCost),
|
||||
ante.WithMaxUnorderedTxTimeoutDuration(ante.DefaultMaxTimoutDuration),
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
##### Migration to Collections
|
||||
```go
|
||||
anteDecorators := []sdk.AnteDecorator{
|
||||
// ... other decorators ...
|
||||
ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler, options.SigVerifyOptions...), // supply new options
|
||||
}
|
||||
```
|
||||
|
||||
Most of Cosmos SDK modules have migrated to [collections](https://docs.cosmos.network/main/build/packages/collections).
|
||||
Many functions have been removed due to this changes as the API can be smaller thanks to collections.
|
||||
For modules that have migrated, verify you are checking against `collections.ErrNotFound` when applicable.
|
||||
### App Wiring Changes
|
||||
|
||||
#### `x/auth`
|
||||
In this section, we describe the required app wiring changes to run a v0.53.x Cosmos SDK application.
|
||||
|
||||
Vesting accounts messages (and CLIs) have been removed. Existing vesting accounts will keep working but no new vesting accounts can be created.
|
||||
Use `x/accounts` lockup accounts or implement an `x/accounts` vesting account instead.
|
||||
**These changes are directly applicable to your application wiring.**
|
||||
|
||||
#### `x/accounts`
|
||||
|
||||
Accounts's AccountNumber will be used as a global account number tracking replacing Auth legacy AccountNumber. Must set accounts's AccountNumber with auth's AccountNumber value in upgrade handler. This is done through auth keeper MigrateAccountNumber function.
|
||||
The `x/auth` module now contains a `PreBlocker` that _must_ be set in the module manager's `SetOrderPreBlockers` method.
|
||||
|
||||
```go
|
||||
import authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper"
|
||||
...
|
||||
app.UpgradeKeeper.SetUpgradeHandler(planName,
|
||||
func(ctx context.Context, _ upgradetypes.Plan, fromVM appmodule.VersionMap) (appmodule.VersionMap, error) {
|
||||
if err := authkeeper.MigrateAccountNumberUnsafe(ctx, &app.AuthKeeper); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return app.ModuleManager.RunMigrations(ctx, app.configurator, fromVM)
|
||||
},
|
||||
app.ModuleManager.SetOrderPreBlockers(
|
||||
upgradetypes.ModuleName,
|
||||
authtypes.ModuleName, // NEW
|
||||
)
|
||||
```
|
||||
|
||||
Add `x/accounts` store while upgrading to v0.52.x:
|
||||
That's it.
|
||||
|
||||
### New Modules
|
||||
|
||||
Below are some **optional** new modules you can include in your chain.
|
||||
To see a full example of wiring these modules, please check out the [SimApp](https://github.com/cosmos/cosmos-sdk/blob/release/v0.53.x/simapp/app.go).
|
||||
|
||||
#### Epochs
|
||||
|
||||
⚠️Adding this module requires a `StoreUpgrade`⚠️
|
||||
|
||||
The new, supplemental `x/epochs` module provides Cosmos SDK modules functionality to register and execute custom logic at fixed time-intervals.
|
||||
|
||||
Required wiring:
|
||||
- Keeper Instantiation
|
||||
- StoreKey addition
|
||||
- Hooks Registration
|
||||
- App Module Registration
|
||||
- entry in SetOrderBeginBlockers
|
||||
- entry in SetGenesisModuleOrder
|
||||
- entry in SetExportModuleOrder
|
||||
|
||||
#### ProtocolPool
|
||||
|
||||
:::warning
|
||||
|
||||
Using `protocolpool` will cause the following `x/distribution` handlers to return an error:
|
||||
|
||||
|
||||
**QueryService**
|
||||
|
||||
- `CommunityPool`
|
||||
|
||||
**MsgService**
|
||||
|
||||
- `CommunityPoolSpend`
|
||||
- `FundCommunityPool`
|
||||
|
||||
If you have services that rely on this functionality from `x/distribution`, please update them to use the `x/protocolpool` equivalents.
|
||||
|
||||
:::
|
||||
|
||||
⚠️Adding this module requires a `StoreUpgrade`⚠️
|
||||
|
||||
The new, supplemental `x/protocolpool` module provides extended functionality for managing and distributing block reward revenue.
|
||||
|
||||
Required wiring:
|
||||
- Module Account Permissions
|
||||
- protocolpooltypes.ModuleName (nil)
|
||||
- protocolpooltypes.ProtocolPoolEscrowAccount (nil)
|
||||
- Keeper Instantiation
|
||||
- StoreKey addition
|
||||
- Passing the keeper to the Distribution Keeper
|
||||
- `distrkeeper.WithExternalCommunityPool(app.ProtocolPoolKeeper)`
|
||||
- App Module Registration
|
||||
- entry in SetOrderBeginBlockers
|
||||
- entry in SetOrderEndBlockers
|
||||
- entry in SetGenesisModuleOrder
|
||||
- entry in SetExportModuleOrder **before `x/bank`**
|
||||
|
||||
## Custom Minting Function in `x/mint`
|
||||
|
||||
This release introduces the ability to configure a custom mint function in `x/mint`. The minting logic is now abstracted as a `MintFn` with a default implementation that can be overridden.
|
||||
|
||||
### What’s New
|
||||
|
||||
- **Configurable Mint Function:**
|
||||
A new `MintFn` abstraction is introduced. By default, the module uses `DefaultMintFn`, but you can supply your own implementation.
|
||||
|
||||
- **Deprecated InflationCalculationFn Parameter:**
|
||||
The `InflationCalculationFn` argument previously provided to `mint.NewAppModule()` is now ignored and must be `nil`. To customize the default minter’s inflation behavior, wrap your custom function with `mintkeeper.DefaultMintFn` and pass it via the `WithMintFn` option:
|
||||
|
||||
```go
|
||||
mintkeeper.WithMintFn(mintkeeper.DefaultMintFn(customInflationFn))
|
||||
```
|
||||
|
||||
### How to Upgrade
|
||||
|
||||
1. **Using the Default Minting Function**
|
||||
|
||||
No action is needed if you’re happy with the default behavior. Make sure your application wiring initializes the MintKeeper like this:
|
||||
|
||||
```go
|
||||
storetypes.StoreUpgrades{
|
||||
Added: []string{
|
||||
accounts.StoreKey,
|
||||
},
|
||||
}
|
||||
mintKeeper := mintkeeper.NewKeeper(
|
||||
appCodec,
|
||||
storeService,
|
||||
stakingKeeper,
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
authtypes.FeeCollectorName,
|
||||
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
)
|
||||
```
|
||||
|
||||
##### TX Decoder
|
||||
|
||||
In order to support x/accounts properly we need to init a `TxDecoder`, modify your `app.go`:
|
||||
|
||||
```diff
|
||||
import (
|
||||
+ txdecode "cosmossdk.io/x/tx/decode"
|
||||
)
|
||||
+ txDecoder, err := txdecode.NewDecoder(txdecode.Options{
|
||||
+ SigningContext: signingCtx,
|
||||
+ ProtoCodec: appCodec,
|
||||
+ })
|
||||
+ if err != nil {
|
||||
+ panic(err)
|
||||
+ }
|
||||
```
|
||||
|
||||
#### `x/crisis`
|
||||
|
||||
The `x/crisis` module was removed due to it not being supported or functional any longer.
|
||||
|
||||
#### `x/distribution`
|
||||
|
||||
Existing chains using `x/distribution` module must add the new `x/protocolpool` module.
|
||||
|
||||
#### `x/gov`
|
||||
|
||||
Gov v1beta1 proposal handler has been changed to take in a `context.Context` instead of `sdk.Context`.
|
||||
|
||||
#### `x/mint`
|
||||
|
||||
The `x/mint` module has been updated to work with a mint function [`MintFn`](https://docs.cosmos.network/v0.52/build/modules/mint#mintfn).
|
||||
|
||||
When using the default inflation calculation function and runtime, no change is required. The depinject configuration of mint automatically sets it if none is provided. However, when not using runtime, the mint function must be set in on the mint keeper:
|
||||
|
||||
```diff
|
||||
+ mintKeeper.SetMintFn(keeper.DefaultMintFn(types.DefaultInflationCalculationFn, stakingKeeper, mintKeeper))
|
||||
```
|
||||
|
||||
#### `x/protocolpool`
|
||||
|
||||
Introducing a new `x/protocolpool` module to handle community pool funds. Its store must be added while upgrading to v0.52.x.
|
||||
|
||||
Example:
|
||||
2. **Using a Custom Minting Function**
|
||||
|
||||
To use a custom minting function, define it as follows and pass it you your mintKeeper when constructing it:
|
||||
|
||||
```go
|
||||
func (app SimApp) RegisterUpgradeHandlers() {
|
||||
app.UpgradeKeeper.SetUpgradeHandler(
|
||||
UpgradeName,
|
||||
func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
|
||||
return app.ModuleManager.RunMigrations(ctx, app.Configurator(), fromVM)
|
||||
},
|
||||
)
|
||||
|
||||
// ...
|
||||
func myCustomMintFunc(ctx sdk.Context, k *mintkeeper.Keeper) {
|
||||
// do minting...
|
||||
}
|
||||
|
||||
// ...
|
||||
mintKeeper := mintkeeper.NewKeeper(
|
||||
appCodec,
|
||||
storeService,
|
||||
stakingKeeper,
|
||||
accountKeeper,
|
||||
bankKeeper,
|
||||
authtypes.FeeCollectorName,
|
||||
authtypes.NewModuleAddress(govtypes.ModuleName).String(),
|
||||
mintkeeper.WithMintFn(myCustomMintFunc), // Use custom minting function
|
||||
)
|
||||
```
|
||||
|
||||
Add `x/protocolpool` store while upgrading to v0.52.x:
|
||||
### Misc Changes
|
||||
|
||||
```go
|
||||
storetypes.StoreUpgrades{
|
||||
Added: []string{
|
||||
protocolpooltypes.ModuleName,
|
||||
},
|
||||
}
|
||||
```
|
||||
#### Testnet's init-files Command
|
||||
|
||||
#### `x/validate`
|
||||
Some changes were made to `testnet`'s `init-files` command to support our new testing framework, `Systemtest`.
|
||||
|
||||
Introducing `x/validate` a module that is solely used for registering default ante/post handlers and global tx validators when using runtime. If you wish to set your custom ante/post handlers, no need to use this module.
|
||||
You can however always extend them by adding extra tx validators (see `x/validate` documentation).
|
||||
##### Flag Changes
|
||||
|
||||
#### `tools/benchmark`
|
||||
- The flag for validator count was changed from `--v` to `--validator-count`(shorthand: `-v`).
|
||||
|
||||
Introducing [`tools/benchmark`](https://github.com/cosmos/cosmos-sdk/tree/main/tools/benchmark) a Cosmos SDK module for benchmarking your chain. It is a standalone module that can be added to your chain to stress test it. This module should NOT be added in a production environment.
|
||||
##### Flag Additions
|
||||
- `--staking-denom` allows changing the default stake denom, `stake`.
|
||||
- `--commit-timeout` enables changing the commit timeout of the chain.
|
||||
- `--single-host` enables running a multi-node network on a single host. This bumps each subsequent node's network addresses by 1. For example, node1's gRPC address will be 9090, node2's 9091, etc...
|
||||
@@ -0,0 +1,37 @@
|
||||
<!--
|
||||
Guiding Principles:
|
||||
|
||||
Changelogs are for humans, not machines.
|
||||
There should be an entry for every single version.
|
||||
The same types of changes should be grouped.
|
||||
Versions and sections should be linkable.
|
||||
The latest version comes first.
|
||||
The release date of each version is displayed.
|
||||
Mention whether you follow Semantic Versioning.
|
||||
|
||||
Usage:
|
||||
|
||||
Change log entries are to be added to the Unreleased section from newest to oldest.
|
||||
Each entry must include the Github issue reference in the following format:
|
||||
|
||||
* [#<issue-number>] Changelog message.
|
||||
|
||||
-->
|
||||
|
||||
# Changelog
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [v0.9.0](https://github.com/cosmos/cosmos-sdk/releases/tag/api/v0.9.0) - 2025-03-31
|
||||
|
||||
### Features
|
||||
|
||||
* [#23933](https://github.com/cosmos/cosmos-sdk/pull/23933) `x/protocolpool` API files
|
||||
* [#23815](https://github.com/cosmos/cosmos-sdk/pull/23815) `x/epochs` API files
|
||||
* [#23708](https://github.com/cosmos/cosmos-sdk/pull/23708) `unordered` transaction support
|
||||
|
||||
### Improvements
|
||||
|
||||
* [#24227](https://github.com/cosmos/cosmos-sdk/pull/24227) Minor dependency bumps
|
||||
|
||||
|
||||
@@ -0,0 +1,242 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package amino
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
descriptorpb "google.golang.org/protobuf/types/descriptorpb"
|
||||
reflect "reflect"
|
||||
)
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: amino/amino.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
var file_amino_amino_proto_extTypes = []protoimpl.ExtensionInfo{
|
||||
{
|
||||
ExtendedType: (*descriptorpb.MessageOptions)(nil),
|
||||
ExtensionType: (*string)(nil),
|
||||
Field: 11110001,
|
||||
Name: "amino.name",
|
||||
Tag: "bytes,11110001,opt,name=name",
|
||||
Filename: "amino/amino.proto",
|
||||
},
|
||||
{
|
||||
ExtendedType: (*descriptorpb.MessageOptions)(nil),
|
||||
ExtensionType: (*string)(nil),
|
||||
Field: 11110002,
|
||||
Name: "amino.message_encoding",
|
||||
Tag: "bytes,11110002,opt,name=message_encoding",
|
||||
Filename: "amino/amino.proto",
|
||||
},
|
||||
{
|
||||
ExtendedType: (*descriptorpb.FieldOptions)(nil),
|
||||
ExtensionType: (*string)(nil),
|
||||
Field: 11110003,
|
||||
Name: "amino.encoding",
|
||||
Tag: "bytes,11110003,opt,name=encoding",
|
||||
Filename: "amino/amino.proto",
|
||||
},
|
||||
{
|
||||
ExtendedType: (*descriptorpb.FieldOptions)(nil),
|
||||
ExtensionType: (*string)(nil),
|
||||
Field: 11110004,
|
||||
Name: "amino.field_name",
|
||||
Tag: "bytes,11110004,opt,name=field_name",
|
||||
Filename: "amino/amino.proto",
|
||||
},
|
||||
{
|
||||
ExtendedType: (*descriptorpb.FieldOptions)(nil),
|
||||
ExtensionType: (*bool)(nil),
|
||||
Field: 11110005,
|
||||
Name: "amino.dont_omitempty",
|
||||
Tag: "varint,11110005,opt,name=dont_omitempty",
|
||||
Filename: "amino/amino.proto",
|
||||
},
|
||||
{
|
||||
ExtendedType: (*descriptorpb.FieldOptions)(nil),
|
||||
ExtensionType: (*string)(nil),
|
||||
Field: 11110006,
|
||||
Name: "amino.oneof_name",
|
||||
Tag: "bytes,11110006,opt,name=oneof_name",
|
||||
Filename: "amino/amino.proto",
|
||||
},
|
||||
}
|
||||
|
||||
// Extension fields to descriptorpb.MessageOptions.
|
||||
var (
|
||||
// name is the string used when registering a concrete
|
||||
// type into the Amino type registry, via the Amino codec's
|
||||
// `RegisterConcrete()` method. This string MUST be at most 39
|
||||
// characters long, or else the message will be rejected by the
|
||||
// Ledger hardware device.
|
||||
//
|
||||
// optional string name = 11110001;
|
||||
E_Name = &file_amino_amino_proto_extTypes[0]
|
||||
// encoding describes the encoding format used by Amino for the given
|
||||
// message. The field type is chosen to be a string for
|
||||
// flexibility, but it should ideally be short and expected to be
|
||||
// machine-readable, for example "base64" or "utf8_json". We
|
||||
// highly recommend to use underscores for word separation instead of spaces.
|
||||
//
|
||||
// If left empty, then the Amino encoding is expected to be the same as the
|
||||
// Protobuf one.
|
||||
//
|
||||
// This annotation should not be confused with the `encoding`
|
||||
// one which operates on the field level.
|
||||
//
|
||||
// optional string message_encoding = 11110002;
|
||||
E_MessageEncoding = &file_amino_amino_proto_extTypes[1]
|
||||
)
|
||||
|
||||
// Extension fields to descriptorpb.FieldOptions.
|
||||
var (
|
||||
// encoding describes the encoding format used by Amino for
|
||||
// the given field. The field type is chosen to be a string for
|
||||
// flexibility, but it should ideally be short and expected to be
|
||||
// machine-readable, for example "base64" or "utf8_json". We
|
||||
// highly recommend to use underscores for word separation instead of spaces.
|
||||
//
|
||||
// If left empty, then the Amino encoding is expected to be the same as the
|
||||
// Protobuf one.
|
||||
//
|
||||
// This annotation should not be confused with the
|
||||
// `message_encoding` one which operates on the message level.
|
||||
//
|
||||
// optional string encoding = 11110003;
|
||||
E_Encoding = &file_amino_amino_proto_extTypes[2]
|
||||
// field_name sets a different field name (i.e. key name) in
|
||||
// the amino JSON object for the given field.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// message Foo {
|
||||
// string bar = 1 [(amino.field_name) = "baz"];
|
||||
// }
|
||||
//
|
||||
// Then the Amino encoding of Foo will be:
|
||||
// `{"baz":"some value"}`
|
||||
//
|
||||
// optional string field_name = 11110004;
|
||||
E_FieldName = &file_amino_amino_proto_extTypes[3]
|
||||
// dont_omitempty sets the field in the JSON object even if
|
||||
// its value is empty, i.e. equal to the Golang zero value. To learn what
|
||||
// the zero values are, see https://go.dev/ref/spec#The_zero_value.
|
||||
//
|
||||
// Fields default to `omitempty`, which is the default behavior when this
|
||||
// annotation is unset. When set to true, then the field value in the
|
||||
// JSON object will be set, i.e. not `undefined`.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// message Foo {
|
||||
// string bar = 1;
|
||||
// string baz = 2 [(amino.dont_omitempty) = true];
|
||||
// }
|
||||
//
|
||||
// f := Foo{};
|
||||
// out := AminoJSONEncoder(&f);
|
||||
// out == {"baz":""}
|
||||
//
|
||||
// optional bool dont_omitempty = 11110005;
|
||||
E_DontOmitempty = &file_amino_amino_proto_extTypes[4]
|
||||
// oneof_name sets the type name for the given field oneof field. This is used
|
||||
// by the Amino JSON encoder to encode the type of the oneof field, and must be the same string in
|
||||
// the RegisterConcrete() method usage used to register the concrete type.
|
||||
//
|
||||
// optional string oneof_name = 11110006;
|
||||
E_OneofName = &file_amino_amino_proto_extTypes[5]
|
||||
)
|
||||
|
||||
var File_amino_amino_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_amino_amino_proto_rawDesc = []byte{
|
||||
0x0a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x12, 0x05, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63,
|
||||
0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x36, 0x0a, 0x04,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf1, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x4d, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f,
|
||||
0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61,
|
||||
0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf2, 0x8c, 0xa6, 0x05, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64,
|
||||
0x69, 0x6e, 0x67, 0x3a, 0x3c, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12,
|
||||
0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf3,
|
||||
0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
|
||||
0x67, 0x3a, 0x3f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12,
|
||||
0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf4,
|
||||
0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61,
|
||||
0x6d, 0x65, 0x3a, 0x47, 0x0a, 0x0e, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65,
|
||||
0x6d, 0x70, 0x74, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f,
|
||||
0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x3f, 0x0a, 0x0a, 0x6f,
|
||||
0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c,
|
||||
0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x63, 0x0a, 0x09,
|
||||
0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73,
|
||||
0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2,
|
||||
0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05,
|
||||
0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50,
|
||||
0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e,
|
||||
0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var file_amino_amino_proto_goTypes = []interface{}{
|
||||
(*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions
|
||||
(*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions
|
||||
}
|
||||
var file_amino_amino_proto_depIdxs = []int32{
|
||||
0, // 0: amino.name:extendee -> google.protobuf.MessageOptions
|
||||
0, // 1: amino.message_encoding:extendee -> google.protobuf.MessageOptions
|
||||
1, // 2: amino.encoding:extendee -> google.protobuf.FieldOptions
|
||||
1, // 3: amino.field_name:extendee -> google.protobuf.FieldOptions
|
||||
1, // 4: amino.dont_omitempty:extendee -> google.protobuf.FieldOptions
|
||||
1, // 5: amino.oneof_name:extendee -> google.protobuf.FieldOptions
|
||||
6, // [6:6] is the sub-list for method output_type
|
||||
6, // [6:6] is the sub-list for method input_type
|
||||
6, // [6:6] is the sub-list for extension type_name
|
||||
0, // [0:6] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_amino_amino_proto_init() }
|
||||
func file_amino_amino_proto_init() {
|
||||
if File_amino_amino_proto != nil {
|
||||
return
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_amino_amino_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 0,
|
||||
NumExtensions: 6,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_amino_amino_proto_goTypes,
|
||||
DependencyIndexes: file_amino_amino_proto_depIdxs,
|
||||
ExtensionInfos: file_amino_amino_proto_extTypes,
|
||||
}.Build()
|
||||
File_amino_amino_proto = out.File
|
||||
file_amino_amino_proto_rawDesc = nil
|
||||
file_amino_amino_proto_goTypes = nil
|
||||
file_amino_amino_proto_depIdxs = nil
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,999 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package appv1alpha1
|
||||
|
||||
import (
|
||||
fmt "fmt"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var (
|
||||
md_QueryConfigRequest protoreflect.MessageDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_app_v1alpha1_query_proto_init()
|
||||
md_QueryConfigRequest = File_cosmos_app_v1alpha1_query_proto.Messages().ByName("QueryConfigRequest")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_QueryConfigRequest)(nil)
|
||||
|
||||
type fastReflection_QueryConfigRequest QueryConfigRequest
|
||||
|
||||
func (x *QueryConfigRequest) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_QueryConfigRequest)(x)
|
||||
}
|
||||
|
||||
func (x *QueryConfigRequest) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_app_v1alpha1_query_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_QueryConfigRequest_messageType fastReflection_QueryConfigRequest_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_QueryConfigRequest_messageType{}
|
||||
|
||||
type fastReflection_QueryConfigRequest_messageType struct{}
|
||||
|
||||
func (x fastReflection_QueryConfigRequest_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_QueryConfigRequest)(nil)
|
||||
}
|
||||
func (x fastReflection_QueryConfigRequest_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_QueryConfigRequest)
|
||||
}
|
||||
func (x fastReflection_QueryConfigRequest_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_QueryConfigRequest
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_QueryConfigRequest) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_QueryConfigRequest
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_QueryConfigRequest) Type() protoreflect.MessageType {
|
||||
return _fastReflection_QueryConfigRequest_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_QueryConfigRequest) New() protoreflect.Message {
|
||||
return new(fastReflection_QueryConfigRequest)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_QueryConfigRequest) Interface() protoreflect.ProtoMessage {
|
||||
return (*QueryConfigRequest)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_QueryConfigRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_QueryConfigRequest) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigRequest"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigRequest does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigRequest) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigRequest"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigRequest does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_QueryConfigRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigRequest"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigRequest does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigRequest"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigRequest does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigRequest"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigRequest does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_QueryConfigRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigRequest"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigRequest does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_QueryConfigRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.app.v1alpha1.QueryConfigRequest", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_QueryConfigRequest) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigRequest) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_QueryConfigRequest) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_QueryConfigRequest) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*QueryConfigRequest)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*QueryConfigRequest)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*QueryConfigRequest)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConfigRequest: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConfigRequest: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
md_QueryConfigResponse protoreflect.MessageDescriptor
|
||||
fd_QueryConfigResponse_config protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_app_v1alpha1_query_proto_init()
|
||||
md_QueryConfigResponse = File_cosmos_app_v1alpha1_query_proto.Messages().ByName("QueryConfigResponse")
|
||||
fd_QueryConfigResponse_config = md_QueryConfigResponse.Fields().ByName("config")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_QueryConfigResponse)(nil)
|
||||
|
||||
type fastReflection_QueryConfigResponse QueryConfigResponse
|
||||
|
||||
func (x *QueryConfigResponse) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_QueryConfigResponse)(x)
|
||||
}
|
||||
|
||||
func (x *QueryConfigResponse) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_app_v1alpha1_query_proto_msgTypes[1]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_QueryConfigResponse_messageType fastReflection_QueryConfigResponse_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_QueryConfigResponse_messageType{}
|
||||
|
||||
type fastReflection_QueryConfigResponse_messageType struct{}
|
||||
|
||||
func (x fastReflection_QueryConfigResponse_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_QueryConfigResponse)(nil)
|
||||
}
|
||||
func (x fastReflection_QueryConfigResponse_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_QueryConfigResponse)
|
||||
}
|
||||
func (x fastReflection_QueryConfigResponse_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_QueryConfigResponse
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_QueryConfigResponse) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_QueryConfigResponse
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_QueryConfigResponse) Type() protoreflect.MessageType {
|
||||
return _fastReflection_QueryConfigResponse_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_QueryConfigResponse) New() protoreflect.Message {
|
||||
return new(fastReflection_QueryConfigResponse)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_QueryConfigResponse) Interface() protoreflect.ProtoMessage {
|
||||
return (*QueryConfigResponse)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_QueryConfigResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if x.Config != nil {
|
||||
value := protoreflect.ValueOfMessage(x.Config.ProtoReflect())
|
||||
if !f(fd_QueryConfigResponse_config, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_QueryConfigResponse) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.app.v1alpha1.QueryConfigResponse.config":
|
||||
return x.Config != nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigResponse"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigResponse does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigResponse) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.app.v1alpha1.QueryConfigResponse.config":
|
||||
x.Config = nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigResponse"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigResponse does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_QueryConfigResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cosmos.app.v1alpha1.QueryConfigResponse.config":
|
||||
value := x.Config
|
||||
return protoreflect.ValueOfMessage(value.ProtoReflect())
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigResponse"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigResponse does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.app.v1alpha1.QueryConfigResponse.config":
|
||||
x.Config = value.Message().Interface().(*Config)
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigResponse"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigResponse does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.app.v1alpha1.QueryConfigResponse.config":
|
||||
if x.Config == nil {
|
||||
x.Config = new(Config)
|
||||
}
|
||||
return protoreflect.ValueOfMessage(x.Config.ProtoReflect())
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigResponse"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigResponse does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_QueryConfigResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.app.v1alpha1.QueryConfigResponse.config":
|
||||
m := new(Config)
|
||||
return protoreflect.ValueOfMessage(m.ProtoReflect())
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.app.v1alpha1.QueryConfigResponse"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.app.v1alpha1.QueryConfigResponse does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_QueryConfigResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.app.v1alpha1.QueryConfigResponse", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_QueryConfigResponse) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_QueryConfigResponse) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_QueryConfigResponse) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_QueryConfigResponse) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*QueryConfigResponse)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if x.Config != nil {
|
||||
l = options.Size(x.Config)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*QueryConfigResponse)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if x.Config != nil {
|
||||
encoded, err := options.Marshal(x.Config)
|
||||
if err != nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, err
|
||||
}
|
||||
i -= len(encoded)
|
||||
copy(dAtA[i:], encoded)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*QueryConfigResponse)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConfigResponse: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryConfigResponse: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if x.Config == nil {
|
||||
x.Config = &Config{}
|
||||
}
|
||||
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Config); err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/app/v1alpha1/query.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// QueryConfigRequest is the Query/Config request type.
|
||||
type QueryConfigRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *QueryConfigRequest) Reset() {
|
||||
*x = QueryConfigRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_app_v1alpha1_query_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *QueryConfigRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*QueryConfigRequest) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use QueryConfigRequest.ProtoReflect.Descriptor instead.
|
||||
func (*QueryConfigRequest) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_app_v1alpha1_query_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
// QueryConfigResponse is the Query/Config response type.
|
||||
type QueryConfigResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// config is the current app config.
|
||||
Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
|
||||
}
|
||||
|
||||
func (x *QueryConfigResponse) Reset() {
|
||||
*x = QueryConfigResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_app_v1alpha1_query_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *QueryConfigResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*QueryConfigResponse) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use QueryConfigResponse.ProtoReflect.Descriptor instead.
|
||||
func (*QueryConfigResponse) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_app_v1alpha1_query_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *QueryConfigResponse) GetConfig() *Config {
|
||||
if x != nil {
|
||||
return x.Config
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_cosmos_app_v1alpha1_query_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_app_v1alpha1_query_proto_rawDesc = []byte{
|
||||
0x0a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61,
|
||||
0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x12, 0x13, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31,
|
||||
0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61,
|
||||
0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72,
|
||||
0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a,
|
||||
0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
|
||||
0x70, 0x70, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x69, 0x0a, 0x05, 0x51, 0x75,
|
||||
0x65, 0x72, 0x79, 0x12, 0x60, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
|
||||
0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65,
|
||||
0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x22, 0x03, 0x88, 0x02, 0x01, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
|
||||
0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a,
|
||||
0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70,
|
||||
0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61,
|
||||
0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x61, 0x70, 0x70, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
|
||||
0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x41, 0x70, 0x70, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x13,
|
||||
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x70, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70,
|
||||
0x68, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x70,
|
||||
0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74,
|
||||
0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a,
|
||||
0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_app_v1alpha1_query_proto_rawDescOnce sync.Once
|
||||
file_cosmos_app_v1alpha1_query_proto_rawDescData = file_cosmos_app_v1alpha1_query_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_app_v1alpha1_query_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_app_v1alpha1_query_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_app_v1alpha1_query_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_app_v1alpha1_query_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_app_v1alpha1_query_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_app_v1alpha1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||
var file_cosmos_app_v1alpha1_query_proto_goTypes = []interface{}{
|
||||
(*QueryConfigRequest)(nil), // 0: cosmos.app.v1alpha1.QueryConfigRequest
|
||||
(*QueryConfigResponse)(nil), // 1: cosmos.app.v1alpha1.QueryConfigResponse
|
||||
(*Config)(nil), // 2: cosmos.app.v1alpha1.Config
|
||||
}
|
||||
var file_cosmos_app_v1alpha1_query_proto_depIdxs = []int32{
|
||||
2, // 0: cosmos.app.v1alpha1.QueryConfigResponse.config:type_name -> cosmos.app.v1alpha1.Config
|
||||
0, // 1: cosmos.app.v1alpha1.Query.Config:input_type -> cosmos.app.v1alpha1.QueryConfigRequest
|
||||
1, // 2: cosmos.app.v1alpha1.Query.Config:output_type -> cosmos.app.v1alpha1.QueryConfigResponse
|
||||
2, // [2:3] is the sub-list for method output_type
|
||||
1, // [1:2] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_app_v1alpha1_query_proto_init() }
|
||||
func file_cosmos_app_v1alpha1_query_proto_init() {
|
||||
if File_cosmos_app_v1alpha1_query_proto != nil {
|
||||
return
|
||||
}
|
||||
file_cosmos_app_v1alpha1_config_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_app_v1alpha1_query_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*QueryConfigRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_cosmos_app_v1alpha1_query_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*QueryConfigResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_app_v1alpha1_query_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 2,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_cosmos_app_v1alpha1_query_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_app_v1alpha1_query_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_app_v1alpha1_query_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_app_v1alpha1_query_proto = out.File
|
||||
file_cosmos_app_v1alpha1_query_proto_rawDesc = nil
|
||||
file_cosmos_app_v1alpha1_query_proto_goTypes = nil
|
||||
file_cosmos_app_v1alpha1_query_proto_depIdxs = nil
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/app/v1alpha1/query.proto
|
||||
|
||||
package appv1alpha1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Query_Config_FullMethodName = "/cosmos.app.v1alpha1.Query/Config"
|
||||
)
|
||||
|
||||
// QueryClient is the client API for Query service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Query is the app module query service.
|
||||
type QueryClient interface {
|
||||
// Deprecated: Do not use.
|
||||
// Config returns the current app config.
|
||||
Config(ctx context.Context, in *QueryConfigRequest, opts ...grpc.CallOption) (*QueryConfigResponse, error)
|
||||
}
|
||||
|
||||
type queryClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewQueryClient(cc grpc.ClientConnInterface) QueryClient {
|
||||
return &queryClient{cc}
|
||||
}
|
||||
|
||||
// Deprecated: Do not use.
|
||||
func (c *queryClient) Config(ctx context.Context, in *QueryConfigRequest, opts ...grpc.CallOption) (*QueryConfigResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryConfigResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Config_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// QueryServer is the server API for Query service.
|
||||
// All implementations must embed UnimplementedQueryServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Query is the app module query service.
|
||||
type QueryServer interface {
|
||||
// Deprecated: Do not use.
|
||||
// Config returns the current app config.
|
||||
Config(context.Context, *QueryConfigRequest) (*QueryConfigResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
// UnimplementedQueryServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedQueryServer struct{}
|
||||
|
||||
func (UnimplementedQueryServer) Config(context.Context, *QueryConfigRequest) (*QueryConfigResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Config not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
|
||||
func (UnimplementedQueryServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to QueryServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeQueryServer interface {
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) {
|
||||
// If the following call pancis, it indicates UnimplementedQueryServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Query_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Query_Config_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryConfigRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Config(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Config_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Config(ctx, req.(*QueryConfigRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.app.v1alpha1.Query",
|
||||
HandlerType: (*QueryServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Config",
|
||||
Handler: _Query_Config_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/app/v1alpha1/query.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,753 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package authv1beta1
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/api/amino"
|
||||
fmt "fmt"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
_ "github.com/cosmos/gogoproto/gogoproto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
anypb "google.golang.org/protobuf/types/known/anypb"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var _ protoreflect.List = (*_GenesisState_2_list)(nil)
|
||||
|
||||
type _GenesisState_2_list struct {
|
||||
list *[]*anypb.Any
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.Message()
|
||||
concreteValue := valueUnwrapped.Interface().(*anypb.Any)
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.Message()
|
||||
concreteValue := valueUnwrapped.Interface().(*anypb.Any)
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value {
|
||||
v := new(anypb.Any)
|
||||
*x.list = append(*x.list, v)
|
||||
return protoreflect.ValueOfMessage(v.ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) Truncate(n int) {
|
||||
for i := n; i < len(*x.list); i++ {
|
||||
(*x.list)[i] = nil
|
||||
}
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) NewElement() protoreflect.Value {
|
||||
v := new(anypb.Any)
|
||||
return protoreflect.ValueOfMessage(v.ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_GenesisState_2_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var (
|
||||
md_GenesisState protoreflect.MessageDescriptor
|
||||
fd_GenesisState_params protoreflect.FieldDescriptor
|
||||
fd_GenesisState_accounts protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_auth_v1beta1_genesis_proto_init()
|
||||
md_GenesisState = File_cosmos_auth_v1beta1_genesis_proto.Messages().ByName("GenesisState")
|
||||
fd_GenesisState_params = md_GenesisState.Fields().ByName("params")
|
||||
fd_GenesisState_accounts = md_GenesisState.Fields().ByName("accounts")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_GenesisState)(nil)
|
||||
|
||||
type fastReflection_GenesisState GenesisState
|
||||
|
||||
func (x *GenesisState) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_GenesisState)(x)
|
||||
}
|
||||
|
||||
func (x *GenesisState) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_auth_v1beta1_genesis_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_GenesisState_messageType fastReflection_GenesisState_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_GenesisState_messageType{}
|
||||
|
||||
type fastReflection_GenesisState_messageType struct{}
|
||||
|
||||
func (x fastReflection_GenesisState_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_GenesisState)(nil)
|
||||
}
|
||||
func (x fastReflection_GenesisState_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_GenesisState)
|
||||
}
|
||||
func (x fastReflection_GenesisState_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_GenesisState
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_GenesisState) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_GenesisState
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_GenesisState) Type() protoreflect.MessageType {
|
||||
return _fastReflection_GenesisState_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_GenesisState) New() protoreflect.Message {
|
||||
return new(fastReflection_GenesisState)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage {
|
||||
return (*GenesisState)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if x.Params != nil {
|
||||
value := protoreflect.ValueOfMessage(x.Params.ProtoReflect())
|
||||
if !f(fd_GenesisState_params, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if len(x.Accounts) != 0 {
|
||||
value := protoreflect.ValueOfList(&_GenesisState_2_list{list: &x.Accounts})
|
||||
if !f(fd_GenesisState_accounts, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.auth.v1beta1.GenesisState.params":
|
||||
return x.Params != nil
|
||||
case "cosmos.auth.v1beta1.GenesisState.accounts":
|
||||
return len(x.Accounts) != 0
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.auth.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.auth.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.auth.v1beta1.GenesisState.params":
|
||||
x.Params = nil
|
||||
case "cosmos.auth.v1beta1.GenesisState.accounts":
|
||||
x.Accounts = nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.auth.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.auth.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cosmos.auth.v1beta1.GenesisState.params":
|
||||
value := x.Params
|
||||
return protoreflect.ValueOfMessage(value.ProtoReflect())
|
||||
case "cosmos.auth.v1beta1.GenesisState.accounts":
|
||||
if len(x.Accounts) == 0 {
|
||||
return protoreflect.ValueOfList(&_GenesisState_2_list{})
|
||||
}
|
||||
listValue := &_GenesisState_2_list{list: &x.Accounts}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.auth.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.auth.v1beta1.GenesisState does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.auth.v1beta1.GenesisState.params":
|
||||
x.Params = value.Message().Interface().(*Params)
|
||||
case "cosmos.auth.v1beta1.GenesisState.accounts":
|
||||
lv := value.List()
|
||||
clv := lv.(*_GenesisState_2_list)
|
||||
x.Accounts = *clv.list
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.auth.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.auth.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.auth.v1beta1.GenesisState.params":
|
||||
if x.Params == nil {
|
||||
x.Params = new(Params)
|
||||
}
|
||||
return protoreflect.ValueOfMessage(x.Params.ProtoReflect())
|
||||
case "cosmos.auth.v1beta1.GenesisState.accounts":
|
||||
if x.Accounts == nil {
|
||||
x.Accounts = []*anypb.Any{}
|
||||
}
|
||||
value := &_GenesisState_2_list{list: &x.Accounts}
|
||||
return protoreflect.ValueOfList(value)
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.auth.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.auth.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.auth.v1beta1.GenesisState.params":
|
||||
m := new(Params)
|
||||
return protoreflect.ValueOfMessage(m.ProtoReflect())
|
||||
case "cosmos.auth.v1beta1.GenesisState.accounts":
|
||||
list := []*anypb.Any{}
|
||||
return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list})
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.auth.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.auth.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_GenesisState) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.auth.v1beta1.GenesisState", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_GenesisState) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_GenesisState) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*GenesisState)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if x.Params != nil {
|
||||
l = options.Size(x.Params)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
if len(x.Accounts) > 0 {
|
||||
for _, e := range x.Accounts {
|
||||
l = options.Size(e)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*GenesisState)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if len(x.Accounts) > 0 {
|
||||
for iNdEx := len(x.Accounts) - 1; iNdEx >= 0; iNdEx-- {
|
||||
encoded, err := options.Marshal(x.Accounts[iNdEx])
|
||||
if err != nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, err
|
||||
}
|
||||
i -= len(encoded)
|
||||
copy(dAtA[i:], encoded)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
}
|
||||
if x.Params != nil {
|
||||
encoded, err := options.Marshal(x.Params)
|
||||
if err != nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, err
|
||||
}
|
||||
i -= len(encoded)
|
||||
copy(dAtA[i:], encoded)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*GenesisState)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Params", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if x.Params == nil {
|
||||
x.Params = &Params{}
|
||||
}
|
||||
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Params); err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.Accounts = append(x.Accounts, &anypb.Any{})
|
||||
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Accounts[len(x.Accounts)-1]); err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/auth/v1beta1/genesis.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// GenesisState defines the auth module's genesis state.
|
||||
type GenesisState struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// params defines all the parameters of the module.
|
||||
Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params,omitempty"`
|
||||
// accounts are the accounts present at genesis.
|
||||
Accounts []*anypb.Any `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"`
|
||||
}
|
||||
|
||||
func (x *GenesisState) Reset() {
|
||||
*x = GenesisState{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_auth_v1beta1_genesis_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *GenesisState) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*GenesisState) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use GenesisState.ProtoReflect.Descriptor instead.
|
||||
func (*GenesisState) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_auth_v1beta1_genesis_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *GenesisState) GetParams() *Params {
|
||||
if x != nil {
|
||||
return x.Params
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *GenesisState) GetAccounts() []*anypb.Any {
|
||||
if x != nil {
|
||||
return x.Accounts
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_cosmos_auth_v1beta1_genesis_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_auth_v1beta1_genesis_proto_rawDesc = []byte{
|
||||
0x0a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x12, 0x13, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68,
|
||||
0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67,
|
||||
0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61,
|
||||
0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f,
|
||||
0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x01, 0x0a,
|
||||
0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a,
|
||||
0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00,
|
||||
0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x30, 0x0a,
|
||||
0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||
0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x42,
|
||||
0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
|
||||
0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e,
|
||||
0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03,
|
||||
0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74,
|
||||
0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2,
|
||||
0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
|
||||
0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68,
|
||||
0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_auth_v1beta1_genesis_proto_rawDescOnce sync.Once
|
||||
file_cosmos_auth_v1beta1_genesis_proto_rawDescData = file_cosmos_auth_v1beta1_genesis_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_auth_v1beta1_genesis_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_auth_v1beta1_genesis_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_auth_v1beta1_genesis_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_auth_v1beta1_genesis_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_auth_v1beta1_genesis_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_auth_v1beta1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_cosmos_auth_v1beta1_genesis_proto_goTypes = []interface{}{
|
||||
(*GenesisState)(nil), // 0: cosmos.auth.v1beta1.GenesisState
|
||||
(*Params)(nil), // 1: cosmos.auth.v1beta1.Params
|
||||
(*anypb.Any)(nil), // 2: google.protobuf.Any
|
||||
}
|
||||
var file_cosmos_auth_v1beta1_genesis_proto_depIdxs = []int32{
|
||||
1, // 0: cosmos.auth.v1beta1.GenesisState.params:type_name -> cosmos.auth.v1beta1.Params
|
||||
2, // 1: cosmos.auth.v1beta1.GenesisState.accounts:type_name -> google.protobuf.Any
|
||||
2, // [2:2] is the sub-list for method output_type
|
||||
2, // [2:2] is the sub-list for method input_type
|
||||
2, // [2:2] is the sub-list for extension type_name
|
||||
2, // [2:2] is the sub-list for extension extendee
|
||||
0, // [0:2] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_auth_v1beta1_genesis_proto_init() }
|
||||
func file_cosmos_auth_v1beta1_genesis_proto_init() {
|
||||
if File_cosmos_auth_v1beta1_genesis_proto != nil {
|
||||
return
|
||||
}
|
||||
file_cosmos_auth_v1beta1_auth_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_auth_v1beta1_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*GenesisState); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_auth_v1beta1_genesis_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_cosmos_auth_v1beta1_genesis_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_auth_v1beta1_genesis_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_auth_v1beta1_genesis_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_auth_v1beta1_genesis_proto = out.File
|
||||
file_cosmos_auth_v1beta1_genesis_proto_rawDesc = nil
|
||||
file_cosmos_auth_v1beta1_genesis_proto_goTypes = nil
|
||||
file_cosmos_auth_v1beta1_genesis_proto_depIdxs = nil
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,493 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/auth/v1beta1/query.proto
|
||||
|
||||
package authv1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Query_Accounts_FullMethodName = "/cosmos.auth.v1beta1.Query/Accounts"
|
||||
Query_Account_FullMethodName = "/cosmos.auth.v1beta1.Query/Account"
|
||||
Query_AccountAddressByID_FullMethodName = "/cosmos.auth.v1beta1.Query/AccountAddressByID"
|
||||
Query_Params_FullMethodName = "/cosmos.auth.v1beta1.Query/Params"
|
||||
Query_ModuleAccounts_FullMethodName = "/cosmos.auth.v1beta1.Query/ModuleAccounts"
|
||||
Query_ModuleAccountByName_FullMethodName = "/cosmos.auth.v1beta1.Query/ModuleAccountByName"
|
||||
Query_Bech32Prefix_FullMethodName = "/cosmos.auth.v1beta1.Query/Bech32Prefix"
|
||||
Query_AddressBytesToString_FullMethodName = "/cosmos.auth.v1beta1.Query/AddressBytesToString"
|
||||
Query_AddressStringToBytes_FullMethodName = "/cosmos.auth.v1beta1.Query/AddressStringToBytes"
|
||||
Query_AccountInfo_FullMethodName = "/cosmos.auth.v1beta1.Query/AccountInfo"
|
||||
)
|
||||
|
||||
// QueryClient is the client API for Query service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Query defines the gRPC querier service.
|
||||
type QueryClient interface {
|
||||
// Accounts returns all the existing accounts.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
Accounts(ctx context.Context, in *QueryAccountsRequest, opts ...grpc.CallOption) (*QueryAccountsResponse, error)
|
||||
// Account returns account details based on address.
|
||||
Account(ctx context.Context, in *QueryAccountRequest, opts ...grpc.CallOption) (*QueryAccountResponse, error)
|
||||
// AccountAddressByID returns account address based on account number.
|
||||
AccountAddressByID(ctx context.Context, in *QueryAccountAddressByIDRequest, opts ...grpc.CallOption) (*QueryAccountAddressByIDResponse, error)
|
||||
// Params queries all parameters.
|
||||
Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error)
|
||||
// ModuleAccounts returns all the existing module accounts.
|
||||
ModuleAccounts(ctx context.Context, in *QueryModuleAccountsRequest, opts ...grpc.CallOption) (*QueryModuleAccountsResponse, error)
|
||||
// ModuleAccountByName returns the module account info by module name
|
||||
ModuleAccountByName(ctx context.Context, in *QueryModuleAccountByNameRequest, opts ...grpc.CallOption) (*QueryModuleAccountByNameResponse, error)
|
||||
// Bech32Prefix queries bech32Prefix
|
||||
Bech32Prefix(ctx context.Context, in *Bech32PrefixRequest, opts ...grpc.CallOption) (*Bech32PrefixResponse, error)
|
||||
// AddressBytesToString converts Account Address bytes to string
|
||||
AddressBytesToString(ctx context.Context, in *AddressBytesToStringRequest, opts ...grpc.CallOption) (*AddressBytesToStringResponse, error)
|
||||
// AddressStringToBytes converts Address string to bytes
|
||||
AddressStringToBytes(ctx context.Context, in *AddressStringToBytesRequest, opts ...grpc.CallOption) (*AddressStringToBytesResponse, error)
|
||||
// AccountInfo queries account info which is common to all account types.
|
||||
AccountInfo(ctx context.Context, in *QueryAccountInfoRequest, opts ...grpc.CallOption) (*QueryAccountInfoResponse, error)
|
||||
}
|
||||
|
||||
type queryClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewQueryClient(cc grpc.ClientConnInterface) QueryClient {
|
||||
return &queryClient{cc}
|
||||
}
|
||||
|
||||
func (c *queryClient) Accounts(ctx context.Context, in *QueryAccountsRequest, opts ...grpc.CallOption) (*QueryAccountsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryAccountsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Accounts_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) Account(ctx context.Context, in *QueryAccountRequest, opts ...grpc.CallOption) (*QueryAccountResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryAccountResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Account_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) AccountAddressByID(ctx context.Context, in *QueryAccountAddressByIDRequest, opts ...grpc.CallOption) (*QueryAccountAddressByIDResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryAccountAddressByIDResponse)
|
||||
err := c.cc.Invoke(ctx, Query_AccountAddressByID_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryParamsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Params_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) ModuleAccounts(ctx context.Context, in *QueryModuleAccountsRequest, opts ...grpc.CallOption) (*QueryModuleAccountsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryModuleAccountsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_ModuleAccounts_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) ModuleAccountByName(ctx context.Context, in *QueryModuleAccountByNameRequest, opts ...grpc.CallOption) (*QueryModuleAccountByNameResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryModuleAccountByNameResponse)
|
||||
err := c.cc.Invoke(ctx, Query_ModuleAccountByName_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) Bech32Prefix(ctx context.Context, in *Bech32PrefixRequest, opts ...grpc.CallOption) (*Bech32PrefixResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(Bech32PrefixResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Bech32Prefix_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) AddressBytesToString(ctx context.Context, in *AddressBytesToStringRequest, opts ...grpc.CallOption) (*AddressBytesToStringResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(AddressBytesToStringResponse)
|
||||
err := c.cc.Invoke(ctx, Query_AddressBytesToString_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) AddressStringToBytes(ctx context.Context, in *AddressStringToBytesRequest, opts ...grpc.CallOption) (*AddressStringToBytesResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(AddressStringToBytesResponse)
|
||||
err := c.cc.Invoke(ctx, Query_AddressStringToBytes_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) AccountInfo(ctx context.Context, in *QueryAccountInfoRequest, opts ...grpc.CallOption) (*QueryAccountInfoResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryAccountInfoResponse)
|
||||
err := c.cc.Invoke(ctx, Query_AccountInfo_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// QueryServer is the server API for Query service.
|
||||
// All implementations must embed UnimplementedQueryServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Query defines the gRPC querier service.
|
||||
type QueryServer interface {
|
||||
// Accounts returns all the existing accounts.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
Accounts(context.Context, *QueryAccountsRequest) (*QueryAccountsResponse, error)
|
||||
// Account returns account details based on address.
|
||||
Account(context.Context, *QueryAccountRequest) (*QueryAccountResponse, error)
|
||||
// AccountAddressByID returns account address based on account number.
|
||||
AccountAddressByID(context.Context, *QueryAccountAddressByIDRequest) (*QueryAccountAddressByIDResponse, error)
|
||||
// Params queries all parameters.
|
||||
Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error)
|
||||
// ModuleAccounts returns all the existing module accounts.
|
||||
ModuleAccounts(context.Context, *QueryModuleAccountsRequest) (*QueryModuleAccountsResponse, error)
|
||||
// ModuleAccountByName returns the module account info by module name
|
||||
ModuleAccountByName(context.Context, *QueryModuleAccountByNameRequest) (*QueryModuleAccountByNameResponse, error)
|
||||
// Bech32Prefix queries bech32Prefix
|
||||
Bech32Prefix(context.Context, *Bech32PrefixRequest) (*Bech32PrefixResponse, error)
|
||||
// AddressBytesToString converts Account Address bytes to string
|
||||
AddressBytesToString(context.Context, *AddressBytesToStringRequest) (*AddressBytesToStringResponse, error)
|
||||
// AddressStringToBytes converts Address string to bytes
|
||||
AddressStringToBytes(context.Context, *AddressStringToBytesRequest) (*AddressStringToBytesResponse, error)
|
||||
// AccountInfo queries account info which is common to all account types.
|
||||
AccountInfo(context.Context, *QueryAccountInfoRequest) (*QueryAccountInfoResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
// UnimplementedQueryServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedQueryServer struct{}
|
||||
|
||||
func (UnimplementedQueryServer) Accounts(context.Context, *QueryAccountsRequest) (*QueryAccountsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Accounts not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) Account(context.Context, *QueryAccountRequest) (*QueryAccountResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Account not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) AccountAddressByID(context.Context, *QueryAccountAddressByIDRequest) (*QueryAccountAddressByIDResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AccountAddressByID not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Params not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) ModuleAccounts(context.Context, *QueryModuleAccountsRequest) (*QueryModuleAccountsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ModuleAccounts not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) ModuleAccountByName(context.Context, *QueryModuleAccountByNameRequest) (*QueryModuleAccountByNameResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ModuleAccountByName not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) Bech32Prefix(context.Context, *Bech32PrefixRequest) (*Bech32PrefixResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Bech32Prefix not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) AddressBytesToString(context.Context, *AddressBytesToStringRequest) (*AddressBytesToStringResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AddressBytesToString not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) AddressStringToBytes(context.Context, *AddressStringToBytesRequest) (*AddressStringToBytesResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AddressStringToBytes not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) AccountInfo(context.Context, *QueryAccountInfoRequest) (*QueryAccountInfoResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AccountInfo not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
|
||||
func (UnimplementedQueryServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to QueryServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeQueryServer interface {
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) {
|
||||
// If the following call pancis, it indicates UnimplementedQueryServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Query_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Query_Accounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryAccountsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Accounts(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Accounts_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Accounts(ctx, req.(*QueryAccountsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_Account_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryAccountRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Account(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Account_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Account(ctx, req.(*QueryAccountRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_AccountAddressByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryAccountAddressByIDRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).AccountAddressByID(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_AccountAddressByID_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).AccountAddressByID(ctx, req.(*QueryAccountAddressByIDRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryParamsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Params(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Params_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_ModuleAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryModuleAccountsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).ModuleAccounts(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_ModuleAccounts_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).ModuleAccounts(ctx, req.(*QueryModuleAccountsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_ModuleAccountByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryModuleAccountByNameRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).ModuleAccountByName(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_ModuleAccountByName_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).ModuleAccountByName(ctx, req.(*QueryModuleAccountByNameRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_Bech32Prefix_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(Bech32PrefixRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Bech32Prefix(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Bech32Prefix_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Bech32Prefix(ctx, req.(*Bech32PrefixRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_AddressBytesToString_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(AddressBytesToStringRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).AddressBytesToString(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_AddressBytesToString_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).AddressBytesToString(ctx, req.(*AddressBytesToStringRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_AddressStringToBytes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(AddressStringToBytesRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).AddressStringToBytes(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_AddressStringToBytes_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).AddressStringToBytes(ctx, req.(*AddressStringToBytesRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_AccountInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryAccountInfoRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).AccountInfo(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_AccountInfo_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).AccountInfo(ctx, req.(*QueryAccountInfoRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.auth.v1beta1.Query",
|
||||
HandlerType: (*QueryServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Accounts",
|
||||
Handler: _Query_Accounts_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Account",
|
||||
Handler: _Query_Account_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "AccountAddressByID",
|
||||
Handler: _Query_AccountAddressByID_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Params",
|
||||
Handler: _Query_Params_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ModuleAccounts",
|
||||
Handler: _Query_ModuleAccounts_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ModuleAccountByName",
|
||||
Handler: _Query_ModuleAccountByName_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Bech32Prefix",
|
||||
Handler: _Query_Bech32Prefix_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "AddressBytesToString",
|
||||
Handler: _Query_AddressBytesToString_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "AddressStringToBytes",
|
||||
Handler: _Query_AddressStringToBytes_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "AccountInfo",
|
||||
Handler: _Query_AccountInfo_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/auth/v1beta1/query.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,129 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/auth/v1beta1/tx.proto
|
||||
|
||||
package authv1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Msg_UpdateParams_FullMethodName = "/cosmos.auth.v1beta1.Msg/UpdateParams"
|
||||
)
|
||||
|
||||
// MsgClient is the client API for Msg service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Msg defines the x/auth Msg service.
|
||||
type MsgClient interface {
|
||||
// UpdateParams defines a (governance) operation for updating the x/auth module
|
||||
// parameters. The authority defaults to the x/gov module account.
|
||||
UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error)
|
||||
}
|
||||
|
||||
type msgClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewMsgClient(cc grpc.ClientConnInterface) MsgClient {
|
||||
return &msgClient{cc}
|
||||
}
|
||||
|
||||
func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgUpdateParamsResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_UpdateParams_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// MsgServer is the server API for Msg service.
|
||||
// All implementations must embed UnimplementedMsgServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Msg defines the x/auth Msg service.
|
||||
type MsgServer interface {
|
||||
// UpdateParams defines a (governance) operation for updating the x/auth module
|
||||
// parameters. The authority defaults to the x/gov module account.
|
||||
UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error)
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
// UnimplementedMsgServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedMsgServer struct{}
|
||||
|
||||
func (UnimplementedMsgServer) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {}
|
||||
func (UnimplementedMsgServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to MsgServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeMsgServer interface {
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) {
|
||||
// If the following call pancis, it indicates UnimplementedMsgServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Msg_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgUpdateParams)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).UpdateParams(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_UpdateParams_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Msg_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.auth.v1beta1.Msg",
|
||||
HandlerType: (*MsgServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "UpdateParams",
|
||||
Handler: _Msg_UpdateParams_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/auth/v1beta1/tx.proto",
|
||||
}
|
||||
@@ -0,0 +1,502 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package modulev1
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/api/cosmos/app/v1alpha1"
|
||||
fmt "fmt"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var (
|
||||
md_Module protoreflect.MessageDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_authz_module_v1_module_proto_init()
|
||||
md_Module = File_cosmos_authz_module_v1_module_proto.Messages().ByName("Module")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_Module)(nil)
|
||||
|
||||
type fastReflection_Module Module
|
||||
|
||||
func (x *Module) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_Module)(x)
|
||||
}
|
||||
|
||||
func (x *Module) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_authz_module_v1_module_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_Module_messageType fastReflection_Module_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_Module_messageType{}
|
||||
|
||||
type fastReflection_Module_messageType struct{}
|
||||
|
||||
func (x fastReflection_Module_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_Module)(nil)
|
||||
}
|
||||
func (x fastReflection_Module_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_Module)
|
||||
}
|
||||
func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_Module
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_Module
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_Module) Type() protoreflect.MessageType {
|
||||
return _fastReflection_Module_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_Module) New() protoreflect.Message {
|
||||
return new(fastReflection_Module)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage {
|
||||
return (*Module)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.module.v1.Module does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.module.v1.Module", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_Module) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/authz/module/v1/module.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// Module is the config object of the authz module.
|
||||
type Module struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *Module) Reset() {
|
||||
*x = Module{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_authz_module_v1_module_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Module) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Module) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use Module.ProtoReflect.Descriptor instead.
|
||||
func (*Module) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_authz_module_v1_module_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
var File_cosmos_authz_module_v1_module_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_authz_module_v1_module_proto_rawDesc = []byte{
|
||||
0x0a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x6d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75,
|
||||
0x74, 0x68, 0x7a, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
|
||||
0x61, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
|
||||
0x36, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x2c, 0xba, 0xc0, 0x96, 0xda, 0x01,
|
||||
0x26, 0x0a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f,
|
||||
0x78, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x42, 0xd6, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x6d, 0x6f, 0x64,
|
||||
0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b,
|
||||
0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61,
|
||||
0x75, 0x74, 0x68, 0x7a, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x4d, 0xaa, 0x02, 0x16,
|
||||
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x4d, 0x6f, 0x64,
|
||||
0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c,
|
||||
0x41, 0x75, 0x74, 0x68, 0x7a, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2,
|
||||
0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x5c, 0x4d,
|
||||
0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61,
|
||||
0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41,
|
||||
0x75, 0x74, 0x68, 0x7a, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31,
|
||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_authz_module_v1_module_proto_rawDescOnce sync.Once
|
||||
file_cosmos_authz_module_v1_module_proto_rawDescData = file_cosmos_authz_module_v1_module_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_authz_module_v1_module_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_authz_module_v1_module_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_authz_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_authz_module_v1_module_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_authz_module_v1_module_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_authz_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_cosmos_authz_module_v1_module_proto_goTypes = []interface{}{
|
||||
(*Module)(nil), // 0: cosmos.authz.module.v1.Module
|
||||
}
|
||||
var file_cosmos_authz_module_v1_module_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_authz_module_v1_module_proto_init() }
|
||||
func file_cosmos_authz_module_v1_module_proto_init() {
|
||||
if File_cosmos_authz_module_v1_module_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_authz_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Module); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_authz_module_v1_module_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_cosmos_authz_module_v1_module_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_authz_module_v1_module_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_authz_module_v1_module_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_authz_module_v1_module_proto = out.File
|
||||
file_cosmos_authz_module_v1_module_proto_rawDesc = nil
|
||||
file_cosmos_authz_module_v1_module_proto_goTypes = nil
|
||||
file_cosmos_authz_module_v1_module_proto_depIdxs = nil
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,658 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package authzv1beta1
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/api/amino"
|
||||
fmt "fmt"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
_ "github.com/cosmos/gogoproto/gogoproto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var _ protoreflect.List = (*_GenesisState_1_list)(nil)
|
||||
|
||||
type _GenesisState_1_list struct {
|
||||
list *[]*GrantAuthorization
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.Message()
|
||||
concreteValue := valueUnwrapped.Interface().(*GrantAuthorization)
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.Message()
|
||||
concreteValue := valueUnwrapped.Interface().(*GrantAuthorization)
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) AppendMutable() protoreflect.Value {
|
||||
v := new(GrantAuthorization)
|
||||
*x.list = append(*x.list, v)
|
||||
return protoreflect.ValueOfMessage(v.ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) Truncate(n int) {
|
||||
for i := n; i < len(*x.list); i++ {
|
||||
(*x.list)[i] = nil
|
||||
}
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) NewElement() protoreflect.Value {
|
||||
v := new(GrantAuthorization)
|
||||
return protoreflect.ValueOfMessage(v.ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_GenesisState_1_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var (
|
||||
md_GenesisState protoreflect.MessageDescriptor
|
||||
fd_GenesisState_authorization protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_authz_v1beta1_genesis_proto_init()
|
||||
md_GenesisState = File_cosmos_authz_v1beta1_genesis_proto.Messages().ByName("GenesisState")
|
||||
fd_GenesisState_authorization = md_GenesisState.Fields().ByName("authorization")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_GenesisState)(nil)
|
||||
|
||||
type fastReflection_GenesisState GenesisState
|
||||
|
||||
func (x *GenesisState) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_GenesisState)(x)
|
||||
}
|
||||
|
||||
func (x *GenesisState) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_authz_v1beta1_genesis_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_GenesisState_messageType fastReflection_GenesisState_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_GenesisState_messageType{}
|
||||
|
||||
type fastReflection_GenesisState_messageType struct{}
|
||||
|
||||
func (x fastReflection_GenesisState_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_GenesisState)(nil)
|
||||
}
|
||||
func (x fastReflection_GenesisState_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_GenesisState)
|
||||
}
|
||||
func (x fastReflection_GenesisState_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_GenesisState
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_GenesisState) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_GenesisState
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_GenesisState) Type() protoreflect.MessageType {
|
||||
return _fastReflection_GenesisState_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_GenesisState) New() protoreflect.Message {
|
||||
return new(fastReflection_GenesisState)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage {
|
||||
return (*GenesisState)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if len(x.Authorization) != 0 {
|
||||
value := protoreflect.ValueOfList(&_GenesisState_1_list{list: &x.Authorization})
|
||||
if !f(fd_GenesisState_authorization, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.authz.v1beta1.GenesisState.authorization":
|
||||
return len(x.Authorization) != 0
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.authz.v1beta1.GenesisState.authorization":
|
||||
x.Authorization = nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cosmos.authz.v1beta1.GenesisState.authorization":
|
||||
if len(x.Authorization) == 0 {
|
||||
return protoreflect.ValueOfList(&_GenesisState_1_list{})
|
||||
}
|
||||
listValue := &_GenesisState_1_list{list: &x.Authorization}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.v1beta1.GenesisState does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.authz.v1beta1.GenesisState.authorization":
|
||||
lv := value.List()
|
||||
clv := lv.(*_GenesisState_1_list)
|
||||
x.Authorization = *clv.list
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.authz.v1beta1.GenesisState.authorization":
|
||||
if x.Authorization == nil {
|
||||
x.Authorization = []*GrantAuthorization{}
|
||||
}
|
||||
value := &_GenesisState_1_list{list: &x.Authorization}
|
||||
return protoreflect.ValueOfList(value)
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.authz.v1beta1.GenesisState.authorization":
|
||||
list := []*GrantAuthorization{}
|
||||
return protoreflect.ValueOfList(&_GenesisState_1_list{list: &list})
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.authz.v1beta1.GenesisState"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.authz.v1beta1.GenesisState does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_GenesisState) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.authz.v1beta1.GenesisState", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_GenesisState) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_GenesisState) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_GenesisState) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*GenesisState)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if len(x.Authorization) > 0 {
|
||||
for _, e := range x.Authorization {
|
||||
l = options.Size(e)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*GenesisState)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if len(x.Authorization) > 0 {
|
||||
for iNdEx := len(x.Authorization) - 1; iNdEx >= 0; iNdEx-- {
|
||||
encoded, err := options.Marshal(x.Authorization[iNdEx])
|
||||
if err != nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, err
|
||||
}
|
||||
i -= len(encoded)
|
||||
copy(dAtA[i:], encoded)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*GenesisState)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authorization", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.Authorization = append(x.Authorization, &GrantAuthorization{})
|
||||
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Authorization[len(x.Authorization)-1]); err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/authz/v1beta1/genesis.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// GenesisState defines the authz module's genesis state.
|
||||
type GenesisState struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Authorization []*GrantAuthorization `protobuf:"bytes,1,rep,name=authorization,proto3" json:"authorization,omitempty"`
|
||||
}
|
||||
|
||||
func (x *GenesisState) Reset() {
|
||||
*x = GenesisState{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_authz_v1beta1_genesis_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *GenesisState) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*GenesisState) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use GenesisState.ProtoReflect.Descriptor instead.
|
||||
func (*GenesisState) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_authz_v1beta1_genesis_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *GenesisState) GetAuthorization() []*GrantAuthorization {
|
||||
if x != nil {
|
||||
return x.Authorization
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_cosmos_authz_v1beta1_genesis_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_authz_v1beta1_genesis_proto_rawDesc = []byte{
|
||||
0x0a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x76,
|
||||
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74,
|
||||
0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x1a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x76,
|
||||
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x69, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
|
||||
0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65,
|
||||
0x74, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
|
||||
0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a,
|
||||
0x01, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x42, 0xce, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47,
|
||||
0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
||||
0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2f, 0x76, 0x31, 0x62,
|
||||
0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2e, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02,
|
||||
0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x5c, 0x56, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x20, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41,
|
||||
0x75, 0x74, 0x68, 0x7a, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42,
|
||||
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_authz_v1beta1_genesis_proto_rawDescOnce sync.Once
|
||||
file_cosmos_authz_v1beta1_genesis_proto_rawDescData = file_cosmos_authz_v1beta1_genesis_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_authz_v1beta1_genesis_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_authz_v1beta1_genesis_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_authz_v1beta1_genesis_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_authz_v1beta1_genesis_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_authz_v1beta1_genesis_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_authz_v1beta1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_cosmos_authz_v1beta1_genesis_proto_goTypes = []interface{}{
|
||||
(*GenesisState)(nil), // 0: cosmos.authz.v1beta1.GenesisState
|
||||
(*GrantAuthorization)(nil), // 1: cosmos.authz.v1beta1.GrantAuthorization
|
||||
}
|
||||
var file_cosmos_authz_v1beta1_genesis_proto_depIdxs = []int32{
|
||||
1, // 0: cosmos.authz.v1beta1.GenesisState.authorization:type_name -> cosmos.authz.v1beta1.GrantAuthorization
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_authz_v1beta1_genesis_proto_init() }
|
||||
func file_cosmos_authz_v1beta1_genesis_proto_init() {
|
||||
if File_cosmos_authz_v1beta1_genesis_proto != nil {
|
||||
return
|
||||
}
|
||||
file_cosmos_authz_v1beta1_authz_proto_init()
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_authz_v1beta1_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*GenesisState); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_authz_v1beta1_genesis_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_cosmos_authz_v1beta1_genesis_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_authz_v1beta1_genesis_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_authz_v1beta1_genesis_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_authz_v1beta1_genesis_proto = out.File
|
||||
file_cosmos_authz_v1beta1_genesis_proto_rawDesc = nil
|
||||
file_cosmos_authz_v1beta1_genesis_proto_goTypes = nil
|
||||
file_cosmos_authz_v1beta1_genesis_proto_depIdxs = nil
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,207 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/authz/v1beta1/query.proto
|
||||
|
||||
package authzv1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Query_Grants_FullMethodName = "/cosmos.authz.v1beta1.Query/Grants"
|
||||
Query_GranterGrants_FullMethodName = "/cosmos.authz.v1beta1.Query/GranterGrants"
|
||||
Query_GranteeGrants_FullMethodName = "/cosmos.authz.v1beta1.Query/GranteeGrants"
|
||||
)
|
||||
|
||||
// QueryClient is the client API for Query service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Query defines the gRPC querier service.
|
||||
type QueryClient interface {
|
||||
// Returns list of `Authorization`, granted to the grantee by the granter.
|
||||
Grants(ctx context.Context, in *QueryGrantsRequest, opts ...grpc.CallOption) (*QueryGrantsResponse, error)
|
||||
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
|
||||
GranterGrants(ctx context.Context, in *QueryGranterGrantsRequest, opts ...grpc.CallOption) (*QueryGranterGrantsResponse, error)
|
||||
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
|
||||
GranteeGrants(ctx context.Context, in *QueryGranteeGrantsRequest, opts ...grpc.CallOption) (*QueryGranteeGrantsResponse, error)
|
||||
}
|
||||
|
||||
type queryClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewQueryClient(cc grpc.ClientConnInterface) QueryClient {
|
||||
return &queryClient{cc}
|
||||
}
|
||||
|
||||
func (c *queryClient) Grants(ctx context.Context, in *QueryGrantsRequest, opts ...grpc.CallOption) (*QueryGrantsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryGrantsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Grants_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) GranterGrants(ctx context.Context, in *QueryGranterGrantsRequest, opts ...grpc.CallOption) (*QueryGranterGrantsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryGranterGrantsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_GranterGrants_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) GranteeGrants(ctx context.Context, in *QueryGranteeGrantsRequest, opts ...grpc.CallOption) (*QueryGranteeGrantsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryGranteeGrantsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_GranteeGrants_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// QueryServer is the server API for Query service.
|
||||
// All implementations must embed UnimplementedQueryServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Query defines the gRPC querier service.
|
||||
type QueryServer interface {
|
||||
// Returns list of `Authorization`, granted to the grantee by the granter.
|
||||
Grants(context.Context, *QueryGrantsRequest) (*QueryGrantsResponse, error)
|
||||
// GranterGrants returns list of `GrantAuthorization`, granted by granter.
|
||||
GranterGrants(context.Context, *QueryGranterGrantsRequest) (*QueryGranterGrantsResponse, error)
|
||||
// GranteeGrants returns a list of `GrantAuthorization` by grantee.
|
||||
GranteeGrants(context.Context, *QueryGranteeGrantsRequest) (*QueryGranteeGrantsResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
// UnimplementedQueryServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedQueryServer struct{}
|
||||
|
||||
func (UnimplementedQueryServer) Grants(context.Context, *QueryGrantsRequest) (*QueryGrantsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Grants not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) GranterGrants(context.Context, *QueryGranterGrantsRequest) (*QueryGranterGrantsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GranterGrants not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) GranteeGrants(context.Context, *QueryGranteeGrantsRequest) (*QueryGranteeGrantsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GranteeGrants not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
|
||||
func (UnimplementedQueryServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to QueryServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeQueryServer interface {
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) {
|
||||
// If the following call pancis, it indicates UnimplementedQueryServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Query_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Query_Grants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryGrantsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Grants(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Grants_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Grants(ctx, req.(*QueryGrantsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_GranterGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryGranterGrantsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).GranterGrants(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_GranterGrants_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).GranterGrants(ctx, req.(*QueryGranterGrantsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_GranteeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryGranteeGrantsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).GranteeGrants(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_GranteeGrants_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).GranteeGrants(ctx, req.(*QueryGranteeGrantsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.authz.v1beta1.Query",
|
||||
HandlerType: (*QueryServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Grants",
|
||||
Handler: _Query_Grants_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GranterGrants",
|
||||
Handler: _Query_GranterGrants_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "GranteeGrants",
|
||||
Handler: _Query_GranteeGrants_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/authz/v1beta1/query.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,219 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/authz/v1beta1/tx.proto
|
||||
|
||||
package authzv1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Msg_Grant_FullMethodName = "/cosmos.authz.v1beta1.Msg/Grant"
|
||||
Msg_Exec_FullMethodName = "/cosmos.authz.v1beta1.Msg/Exec"
|
||||
Msg_Revoke_FullMethodName = "/cosmos.authz.v1beta1.Msg/Revoke"
|
||||
)
|
||||
|
||||
// MsgClient is the client API for Msg service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Msg defines the authz Msg service.
|
||||
type MsgClient interface {
|
||||
// Grant grants the provided authorization to the grantee on the granter's
|
||||
// account with the provided expiration time. If there is already a grant
|
||||
// for the given (granter, grantee, Authorization) triple, then the grant
|
||||
// will be overwritten.
|
||||
Grant(ctx context.Context, in *MsgGrant, opts ...grpc.CallOption) (*MsgGrantResponse, error)
|
||||
// Exec attempts to execute the provided messages using
|
||||
// authorizations granted to the grantee. Each message should have only
|
||||
// one signer corresponding to the granter of the authorization.
|
||||
Exec(ctx context.Context, in *MsgExec, opts ...grpc.CallOption) (*MsgExecResponse, error)
|
||||
// Revoke revokes any authorization corresponding to the provided method name on the
|
||||
// granter's account that has been granted to the grantee.
|
||||
Revoke(ctx context.Context, in *MsgRevoke, opts ...grpc.CallOption) (*MsgRevokeResponse, error)
|
||||
}
|
||||
|
||||
type msgClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewMsgClient(cc grpc.ClientConnInterface) MsgClient {
|
||||
return &msgClient{cc}
|
||||
}
|
||||
|
||||
func (c *msgClient) Grant(ctx context.Context, in *MsgGrant, opts ...grpc.CallOption) (*MsgGrantResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgGrantResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_Grant_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *msgClient) Exec(ctx context.Context, in *MsgExec, opts ...grpc.CallOption) (*MsgExecResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgExecResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_Exec_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *msgClient) Revoke(ctx context.Context, in *MsgRevoke, opts ...grpc.CallOption) (*MsgRevokeResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgRevokeResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_Revoke_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// MsgServer is the server API for Msg service.
|
||||
// All implementations must embed UnimplementedMsgServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Msg defines the authz Msg service.
|
||||
type MsgServer interface {
|
||||
// Grant grants the provided authorization to the grantee on the granter's
|
||||
// account with the provided expiration time. If there is already a grant
|
||||
// for the given (granter, grantee, Authorization) triple, then the grant
|
||||
// will be overwritten.
|
||||
Grant(context.Context, *MsgGrant) (*MsgGrantResponse, error)
|
||||
// Exec attempts to execute the provided messages using
|
||||
// authorizations granted to the grantee. Each message should have only
|
||||
// one signer corresponding to the granter of the authorization.
|
||||
Exec(context.Context, *MsgExec) (*MsgExecResponse, error)
|
||||
// Revoke revokes any authorization corresponding to the provided method name on the
|
||||
// granter's account that has been granted to the grantee.
|
||||
Revoke(context.Context, *MsgRevoke) (*MsgRevokeResponse, error)
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
// UnimplementedMsgServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedMsgServer struct{}
|
||||
|
||||
func (UnimplementedMsgServer) Grant(context.Context, *MsgGrant) (*MsgGrantResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Grant not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) Exec(context.Context, *MsgExec) (*MsgExecResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Exec not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) Revoke(context.Context, *MsgRevoke) (*MsgRevokeResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Revoke not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {}
|
||||
func (UnimplementedMsgServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to MsgServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeMsgServer interface {
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) {
|
||||
// If the following call pancis, it indicates UnimplementedMsgServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Msg_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Msg_Grant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgGrant)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).Grant(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_Grant_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).Grant(ctx, req.(*MsgGrant))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Msg_Exec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgExec)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).Exec(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_Exec_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).Exec(ctx, req.(*MsgExec))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Msg_Revoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgRevoke)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).Revoke(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_Revoke_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).Revoke(ctx, req.(*MsgRevoke))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Msg_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.authz.v1beta1.Msg",
|
||||
HandlerType: (*MsgServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Grant",
|
||||
Handler: _Msg_Grant_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Exec",
|
||||
Handler: _Msg_Exec_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Revoke",
|
||||
Handler: _Msg_Revoke_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/authz/v1beta1/tx.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,129 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/autocli/v1/query.proto
|
||||
|
||||
package autocliv1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Query_AppOptions_FullMethodName = "/cosmos.autocli.v1.Query/AppOptions"
|
||||
)
|
||||
|
||||
// QueryClient is the client API for Query service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// RemoteInfoService provides clients with the information they need
|
||||
// to build dynamically CLI clients for remote chains.
|
||||
type QueryClient interface {
|
||||
// AppOptions returns the autocli options for all of the modules in an app.
|
||||
AppOptions(ctx context.Context, in *AppOptionsRequest, opts ...grpc.CallOption) (*AppOptionsResponse, error)
|
||||
}
|
||||
|
||||
type queryClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewQueryClient(cc grpc.ClientConnInterface) QueryClient {
|
||||
return &queryClient{cc}
|
||||
}
|
||||
|
||||
func (c *queryClient) AppOptions(ctx context.Context, in *AppOptionsRequest, opts ...grpc.CallOption) (*AppOptionsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(AppOptionsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_AppOptions_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// QueryServer is the server API for Query service.
|
||||
// All implementations must embed UnimplementedQueryServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// RemoteInfoService provides clients with the information they need
|
||||
// to build dynamically CLI clients for remote chains.
|
||||
type QueryServer interface {
|
||||
// AppOptions returns the autocli options for all of the modules in an app.
|
||||
AppOptions(context.Context, *AppOptionsRequest) (*AppOptionsResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
// UnimplementedQueryServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedQueryServer struct{}
|
||||
|
||||
func (UnimplementedQueryServer) AppOptions(context.Context, *AppOptionsRequest) (*AppOptionsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AppOptions not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
|
||||
func (UnimplementedQueryServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to QueryServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeQueryServer interface {
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) {
|
||||
// If the following call pancis, it indicates UnimplementedQueryServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Query_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Query_AppOptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(AppOptionsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).AppOptions(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_AppOptions_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).AppOptions(ctx, req.(*AppOptionsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.autocli.v1.Query",
|
||||
HandlerType: (*QueryServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "AppOptions",
|
||||
Handler: _Query_AppOptions_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/autocli/v1/query.proto",
|
||||
}
|
||||
@@ -0,0 +1,856 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package modulev1
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/api/cosmos/app/v1alpha1"
|
||||
fmt "fmt"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var _ protoreflect.List = (*_Module_1_list)(nil)
|
||||
|
||||
type _Module_1_list struct {
|
||||
list *[]string
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfString((*x.list)[i])
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) AppendMutable() protoreflect.Value {
|
||||
panic(fmt.Errorf("AppendMutable can not be called on message Module at list field BlockedModuleAccountsOverride as it is not of Message kind"))
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) Truncate(n int) {
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) NewElement() protoreflect.Value {
|
||||
v := ""
|
||||
return protoreflect.ValueOfString(v)
|
||||
}
|
||||
|
||||
func (x *_Module_1_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var _ protoreflect.List = (*_Module_3_list)(nil)
|
||||
|
||||
type _Module_3_list struct {
|
||||
list *[]string
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfString((*x.list)[i])
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) AppendMutable() protoreflect.Value {
|
||||
panic(fmt.Errorf("AppendMutable can not be called on message Module at list field RestrictionsOrder as it is not of Message kind"))
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) Truncate(n int) {
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) NewElement() protoreflect.Value {
|
||||
v := ""
|
||||
return protoreflect.ValueOfString(v)
|
||||
}
|
||||
|
||||
func (x *_Module_3_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var (
|
||||
md_Module protoreflect.MessageDescriptor
|
||||
fd_Module_blocked_module_accounts_override protoreflect.FieldDescriptor
|
||||
fd_Module_authority protoreflect.FieldDescriptor
|
||||
fd_Module_restrictions_order protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_bank_module_v1_module_proto_init()
|
||||
md_Module = File_cosmos_bank_module_v1_module_proto.Messages().ByName("Module")
|
||||
fd_Module_blocked_module_accounts_override = md_Module.Fields().ByName("blocked_module_accounts_override")
|
||||
fd_Module_authority = md_Module.Fields().ByName("authority")
|
||||
fd_Module_restrictions_order = md_Module.Fields().ByName("restrictions_order")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_Module)(nil)
|
||||
|
||||
type fastReflection_Module Module
|
||||
|
||||
func (x *Module) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_Module)(x)
|
||||
}
|
||||
|
||||
func (x *Module) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_bank_module_v1_module_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_Module_messageType fastReflection_Module_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_Module_messageType{}
|
||||
|
||||
type fastReflection_Module_messageType struct{}
|
||||
|
||||
func (x fastReflection_Module_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_Module)(nil)
|
||||
}
|
||||
func (x fastReflection_Module_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_Module)
|
||||
}
|
||||
func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_Module
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_Module
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_Module) Type() protoreflect.MessageType {
|
||||
return _fastReflection_Module_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_Module) New() protoreflect.Message {
|
||||
return new(fastReflection_Module)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage {
|
||||
return (*Module)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if len(x.BlockedModuleAccountsOverride) != 0 {
|
||||
value := protoreflect.ValueOfList(&_Module_1_list{list: &x.BlockedModuleAccountsOverride})
|
||||
if !f(fd_Module_blocked_module_accounts_override, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if x.Authority != "" {
|
||||
value := protoreflect.ValueOfString(x.Authority)
|
||||
if !f(fd_Module_authority, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if len(x.RestrictionsOrder) != 0 {
|
||||
value := protoreflect.ValueOfList(&_Module_3_list{list: &x.RestrictionsOrder})
|
||||
if !f(fd_Module_restrictions_order, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.module.v1.Module.blocked_module_accounts_override":
|
||||
return len(x.BlockedModuleAccountsOverride) != 0
|
||||
case "cosmos.bank.module.v1.Module.authority":
|
||||
return x.Authority != ""
|
||||
case "cosmos.bank.module.v1.Module.restrictions_order":
|
||||
return len(x.RestrictionsOrder) != 0
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.module.v1.Module.blocked_module_accounts_override":
|
||||
x.BlockedModuleAccountsOverride = nil
|
||||
case "cosmos.bank.module.v1.Module.authority":
|
||||
x.Authority = ""
|
||||
case "cosmos.bank.module.v1.Module.restrictions_order":
|
||||
x.RestrictionsOrder = nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cosmos.bank.module.v1.Module.blocked_module_accounts_override":
|
||||
if len(x.BlockedModuleAccountsOverride) == 0 {
|
||||
return protoreflect.ValueOfList(&_Module_1_list{})
|
||||
}
|
||||
listValue := &_Module_1_list{list: &x.BlockedModuleAccountsOverride}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
case "cosmos.bank.module.v1.Module.authority":
|
||||
value := x.Authority
|
||||
return protoreflect.ValueOfString(value)
|
||||
case "cosmos.bank.module.v1.Module.restrictions_order":
|
||||
if len(x.RestrictionsOrder) == 0 {
|
||||
return protoreflect.ValueOfList(&_Module_3_list{})
|
||||
}
|
||||
listValue := &_Module_3_list{list: &x.RestrictionsOrder}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.module.v1.Module does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.module.v1.Module.blocked_module_accounts_override":
|
||||
lv := value.List()
|
||||
clv := lv.(*_Module_1_list)
|
||||
x.BlockedModuleAccountsOverride = *clv.list
|
||||
case "cosmos.bank.module.v1.Module.authority":
|
||||
x.Authority = value.Interface().(string)
|
||||
case "cosmos.bank.module.v1.Module.restrictions_order":
|
||||
lv := value.List()
|
||||
clv := lv.(*_Module_3_list)
|
||||
x.RestrictionsOrder = *clv.list
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.module.v1.Module.blocked_module_accounts_override":
|
||||
if x.BlockedModuleAccountsOverride == nil {
|
||||
x.BlockedModuleAccountsOverride = []string{}
|
||||
}
|
||||
value := &_Module_1_list{list: &x.BlockedModuleAccountsOverride}
|
||||
return protoreflect.ValueOfList(value)
|
||||
case "cosmos.bank.module.v1.Module.restrictions_order":
|
||||
if x.RestrictionsOrder == nil {
|
||||
x.RestrictionsOrder = []string{}
|
||||
}
|
||||
value := &_Module_3_list{list: &x.RestrictionsOrder}
|
||||
return protoreflect.ValueOfList(value)
|
||||
case "cosmos.bank.module.v1.Module.authority":
|
||||
panic(fmt.Errorf("field authority of message cosmos.bank.module.v1.Module is not mutable"))
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.module.v1.Module.blocked_module_accounts_override":
|
||||
list := []string{}
|
||||
return protoreflect.ValueOfList(&_Module_1_list{list: &list})
|
||||
case "cosmos.bank.module.v1.Module.authority":
|
||||
return protoreflect.ValueOfString("")
|
||||
case "cosmos.bank.module.v1.Module.restrictions_order":
|
||||
list := []string{}
|
||||
return protoreflect.ValueOfList(&_Module_3_list{list: &list})
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.module.v1.Module"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.module.v1.Module does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.bank.module.v1.Module", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_Module) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if len(x.BlockedModuleAccountsOverride) > 0 {
|
||||
for _, s := range x.BlockedModuleAccountsOverride {
|
||||
l = len(s)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
l = len(x.Authority)
|
||||
if l > 0 {
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
if len(x.RestrictionsOrder) > 0 {
|
||||
for _, s := range x.RestrictionsOrder {
|
||||
l = len(s)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if len(x.RestrictionsOrder) > 0 {
|
||||
for iNdEx := len(x.RestrictionsOrder) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(x.RestrictionsOrder[iNdEx])
|
||||
copy(dAtA[i:], x.RestrictionsOrder[iNdEx])
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.RestrictionsOrder[iNdEx])))
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
}
|
||||
if len(x.Authority) > 0 {
|
||||
i -= len(x.Authority)
|
||||
copy(dAtA[i:], x.Authority)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority)))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
if len(x.BlockedModuleAccountsOverride) > 0 {
|
||||
for iNdEx := len(x.BlockedModuleAccountsOverride) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(x.BlockedModuleAccountsOverride[iNdEx])
|
||||
copy(dAtA[i:], x.BlockedModuleAccountsOverride[iNdEx])
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.BlockedModuleAccountsOverride[iNdEx])))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*Module)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field BlockedModuleAccountsOverride", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.BlockedModuleAccountsOverride = append(x.BlockedModuleAccountsOverride, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.Authority = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field RestrictionsOrder", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.RestrictionsOrder = append(x.RestrictionsOrder, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/bank/module/v1/module.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// Module is the config object of the bank module.
|
||||
type Module struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
// blocked_module_accounts_override configures exceptional module accounts which should be blocked from receiving
|
||||
// funds. If left empty it defaults to the list of account names supplied in the auth module configuration as
|
||||
// module_account_permissions
|
||||
BlockedModuleAccountsOverride []string `protobuf:"bytes,1,rep,name=blocked_module_accounts_override,json=blockedModuleAccountsOverride,proto3" json:"blocked_module_accounts_override,omitempty"`
|
||||
// authority defines the custom module authority. If not set, defaults to the governance module.
|
||||
Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"`
|
||||
// restrictions_order specifies the order of send restrictions and should be
|
||||
// a list of module names which provide a send restriction instance. If no
|
||||
// order is provided, then restrictions will be applied in alphabetical order
|
||||
// of module names.
|
||||
RestrictionsOrder []string `protobuf:"bytes,3,rep,name=restrictions_order,json=restrictionsOrder,proto3" json:"restrictions_order,omitempty"`
|
||||
}
|
||||
|
||||
func (x *Module) Reset() {
|
||||
*x = Module{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_bank_module_v1_module_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *Module) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Module) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use Module.ProtoReflect.Descriptor instead.
|
||||
func (*Module) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_bank_module_v1_module_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Module) GetBlockedModuleAccountsOverride() []string {
|
||||
if x != nil {
|
||||
return x.BlockedModuleAccountsOverride
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *Module) GetAuthority() string {
|
||||
if x != nil {
|
||||
return x.Authority
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Module) GetRestrictionsOrder() []string {
|
||||
if x != nil {
|
||||
return x.RestrictionsOrder
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_cosmos_bank_module_v1_module_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_bank_module_v1_module_proto_rawDesc = []byte{
|
||||
0x0a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x6d, 0x6f,
|
||||
0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e,
|
||||
0x6b, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
|
||||
0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcb, 0x01,
|
||||
0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x62, 0x6c, 0x6f, 0x63,
|
||||
0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75,
|
||||
0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x03,
|
||||
0x28, 0x09, 0x52, 0x1d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
|
||||
0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
|
||||
0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12,
|
||||
0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f,
|
||||
0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x73,
|
||||
0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x2b,
|
||||
0xba, 0xc0, 0x96, 0xda, 0x01, 0x25, 0x0a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x42, 0xd0, 0x01, 0x0a, 0x19,
|
||||
0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e,
|
||||
0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c,
|
||||
0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f,
|
||||
0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31,
|
||||
0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x4d, 0xaa,
|
||||
0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x4d, 0x6f,
|
||||
0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2,
|
||||
0x02, 0x21, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x4d, 0x6f,
|
||||
0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64,
|
||||
0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61,
|
||||
0x6e, 0x6b, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_bank_module_v1_module_proto_rawDescOnce sync.Once
|
||||
file_cosmos_bank_module_v1_module_proto_rawDescData = file_cosmos_bank_module_v1_module_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_bank_module_v1_module_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_bank_module_v1_module_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_bank_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_bank_module_v1_module_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_bank_module_v1_module_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_bank_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_cosmos_bank_module_v1_module_proto_goTypes = []interface{}{
|
||||
(*Module)(nil), // 0: cosmos.bank.module.v1.Module
|
||||
}
|
||||
var file_cosmos_bank_module_v1_module_proto_depIdxs = []int32{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_bank_module_v1_module_proto_init() }
|
||||
func file_cosmos_bank_module_v1_module_proto_init() {
|
||||
if File_cosmos_bank_module_v1_module_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_bank_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*Module); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_bank_module_v1_module_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_cosmos_bank_module_v1_module_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_bank_module_v1_module_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_bank_module_v1_module_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_bank_module_v1_module_proto = out.File
|
||||
file_cosmos_bank_module_v1_module_proto_rawDesc = nil
|
||||
file_cosmos_bank_module_v1_module_proto_goTypes = nil
|
||||
file_cosmos_bank_module_v1_module_proto_depIdxs = nil
|
||||
}
|
||||
@@ -0,0 +1,808 @@
|
||||
// Code generated by protoc-gen-go-pulsar. DO NOT EDIT.
|
||||
package bankv1beta1
|
||||
|
||||
import (
|
||||
_ "cosmossdk.io/api/amino"
|
||||
v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1"
|
||||
fmt "fmt"
|
||||
_ "github.com/cosmos/cosmos-proto"
|
||||
runtime "github.com/cosmos/cosmos-proto/runtime"
|
||||
_ "github.com/cosmos/gogoproto/gogoproto"
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoiface "google.golang.org/protobuf/runtime/protoiface"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
io "io"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
)
|
||||
|
||||
var _ protoreflect.List = (*_SendAuthorization_1_list)(nil)
|
||||
|
||||
type _SendAuthorization_1_list struct {
|
||||
list *[]*v1beta1.Coin
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.Message()
|
||||
concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin)
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.Message()
|
||||
concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin)
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) AppendMutable() protoreflect.Value {
|
||||
v := new(v1beta1.Coin)
|
||||
*x.list = append(*x.list, v)
|
||||
return protoreflect.ValueOfMessage(v.ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) Truncate(n int) {
|
||||
for i := n; i < len(*x.list); i++ {
|
||||
(*x.list)[i] = nil
|
||||
}
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) NewElement() protoreflect.Value {
|
||||
v := new(v1beta1.Coin)
|
||||
return protoreflect.ValueOfMessage(v.ProtoReflect())
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_1_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var _ protoreflect.List = (*_SendAuthorization_2_list)(nil)
|
||||
|
||||
type _SendAuthorization_2_list struct {
|
||||
list *[]string
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) Len() int {
|
||||
if x.list == nil {
|
||||
return 0
|
||||
}
|
||||
return len(*x.list)
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) Get(i int) protoreflect.Value {
|
||||
return protoreflect.ValueOfString((*x.list)[i])
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) Set(i int, value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
(*x.list)[i] = concreteValue
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) Append(value protoreflect.Value) {
|
||||
valueUnwrapped := value.String()
|
||||
concreteValue := valueUnwrapped
|
||||
*x.list = append(*x.list, concreteValue)
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) AppendMutable() protoreflect.Value {
|
||||
panic(fmt.Errorf("AppendMutable can not be called on message SendAuthorization at list field AllowList as it is not of Message kind"))
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) Truncate(n int) {
|
||||
*x.list = (*x.list)[:n]
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) NewElement() protoreflect.Value {
|
||||
v := ""
|
||||
return protoreflect.ValueOfString(v)
|
||||
}
|
||||
|
||||
func (x *_SendAuthorization_2_list) IsValid() bool {
|
||||
return x.list != nil
|
||||
}
|
||||
|
||||
var (
|
||||
md_SendAuthorization protoreflect.MessageDescriptor
|
||||
fd_SendAuthorization_spend_limit protoreflect.FieldDescriptor
|
||||
fd_SendAuthorization_allow_list protoreflect.FieldDescriptor
|
||||
)
|
||||
|
||||
func init() {
|
||||
file_cosmos_bank_v1beta1_authz_proto_init()
|
||||
md_SendAuthorization = File_cosmos_bank_v1beta1_authz_proto.Messages().ByName("SendAuthorization")
|
||||
fd_SendAuthorization_spend_limit = md_SendAuthorization.Fields().ByName("spend_limit")
|
||||
fd_SendAuthorization_allow_list = md_SendAuthorization.Fields().ByName("allow_list")
|
||||
}
|
||||
|
||||
var _ protoreflect.Message = (*fastReflection_SendAuthorization)(nil)
|
||||
|
||||
type fastReflection_SendAuthorization SendAuthorization
|
||||
|
||||
func (x *SendAuthorization) ProtoReflect() protoreflect.Message {
|
||||
return (*fastReflection_SendAuthorization)(x)
|
||||
}
|
||||
|
||||
func (x *SendAuthorization) slowProtoReflect() protoreflect.Message {
|
||||
mi := &file_cosmos_bank_v1beta1_authz_proto_msgTypes[0]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
var _fastReflection_SendAuthorization_messageType fastReflection_SendAuthorization_messageType
|
||||
var _ protoreflect.MessageType = fastReflection_SendAuthorization_messageType{}
|
||||
|
||||
type fastReflection_SendAuthorization_messageType struct{}
|
||||
|
||||
func (x fastReflection_SendAuthorization_messageType) Zero() protoreflect.Message {
|
||||
return (*fastReflection_SendAuthorization)(nil)
|
||||
}
|
||||
func (x fastReflection_SendAuthorization_messageType) New() protoreflect.Message {
|
||||
return new(fastReflection_SendAuthorization)
|
||||
}
|
||||
func (x fastReflection_SendAuthorization_messageType) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_SendAuthorization
|
||||
}
|
||||
|
||||
// Descriptor returns message descriptor, which contains only the protobuf
|
||||
// type information for the message.
|
||||
func (x *fastReflection_SendAuthorization) Descriptor() protoreflect.MessageDescriptor {
|
||||
return md_SendAuthorization
|
||||
}
|
||||
|
||||
// Type returns the message type, which encapsulates both Go and protobuf
|
||||
// type information. If the Go type information is not needed,
|
||||
// it is recommended that the message descriptor be used instead.
|
||||
func (x *fastReflection_SendAuthorization) Type() protoreflect.MessageType {
|
||||
return _fastReflection_SendAuthorization_messageType
|
||||
}
|
||||
|
||||
// New returns a newly allocated and mutable empty message.
|
||||
func (x *fastReflection_SendAuthorization) New() protoreflect.Message {
|
||||
return new(fastReflection_SendAuthorization)
|
||||
}
|
||||
|
||||
// Interface unwraps the message reflection interface and
|
||||
// returns the underlying ProtoMessage interface.
|
||||
func (x *fastReflection_SendAuthorization) Interface() protoreflect.ProtoMessage {
|
||||
return (*SendAuthorization)(x)
|
||||
}
|
||||
|
||||
// Range iterates over every populated field in an undefined order,
|
||||
// calling f for each field descriptor and value encountered.
|
||||
// Range returns immediately if f returns false.
|
||||
// While iterating, mutating operations may only be performed
|
||||
// on the current field descriptor.
|
||||
func (x *fastReflection_SendAuthorization) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {
|
||||
if len(x.SpendLimit) != 0 {
|
||||
value := protoreflect.ValueOfList(&_SendAuthorization_1_list{list: &x.SpendLimit})
|
||||
if !f(fd_SendAuthorization_spend_limit, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if len(x.AllowList) != 0 {
|
||||
value := protoreflect.ValueOfList(&_SendAuthorization_2_list{list: &x.AllowList})
|
||||
if !f(fd_SendAuthorization_allow_list, value) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Has reports whether a field is populated.
|
||||
//
|
||||
// Some fields have the property of nullability where it is possible to
|
||||
// distinguish between the default value of a field and whether the field
|
||||
// was explicitly populated with the default value. Singular message fields,
|
||||
// member fields of a oneof, and proto2 scalar fields are nullable. Such
|
||||
// fields are populated only if explicitly set.
|
||||
//
|
||||
// In other cases (aside from the nullable cases above),
|
||||
// a proto3 scalar field is populated if it contains a non-zero value, and
|
||||
// a repeated field is populated if it is non-empty.
|
||||
func (x *fastReflection_SendAuthorization) Has(fd protoreflect.FieldDescriptor) bool {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.spend_limit":
|
||||
return len(x.SpendLimit) != 0
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.allow_list":
|
||||
return len(x.AllowList) != 0
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.v1beta1.SendAuthorization"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.v1beta1.SendAuthorization does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Clear clears the field such that a subsequent Has call reports false.
|
||||
//
|
||||
// Clearing an extension field clears both the extension type and value
|
||||
// associated with the given field number.
|
||||
//
|
||||
// Clear is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_SendAuthorization) Clear(fd protoreflect.FieldDescriptor) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.spend_limit":
|
||||
x.SpendLimit = nil
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.allow_list":
|
||||
x.AllowList = nil
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.v1beta1.SendAuthorization"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.v1beta1.SendAuthorization does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Get retrieves the value for a field.
|
||||
//
|
||||
// For unpopulated scalars, it returns the default value, where
|
||||
// the default value of a bytes scalar is guaranteed to be a copy.
|
||||
// For unpopulated composite types, it returns an empty, read-only view
|
||||
// of the value; to obtain a mutable reference, use Mutable.
|
||||
func (x *fastReflection_SendAuthorization) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch descriptor.FullName() {
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.spend_limit":
|
||||
if len(x.SpendLimit) == 0 {
|
||||
return protoreflect.ValueOfList(&_SendAuthorization_1_list{})
|
||||
}
|
||||
listValue := &_SendAuthorization_1_list{list: &x.SpendLimit}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.allow_list":
|
||||
if len(x.AllowList) == 0 {
|
||||
return protoreflect.ValueOfList(&_SendAuthorization_2_list{})
|
||||
}
|
||||
listValue := &_SendAuthorization_2_list{list: &x.AllowList}
|
||||
return protoreflect.ValueOfList(listValue)
|
||||
default:
|
||||
if descriptor.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.v1beta1.SendAuthorization"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.v1beta1.SendAuthorization does not contain field %s", descriptor.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Set stores the value for a field.
|
||||
//
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType.
|
||||
// When setting a composite type, it is unspecified whether the stored value
|
||||
// aliases the source's memory in any way. If the composite value is an
|
||||
// empty, read-only value, then it panics.
|
||||
//
|
||||
// Set is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_SendAuthorization) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.spend_limit":
|
||||
lv := value.List()
|
||||
clv := lv.(*_SendAuthorization_1_list)
|
||||
x.SpendLimit = *clv.list
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.allow_list":
|
||||
lv := value.List()
|
||||
clv := lv.(*_SendAuthorization_2_list)
|
||||
x.AllowList = *clv.list
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.v1beta1.SendAuthorization"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.v1beta1.SendAuthorization does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// Mutable returns a mutable reference to a composite type.
|
||||
//
|
||||
// If the field is unpopulated, it may allocate a composite value.
|
||||
// For a field belonging to a oneof, it implicitly clears any other field
|
||||
// that may be currently set within the same oneof.
|
||||
// For extension fields, it implicitly stores the provided ExtensionType
|
||||
// if not already stored.
|
||||
// It panics if the field does not contain a composite type.
|
||||
//
|
||||
// Mutable is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_SendAuthorization) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.spend_limit":
|
||||
if x.SpendLimit == nil {
|
||||
x.SpendLimit = []*v1beta1.Coin{}
|
||||
}
|
||||
value := &_SendAuthorization_1_list{list: &x.SpendLimit}
|
||||
return protoreflect.ValueOfList(value)
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.allow_list":
|
||||
if x.AllowList == nil {
|
||||
x.AllowList = []string{}
|
||||
}
|
||||
value := &_SendAuthorization_2_list{list: &x.AllowList}
|
||||
return protoreflect.ValueOfList(value)
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.v1beta1.SendAuthorization"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.v1beta1.SendAuthorization does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// NewField returns a new value that is assignable to the field
|
||||
// for the given descriptor. For scalars, this returns the default value.
|
||||
// For lists, maps, and messages, this returns a new, empty, mutable value.
|
||||
func (x *fastReflection_SendAuthorization) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {
|
||||
switch fd.FullName() {
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.spend_limit":
|
||||
list := []*v1beta1.Coin{}
|
||||
return protoreflect.ValueOfList(&_SendAuthorization_1_list{list: &list})
|
||||
case "cosmos.bank.v1beta1.SendAuthorization.allow_list":
|
||||
list := []string{}
|
||||
return protoreflect.ValueOfList(&_SendAuthorization_2_list{list: &list})
|
||||
default:
|
||||
if fd.IsExtension() {
|
||||
panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.bank.v1beta1.SendAuthorization"))
|
||||
}
|
||||
panic(fmt.Errorf("message cosmos.bank.v1beta1.SendAuthorization does not contain field %s", fd.FullName()))
|
||||
}
|
||||
}
|
||||
|
||||
// WhichOneof reports which field within the oneof is populated,
|
||||
// returning nil if none are populated.
|
||||
// It panics if the oneof descriptor does not belong to this message.
|
||||
func (x *fastReflection_SendAuthorization) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {
|
||||
switch d.FullName() {
|
||||
default:
|
||||
panic(fmt.Errorf("%s is not a oneof field in cosmos.bank.v1beta1.SendAuthorization", d.FullName()))
|
||||
}
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
// GetUnknown retrieves the entire list of unknown fields.
|
||||
// The caller may only mutate the contents of the RawFields
|
||||
// if the mutated bytes are stored back into the message with SetUnknown.
|
||||
func (x *fastReflection_SendAuthorization) GetUnknown() protoreflect.RawFields {
|
||||
return x.unknownFields
|
||||
}
|
||||
|
||||
// SetUnknown stores an entire list of unknown fields.
|
||||
// The raw fields must be syntactically valid according to the wire format.
|
||||
// An implementation may panic if this is not the case.
|
||||
// Once stored, the caller must not mutate the content of the RawFields.
|
||||
// An empty RawFields may be passed to clear the fields.
|
||||
//
|
||||
// SetUnknown is a mutating operation and unsafe for concurrent use.
|
||||
func (x *fastReflection_SendAuthorization) SetUnknown(fields protoreflect.RawFields) {
|
||||
x.unknownFields = fields
|
||||
}
|
||||
|
||||
// IsValid reports whether the message is valid.
|
||||
//
|
||||
// An invalid message is an empty, read-only value.
|
||||
//
|
||||
// An invalid message often corresponds to a nil pointer of the concrete
|
||||
// message type, but the details are implementation dependent.
|
||||
// Validity is not part of the protobuf data model, and may not
|
||||
// be preserved in marshaling or other operations.
|
||||
func (x *fastReflection_SendAuthorization) IsValid() bool {
|
||||
return x != nil
|
||||
}
|
||||
|
||||
// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations.
|
||||
// This method may return nil.
|
||||
//
|
||||
// The returned methods type is identical to
|
||||
// "google.golang.org/protobuf/runtime/protoiface".Methods.
|
||||
// Consult the protoiface package documentation for details.
|
||||
func (x *fastReflection_SendAuthorization) ProtoMethods() *protoiface.Methods {
|
||||
size := func(input protoiface.SizeInput) protoiface.SizeOutput {
|
||||
x := input.Message.Interface().(*SendAuthorization)
|
||||
if x == nil {
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: 0,
|
||||
}
|
||||
}
|
||||
options := runtime.SizeInputToOptions(input)
|
||||
_ = options
|
||||
var n int
|
||||
var l int
|
||||
_ = l
|
||||
if len(x.SpendLimit) > 0 {
|
||||
for _, e := range x.SpendLimit {
|
||||
l = options.Size(e)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if len(x.AllowList) > 0 {
|
||||
for _, s := range x.AllowList {
|
||||
l = len(s)
|
||||
n += 1 + l + runtime.Sov(uint64(l))
|
||||
}
|
||||
}
|
||||
if x.unknownFields != nil {
|
||||
n += len(x.unknownFields)
|
||||
}
|
||||
return protoiface.SizeOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Size: n,
|
||||
}
|
||||
}
|
||||
|
||||
marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) {
|
||||
x := input.Message.Interface().(*SendAuthorization)
|
||||
if x == nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.MarshalInputToOptions(input)
|
||||
_ = options
|
||||
size := options.Size(x)
|
||||
dAtA := make([]byte, size)
|
||||
i := len(dAtA)
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if x.unknownFields != nil {
|
||||
i -= len(x.unknownFields)
|
||||
copy(dAtA[i:], x.unknownFields)
|
||||
}
|
||||
if len(x.AllowList) > 0 {
|
||||
for iNdEx := len(x.AllowList) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(x.AllowList[iNdEx])
|
||||
copy(dAtA[i:], x.AllowList[iNdEx])
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AllowList[iNdEx])))
|
||||
i--
|
||||
dAtA[i] = 0x12
|
||||
}
|
||||
}
|
||||
if len(x.SpendLimit) > 0 {
|
||||
for iNdEx := len(x.SpendLimit) - 1; iNdEx >= 0; iNdEx-- {
|
||||
encoded, err := options.Marshal(x.SpendLimit[iNdEx])
|
||||
if err != nil {
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, err
|
||||
}
|
||||
i -= len(encoded)
|
||||
copy(dAtA[i:], encoded)
|
||||
i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded)))
|
||||
i--
|
||||
dAtA[i] = 0xa
|
||||
}
|
||||
}
|
||||
if input.Buf != nil {
|
||||
input.Buf = append(input.Buf, dAtA...)
|
||||
} else {
|
||||
input.Buf = dAtA
|
||||
}
|
||||
return protoiface.MarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Buf: input.Buf,
|
||||
}, nil
|
||||
}
|
||||
unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {
|
||||
x := input.Message.Interface().(*SendAuthorization)
|
||||
if x == nil {
|
||||
return protoiface.UnmarshalOutput{
|
||||
NoUnkeyedLiterals: input.NoUnkeyedLiterals,
|
||||
Flags: input.Flags,
|
||||
}, nil
|
||||
}
|
||||
options := runtime.UnmarshalInputToOptions(input)
|
||||
_ = options
|
||||
dAtA := input.Buf
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: SendAuthorization: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: SendAuthorization: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field SpendLimit", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.SpendLimit = append(x.SpendLimit, &v1beta1.Coin{})
|
||||
if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.SpendLimit[len(x.SpendLimit)-1]); err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AllowList", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if postIndex > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
x.AllowList = append(x.AllowList, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := runtime.Skip(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err
|
||||
}
|
||||
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
if !options.DiscardUnknown {
|
||||
x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...)
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF
|
||||
}
|
||||
return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil
|
||||
}
|
||||
return &protoiface.Methods{
|
||||
NoUnkeyedLiterals: struct{}{},
|
||||
Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown,
|
||||
Size: size,
|
||||
Marshal: marshal,
|
||||
Unmarshal: unmarshal,
|
||||
Merge: nil,
|
||||
CheckInitialized: nil,
|
||||
}
|
||||
}
|
||||
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.27.0
|
||||
// protoc (unknown)
|
||||
// source: cosmos/bank/v1beta1/authz.proto
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
// SendAuthorization allows the grantee to spend up to spend_limit coins from
|
||||
// the granter's account.
|
||||
type SendAuthorization struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
SpendLimit []*v1beta1.Coin `protobuf:"bytes,1,rep,name=spend_limit,json=spendLimit,proto3" json:"spend_limit,omitempty"`
|
||||
// allow_list specifies an optional list of addresses to whom the grantee can send tokens on behalf of the
|
||||
// granter. If omitted, any recipient is allowed.
|
||||
AllowList []string `protobuf:"bytes,2,rep,name=allow_list,json=allowList,proto3" json:"allow_list,omitempty"`
|
||||
}
|
||||
|
||||
func (x *SendAuthorization) Reset() {
|
||||
*x = SendAuthorization{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_cosmos_bank_v1beta1_authz_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *SendAuthorization) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*SendAuthorization) ProtoMessage() {}
|
||||
|
||||
// Deprecated: Use SendAuthorization.ProtoReflect.Descriptor instead.
|
||||
func (*SendAuthorization) Descriptor() ([]byte, []int) {
|
||||
return file_cosmos_bank_v1beta1_authz_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *SendAuthorization) GetSpendLimit() []*v1beta1.Coin {
|
||||
if x != nil {
|
||||
return x.SpendLimit
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *SendAuthorization) GetAllowList() []string {
|
||||
if x != nil {
|
||||
return x.AllowList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_cosmos_bank_v1beta1_authz_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_cosmos_bank_v1beta1_authz_proto_rawDesc = []byte{
|
||||
0x0a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x12, 0x13, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76,
|
||||
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d,
|
||||
0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
|
||||
0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d,
|
||||
0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
|
||||
0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x02, 0x0a, 0x11, 0x53,
|
||||
0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x12, 0x82, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74,
|
||||
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e,
|
||||
0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69,
|
||||
0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f,
|
||||
0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63,
|
||||
0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64,
|
||||
0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c,
|
||||
0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2b, 0xd2, 0xb4, 0x2d, 0x14, 0x63,
|
||||
0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72,
|
||||
0x69, 0x6e, 0x67, 0xda, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64,
|
||||
0x6b, 0x20, 0x30, 0x2e, 0x34, 0x37, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x3a, 0x5a, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75,
|
||||
0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68,
|
||||
0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xd2, 0xb4, 0x2d, 0x0f, 0x63, 0x6f, 0x73,
|
||||
0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x20, 0x30, 0x2e, 0x34, 0x33, 0x8a, 0xe7, 0xb0, 0x2a,
|
||||
0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, 0x64,
|
||||
0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, 0x01,
|
||||
0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e,
|
||||
0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x7a,
|
||||
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73,
|
||||
0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73,
|
||||
0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61,
|
||||
0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa,
|
||||
0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42,
|
||||
0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f,
|
||||
0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61,
|
||||
0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15,
|
||||
0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31,
|
||||
0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
file_cosmos_bank_v1beta1_authz_proto_rawDescOnce sync.Once
|
||||
file_cosmos_bank_v1beta1_authz_proto_rawDescData = file_cosmos_bank_v1beta1_authz_proto_rawDesc
|
||||
)
|
||||
|
||||
func file_cosmos_bank_v1beta1_authz_proto_rawDescGZIP() []byte {
|
||||
file_cosmos_bank_v1beta1_authz_proto_rawDescOnce.Do(func() {
|
||||
file_cosmos_bank_v1beta1_authz_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_bank_v1beta1_authz_proto_rawDescData)
|
||||
})
|
||||
return file_cosmos_bank_v1beta1_authz_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_cosmos_bank_v1beta1_authz_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||
var file_cosmos_bank_v1beta1_authz_proto_goTypes = []interface{}{
|
||||
(*SendAuthorization)(nil), // 0: cosmos.bank.v1beta1.SendAuthorization
|
||||
(*v1beta1.Coin)(nil), // 1: cosmos.base.v1beta1.Coin
|
||||
}
|
||||
var file_cosmos_bank_v1beta1_authz_proto_depIdxs = []int32{
|
||||
1, // 0: cosmos.bank.v1beta1.SendAuthorization.spend_limit:type_name -> cosmos.base.v1beta1.Coin
|
||||
1, // [1:1] is the sub-list for method output_type
|
||||
1, // [1:1] is the sub-list for method input_type
|
||||
1, // [1:1] is the sub-list for extension type_name
|
||||
1, // [1:1] is the sub-list for extension extendee
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_cosmos_bank_v1beta1_authz_proto_init() }
|
||||
func file_cosmos_bank_v1beta1_authz_proto_init() {
|
||||
if File_cosmos_bank_v1beta1_authz_proto != nil {
|
||||
return
|
||||
}
|
||||
if !protoimpl.UnsafeEnabled {
|
||||
file_cosmos_bank_v1beta1_authz_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*SendAuthorization); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_cosmos_bank_v1beta1_authz_proto_rawDesc,
|
||||
NumEnums: 0,
|
||||
NumMessages: 1,
|
||||
NumExtensions: 0,
|
||||
NumServices: 0,
|
||||
},
|
||||
GoTypes: file_cosmos_bank_v1beta1_authz_proto_goTypes,
|
||||
DependencyIndexes: file_cosmos_bank_v1beta1_authz_proto_depIdxs,
|
||||
MessageInfos: file_cosmos_bank_v1beta1_authz_proto_msgTypes,
|
||||
}.Build()
|
||||
File_cosmos_bank_v1beta1_authz_proto = out.File
|
||||
file_cosmos_bank_v1beta1_authz_proto_rawDesc = nil
|
||||
file_cosmos_bank_v1beta1_authz_proto_goTypes = nil
|
||||
file_cosmos_bank_v1beta1_authz_proto_depIdxs = nil
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,661 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/bank/v1beta1/query.proto
|
||||
|
||||
package bankv1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Query_Balance_FullMethodName = "/cosmos.bank.v1beta1.Query/Balance"
|
||||
Query_AllBalances_FullMethodName = "/cosmos.bank.v1beta1.Query/AllBalances"
|
||||
Query_SpendableBalances_FullMethodName = "/cosmos.bank.v1beta1.Query/SpendableBalances"
|
||||
Query_SpendableBalanceByDenom_FullMethodName = "/cosmos.bank.v1beta1.Query/SpendableBalanceByDenom"
|
||||
Query_TotalSupply_FullMethodName = "/cosmos.bank.v1beta1.Query/TotalSupply"
|
||||
Query_SupplyOf_FullMethodName = "/cosmos.bank.v1beta1.Query/SupplyOf"
|
||||
Query_Params_FullMethodName = "/cosmos.bank.v1beta1.Query/Params"
|
||||
Query_DenomsMetadata_FullMethodName = "/cosmos.bank.v1beta1.Query/DenomsMetadata"
|
||||
Query_DenomMetadata_FullMethodName = "/cosmos.bank.v1beta1.Query/DenomMetadata"
|
||||
Query_DenomMetadataByQueryString_FullMethodName = "/cosmos.bank.v1beta1.Query/DenomMetadataByQueryString"
|
||||
Query_DenomOwners_FullMethodName = "/cosmos.bank.v1beta1.Query/DenomOwners"
|
||||
Query_DenomOwnersByQuery_FullMethodName = "/cosmos.bank.v1beta1.Query/DenomOwnersByQuery"
|
||||
Query_SendEnabled_FullMethodName = "/cosmos.bank.v1beta1.Query/SendEnabled"
|
||||
)
|
||||
|
||||
// QueryClient is the client API for Query service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Query defines the gRPC querier service.
|
||||
type QueryClient interface {
|
||||
// Balance queries the balance of a single coin for a single account.
|
||||
Balance(ctx context.Context, in *QueryBalanceRequest, opts ...grpc.CallOption) (*QueryBalanceResponse, error)
|
||||
// AllBalances queries the balance of all coins for a single account.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
AllBalances(ctx context.Context, in *QueryAllBalancesRequest, opts ...grpc.CallOption) (*QueryAllBalancesResponse, error)
|
||||
// SpendableBalances queries the spendable balance of all coins for a single
|
||||
// account.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
SpendableBalances(ctx context.Context, in *QuerySpendableBalancesRequest, opts ...grpc.CallOption) (*QuerySpendableBalancesResponse, error)
|
||||
// SpendableBalanceByDenom queries the spendable balance of a single denom for
|
||||
// a single account.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
SpendableBalanceByDenom(ctx context.Context, in *QuerySpendableBalanceByDenomRequest, opts ...grpc.CallOption) (*QuerySpendableBalanceByDenomResponse, error)
|
||||
// TotalSupply queries the total supply of all coins.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
TotalSupply(ctx context.Context, in *QueryTotalSupplyRequest, opts ...grpc.CallOption) (*QueryTotalSupplyResponse, error)
|
||||
// SupplyOf queries the supply of a single coin.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
SupplyOf(ctx context.Context, in *QuerySupplyOfRequest, opts ...grpc.CallOption) (*QuerySupplyOfResponse, error)
|
||||
// Params queries the parameters of x/bank module.
|
||||
Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error)
|
||||
// DenomsMetadata queries the client metadata for all registered coin
|
||||
// denominations.
|
||||
DenomsMetadata(ctx context.Context, in *QueryDenomsMetadataRequest, opts ...grpc.CallOption) (*QueryDenomsMetadataResponse, error)
|
||||
// DenomMetadata queries the client metadata of a given coin denomination.
|
||||
DenomMetadata(ctx context.Context, in *QueryDenomMetadataRequest, opts ...grpc.CallOption) (*QueryDenomMetadataResponse, error)
|
||||
// DenomMetadataByQueryString queries the client metadata of a given coin denomination.
|
||||
DenomMetadataByQueryString(ctx context.Context, in *QueryDenomMetadataByQueryStringRequest, opts ...grpc.CallOption) (*QueryDenomMetadataByQueryStringResponse, error)
|
||||
// DenomOwners queries for all account addresses that own a particular token
|
||||
// denomination.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
DenomOwners(ctx context.Context, in *QueryDenomOwnersRequest, opts ...grpc.CallOption) (*QueryDenomOwnersResponse, error)
|
||||
// DenomOwnersByQuery queries for all account addresses that own a particular token
|
||||
// denomination.
|
||||
DenomOwnersByQuery(ctx context.Context, in *QueryDenomOwnersByQueryRequest, opts ...grpc.CallOption) (*QueryDenomOwnersByQueryResponse, error)
|
||||
// SendEnabled queries for SendEnabled entries.
|
||||
//
|
||||
// This query only returns denominations that have specific SendEnabled settings.
|
||||
// Any denomination that does not have a specific setting will use the default
|
||||
// params.default_send_enabled, and will not be returned by this query.
|
||||
SendEnabled(ctx context.Context, in *QuerySendEnabledRequest, opts ...grpc.CallOption) (*QuerySendEnabledResponse, error)
|
||||
}
|
||||
|
||||
type queryClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewQueryClient(cc grpc.ClientConnInterface) QueryClient {
|
||||
return &queryClient{cc}
|
||||
}
|
||||
|
||||
func (c *queryClient) Balance(ctx context.Context, in *QueryBalanceRequest, opts ...grpc.CallOption) (*QueryBalanceResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryBalanceResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Balance_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) AllBalances(ctx context.Context, in *QueryAllBalancesRequest, opts ...grpc.CallOption) (*QueryAllBalancesResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryAllBalancesResponse)
|
||||
err := c.cc.Invoke(ctx, Query_AllBalances_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) SpendableBalances(ctx context.Context, in *QuerySpendableBalancesRequest, opts ...grpc.CallOption) (*QuerySpendableBalancesResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QuerySpendableBalancesResponse)
|
||||
err := c.cc.Invoke(ctx, Query_SpendableBalances_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) SpendableBalanceByDenom(ctx context.Context, in *QuerySpendableBalanceByDenomRequest, opts ...grpc.CallOption) (*QuerySpendableBalanceByDenomResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QuerySpendableBalanceByDenomResponse)
|
||||
err := c.cc.Invoke(ctx, Query_SpendableBalanceByDenom_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) TotalSupply(ctx context.Context, in *QueryTotalSupplyRequest, opts ...grpc.CallOption) (*QueryTotalSupplyResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryTotalSupplyResponse)
|
||||
err := c.cc.Invoke(ctx, Query_TotalSupply_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) SupplyOf(ctx context.Context, in *QuerySupplyOfRequest, opts ...grpc.CallOption) (*QuerySupplyOfResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QuerySupplyOfResponse)
|
||||
err := c.cc.Invoke(ctx, Query_SupplyOf_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryParamsResponse)
|
||||
err := c.cc.Invoke(ctx, Query_Params_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) DenomsMetadata(ctx context.Context, in *QueryDenomsMetadataRequest, opts ...grpc.CallOption) (*QueryDenomsMetadataResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryDenomsMetadataResponse)
|
||||
err := c.cc.Invoke(ctx, Query_DenomsMetadata_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) DenomMetadata(ctx context.Context, in *QueryDenomMetadataRequest, opts ...grpc.CallOption) (*QueryDenomMetadataResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryDenomMetadataResponse)
|
||||
err := c.cc.Invoke(ctx, Query_DenomMetadata_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) DenomMetadataByQueryString(ctx context.Context, in *QueryDenomMetadataByQueryStringRequest, opts ...grpc.CallOption) (*QueryDenomMetadataByQueryStringResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryDenomMetadataByQueryStringResponse)
|
||||
err := c.cc.Invoke(ctx, Query_DenomMetadataByQueryString_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) DenomOwners(ctx context.Context, in *QueryDenomOwnersRequest, opts ...grpc.CallOption) (*QueryDenomOwnersResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryDenomOwnersResponse)
|
||||
err := c.cc.Invoke(ctx, Query_DenomOwners_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) DenomOwnersByQuery(ctx context.Context, in *QueryDenomOwnersByQueryRequest, opts ...grpc.CallOption) (*QueryDenomOwnersByQueryResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QueryDenomOwnersByQueryResponse)
|
||||
err := c.cc.Invoke(ctx, Query_DenomOwnersByQuery_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *queryClient) SendEnabled(ctx context.Context, in *QuerySendEnabledRequest, opts ...grpc.CallOption) (*QuerySendEnabledResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(QuerySendEnabledResponse)
|
||||
err := c.cc.Invoke(ctx, Query_SendEnabled_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// QueryServer is the server API for Query service.
|
||||
// All implementations must embed UnimplementedQueryServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Query defines the gRPC querier service.
|
||||
type QueryServer interface {
|
||||
// Balance queries the balance of a single coin for a single account.
|
||||
Balance(context.Context, *QueryBalanceRequest) (*QueryBalanceResponse, error)
|
||||
// AllBalances queries the balance of all coins for a single account.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
AllBalances(context.Context, *QueryAllBalancesRequest) (*QueryAllBalancesResponse, error)
|
||||
// SpendableBalances queries the spendable balance of all coins for a single
|
||||
// account.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
SpendableBalances(context.Context, *QuerySpendableBalancesRequest) (*QuerySpendableBalancesResponse, error)
|
||||
// SpendableBalanceByDenom queries the spendable balance of a single denom for
|
||||
// a single account.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
SpendableBalanceByDenom(context.Context, *QuerySpendableBalanceByDenomRequest) (*QuerySpendableBalanceByDenomResponse, error)
|
||||
// TotalSupply queries the total supply of all coins.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
TotalSupply(context.Context, *QueryTotalSupplyRequest) (*QueryTotalSupplyResponse, error)
|
||||
// SupplyOf queries the supply of a single coin.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
SupplyOf(context.Context, *QuerySupplyOfRequest) (*QuerySupplyOfResponse, error)
|
||||
// Params queries the parameters of x/bank module.
|
||||
Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error)
|
||||
// DenomsMetadata queries the client metadata for all registered coin
|
||||
// denominations.
|
||||
DenomsMetadata(context.Context, *QueryDenomsMetadataRequest) (*QueryDenomsMetadataResponse, error)
|
||||
// DenomMetadata queries the client metadata of a given coin denomination.
|
||||
DenomMetadata(context.Context, *QueryDenomMetadataRequest) (*QueryDenomMetadataResponse, error)
|
||||
// DenomMetadataByQueryString queries the client metadata of a given coin denomination.
|
||||
DenomMetadataByQueryString(context.Context, *QueryDenomMetadataByQueryStringRequest) (*QueryDenomMetadataByQueryStringResponse, error)
|
||||
// DenomOwners queries for all account addresses that own a particular token
|
||||
// denomination.
|
||||
//
|
||||
// When called from another module, this query might consume a high amount of
|
||||
// gas if the pagination field is incorrectly set.
|
||||
DenomOwners(context.Context, *QueryDenomOwnersRequest) (*QueryDenomOwnersResponse, error)
|
||||
// DenomOwnersByQuery queries for all account addresses that own a particular token
|
||||
// denomination.
|
||||
DenomOwnersByQuery(context.Context, *QueryDenomOwnersByQueryRequest) (*QueryDenomOwnersByQueryResponse, error)
|
||||
// SendEnabled queries for SendEnabled entries.
|
||||
//
|
||||
// This query only returns denominations that have specific SendEnabled settings.
|
||||
// Any denomination that does not have a specific setting will use the default
|
||||
// params.default_send_enabled, and will not be returned by this query.
|
||||
SendEnabled(context.Context, *QuerySendEnabledRequest) (*QuerySendEnabledResponse, error)
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
// UnimplementedQueryServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedQueryServer struct{}
|
||||
|
||||
func (UnimplementedQueryServer) Balance(context.Context, *QueryBalanceRequest) (*QueryBalanceResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Balance not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) AllBalances(context.Context, *QueryAllBalancesRequest) (*QueryAllBalancesResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method AllBalances not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) SpendableBalances(context.Context, *QuerySpendableBalancesRequest) (*QuerySpendableBalancesResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SpendableBalances not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) SpendableBalanceByDenom(context.Context, *QuerySpendableBalanceByDenomRequest) (*QuerySpendableBalanceByDenomResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SpendableBalanceByDenom not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) TotalSupply(context.Context, *QueryTotalSupplyRequest) (*QueryTotalSupplyResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method TotalSupply not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) SupplyOf(context.Context, *QuerySupplyOfRequest) (*QuerySupplyOfResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SupplyOf not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Params not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) DenomsMetadata(context.Context, *QueryDenomsMetadataRequest) (*QueryDenomsMetadataResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DenomsMetadata not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) DenomMetadata(context.Context, *QueryDenomMetadataRequest) (*QueryDenomMetadataResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DenomMetadata not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) DenomMetadataByQueryString(context.Context, *QueryDenomMetadataByQueryStringRequest) (*QueryDenomMetadataByQueryStringResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DenomMetadataByQueryString not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) DenomOwners(context.Context, *QueryDenomOwnersRequest) (*QueryDenomOwnersResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DenomOwners not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) DenomOwnersByQuery(context.Context, *QueryDenomOwnersByQueryRequest) (*QueryDenomOwnersByQueryResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method DenomOwnersByQuery not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) SendEnabled(context.Context, *QuerySendEnabledRequest) (*QuerySendEnabledResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SendEnabled not implemented")
|
||||
}
|
||||
func (UnimplementedQueryServer) mustEmbedUnimplementedQueryServer() {}
|
||||
func (UnimplementedQueryServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeQueryServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to QueryServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeQueryServer interface {
|
||||
mustEmbedUnimplementedQueryServer()
|
||||
}
|
||||
|
||||
func RegisterQueryServer(s grpc.ServiceRegistrar, srv QueryServer) {
|
||||
// If the following call pancis, it indicates UnimplementedQueryServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Query_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Query_Balance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryBalanceRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Balance(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Balance_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Balance(ctx, req.(*QueryBalanceRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_AllBalances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryAllBalancesRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).AllBalances(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_AllBalances_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).AllBalances(ctx, req.(*QueryAllBalancesRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_SpendableBalances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QuerySpendableBalancesRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).SpendableBalances(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_SpendableBalances_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).SpendableBalances(ctx, req.(*QuerySpendableBalancesRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_SpendableBalanceByDenom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QuerySpendableBalanceByDenomRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).SpendableBalanceByDenom(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_SpendableBalanceByDenom_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).SpendableBalanceByDenom(ctx, req.(*QuerySpendableBalanceByDenomRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_TotalSupply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryTotalSupplyRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).TotalSupply(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_TotalSupply_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).TotalSupply(ctx, req.(*QueryTotalSupplyRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_SupplyOf_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QuerySupplyOfRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).SupplyOf(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_SupplyOf_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).SupplyOf(ctx, req.(*QuerySupplyOfRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryParamsRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).Params(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_Params_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_DenomsMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryDenomsMetadataRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).DenomsMetadata(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_DenomsMetadata_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).DenomsMetadata(ctx, req.(*QueryDenomsMetadataRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_DenomMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryDenomMetadataRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).DenomMetadata(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_DenomMetadata_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).DenomMetadata(ctx, req.(*QueryDenomMetadataRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_DenomMetadataByQueryString_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryDenomMetadataByQueryStringRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).DenomMetadataByQueryString(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_DenomMetadataByQueryString_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).DenomMetadataByQueryString(ctx, req.(*QueryDenomMetadataByQueryStringRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_DenomOwners_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryDenomOwnersRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).DenomOwners(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_DenomOwners_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).DenomOwners(ctx, req.(*QueryDenomOwnersRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_DenomOwnersByQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QueryDenomOwnersByQueryRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).DenomOwnersByQuery(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_DenomOwnersByQuery_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).DenomOwnersByQuery(ctx, req.(*QueryDenomOwnersByQueryRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Query_SendEnabled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(QuerySendEnabledRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(QueryServer).SendEnabled(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Query_SendEnabled_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(QueryServer).SendEnabled(ctx, req.(*QuerySendEnabledRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Query_ServiceDesc is the grpc.ServiceDesc for Query service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Query_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.bank.v1beta1.Query",
|
||||
HandlerType: (*QueryServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Balance",
|
||||
Handler: _Query_Balance_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "AllBalances",
|
||||
Handler: _Query_AllBalances_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SpendableBalances",
|
||||
Handler: _Query_SpendableBalances_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SpendableBalanceByDenom",
|
||||
Handler: _Query_SpendableBalanceByDenom_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "TotalSupply",
|
||||
Handler: _Query_TotalSupply_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SupplyOf",
|
||||
Handler: _Query_SupplyOf_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Params",
|
||||
Handler: _Query_Params_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DenomsMetadata",
|
||||
Handler: _Query_DenomsMetadata_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DenomMetadata",
|
||||
Handler: _Query_DenomMetadata_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DenomMetadataByQueryString",
|
||||
Handler: _Query_DenomMetadataByQueryString_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DenomOwners",
|
||||
Handler: _Query_DenomOwners_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "DenomOwnersByQuery",
|
||||
Handler: _Query_DenomOwnersByQuery_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SendEnabled",
|
||||
Handler: _Query_SendEnabled_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/bank/v1beta1/query.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,255 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/bank/v1beta1/tx.proto
|
||||
|
||||
package bankv1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Msg_Send_FullMethodName = "/cosmos.bank.v1beta1.Msg/Send"
|
||||
Msg_MultiSend_FullMethodName = "/cosmos.bank.v1beta1.Msg/MultiSend"
|
||||
Msg_UpdateParams_FullMethodName = "/cosmos.bank.v1beta1.Msg/UpdateParams"
|
||||
Msg_SetSendEnabled_FullMethodName = "/cosmos.bank.v1beta1.Msg/SetSendEnabled"
|
||||
)
|
||||
|
||||
// MsgClient is the client API for Msg service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Msg defines the bank Msg service.
|
||||
type MsgClient interface {
|
||||
// Send defines a method for sending coins from one account to another account.
|
||||
Send(ctx context.Context, in *MsgSend, opts ...grpc.CallOption) (*MsgSendResponse, error)
|
||||
// MultiSend defines a method for sending coins from some accounts to other accounts.
|
||||
MultiSend(ctx context.Context, in *MsgMultiSend, opts ...grpc.CallOption) (*MsgMultiSendResponse, error)
|
||||
// UpdateParams defines a governance operation for updating the x/bank module parameters.
|
||||
// The authority is defined in the keeper.
|
||||
UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error)
|
||||
// SetSendEnabled is a governance operation for setting the SendEnabled flag
|
||||
// on any number of Denoms. Only the entries to add or update should be
|
||||
// included. Entries that already exist in the store, but that aren't
|
||||
// included in this message, will be left unchanged.
|
||||
SetSendEnabled(ctx context.Context, in *MsgSetSendEnabled, opts ...grpc.CallOption) (*MsgSetSendEnabledResponse, error)
|
||||
}
|
||||
|
||||
type msgClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewMsgClient(cc grpc.ClientConnInterface) MsgClient {
|
||||
return &msgClient{cc}
|
||||
}
|
||||
|
||||
func (c *msgClient) Send(ctx context.Context, in *MsgSend, opts ...grpc.CallOption) (*MsgSendResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgSendResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_Send_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *msgClient) MultiSend(ctx context.Context, in *MsgMultiSend, opts ...grpc.CallOption) (*MsgMultiSendResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgMultiSendResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_MultiSend_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgUpdateParamsResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_UpdateParams_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *msgClient) SetSendEnabled(ctx context.Context, in *MsgSetSendEnabled, opts ...grpc.CallOption) (*MsgSetSendEnabledResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(MsgSetSendEnabledResponse)
|
||||
err := c.cc.Invoke(ctx, Msg_SetSendEnabled_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// MsgServer is the server API for Msg service.
|
||||
// All implementations must embed UnimplementedMsgServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Msg defines the bank Msg service.
|
||||
type MsgServer interface {
|
||||
// Send defines a method for sending coins from one account to another account.
|
||||
Send(context.Context, *MsgSend) (*MsgSendResponse, error)
|
||||
// MultiSend defines a method for sending coins from some accounts to other accounts.
|
||||
MultiSend(context.Context, *MsgMultiSend) (*MsgMultiSendResponse, error)
|
||||
// UpdateParams defines a governance operation for updating the x/bank module parameters.
|
||||
// The authority is defined in the keeper.
|
||||
UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error)
|
||||
// SetSendEnabled is a governance operation for setting the SendEnabled flag
|
||||
// on any number of Denoms. Only the entries to add or update should be
|
||||
// included. Entries that already exist in the store, but that aren't
|
||||
// included in this message, will be left unchanged.
|
||||
SetSendEnabled(context.Context, *MsgSetSendEnabled) (*MsgSetSendEnabledResponse, error)
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
// UnimplementedMsgServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedMsgServer struct{}
|
||||
|
||||
func (UnimplementedMsgServer) Send(context.Context, *MsgSend) (*MsgSendResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Send not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) MultiSend(context.Context, *MsgMultiSend) (*MsgMultiSendResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method MultiSend not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) SetSendEnabled(context.Context, *MsgSetSendEnabled) (*MsgSetSendEnabledResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method SetSendEnabled not implemented")
|
||||
}
|
||||
func (UnimplementedMsgServer) mustEmbedUnimplementedMsgServer() {}
|
||||
func (UnimplementedMsgServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeMsgServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to MsgServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeMsgServer interface {
|
||||
mustEmbedUnimplementedMsgServer()
|
||||
}
|
||||
|
||||
func RegisterMsgServer(s grpc.ServiceRegistrar, srv MsgServer) {
|
||||
// If the following call pancis, it indicates UnimplementedMsgServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Msg_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Msg_Send_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgSend)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).Send(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_Send_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).Send(ctx, req.(*MsgSend))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Msg_MultiSend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgMultiSend)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).MultiSend(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_MultiSend_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).MultiSend(ctx, req.(*MsgMultiSend))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgUpdateParams)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).UpdateParams(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_UpdateParams_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Msg_SetSendEnabled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MsgSetSendEnabled)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(MsgServer).SetSendEnabled(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Msg_SetSendEnabled_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(MsgServer).SetSendEnabled(ctx, req.(*MsgSetSendEnabled))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Msg_ServiceDesc is the grpc.ServiceDesc for Msg service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Msg_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.bank.v1beta1.Msg",
|
||||
HandlerType: (*MsgServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Send",
|
||||
Handler: _Msg_Send_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "MultiSend",
|
||||
Handler: _Msg_MultiSend_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "UpdateParams",
|
||||
Handler: _Msg_UpdateParams_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "SetSendEnabled",
|
||||
Handler: _Msg_SetSendEnabled_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/bank/v1beta1/tx.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,167 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: cosmos/base/node/v1beta1/query.proto
|
||||
|
||||
package nodev1beta1
|
||||
|
||||
import (
|
||||
context "context"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Service_Config_FullMethodName = "/cosmos.base.node.v1beta1.Service/Config"
|
||||
Service_Status_FullMethodName = "/cosmos.base.node.v1beta1.Service/Status"
|
||||
)
|
||||
|
||||
// ServiceClient is the client API for Service service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
//
|
||||
// Service defines the gRPC querier service for node related queries.
|
||||
type ServiceClient interface {
|
||||
// Config queries for the operator configuration.
|
||||
Config(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (*ConfigResponse, error)
|
||||
// Status queries for the node status.
|
||||
Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error)
|
||||
}
|
||||
|
||||
type serviceClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewServiceClient(cc grpc.ClientConnInterface) ServiceClient {
|
||||
return &serviceClient{cc}
|
||||
}
|
||||
|
||||
func (c *serviceClient) Config(ctx context.Context, in *ConfigRequest, opts ...grpc.CallOption) (*ConfigResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(ConfigResponse)
|
||||
err := c.cc.Invoke(ctx, Service_Config_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *serviceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(StatusResponse)
|
||||
err := c.cc.Invoke(ctx, Service_Status_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// ServiceServer is the server API for Service service.
|
||||
// All implementations must embed UnimplementedServiceServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Service defines the gRPC querier service for node related queries.
|
||||
type ServiceServer interface {
|
||||
// Config queries for the operator configuration.
|
||||
Config(context.Context, *ConfigRequest) (*ConfigResponse, error)
|
||||
// Status queries for the node status.
|
||||
Status(context.Context, *StatusRequest) (*StatusResponse, error)
|
||||
mustEmbedUnimplementedServiceServer()
|
||||
}
|
||||
|
||||
// UnimplementedServiceServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedServiceServer struct{}
|
||||
|
||||
func (UnimplementedServiceServer) Config(context.Context, *ConfigRequest) (*ConfigResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Config not implemented")
|
||||
}
|
||||
func (UnimplementedServiceServer) Status(context.Context, *StatusRequest) (*StatusResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Status not implemented")
|
||||
}
|
||||
func (UnimplementedServiceServer) mustEmbedUnimplementedServiceServer() {}
|
||||
func (UnimplementedServiceServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to ServiceServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeServiceServer interface {
|
||||
mustEmbedUnimplementedServiceServer()
|
||||
}
|
||||
|
||||
func RegisterServiceServer(s grpc.ServiceRegistrar, srv ServiceServer) {
|
||||
// If the following call pancis, it indicates UnimplementedServiceServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Service_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Service_Config_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ConfigRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(ServiceServer).Config(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Service_Config_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(ServiceServer).Config(ctx, req.(*ConfigRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Service_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(StatusRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(ServiceServer).Status(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Service_Status_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(ServiceServer).Status(ctx, req.(*StatusRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Service_ServiceDesc is the grpc.ServiceDesc for Service service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Service_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "cosmos.base.node.v1beta1.Service",
|
||||
HandlerType: (*ServiceServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Config",
|
||||
Handler: _Service_Config_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Status",
|
||||
Handler: _Service_Status_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "cosmos/base/node/v1beta1/query.proto",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user