概念
Denoms
在 Injective 上,代币被称为 denoms,这些 denoms 由 Injective 的银行模块进行跟踪和管理。权限模块通过将资产表示为 denoms 并为其附加特定权限来创建和管理资产,这些权限随后由不同的角色进行管理。
请注意,权限模块本身并不创建新的 denoms,而是将权限附加到由 tokenfactory
模块创建的现有 denoms 上。由 tokenfactory
模块创建的 denom 中指定的 denom 管理员是唯一可以设置和更新该 denom 权限的地址。
命名空间
一个代币可以与特定的命名空间关联,该命名空间定义了与代币相关的角色和权限集,例如允许铸造、销毁和接收代币的地址(角色)集。命名空间还可以指定一个 Cosmwasm 智能合约,该合约可以定义在代币转移时调用的自定义逻辑,如果需要对转移进行更复杂的控制。命名空间
角色
角色将权限组合在一个易于理解的标签下。一个地址可以在一个命名空间内被分配多个角色,每个角色可以允许多个操作。当前,支持三种不同的操作:
Mint:允许铸造/发行该 denom 的新代币。
Burn:允许销毁该 denom 的代币。
Receive:允许接收该 denom 的代币。
行动
铸造:由于在 Cosmos SDK 中铸造只能由 denom 管理员地址执行,我们假设所有铸造操作由 denom 管理员执行,然后转移到铸造者地址。因此,从 denom 管理员地址发出的任何转账都可以视为由铸造者地址执行的铸造操作(尽管技术上是由 denom 管理员执行的)。
销毁:类似地,销毁只能由 denom 管理员地址执行,因此转账到 denom 管理员地址会被视为销毁。
接收:其他所有操作都只是接收操作。
权限
权限定义了一个地址在命名空间内可以执行的操作。对于没有分配任何角色的地址,可以通过创建或更新命名空间时使用 EVERYONE 角色来应用默认权限。权限可以用于控制诸如铸造代币、接收代币或销毁代币等操作。
凭证
每当来自预定义模块地址(如 exchange、auction、insurance)向用户地址的转账因限制而失败时,转账的目标地址会被重写为权限模块地址,在该地址中代币会被暂时保管。原始的资金接收者将获得一个凭证,表示他们在模块中持有的代币数量。用户只有在获得相应的权限(例如允许 RECEIVE 操作)后,才能认领凭证,而这通常是由于用户之前没有相关权限,导致初始转账失败。
Last updated