【发布时间】:2020-03-15 06:14:29
【问题描述】:
阅读一些documentation here 并看到交易定义的一部分是所有操作都“在接收者的帐户之上”执行,并且接收者帐户是“交易将被路由到的帐户” 。”
同样在 nearlib SDK 中,the transactions interface 包含一个名为 signTransaction 的方法,该方法需要 receiverId 作为参数
async function signTransaction(receiverId: string, nonce: number, actions: Action[], blockHash: Uint8Array, signer: Signer, accountId?: string, networkId?: string): Promise<[Uint8Array, SignedTransaction]> {
但是查看 nearcore 支持的交易列表,我想知道为什么其中一些交易需要接收器。
除了
Transfer、AddKey、DeleteKey和DeleteAccount之外,为什么任何交易都需要“接收方”?
我认为“接收者”的概念过于字面意思,例如“他们接收交易的结果或影响”?相反,这不是正确的思考方式吗?
或者在某些情况下receiverId是可选的,但是接口只需要一个值来避免验证麻烦?
这就是我认为的full list of supported transactions
pub enum Action {
CreateAccount(CreateAccountAction),
DeployContract(DeployContractAction),
FunctionCall(FunctionCallAction),
Transfer(TransferAction),
Stake(StakeAction),
AddKey(AddKeyAction),
DeleteKey(DeleteKeyAction),
DeleteAccount(DeleteAccountAction),
}
【问题讨论】:
标签: nearprotocol