you can easily get a readable global state
function getReadableGlobalState (delta: Array<GlobalStateDelta>) {
const r = {} as ReadableGlobalStateDelta
delta.forEach(d => {
const key = Buffer.from(d.key, 'base64').toString('utf8')
let value = null
if (d.value.bytes) {
// first see if it's a valid address
const b = new Uint8Array(Buffer.from(d.value.bytes as string, 'base64'))
value = algosdk.encodeAddress(b)
// then decode as string
if (!algosdk.isValidAddress(value)) {
value = Buffer.from(d.value.bytes as string, 'base64').toString()
}
} else {
value = d.value.uint
}
r[key] = value
})
return r
}
you can find more about it here.