CancelInstantSwap
CancelInstantSwap tries to cancel the instant swap. This can only be called if the swap has not been accepted yet. This allows the server to release the reservation inputs.
Source: instantout.proto
gRPC
rpc CancelInstantSwap (CancelInstantSwapRequest) returns (CancelInstantSwapResponse);
Code Samples
- gRPC
- Shell
- Javascript
- Python
const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const GRPC_HOST = 'localhost:11010'
const MACAROON_PATH = 'LOOP_DIR/regtest/loop.macaroon'
const TLS_PATH = 'LOOP_DIR/tls.cert'
const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync('instantout.proto', loaderOptions);
const looprpc = grpc.loadPackageDefinition(packageDefinition).looprpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = fs.readFileSync(TLS_PATH);
const sslCreds = grpc.credentials.createSsl(tlsCert);
const macaroon = fs.readFileSync(MACAROON_PATH).toString('hex');
const macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
let metadata = new grpc.Metadata();
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
let creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
let client = new looprpc.InstantSwapServer(GRPC_HOST, creds);
let request = {
swap_hash: <bytes>,
};
client.cancelInstantSwap(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// }
import codecs, grpc, os
# Generate the following 2 modules by compiling the instantout.proto with the grpcio-tools.
# See https://github.com/lightningnetwork/lnd/blob/master/docs/grpc/python.md for instructions.
import instantout_pb2 as looprpc, instantout_pb2_grpc as instantoutstub
GRPC_HOST = 'localhost:11010'
MACAROON_PATH = 'LOOP_DIR/regtest/loop.macaroon'
TLS_PATH = 'LOOP_DIR/tls.cert'
# create macaroon credentials
macaroon = codecs.encode(open(MACAROON_PATH, 'rb').read(), 'hex')
def metadata_callback(context, callback):
callback([('macaroon', macaroon)], None)
auth_creds = grpc.metadata_call_credentials(metadata_callback)
# create SSL credentials
os.environ['GRPC_SSL_CIPHER_SUITES'] = 'HIGH+ECDSA'
cert = open(TLS_PATH, 'rb').read()
ssl_creds = grpc.ssl_channel_credentials(cert)
# combine macaroon and SSL credentials
combined_creds = grpc.composite_channel_credentials(ssl_creds, auth_creds)
# make the request
channel = grpc.secure_channel(GRPC_HOST, combined_creds)
stub = instantoutstub.InstantSwapServerStub(channel)
request = looprpc.CancelInstantSwapRequest(
swap_hash=<bytes>,
)
response = stub.CancelInstantSwap(request)
print(response)
# {
# }
# There is no CLI command for this RPC
Messages
looprpc.CancelInstantSwapRequest
Source: instantout.proto
Field | gRPC Type | REST Type | REST Placement |
---|---|---|---|
swap_hash | bytes | unknown | unknown |
looprpc.CancelInstantSwapResponse
Source: instantout.proto
note
This response has no parameters.