Near 协议相当于通过发送到地址(0)来销毁 NEAR 代币

Near protocol equivalent of buring NEAR tokens by sending to address(0)

我想删除当前合约并在触发条件时销毁其NEAR余额。

这是 Solidity 版本:

selfdestruct(address(0));

我在 Rust SDK 中找到了 Promise::delete_account,但它有一个 beneficiary_address 字段。理想情况下,资金应该永远消失,而不是转移到拥有的地址。

Promise::new(env::current_account_id()).delete_account(beneficiary_address);

address(0)address 0x0,一个用来燃烧Ether的黑洞地址

目前没有API直接烧毁NEAR代币。一种解决方法是将收款人帐户 ID 设置为 systemsystem 是一个永远无法创建的帐户,用于内部退款。当受益账户不存在时,通过删除账户转移的代币将自动销毁。

我认为是这样的:

#[payable]
pub fn burn() {  
 Promise::new("system".to_string()).transfer(env::attached_deposit());
}

首次导入:

use near_sdk::{Promise};