Current section

Files

Jump to
forge_sdk lib forge_sdk protocol display block_info.ex
Raw

lib/forge_sdk/protocol/display/block_info.ex

defimpl ForgeSdk.Display, for: ForgeAbi.BlockInfo do
@moduledoc """
Implementation of `Display` protocol for `BlockInfo`
"""
use ForgeAbi.Unit
alias ForgeSdk.Display
def display(data, _expand? \\ false) do
basic = Map.from_struct(data)
version = Display.display(basic.version)
Map.merge(basic, %{
time: Display.display(basic.time),
app_hash: Base.encode16(basic.app_hash || ""),
proposer: basic.proposer,
txs: Display.display(basic.txs),
invalid_txs: Display.display(basic.invalid_txs),
consensus_hash: Base.encode16(basic.consensus_hash || ""),
data_hash: Base.encode16(basic.data_hash || ""),
evidence_hash: Base.encode16(basic.evidence_hash || ""),
last_commit_hash: Base.encode16(basic.last_commit_hash),
last_results_hash: Base.encode16(basic.last_results_hash),
next_validators_hash: Base.encode16(basic.next_validators_hash),
validators_hash: Base.encode16(basic.validators_hash),
version: %{app: version[:App], block: version[:Block]},
last_block_id:
Display.display(%{
basic.last_block_id
| hash: Base.encode16(basic.last_block_id.hash),
parts_header: %{
basic.last_block_id.parts_header
| hash: Base.encode16(basic.last_block_id.parts_header.hash)
}
})
})
end
end
defimpl ForgeSdk.Display, for: ForgeAbi.BlockInfoSimple do
@moduledoc """
Implementation of `Display` protocol for `BlockInfoSimple`
"""
use ForgeAbi.Unit
alias ForgeSdk.Display
def display(data, _expand? \\ false) do
basic = Map.from_struct(data)
version = Display.display(basic.version)
Map.merge(basic, %{
time: Display.display(basic.time),
app_hash: Base.encode16(basic.app_hash || ""),
proposer: basic.proposer,
consensus_hash: Base.encode16(basic.consensus_hash || ""),
data_hash: Base.encode16(basic.data_hash || ""),
evidence_hash: Base.encode16(basic.evidence_hash || ""),
last_commit_hash: Base.encode16(basic.last_commit_hash),
last_results_hash: Base.encode16(basic.last_results_hash),
next_validators_hash: Base.encode16(basic.next_validators_hash),
validators_hash: Base.encode16(basic.validators_hash),
version: %{app: version[:App], block: version[:Block]},
last_block_id:
Display.display(%{
basic.last_block_id
| hash: Base.encode16(basic.last_block_id.hash),
parts_header: %{
basic.last_block_id.parts_header
| hash: Base.encode16(basic.last_block_id.parts_header.hash)
}
})
})
end
end