教程:按照近协议支付用户汽油
#教程 #python #web3 #nearprotocol

接近协议自版本0.17.0:委托交易以来引入了一个非凡的功能。使用此功能,您可以从一个帐户创建并签署交易,并代表另一个帐户发送。本质上,您为第三方帐户的天然气付费。

本教程将指导您使用Python在近协议上创建和执行交易。

先决条件:

  • 熟悉python
  • 近协议帐户
  • python在图书馆附近(py_near

分步指南

委托交易分为三个步骤:

  1. 爱丽丝创建一个delegate_action,指定所有动作,公钥和收件人。
  2. 爱丽丝用她的私钥签名delegate_action并将其传递给鲍勃。
  3. 鲍勃从一个动作 - delegate_action签名并将其发送到区块链。从本质上讲,爱丽丝的交易已执行,但鲍勃为气体付款。

创建和签署委托交易

以下python函数创建并签名委托事务。按照以下步骤操作:

  1. 安装py_near python库。您可以通过PIP安装它:
pip install py_near
  1. 运行以下Python代码:
from py_near.account import Account
from py_near_primitives import TransferAction
import ed25519

async def create_and_sign_delegate():
    account = Account(
        "alice.near",
        "ed25519::...",
        "https://nrpc.herewallet.app",
    )

    action = await account.create_delegate_action(actions=[TransferAction(1)], receiver_id="bob.near")
    sign = account.sign_delegate_transaction(action)

    account_to_execute = Account(
        "bob.near",
        "ed25519:...",
        "https://nrpc.herewallet.app",
    )
    result = account_to_execute.call_delegate_transaction(
        delegate_action=action,
        signature=sign,
    )
    return result

create_and_sign_delegate()

在此示例中,我们将1 ynear从alice.near转移到bob.near,然后从bob.near balance付费。

注释:用您的实际帐户键在帐户对象中替换ED25519公共键和私钥。您还需要用要发送交易的实际近协议帐户ID替换create_delegate_action方法中的receiver_ID值。

警告:并非所有RPC支持委托交易。您可以使用https://nrpc.herewallet.app进行测试。

执行委托交易

要执行委托事务,请使用上面的Python代码中的call_delegate_transaction方法。此方法需要两个参数:

  • delegate_action:您在上一步中创建的授权模型对象。
  • signature:您在上一步中创建的代表事务的签名。

您可以从任何近协议帐户执行此交易。在上面的示例中,交易是从bob.near帐户执行的。

就是这样!您已经成功地创建并执行了一项临近协议的代表交易,代表另一个用户涵盖了气体成本。