阅读此处的一些文档并看到交易定义的一部分是所有操作都“在接收者的帐户之上”执行,并且接收者帐户是“交易将被路由到的帐户”。
同样在 nearlib SDK 中,事务接口包含一个名为 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 是可选的,但接口只需要一个值来避免验证麻烦?
这是我认为受支持交易的完整列表
pub enum Action {
CreateAccount(CreateAccountAction),
DeployContract(DeployContractAction),
FunctionCall(FunctionCallAction),
Transfer(TransferAction),
Stake(StakeAction),
AddKey(AddKeyAction),
DeleteKey(DeleteKeyAction),
DeleteAccount(DeleteAccountAction),
}