合同前任 vs 签署人 vs 当前
Posted
技术标签:
【中文标题】合同前任 vs 签署人 vs 当前【英文标题】:Contract Predecessor vs Signer vs Current 【发布时间】:2021-07-21 14:57:14 【问题描述】:谁能帮我理解这三个概念之间的关系和区别?似乎context.predecessor == context.contractName
检查很常见。
【问题讨论】:
【参考方案1】:signer
- 签署初始交易的帐户。
predecessor
- 进行当前合约调用的最后一个账户。
current
- 合约账户。
例如,考虑合约contract.near
和用户alice.near
。
alice.near
在 contract.near
上调用方法 foo
。在 foo 的上下文中:
signer == alice.near
predecessor == alice.near
current == contract.near
如果一个 promise 调用另一个方法比如faa
,那么它的上下文是:
signer == alice.near
predecessor == contract.near
current == contract.near
所以检查predecessor == current
或context.predecessor == context.contractName
是为了确保合约是发出合约调用的账户。带有此断言的方法被认为是“私有的”,因为只有合约才能调用它,即使它是面向公众的 API 的一部分。
【讨论】:
以上是关于合同前任 vs 签署人 vs 当前的主要内容,如果未能解决你的问题,请参考以下文章