# 如何调用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,则代表交易发送成功