Move length to TypeDef (regularly used), IdentityFields to interface (#1913)

* Move length to TypeDef (regularly used), IdentityFields to interface

* Update api-contracts tests
This commit is contained in:
Jaco Greeff
2020-02-21 12:12:18 +01:00
committed by GitHub
parent 17936f849b
commit 8672a2e30e
17 changed files with 199 additions and 574 deletions
+1 -1
View File
@@ -260,7 +260,7 @@ export default class MetaRegistry extends MetadataRegistryLookup {
return {
info: TypeDefInfo.VecFixed,
ext: { length: vecLength, type },
length: vecLength, // ex: { type: type }
type: `[${type};${vecLength}]`,
sub: this.typeDefFromMetaTypeAt(vecTypeIndex)
};
@@ -18,10 +18,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -71,10 +68,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -116,10 +110,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -153,10 +144,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -183,10 +171,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -223,10 +208,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -256,10 +238,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -295,10 +274,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -340,10 +316,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -381,10 +354,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -402,10 +372,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -439,10 +406,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -460,10 +424,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -506,10 +467,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -527,10 +485,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -566,10 +521,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -587,10 +539,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -628,10 +577,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -677,10 +623,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -708,10 +651,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -725,10 +665,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -757,10 +694,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -802,10 +736,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -839,10 +770,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -869,10 +797,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -909,10 +834,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -942,10 +864,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -969,10 +888,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -998,10 +914,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1047,10 +960,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1082,10 +992,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1119,10 +1026,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1149,10 +1053,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1189,10 +1090,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1230,10 +1128,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1260,10 +1155,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1300,10 +1192,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1331,10 +1220,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1361,10 +1247,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1400,10 +1283,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1445,10 +1325,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1486,10 +1363,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1507,10 +1381,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1544,10 +1415,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1565,10 +1433,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1611,10 +1476,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1632,10 +1494,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1671,10 +1530,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1692,10 +1548,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1725,10 +1578,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1746,10 +1596,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1773,10 +1620,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1814,10 +1658,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1835,10 +1676,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1872,10 +1710,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1893,10 +1728,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1939,10 +1771,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1960,10 +1789,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2007,10 +1833,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2028,10 +1851,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2065,10 +1885,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2086,10 +1903,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2132,10 +1946,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2153,10 +1964,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2190,10 +1998,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2211,10 +2016,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2248,10 +2050,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2269,10 +2068,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2305,10 +2101,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -2328,10 +2121,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -38,10 +38,7 @@
{
"info": 11,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": ""
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -89,10 +86,7 @@
{
"info": 11,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": ""
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -130,10 +124,7 @@
{
"info": 11,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": ""
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -153,10 +144,7 @@
{
"info": 11,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": ""
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -168,10 +156,7 @@
{
"info": 11,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": ""
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -181,4 +166,4 @@
"info": 6,
"type": "u8"
}
]
]
@@ -18,10 +18,7 @@
{
"info": 13,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 7,
"type": "u8"
@@ -71,10 +68,7 @@
{
"info": 13,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 7,
"type": "u8"
@@ -120,10 +114,7 @@
{
"info": 13,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 7,
"type": "u8"
@@ -151,10 +142,7 @@
{
"info": 13,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 7,
"type": "u8"
@@ -168,10 +156,7 @@
{
"info": 13,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 7,
"type": "u8"
@@ -185,4 +170,4 @@
"info": 7,
"type": "bool"
}
]
]
@@ -22,10 +22,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -67,10 +64,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -104,10 +98,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -167,10 +158,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -241,10 +229,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -308,10 +293,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -381,10 +363,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -426,10 +405,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -483,10 +459,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -528,10 +501,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -565,10 +535,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -628,10 +595,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -702,10 +666,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -769,10 +730,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -830,10 +788,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -847,10 +802,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -932,10 +884,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -977,10 +926,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1008,10 +954,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1033,10 +976,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1070,10 +1010,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1133,10 +1070,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1207,10 +1141,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1282,10 +1213,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1345,10 +1273,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1419,10 +1344,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1484,10 +1406,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1547,10 +1466,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1620,10 +1536,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1665,10 +1578,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -1714,10 +1624,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -22,10 +22,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -71,10 +68,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -288,10 +282,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -337,10 +328,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -438,10 +426,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -487,10 +472,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -518,10 +500,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -535,10 +514,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -563,10 +539,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
@@ -714,10 +687,7 @@
{
"info": 12,
"type": "[u8;32]",
"ext": {
"length": 32,
"type": "u8"
},
"length": 32,
"sub": {
"info": 6,
"type": "u8"
+2 -2
View File
@@ -3,13 +3,13 @@
import { AnyNumber, ITuple } from '@polkadot/types/types';
import { Compact, Option, U8aFixed, Vec } from '@polkadot/types/codec';
import { Bytes, Data, IdentityFields, bool, u16, u32, u64 } from '@polkadot/types/primitive';
import { Bytes, Data, bool, u16, u32, u64 } from '@polkadot/types/primitive';
import { AccountId, AccountIndex, Address, Balance, BalanceOf, BlockNumber, Call, ChangesTrieConfiguration, Hash, Header, KeyValue, LookupSource, Moment, Signature } from '@polkadot/types/interfaces/runtime';
import { MemberCount, ProposalIndex } from '@polkadot/types/interfaces/collective';
import { CodeHash, Gas, Schedule } from '@polkadot/types/interfaces/contracts';
import { Conviction, PropIndex, Proposal, ReferendumIndex } from '@polkadot/types/interfaces/democracy';
import { Vote } from '@polkadot/types/interfaces/elections';
import { IdentityInfo, IdentityJudgement, RegistrarIndex } from '@polkadot/types/interfaces/identity';
import { IdentityFields, IdentityInfo, IdentityJudgement, RegistrarIndex } from '@polkadot/types/interfaces/identity';
import { Heartbeat } from '@polkadot/types/interfaces/imOnline';
import { Keys } from '@polkadot/types/interfaces/session';
import { SocietyJudgement } from '@polkadot/types/interfaces/society';
+7 -12
View File
@@ -2,9 +2,9 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { TypeDef, TypeDefInfo, TypeDefExtLength } from '../../create/types';
import { TypeDef, TypeDefInfo } from '../../create/types';
import { assert } from '@polkadot/util';
import { assert, isNumber, isUndefined } from '@polkadot/util';
export const SPECIAL_TYPES = ['AccountId', 'AccountIndex', 'Address', 'Balance'];
@@ -103,21 +103,16 @@ function encodeTuple (typeDef: Pick<TypeDef, any>): string {
})`;
}
function encodeUInt (typeDef: Pick<TypeDef, any>, type: 'Int' | 'UInt'): string {
assert(typeDef.ext, 'Unable to encode VecFixed type');
const { length } = typeDef.ext as TypeDefExtLength;
function encodeUInt ({ length }: Pick<TypeDef, any>, type: 'Int' | 'UInt'): string {
assert(isNumber(length), 'Unable to encode VecFixed type');
return `${type}<${length}>`;
}
function encodeVecFixed (typeDef: Pick<TypeDef, any>): string {
assert(typeDef.ext, 'Unable to encode VecFixed type');
function encodeVecFixed ({ length, sub }: Pick<TypeDef, any>): string {
assert(isNumber(length) && !isUndefined(sub), 'Unable to encode VecFixed type');
const { length } = typeDef.ext as TypeDefExtLength;
const { type } = typeDef.sub as TypeDef;
return `[${type};${length}]`;
return `[${sub.type};${length}]`;
}
// We setup a record here to ensure we have comprehensive coverage (any item not covered will result
+12 -16
View File
@@ -3,9 +3,9 @@
// of the Apache-2.0 license. See the LICENSE file for details.
import { Codec, Constructor, InterfaceTypes, Registry } from '../types';
import { FromReg, TypeDef, TypeDefExtLength, TypeDefInfo } from './types';
import { FromReg, TypeDef, TypeDefInfo } from './types';
import { assert } from '@polkadot/util';
import { assert, isNumber, isUndefined } from '@polkadot/util';
import { UIntBitLength } from '../codec/AbstractInt';
import BTreeMap from '../codec/BTreeMap';
@@ -78,12 +78,10 @@ function getTypeClassArray (value: TypeDef): (InterfaceTypes)[] {
);
}
function createInt (value: TypeDef, Clazz: typeof Int | typeof UInt): Constructor {
assert(value.ext, `Expected bitLength information for ${Clazz.constructor.name}<bitLength>`);
function createInt ({ displayName, length }: TypeDef, Clazz: typeof Int | typeof UInt): Constructor {
assert(isNumber(length), `Expected bitLength information for ${displayName || Clazz.constructor.name}<bitLength>`);
const { length } = value.ext as TypeDefExtLength;
return Clazz.with(length as UIntBitLength, value.displayName);
return Clazz.with(length as UIntBitLength, displayName);
}
const infoMapping: Record<TypeDefInfo, (registry: Registry, value: TypeDef) => Constructor> = {
@@ -137,7 +135,8 @@ const infoMapping: Record<TypeDefInfo, (registry: Registry, value: TypeDef) => C
result[name as string] = index as number;
return result;
}, result)
}, result),
value.length
);
},
@@ -157,16 +156,13 @@ const infoMapping: Record<TypeDefInfo, (registry: Registry, value: TypeDef) => C
);
},
[TypeDefInfo.VecFixed]: (registry: Registry, value: TypeDef): Constructor => {
assert(value.ext, 'Expected length & type information for fixed vector');
const { length } = value.ext as TypeDefExtLength;
const sub = value.sub as TypeDef;
[TypeDefInfo.VecFixed]: (registry: Registry, { displayName, length, sub }: TypeDef): Constructor => {
assert(isNumber(length) && !isUndefined(sub), 'Expected length & type information for fixed vector');
return (
sub.type === 'u8'
? U8aFixed.with((length * 8) as U8aFixedBitLength, value.displayName)
: VecFixed.with(sub.type as InterfaceTypes, length)
(sub as TypeDef).type === 'u8'
? U8aFixed.with((length * 8) as U8aFixedBitLength, displayName)
: VecFixed.with((sub as TypeDef).type as InterfaceTypes, length)
);
}
};
+13 -9
View File
@@ -2,7 +2,7 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { TypeDef, TypeDefExtLength, TypeDefInfo } from './types';
import { TypeDef, TypeDefInfo } from './types';
import { assert } from '@polkadot/util';
@@ -34,12 +34,16 @@ function _decodeEnum (value: TypeDef, details: string[] | Record<string, string>
// { _set: { A: 0b0001, B: 0b0010, C: 0b0100 } }
function _decodeSet (value: TypeDef, details: Record<string, number>): TypeDef {
value.info = TypeDefInfo.Set;
value.sub = Object.entries(details).map(([name, index]): TypeDef => ({
index,
info: TypeDefInfo.Plain,
name,
type: name
}));
value.length = details._bitLength;
value.sub = Object
.entries(details)
.filter(([name]): boolean => !name.startsWith('_'))
.map(([name, index]): TypeDef => ({
index,
info: TypeDefInfo.Plain,
name,
type: name
}));
return value;
}
@@ -74,7 +78,7 @@ function _decodeFixedVec (value: TypeDef, type: string, _: string): TypeDef {
assert(length <= 256, `${type}: Only support for [Type; <length>], where length <= 256`);
value.displayName = displayName;
value.ext = { length } as TypeDefExtLength;
value.length = length;
// eslint-disable-next-line @typescript-eslint/no-use-before-define
value.sub = getTypeDef(vecType);
@@ -103,7 +107,7 @@ function _decodeInt (value: TypeDef, type: string, _: string, clazz: 'Int' | 'UI
assert(length <= 8192 && (length % 8) === 0, `${type}: Only support for ${clazz}<bitLength>, where length <= 8192 and a power of 8, found ${length}`);
value.displayName = displayName;
value.ext = { length } as TypeDefExtLength;
value.length = length;
return value;
}
+2 -5
View File
@@ -31,10 +31,6 @@ export enum TypeDefInfo {
Null
}
export interface TypeDefExtLength {
length: number;
}
export interface TypeDefExtEnumDiscriminant {
discriminant: number;
}
@@ -43,7 +39,8 @@ export interface TypeDef {
info: TypeDefInfo;
index?: number;
displayName?: string;
ext?: TypeDefExtEnumDiscriminant | TypeDefExtLength; // add additional here as required
ext?: TypeDefExtEnumDiscriminant; // add additional here as required
length?: number;
name?: string;
namespace?: string;
params?: TypeDef[];
+5 -5
View File
@@ -2,7 +2,7 @@
/* eslint-disable @typescript-eslint/no-empty-interface */
import { Compact, Option, Raw, Vec } from '@polkadot/types/codec';
import { BitVec, Bytes, Data, IdentityFields, Null, StorageData, StorageKey, Text, Type, U256, Unconstructable, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types/primitive';
import { BitVec, Bytes, Data, Null, StorageData, StorageKey, Text, Type, U256, Unconstructable, bool, i128, i16, i256, i32, i64, i8, u128, u16, u256, u32, u64, u8, usize } from '@polkadot/types/primitive';
import { AccountId, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, Call, ChangesTrieConfiguration, Consensus, ConsensusEngineId, Digest, DigestItem, DispatchClass, DispatchInfo, DispatchInfoTo190, EcdsaSignature, Ed25519Signature, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV1, ExtrinsicPayloadV2, ExtrinsicPayloadV3, ExtrinsicPayloadV4, ExtrinsicSignatureV1, ExtrinsicSignatureV2, ExtrinsicSignatureV3, ExtrinsicSignatureV4, ExtrinsicUnknown, ExtrinsicV1, ExtrinsicV2, ExtrinsicV3, ExtrinsicV4, Fixed64, H160, H256, H512, Hash, Header, ImmortalEra, Index, Justification, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, Moment, MortalEra, MultiSignature, Origin, Perbill, Percent, Permill, Perquintill, Phantom, PhantomData, PreRuntime, Seal, SealV0, Signature, SignedBlock, SignerPayload, Sr25519Signature, ValidatorId, Weight, WeightMultiplier } from '@polkadot/types/interfaces/runtime';
import { InclusionHeight, Uncle, UncleEntryItem } from '@polkadot/types/interfaces/authorship';
import { RawAuraPreDigest } from '@polkadot/types/interfaces/aura';
@@ -18,7 +18,7 @@ import { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine';
import { Account, Log } from '@polkadot/types/interfaces/evm';
import { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@polkadot/types/interfaces/genericAsset';
import { AuthorityIndex, AuthorityList, AuthorityWeight, NextAuthority, PendingPause, PendingResume, SetId, StoredPendingChange, StoredState } from '@polkadot/types/interfaces/grandpa';
import { IdentityInfo, IdentityInfoAdditional, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement } from '@polkadot/types/interfaces/identity';
import { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement } from '@polkadot/types/interfaces/identity';
import { AuthIndex, AuthoritySignature, Heartbeat, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@polkadot/types/interfaces/imOnline';
import { Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@polkadot/types/interfaces/offences';
import { ActiveRecovery, RecoveryConfig } from '@polkadot/types/interfaces/recovery';
@@ -49,9 +49,6 @@ export interface InterfaceRegistry {
Data: Data;
'Option<Data>': Option<Data>;
'Vec<Data>': Vec<Data>;
IdentityFields: IdentityFields;
'Option<IdentityFields>': Option<IdentityFields>;
'Vec<IdentityFields>': Vec<IdentityFields>;
i8: i8;
'Option<i8>': Option<i8>;
'Vec<i8>': Vec<i8>;
@@ -603,6 +600,9 @@ export interface InterfaceRegistry {
StoredState: StoredState;
'Option<StoredState>': Option<StoredState>;
'Vec<StoredState>': Vec<StoredState>;
IdentityFields: IdentityFields;
'Option<IdentityFields>': Option<IdentityFields>;
'Vec<IdentityFields>': Vec<IdentityFields>;
IdentityInfoAdditional: IdentityInfoAdditional;
'Option<IdentityInfoAdditional>': Option<IdentityInfoAdditional>;
'Vec<IdentityInfoAdditional>': Vec<IdentityInfoAdditional>;
@@ -2,33 +2,32 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { TypeRegistry } from '../create';
import IdentityFields from './IdentityFields';
import { TypeRegistry, createType } from '../../create';
describe('IdentityFields', (): void => {
const registry = new TypeRegistry();
it('has a custom u64 (64-bit) encodedLength', (): void => {
expect(
new IdentityFields(registry).encodedLength
createType(registry, 'IdentityFields').encodedLength
).toEqual(8);
});
it('encodes a sample', (): void => {
expect(
new IdentityFields(registry, ['Display', 'Legal']).valueEncoded.eqn(1 + 2)
createType(registry, 'IdentityFields', ['Display', 'Legal']).valueEncoded.eqn(1 + 2)
).toBe(true);
});
it('encodes to a valid u8a value', (): void => {
expect(
new IdentityFields(registry, ['Display', 'Legal']).toU8a()
createType(registry, 'IdentityFields', ['Display', 'Legal']).toU8a()
).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 3]));
});
it('decodes from a u8a', (): void => {
expect(
new IdentityFields(registry, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1 + 2 + 64])).toHuman()
createType(registry, 'IdentityFields', new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1 + 2 + 64])).toHuman()
).toEqual(['Display', 'Legal', 'Image']);
});
});
@@ -4,6 +4,21 @@
export default {
types: {
IdentityFields: {
_set: {
_bitLength: 64,
// Mapped here to the least amount of bits visible, in Rust it is preceded by
// `00000000000000000000000000000000000000000000000000000000' for 64-bits
Display: 0b00000001,
Legal: 0b00000010,
Web: 0b00000100,
Riot: 0b00001000,
Email: 0b00010000,
PgpFingerprint: 0b00100000,
Image: 0b01000000,
Twitter: 0b10000000
}
},
IdentityInfoAdditional: '(Data, Data)',
IdentityInfo: {
additional: 'Vec<IdentityInfoAdditional>',
@@ -2,10 +2,22 @@
/* eslint-disable @typescript-eslint/no-empty-interface */
import { ITuple } from '@polkadot/types/types';
import { Enum, Option, Struct, Vec } from '@polkadot/types/codec';
import { Data, IdentityFields, u32 } from '@polkadot/types/primitive';
import { Enum, Option, Set, Struct, Vec } from '@polkadot/types/codec';
import { Data, u32 } from '@polkadot/types/primitive';
import { AccountId, Balance, H160 } from '@polkadot/types/interfaces/runtime';
/** @name IdentityFields */
export interface IdentityFields extends Set {
readonly isDisplay: boolean;
readonly isLegal: boolean;
readonly isWeb: boolean;
readonly isRiot: boolean;
readonly isEmail: boolean;
readonly isPgpFingerprint: boolean;
readonly isImage: boolean;
readonly isTwitter: boolean;
}
/** @name IdentityInfo */
export interface IdentityInfo extends Struct {
readonly additional: Vec<IdentityInfoAdditional>;
@@ -1,29 +0,0 @@
// Copyright 2017-2020 @polkadot/types authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { Registry } from '../types';
import BN from 'bn.js';
import Set from '../codec/Set';
/**
* @name IdentityFields
* @description
* Encoder/Decoder class fo registry IdentityFields
*/
export default class IdentityFields extends Set {
constructor (registry: Registry, value?: any) {
super(registry, {
Display: new BN(0b0000000000000000000000000000000000000000000000000000000000000001),
Legal: new BN(0b0000000000000000000000000000000000000000000000000000000000000010),
Web: new BN(0b0000000000000000000000000000000000000000000000000000000000000100),
Riot: new BN(0b0000000000000000000000000000000000000000000000000000000000001000),
Email: new BN(0b0000000000000000000000000000000000000000000000000000000000010000),
PgpFingerprint: new BN(0b0000000000000000000000000000000000000000000000000000000000100000),
Image: new BN(0b0000000000000000000000000000000000000000000000000000000001000000),
Twitter: new BN(0b0000000000000000000000000000000000000000000000000000000010000000)
}, value, 64);
}
}
-1
View File
@@ -12,7 +12,6 @@ export { default as BitVec } from './BitVec';
export { default as bool } from './Bool';
export { default as Bytes } from './Bytes';
export { default as Data } from './Data';
export { default as IdentityFields } from './IdentityFields';
export { default as i8 } from './I8';
export { default as i16 } from './I16';
export { default as i32 } from './I32';