# 如何调用Byone钱包发送交易

# 连接钱包

在调用Byone钱包发送交易之前,必须首先连接钱包,具体教程见如何连接钱包

# 交易解析

在比原链上的交易分为三步:build构建交易,sign签名交易和submit提交交易,在bytomjs中将其简化为 send_transaction接口。

Send_transaction接口参数列表

图片

from地址一般使用钱包默认地址即可(确保有资产余额)

to地址一般需要用户进行输入

amount为转账的金额

asset为转账的资产id

comfirmations为确认数,默认为1

返回值为交易成功后的哈希值

图片

# 调用方式

构造好需要的参数后,使用window.bytom.send_transaction构造一个回调函数,示例如下

var params = {
   "to":"vp1qv3mjueqvdael5m706axlzu0mx9evdy4exrfkt0",
   "from": window.bytom.default_account.address,
   "amount":20000000, "asset":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
window.bytom.send_transaction(params).then(function (resp) {
    alert(resp)
  }).catch(function (err){
    alert(err)
  })

这是一般的使用案例,我们可以通过bytom.default_account接口来获取钱包的信息,如下所示: 图片

资产ID可以通过Blockmeta查到,注意不要使用资产名称。

图片

# 实例

我们仍然使用一个React.js项目,代码如下:

function App() {
  const [toAddress,setAddress] = useState('');
  const [amount,setAmount] = useState('');
  function handleAddressInput(event) {
    setAddress(event.target.value);
  }
  function handleAmountInput(event) {
    setAmount(event.target.value);
  }
  const sendTX = async () => {
    if (window.bytom) {
      var params = {
         "to":toAddress,
         "from": window.bytom.default_account.address,
         "amount":amount,
         "asset":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
      }
      window.bytom.sendTransaction(params).then(function (resp) {
          alert(resp[0].transactionHash)
        }).catch(function (err){
          alert(err)
        })
    }
    };
  return (
   
    <div className="App">
      <p>输入接收地址</p>
      <input onChange={handleAddressInput}></input>
      <p>输入发送数量</p>
      <input onChange={handleAmountInput}></input>
      <button onClick={sendTX}>发送交易</button>
    </div>
  );
}
export default App;

弹出钱包进行签名 图片

当最后弹出交易hash,则代表交易发送成功

图片

上次更新: 10/29/2020, 5:45:54 PM