跳到主要内容
Version: 1.2.0

签名工具

介绍

签名工具用以对多笔提现交易进行离线签名,加速交易发布到区块链的流程。

安装签名工具

1. 获取签名工具源文件

通过 Github 拉取签名工具文件。除了 PayTool.jar 和 Dockerfile 之外,您还获得了一个环境文件 signer.env

Github 仓库地址:https://github.com/PayProtocol-Network/SignTool.git

2. 构建 Docker 镜像

运行以下命令,这将构建一个名为 signer:1.0 的 docker 镜像:

docker build -t signer:1.0 .

3. 配置环境变量

现在我们需要将合约中 owner 钱包地址的私钥以及商户参数写入签名工具环境文件(signer.env)。

私钥只会在签名工具内部使用并用来签署交易,并且永远不会暴露在签名工具外部。

使用文本编辑器打开环境文件(signer.env)。正确填写所有参数:

SPRING_PROFILES_ACTIVE=test(测试网)/ prod(正式网)

MER_API_KEY=商户 API Key
MER_API_SECRET=商户 Secret Key

EVM_PRIVATE_KEY= EVM(以太坊)owner 钱包地址私钥
TVM_PRIVATE_KEY= TVM(波场) owner 钱包地址私钥

# 批量转账合约地址
EVM_BATCH_TRANSFER= EVM(以太坊)批量转账合约地址
TVM_BATCH_TRANSFER= TVM(波场) 批量转账合约地址

# 多签冷合约地址
EVM_MULTI_SIG_COLD= EVM(以太坊)多签冷合约地址
TVM_MULTI_SIG_COLD= TVM(波场) 多签冷合约地址

# 默认无需更改
TEST_TX_PARAM_URL=https://api-sandbox.payprotocol.network/api/mer/withdraw/transactionDetail
TEST_CURRENCY_URL=https://api-sandbox.payprotocol.network/api/mer/conf/list/currency
TEST_ESTIMATION_URL=https://api-sandbox.payprotocol.network/api/mer/transaction/estimate
TEST_WITHDRAWAL_URL=https://api-sandbox.payprotocol.network/api/mer/withdraw/submit
TEST_REBALANCE_URL=https://api-sandbox.payprotocol.network/api/mer/balance/submit

# 默认无需更改
TX_PARAM_URL=https://api.payprotocol.network/api/mer/withdraw/transactionDetail
CURRENCY_URL=https://api.payprotocol.network/api/mer/conf/list/currency
ESTIMATION_URL=https://api.payprotocol.network/api/mer/transaction/estimate
WITHDRAWAL_URL=https://api.payprotocol.network/api/mer/withdraw/submit
REBALANCE_URL=https://api.payprotocol.network/api/mer/balance/submit

请确保 owner 钱包地址在 “TRON 链” / “ETH 链”上拥有 TRX / ETH,因为在交易发布后,它需签名交易并支付一定的网络费用。

4. 运行 Docker 容器

我们需要与刚刚添加私钥的 signer.env 文件位于同一目录中。运行以下命令来启动签名工具:(外部端口 8080 可自行调整)

$ docker run --env-file ./signer.env -p 8080:9980 -d --name signer signer:1.0

验证器现在正在运行并侦听。我们可以使用以下命令验证它是否正在运行:

$ docker ps

输出应包含一个带有我们刚刚运行的映像名称的条目,如下所示:

CONTAINER ID  IMAGE       COMMAND                 CREATED       STATUS       PORTS                                       NAMES
dcd43bbe138a signer:1.0 "java -jar /home/jav…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->9980/tcp, :::8080->9980/tcp signer

通过签名工具签名提现交易

  1. 获取待提现订单列表,请参考商户 API 接口查询提现订单列表
  2. 将待提现订单列表提交给签名工具相关的接口(签名工具接口说明),签名工具将返回签名结果。

通过签名工具签名平衡交易

  1. 获取当前地址币种余额,请参考商户 API 接口查询币种余额
  2. 通过币种余额判断是否需要平衡,如需平衡,请调用签名工具相关接口(签名工具接口说明),签名工具将返回签名结果。