limikael/blockchainwalletmock

该软件包最新版本(v0.0.14)没有提供许可信息。

模拟区块链.info钱包API进行测试...

v0.0.14 2015-07-13 08:26 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:59:59 UTC


README

为自动化测试模拟区块链.info钱包API。

关于

这是区块链.info API的模拟版本,使用本地数据库存储交易。钱包中不会有比特币的转移,也不会产生涉及真实货币的费用。由于我们处理的是金融软件,编写测试代码是个好习惯。为了做到这一点,我们可以使用这个工具来检查我们是否正确处理了响应和回调。

入门指南

首先,使用以下命令安装:

composer global require blockchainwalletmock

然后运行以下命令:

blockchainwalletmock --port 8888

启动后,我们可以看到它已经启动,如下所示:

curl "https://:8888/list?password=testpassword"

它应该给我们以下结果

{
  "addresses":[
  ]
}

JSON以纯文本形式输出,这里已格式化以提高可读性。我们可以以与使用blockchain.info API相同的方式创建新地址。

curl "https://:8888/new_address?password=testpassword"
{
  "address": "075bd7684e782dca00007f01b24c34c0"
}

现在我们来模拟一个收入支付

curl "https://:8888/debug_incoming?password=testpassword&address=075bd7684e782dca00007f01b24c34c0&amount=100000000"
{
  "message":"ok"
}

让我们再次列出我们的地址

curl "https://:8888/list?password=testpassword"
{
  "addresses":[
    {
      "address":"075bd7684e782dca00007f01b24c34c0",
      "balance":"100000000",
      "total_received":"100000000"
    }
  ]
}

你明白了。

这样我们可以在部署前测试我们的代码,同时还可以使用例如PHPUnit创建单元测试,而无需担心我们的比特币会发生什么。

配置

我们可以设置各种配置选项,例如应接受的最小交易金额。我们还可以以与区块链.info“账户设置”相同的方式设置回调URL,并且此URL将以相同的参数调用。运行blockchainwalletmock而不带参数以查看可用选项列表。

在测试中启动

API

目标是API应遵循https://blockchain.info/api/blockchain_wallet_api,但目前并不是100%完整。到目前为止,我只实现了我自己的目的所需的内容。如果缺少某些功能,请告诉我,我可能会感兴趣添加您需要的功能,或者您可以自由贡献... :)

地址和交易哈希的ID不是真实比特币地址,而是随机MD5散列。这是故意的,以免与真实比特币地址混淆。

除了文档化的功能之外,还有一些以debug_为前缀的特殊功能,我们可以用于调试。

/debug_incoming?address=$address&amount=$amount

  • address 应接收收入支付的地址。
  • amount 要添加到地址余额的金额。

模拟一个收入交易。如果我们已注册回调,它将以与使用blockchain.info API相同的方式被调用。

debug_confirmation?address=$address&transaction=$transaction&confirmations=$confirmations

  • address 可选。 应接收所有交易确认的地址。
  • transaction 可选。 应接收确认的交易哈希。
  • confirmations 可选。 要添加的确认数。

模拟一个或多个确认。地址和交易哈希都是可选的,在这种情况下,所有交易都将收到确认。

/debug_clear

清除数据库中的所有数据。