near-api-js 合约界面的contractId和account.accountId有什么区别?

near-api-js What is the difference between contractId and account.accountId in the contract interface?

Contract 构造函数同时采用 account: AccountcontractId: string,但是 Account 已经提供合约的账户 ID 作为 account.accountId。这两者有什么区别? https://github.com/near/near-api-js/blob/master/src/contract.ts#L22

更新:我们甚至可以在测试中看到它们在这里传递了相同的值:https://github.com/near/near-api-js/blob/master/test/test-utils.js#L39

account.accountId 指定谁在签署交易,即正在执行操作的帐户。

contractId指定接收交易的合约账户名。

如果有必要代表合同帐户执行操作,它们可以相同,但基本上这仅适用于联系人所有者。如果例如,它们将不相同您有用户使用 WalletConnection 登录并调用第三方合同。