如何使用 waves-transaction JS 库签署和发送转账交易?
How to sign and send transfer transaction using waves-transaction JS library?
请帮我理解https://testnodes.wavesnodes.com/api-docs/index.html I use this api and this library https://github.com/wavesplatform/waves-transactions
我无法使用手册或直接通过 POST 请求 api.
发送交易
常见错误:
错误:状态检查失败。原因:脚本不存在,证明
错误:状态检查失败。原因:来自非脚本账户的交易必须恰好有 1 个证明
A POST 对 url / 地址的请求也给出了错误。前提是 API 密钥不正确。
这是我的代码:
const { transfer, broadcast } = require("@waves/waves-transactions");
const seed =
"ride flee tenant tuna share buyer work west amateur review time kick";
const signedTranserTx = transfer(
{
amount: 1,
recipient: "3NBVqYXrapgJP9atQccdBPAgJPwHDKkh6A8"
},
seed
);
const nodeUrl = "http://testnodes.wavesnodes.com";
broadcast(signedTranserTx , nodeUrl)
.then(resp => console.log(resp))
.catch(err => console.error(err));
如果您使用 Waves 交易 api,请求应该已经签名,您可以 post 它到 /transactions/broadcast。那么你就不需要自己的节点,也不需要自己的 API Key。
在你的代码中,我看到这里有几个错误:
- 您正在使用测试网节点转移到 MAINNET 地址。你
应该改用 TESTNET 地址。在收件人中更改
地址到 testnet 中的地址,如果你仍然得到,请告诉我
任何错误。您可以在这里创建新帐户
https://testnet.ide.wavesplatform.com/ 在选项卡帐户中
右上角。
- 使用 https 而不是 http,
const nodeUrl = "https://testnodes.wavesnodes.com/";
- 添加链 ID('T' 用于测试网,'W' 用于主网)
代码如下:
const { transfer, broadcast } = require("@waves/waves-transactions");
const seed =
"ride flee tenant tuna share buyer work west amateur review time kick";
const signedTranserTx = transfer(
{
amount: 100,
recipient: "3N3pJ8xAnbaSBFdAbnaKe4yu4ZXbYkatMcN"
},
seed
);
const nodeUrl = "https://testnodes.wavesnodes.com";
broadcast({ ...signedTranserTx, chainId: "T" }, nodeUrl)
.then(resp => console.log(resp))
.catch(err => console.error(err));
[更新]
以上代码运行良好。只是快速更新,因为我看到新的测试网 URI 在 link:
下面
https://nodes-testnet.wavesnodes.com
我的意思是我已经从 https://testnodes.wavesnodes.com 替换为 https://nodes-testnet.wavesnodes.com 然后它工作可能是因为我们从不同的地方创建了帐户。
所以这是最终代码:
const { transfer, broadcast } = require("@waves/waves-transactions");
const seed =
"ride flee tenant tuna share buyer work west amateur review time kick";
const signedTranserTx = transfer(
{
amount: 100,
recipient: "3N3pJ8xAnbaSBFdAbnaKe4yu4ZXbYkatMcN"
},
seed
);
const nodeUrl = "https://nodes-testnet.wavesnodes.com";
broadcast({ ...signedTranserTx, chainId: "T" }, nodeUrl)
.then(resp => console.log(resp))
.catch(err => console.error(err));
请帮我理解https://testnodes.wavesnodes.com/api-docs/index.html I use this api and this library https://github.com/wavesplatform/waves-transactions 我无法使用手册或直接通过 POST 请求 api.
发送交易常见错误:
错误:状态检查失败。原因:脚本不存在,证明
错误:状态检查失败。原因:来自非脚本账户的交易必须恰好有 1 个证明
A POST 对 url / 地址的请求也给出了错误。前提是 API 密钥不正确。 这是我的代码:
const { transfer, broadcast } = require("@waves/waves-transactions");
const seed =
"ride flee tenant tuna share buyer work west amateur review time kick";
const signedTranserTx = transfer(
{
amount: 1,
recipient: "3NBVqYXrapgJP9atQccdBPAgJPwHDKkh6A8"
},
seed
);
const nodeUrl = "http://testnodes.wavesnodes.com";
broadcast(signedTranserTx , nodeUrl)
.then(resp => console.log(resp))
.catch(err => console.error(err));
如果您使用 Waves 交易 api,请求应该已经签名,您可以 post 它到 /transactions/broadcast。那么你就不需要自己的节点,也不需要自己的 API Key。 在你的代码中,我看到这里有几个错误:
- 您正在使用测试网节点转移到 MAINNET 地址。你 应该改用 TESTNET 地址。在收件人中更改 地址到 testnet 中的地址,如果你仍然得到,请告诉我 任何错误。您可以在这里创建新帐户 https://testnet.ide.wavesplatform.com/ 在选项卡帐户中 右上角。
- 使用 https 而不是 http,
const nodeUrl = "https://testnodes.wavesnodes.com/";
- 添加链 ID('T' 用于测试网,'W' 用于主网)
代码如下:
const { transfer, broadcast } = require("@waves/waves-transactions");
const seed =
"ride flee tenant tuna share buyer work west amateur review time kick";
const signedTranserTx = transfer(
{
amount: 100,
recipient: "3N3pJ8xAnbaSBFdAbnaKe4yu4ZXbYkatMcN"
},
seed
);
const nodeUrl = "https://testnodes.wavesnodes.com";
broadcast({ ...signedTranserTx, chainId: "T" }, nodeUrl)
.then(resp => console.log(resp))
.catch(err => console.error(err));
[更新]
以上代码运行良好。只是快速更新,因为我看到新的测试网 URI 在 link:
下面https://nodes-testnet.wavesnodes.com
我的意思是我已经从 https://testnodes.wavesnodes.com 替换为 https://nodes-testnet.wavesnodes.com 然后它工作可能是因为我们从不同的地方创建了帐户。
所以这是最终代码:
const { transfer, broadcast } = require("@waves/waves-transactions");
const seed =
"ride flee tenant tuna share buyer work west amateur review time kick";
const signedTranserTx = transfer(
{
amount: 100,
recipient: "3N3pJ8xAnbaSBFdAbnaKe4yu4ZXbYkatMcN"
},
seed
);
const nodeUrl = "https://nodes-testnet.wavesnodes.com";
broadcast({ ...signedTranserTx, chainId: "T" }, nodeUrl)
.then(resp => console.log(resp))
.catch(err => console.error(err));