此篇内容尚无原站英文对应版本;切换语言后可浏览英文资料库。
示例代码:
返回结果:
StreamSimple.send = function(srcAccount,destAddressAndAmount,callback){
var ss = new StreamSimple();
var result = {};
result.tx = {
from: srcAccount.account,
to: destAddressAndAmount.account,
amount: {
value : destAddressAndAmount.amount.value,
currency: destAddressAndAmount.amount.currency,
issuer: destAddressAndAmount.amount.issuer
}
};
if(!!destAddressAndAmount.memo)
result.tx.memo = destAddressAndAmount.memo;
if(!!destAddressAndAmount.dt)
result.tx.dt = destAddressAndAmount.dt;
if (!stream.UInt160.is_valid(String(srcAccount.account))){
result.state = "error";
result.msg = "src address is invalid";
var err = new Error('src address is invalid');
return callback(err,result);
}
if (!stream.UInt160.is_valid(String(destAddressAndAmount.account))){
result.state = "error";
result.msg = "dest address is invalid";
var err = new Error('dest address is invalid');
return callback(err,result);
}
var dt = parseInt(destAddressAndAmount.dt);
if (!dt){
result.state = "error";
result.msg = "dt should be Int";
var err = new Error('dt error');
return callback(err,result);
}
if (destAddressAndAmount.amount.currency === ss._native) {
var amount = accMul(destAddressAndAmount.amount.value, ss._drops);
} else {
//prepare the transaction
var amount = {};
amount.currency = destAddressAndAmount.amount.currency;
amount.value = String(destAddressAndAmount.amount.value);
amount.issuer = destAddressAndAmount.account;
var sendMax = {
currency : destAddressAndAmount.amount.currency,
issuer : destAddressAndAmount.amount.issuer,
value : String(accMul(destAddressAndAmount.amount.value, 1.2))
};
}
ss._remote.connect();
ss._remote.setSecret(srcAccount.account, srcAccount.secret);
var transaction = ss._remote.createTransaction('Payment', {
account : srcAccount.account,
destination : destAddressAndAmount.account,
amount : amount
});
if(!!destAddressAndAmount.memo)
transaction.addMemo(encodeURI('memo'), encodeURI(destAddressAndAmount.memo));
if (!!sendMax) {
transaction.sendMax(sendMax);
}
transaction.destination_tag(dt);
//set last ledger
transaction.lastLedger(ss._remote._ledger_current_index + 3);
//submit the transaction
transaction.submit(function (error, raw) {
ss._remote.disconnect();
if (error){
console.log(error);
var err = new Error(error.engine_result_message);
result.state = 'error';
result.engine_result = error.engine_result;
result.msg = error.engine_result_message;
return callback(err,result);
}else{
result.hash = raw.tx_json.hash;
result.state = 'success';
result.engine_result = raw.engine_result;
result.msg = raw.engine_result_message;
return callback(null,result);
}
});
}
请求参数:
| 名称 | 类型 | 描述 |
|---|---|---|
| srcAccount | String | 转账发起方信息 |
| destAddressAndAmount | String | 转账接收方信息 |
| callback | description | description |
| 名称 | 类型 | 描述 |
|---|---|---|
| from | String | 转账钱包地址 |
| to | String | 接收钱包地址 |
| amount | Object | 结果集,参考amount |
| memo | String | 该次发送的附言 |
| dt | Number | 数字标签 |
| hash | String | 交易的hash |
| state | String | 向网络提交的结果 |
| msg | String | 本次转账的结果信息 |
| engine_result | String | 本次转账的结果代码 |
