rust 如何删除NEAR协议中的智能合约?

b4lqfgs4  于 2022-12-19  发布在  其他
关注(0)|答案(3)|浏览(185)

我是区块链和Near协议的新手。我已经在Near协议上创建了2个智能合约。第一个成功完成,但当我尝试部署第二个时,我已经部署了它但是当我试图调用一个方法时(在本例中为“increment”),它给出错误。我查找错误,他们说执行此错误是因为我尝试部署另一个智能合约。那么我如何删除第一个?或者我可以吗?或者我应该吗?谢谢。错误如下:

ServerTransactionError: {"index":0,"kind":{"ExecutionError":"Smart contract panicked: panicked at 'Cannot deserialize the contract state.: Custom { kind: InvalidData, error: \"Not all bytes read\" }
tzxcd3kk

tzxcd3kk1#

这取决于您运行的是testnet还是mainnet,是否需要转移任何资产。每个钱包只能部署1个智能合约,似乎需要删除钱包才能移除合约
您可以使用near delete accountName.networkName

xlpyo6sf

xlpyo6sf2#

我遇到了同样的问题。听起来你在学习Near的“计数器”教程。在你的第一次部署中,计数器数据大小(例如:U64)大于尺寸(例如:u8)在您的第二次部署中。
如果您从u8开始,然后更改为u64,您仍然会得到一个错误,但不同的错误。
或者,您甚至可能在Contract结构中添加了一个新字段(我还没有尝试过)。
所以,是的,你需要另一个帐户。

kgqe7b3p

kgqe7b3p3#

您可以部署空合同
第一个月

from pynear.account import Account

async def f():
    acc = Account(
        "accoun_id",
        "private_key"
    )
    await acc.startup()
    res = await acc.deploy_contract(b"")

asyncio.run(f())

相关问题