Packages
kujira
0.1.77
0.1.80
0.1.79
0.1.78
0.1.77
0.1.76
0.1.75
0.1.74
0.1.73
0.1.72
0.1.71
0.1.70
0.1.69
0.1.68
0.1.67
0.1.66
0.1.65
0.1.64
0.1.63
0.1.62
0.1.61
0.1.60
0.1.59
0.1.58
0.1.57
0.1.56
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.48
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Elixir interfaces to Kujira dApps, for building indexers, APIs and bots
Current section
Files
Jump to
Current section
Files
lib/kujira/token/trace.ex
defmodule Kujira.Token.Trace do
@moduledoc """
The IBC trace of a token
"""
alias Ibc.Applications.Transfer.V1.QueryDenomTraceRequest
import Ibc.Applications.Transfer.V1.Query.Stub
use Memoize
defstruct [:base_denom, :path]
@type t :: %__MODULE__{base_denom: String.t(), path: String.t()}
defmemo from_hash(channel, hash) do
Memoize.Cache.get_or_run(
{__MODULE__, :from_hash, [hash]},
fn ->
with {:ok, %{denom_trace: trace}} <-
denom_trace(channel, QueryDenomTraceRequest.new(hash: hash)) do
{:ok, %__MODULE__{base_denom: trace.base_denom, path: trace.path}}
end
end
)
end
end