wrap.near 合约如何在 NEAR 协议中运行?
How does wrap.near contract operate in NEAR Protocol?
wNEAR 似乎是由 wrap.near 合同烘焙的,但它是如何工作的?
wrap.near 持有 w-near
contract, which is FT [fungible token] implementation based on NEP-141 标准。
这个想法很简单,你发送本地 NEAR 代币,合约在本地存储中跟踪发送者账户的余额,并且有一个反向操作允许你指示合约发回 NEAR 代币.
此 FT 始终匹配原生 NEAR 令牌 1:1。名称中的“Wrapped”前缀(wrapped NEAR 或 wNEAR)表示它只是将原生令牌转换为 FT 令牌。它的创建是为了与 Rainbow Bridge (Aurora) 接口兼容,该接口允许跨 NEAR 网络 <> 以太坊网络传输 FT(通过将代币锁定在一个网络上的合约中并从部署在另一个网络)。
那么回到w-near
合约的技术实现,可以发现三个核心方法:
near_deposit
期望 NEAR 原生代币附加到函数调用,这些附加代币将存入 wrap.near 帐户,作为交换,合约实施将在存储中保存一条记录,这些记录令牌属于发送它们的帐户
near_withdraw
扣除为调用此函数的帐户记录的代币数量,并将原生 NEAR 代币转账发送回调用者
ft_transfer
(由near-sdk-rs helper 实现)通过更新合约存储中的记录来虚拟转移 wNEAR FT 代币。注意:这里不涉及本地转账,因此交易将从代币发送方转到 wrap.near
合约,这将相应地更新发送方和接收方的余额,接收方账户永远不会收到本地 NEAR 调用或NEAR 代币(直到 he/she 调用 near_withdraw
)
wNEAR 似乎是由 wrap.near 合同烘焙的,但它是如何工作的?
wrap.near 持有 w-near
contract, which is FT [fungible token] implementation based on NEP-141 标准。
这个想法很简单,你发送本地 NEAR 代币,合约在本地存储中跟踪发送者账户的余额,并且有一个反向操作允许你指示合约发回 NEAR 代币.
此 FT 始终匹配原生 NEAR 令牌 1:1。名称中的“Wrapped”前缀(wrapped NEAR 或 wNEAR)表示它只是将原生令牌转换为 FT 令牌。它的创建是为了与 Rainbow Bridge (Aurora) 接口兼容,该接口允许跨 NEAR 网络 <> 以太坊网络传输 FT(通过将代币锁定在一个网络上的合约中并从部署在另一个网络)。
那么回到w-near
合约的技术实现,可以发现三个核心方法:
near_deposit
期望 NEAR 原生代币附加到函数调用,这些附加代币将存入 wrap.near 帐户,作为交换,合约实施将在存储中保存一条记录,这些记录令牌属于发送它们的帐户near_withdraw
扣除为调用此函数的帐户记录的代币数量,并将原生 NEAR 代币转账发送回调用者ft_transfer
(由near-sdk-rs helper 实现)通过更新合约存储中的记录来虚拟转移 wNEAR FT 代币。注意:这里不涉及本地转账,因此交易将从代币发送方转到wrap.near
合约,这将相应地更新发送方和接收方的余额,接收方账户永远不会收到本地 NEAR 调用或NEAR 代币(直到 he/she 调用near_withdraw
)