SendCoins - 单址转账
SendCoins请求将比特币发往指定的地址。与SendMany不同,这个RPC调用一次 只允许创建一个输出。如果没有设置target_conf或sat_per_byte,那么内部 钱包将基于其模型自动决定手续费。
gRPC请求 - SendCoinsRequest
字段如下:
- addr:目标地址,string
- amount:要发送的金额,int64,单位:satoshi
- target_conf:目标确认数,int32
- sat_per_byte:手工设置的手续费率,int64
- send_all:布尔值,为true时lnd将忽略amount字段的值而发送内部钱包的 全部余额到指定地址
gRPC响应 - SendCoinsResponse
字段如下:
- txid:交易ID,string
示例代码
Python示例代码
>>> import codecs, grpc, os
>>> import rpc_pb2 as ln, rpc_pb2_grpc as lnrpc
>>> macaroon = codecs.encode(open('LND_DIR/data/chain/bitcoin/simnet/admin.macaroon', 'rb').read(), 'hex')
>>> os.environ['GRPC_SSL_CIPHER_SUITES'] = 'HIGH+ECDSA'
>>> cert = open('LND_DIR/tls.cert', 'rb').read()
>>> ssl_creds = grpc.ssl_channel_credentials(cert)
>>> channel = grpc.secure_channel('localhost:10009', ssl_creds)
>>> stub = lnrpc.LightningStub(channel)
>>> request = ln.SendCoinsRequest(
addr=<string>,
amount=<int64>,
target_conf=<int32>,
sat_per_byte=<int64>,
send_all=<bool>,
)
>>> response = stub.SendCoins(request)
>>> print(response)
{
"txid": <string>,
}
JavaScript示例代码
> var fs = require('fs');
> var grpc = require('grpc');
> var lnrpc = grpc.load('rpc.proto').lnrpc;
> process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA'
> var lndCert = fs.readFileSync('LND_DIR/tls.cert');
> var sslCreds = grpc.credentials.createSsl(lndCert);
> var macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
var macaroon = fs.readFileSync("LND_DIR/data/chain/bitcoin/simnet/admin.macaroon").toString('hex');
var metadata = new grpc.Metadata()
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
> var creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
> var lightning = new lnrpc.Lightning('localhost:10009', creds);
> var request = {
addr: <string>,
amount: <int64>,
target_conf: <int32>,
sat_per_byte: <int64>,
send_all: <bool>,
}
> lightning.sendCoins(request, function(err, response) {
console.log(response);
})
{
"txid": <string>,
}