在 Near 中,由受 2FA 保护的钱包签名的交易以特殊方式(合同确认)完成,与常规交易不同。签名者和接收者 id 相同的钱包。示例交易: https ://explorer.near.org/transactions/9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY
如何正确使用它们,在 Indexer 中哪里可以找到它们?如何正确获取数据,用户签署什么合同和方法?
在 Near 中,由受 2FA 保护的钱包签名的交易以特殊方式(合同确认)完成,与常规交易不同。签名者和接收者 id 相同的钱包。示例交易: https ://explorer.near.org/transactions/9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY
如何正确使用它们,在 Indexer 中哪里可以找到它们?如何正确获取数据,用户签署什么合同和方法?
NEAR Indexer for Explorer 核心贡献者和维护者在这里。
查看您在问题中提供的交易https://explorer.near.org/transactions/9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY这是一种FUNCTION CALL
方法confirm
而且我相信您担心的是,您无法通过使用哈希查询表来查看公共NEAR Indexer for Explorer 数据库中的事务结果。transactions
并且说 2FA 交易“不像常规交易”是指涉及的跨合约调用的性质。
这是找出正在发生的事情的方法
SELECT transaction_hash, converted_into_receipt_id FROM transactions WHERE transaction_hash = '9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY';
transaction_hash | converted_into_receipt_id
----------------------------------------------+----------------------------------------------
9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY | FP5UmXxdDBBicGkzgXXdhS28hxgBWVByFcqbwh25qHzN
根据您发送的这笔交易是对某个ft_transfer
调用的确认这一事实,我们预计会发生对合约的跨合约调用gems.l2e.near
。
我们要查找执行收据 id 后产生的所有收据FP5UmXxdDBBicGkzgXXdhS28hxgBWVByFcqbwh25qHzN
(我们在步骤 1 中找到了)
SELECT produced_receipt_id FROM execution_outcome_receipts WHERE executed_receipt_id = 'FP5UmXxdDBBicGkzgXXdhS28hxgBWVByFcqbwh25qHzN';
produced_receipt_id
----------------------------------------------
9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU
3mtnLaGFYpXXzZ4H9vYczSXz9JbdS7XueSobDjQDAYb3
(2 rows)
SELECT receipt_id, action_kind, receipt_predecessor_account_id, receipt_receiver_account_id, args FROM action_receipt_actions WHERE receipt_id IN ('9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU', '3mtnLaGFYpXXzZ4H9vYczSXz9JbdS7XueSobDjQDAYb3');
receipt_id | action_kind | receipt_predecessor_account_id | receipt_receiver_account_id | args
----------------------------------------------+---------------+--------------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3mtnLaGFYpXXzZ4H9vYczSXz9JbdS7XueSobDjQDAYb3 | TRANSFER | system | shishkerin.near | {"deposit": "12306467158537048105440"}
9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU | FUNCTION_CALL | shishkerin.near | gems.l2e.near | {"gas": 220000000000000, "deposit": "1", "args_json": {"amount": "2970000", "receiver_id": "hot1.l2e.near"}, "args_base64": "eyJyZWNlaXZlcl9pZCI6ImhvdDEubDJlLm5lYXIiLCJhbW91bnQiOiIyOTcwMDAwIn0=", "method_name": "ft_transfer"}
(2 rows)
在这里我们可以看到 Receipt9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU
实际上是在做一个FUNCTION_CALL
togems.l2e.near
签名的shishkerin.near
我们还可以查看 args 并发现方法是调用是ft_transfer
,参数是{"amount": "2970000", "receiver_id": "hot1.l2e.near"}
(另一张收据3mtnLaGFYpXXzZ4H9vYczSXz9JbdS7XueSobDjQDAYb3
是签字的转账system
,基本上是附加gas的现金返还)
SELECT receipt_id, status FROM execution_outcomes WHERE receipt_id = '9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU';
receipt_id | status
----------------------------------------------+---------------
9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU | SUCCESS_VALUE
我希望这能回答你的问题。
除了@khorolets 已经提到的内容之外,receipts
表格还有originated_from_transaction_hash
一列可以帮助您获取归因于交易的所有收据:
SELECT * FROM receipts WHERE originated_from_transaction_hash = '9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY';
receipt_id | included_in_block_hash | included_in_chunk_hash | index_in_chunk | included_in_block_timestamp | predecessor_account_id | receiver_account_id | receipt_kind | originated_from_transaction_hash
----------------------------------------------+----------------------------------------------+----------------------------------------------+----------------+-----------------------------+------------------------+---------------------+--------------+----------------------------------------------
DiL4YA5iyKpsgkwdjdZkuiCatvKHmbVKPGAKpYJV1qS7 | AyX7umWGpR3RgQGnz4LAgTRnRGbF42krvAAjmXo4s4EV | 9VkhZdALu1EY6D2czKaKSV7qQZsLR6vxfAPXqBkgmAGg | 2 | 1644263681934508460 | system | shishkerin.near | ACTION | 9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY
3mtnLaGFYpXXzZ4H9vYczSXz9JbdS7XueSobDjQDAYb3 | CyDT5XdZK8pKZM4VP559KxEXvUXTKaZbGVN3mVfoc5TX | FbfPdNLhYZEH3AncDiPa5qQZsaxCL8kfAtEaTV2geDi6 | 3 | 1644263680552610497 | system | shishkerin.near | ACTION | 9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY
9zem8CxJvdTHKkZKCc1pFhg4Ky4st6TBrQmE19gv4sAU | CyDT5XdZK8pKZM4VP559KxEXvUXTKaZbGVN3mVfoc5TX | FbfPdNLhYZEH3AncDiPa5qQZsaxCL8kfAtEaTV2geDi6 | 2 | 1644263680552610497 | shishkerin.near | gems.l2e.near | ACTION | 9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY
FP5UmXxdDBBicGkzgXXdhS28hxgBWVByFcqbwh25qHzN | 5zvPFNeVytBNWfTzvmBaeCQtDrLuHfujKQqZ7qHhY4di | 4JngM4mhJnM9em6x8e7kJhyiSdPj1A9ZBzze9ZqJM8DP | 0 | 1644263679256841002 | shishkerin.near | shishkerin.near | ACTION | 9uPvkdmcL4iNnWrHXZocf7NLAJUUVa4zSMrtFtJhrjcY
(4 rows)