递归和引用
使用递归和引用创建层次结构并包含原子数字对象
定义以下 URN 是为了简化包含和引用不同的 Atomicals 资源。
注意:当引用原子中的参考文献时,建议这样做。使用数据中的 ctx
顶级字段导入或包含对其他原子和数据文件的引用。为此,专门保留了 ctx
顶层。
ctx
字段中引用的递归示例:
注意:如果适用,最好使用“dat”命令来引用链上资产。当使用容器、领域或动态引用(使用斜杠“/”)时,它可能是资源。
约定
约定是使用前缀 "atom:btc" 来表示 Bitcoin(BTC)网络上的原子协议。可以通过 atomical_id、collection名称或(sub)Re约定alm 引用数字对象,并通过 data_id 引用不可变文件数据。
Atomicals 通用资源名称 (URN) 的基本形式是:
atom:<chain>:<ref_type>:<identifier>[$ or /[<file>]]
其中:
chain: 引用的区块链,对于 Bitcoin 设置为“BTC”
ref_type:引用的类型。目前支持“id”、“container”、“realm”和“dat”
identifier: ref_type对应的标识符。例如atomical_id、容器名称、领域名称或“dat”情况下不可变数据的显示位置
$ or /: 是否引用 Atomical 文件的最新(原始)数据(使用美元符号 $)或动态(最新)数据(使用斜杠 /)。很容易注意到,对于 dat
ref_type,$ 或 / 都是可接受的,并且无论如何都会返回相同的数据
file: 文件名是可选的,如果省略则返回有关资源的一般信息
我们的理念是,我们应该能够根据 Atomicals 数字对象的类型明确引用它们。在基础级别,每种类型(例如 collection 和 realm)也可以由atomical_id 引用。此外,我们应该始终能够获取原始的 mint 数据,并获取存储的文件的最新版本,包括该文件的每个修订版本(按 txid、版本号或块高度)
按 Atomical ID 引用
获取一般信息
atom:btc:id:<atomical_id>
例如:atom:btc:id:14a0d7c98304bf5ac9a5addceb1de0ce4e840641f82d71d84cebbdac427c1fc3i0
获取 Json 格式的原始铸造数据
atom:btc:id:<atomical_id>$
获取原始铸造文件
atom:btc:id:<atomical_id>$links
atom:btc:id:<atomical_id>$info.pdf
获取最新的动态数据状态
atom:btc:id:<atomical_id>/
获取文件的最新版本
atom:btc:id:<atomical_id>/image.png
获取文件的特定版本
atom:btc:id:<atomical_id>/image.png@[交易哈希值或者区块高度]
[交易哈希值或者区块高度]可以采用下列形式:
作为文件有效更新之一的交易哈希的十六进制
以 "v" 开头的版本号,例如 "v1"
截至该高度的文件状态的块高度
按容器名称引用
获取一般信息
atom:btc:container:<containerName>
样例:
atom:btc:id:my-coolcontainer-name
获取原始铸造数据
atom:btc:container:<containerName>$
获取最新的动态数据状态
atom:btc:container:<containerName>/
获取原始铸造文件
atom:btc:container:<containerName>$image.jpg
获取文件的最新版本
atom:btc:container:<containerName>/items
获取文件的特定版本
atom:btc:container:<containerName>/items@[交易哈希或版本号]
按 Realm 引用
获取一般信息
atom:btc:realm:<realmName>
realmName 可以是顶级 Realm 或子 Realm
样例:
atom:btc:realm:myrealm atom:btc:realm:myrealm.somesubrealm atom:btc:realm:myrealm.somesubrealm.thirdlevel-subrealm
获取文件的最新版本
atom:btc:realm:<realmName>/profile
获取文件的特定版本
atom:btc:realm:<realmName>/profile@[哈希值或版本号]
[哈希值或版本号]可以是如下形式:
作为文件有效更新之一的交易哈希的十六进制
以 "v" 开头的版本号,例如 "v1"
截至该高度的文件状态的块高度
按 ARC20 引用
获取一般信息
atom:btc:arc:<ticker>
其中,ticker 可以是 ARC20 代币的名称
获取铸造原始数据
atom:btc:arc:<ticker>$
atom:btc:arc:<ticker>/icon.png
在代码中获取事件源
atom:btc:arc:<ticker>/events (待定 - TBD)
对不可变数据的引用
要存储不可变(非数字对象数据),请使用“dat”命令(存储文件)并使用以下形式的 dat URN 引用它:
atom:btc:dat:<data_id>/image.png
请注意, dat
不可变数据存储可以使用 $ 或 /,因为不可变数据只有一个版本,并且两者都会返回相同的数据。
Last updated