同一NEAR钱包账户部署多智能合约后,能否读取合约A的方法?
NEAR多智能合约部署与调用问题解答
核心差异:NEAR vs 以太坊账户-合约模型
- 以太坊:钱包账户(EOA)部署合约时会生成独立的合约地址,原账户与合约地址分离,同一钱包可部署多个合约,调用时指定对应地址即可。
- NEAR:每个账户(包括钱包账户)只能关联一份智能合约代码。用账户B先后部署合约A和C时,第二次部署会直接覆盖账户B上的合约A代码,此时账户B的合约逻辑已替换为C,无法再调用合约A的函数。
NEAR实现多合约部署与分别调用的方案
要实现类似以太坊的多合约管理,需使用子账户:
- 用钱包账户B创建子账户,比如
a.b.near和c.b.near(子账户命名需符合NEAR账户格式规则) - 将合约A部署到子账户
a.b.near,合约C部署到子账户c.b.near - 调用合约时,直接指定对应的子账户地址:调用合约A的函数指向
a.b.near,调用合约C则指向c.b.near
原问题直接答复
不能用钱包账户B读取原合约A的方法,因为部署合约C时已完全覆盖账户B上的合约A代码,当前账户B关联的是合约C的逻辑,原合约A的代码已不存在于该账户下。
内容的提问来源于stack exchange,提问作者Nagendra Kumar
相关产品推荐
相关产品推荐

