# Issues with types
Currently the types of the traceBlock rpc response are not easily digestable by polkadot-js.
### Example 1
```
"block_hash": "BlockId::Hash(0x01e0f6f63cddbfaaac47c34632ed72f5e76eeaab8eab96e1ce1bb1fe047ef8d5)"
```
would prefer to be
```
"blockHash": {
"value": "0x01e0f6f63cddbfaaac47c34632ed72f5e76eeaab8eab96e1ce1bb1fe047ef8d5",
"type": "BlockHash"
}
```
### Example 2
I have to do the following logic to decode `AccountInfo` storage item
```typescript
private systemAccountEvents(): EventWithAccountInfo[] {
return this.eventsWithName()
.filter((e) => e.keyName?.name == 'system::account')
.map((e) => {
// key = h(system) + h(account) + h(address) + address
// Remove the storage key + account hash
const addressRaw = e.values.string_values.key?.slice(96);
const address = this.registry.createType(
'Address',
`0x${addressRaw}`
);
const { method } = e.values.string_values;
const accountInfoEncoded =
method === 'Get'
? (e?.values?.string_values?.result as string)
: (e?.values?.string_values?.value as string);
let accountInfo;
if (accountInfoEncoded?.slice(0, 5) === 'Some(') {
const len = accountInfoEncoded.length;
const scale = accountInfoEncoded.slice(5, len - 1);
accountInfo = this.registry.createType(
'AccountInfo',
`0x${scale}`
);
} else {
throw 'Expect there to always be some account info';
}
return { ...e, accountInfo, address };
});
}
```
Prefferable instead is if I could just dump in the `values?.string_values?.value` to polkadot-js with `createType('AccountInfo', values?.string_values?.value)`.
In order for that to work I think the easiest thing would be if the value was entirely `scale` encoded.