Packages
kujira
0.1.52
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/usk/controller.ex
defmodule Kujira.Usk.Controller do
@moduledoc """
A contract that owns the minting rights for USK, and whitelists individual contracts for USK minting
## Fields
* `:address` - The address of the contract
* `:owner` - The owner of the contract
* `:token` - The token that this contract is the admin for (USK)
* `:permitted` - Addresses permitted to mint USK via the controller
"""
alias Kujira.Token
defstruct [
:address,
:owner,
:token,
:permitted
]
@type t :: %__MODULE__{
address: String.t(),
owner: String.t(),
token: Token.t(),
permitted: list(String.t())
}
@spec from_query(GRPC.Channel.t(), String.t(), map()) :: {:ok, __MODULE__.t()} | :error
def from_query(channel, address, %{
"owner" => owner,
"denom" => denom,
"permitted" => permitted
}) do
with {:ok, token} <- Token.from_denom(channel, denom) do
{:ok,
%__MODULE__{
address: address,
owner: owner,
token: token,
permitted: permitted
}}
end
end
end