QueryFederationSyncConfig
QueryFederationSyncConfig queries the universe federation sync configuration settings.
Source: universerpc/universe.proto
gRPC
rpc QueryFederationSyncConfig (QueryFederationSyncConfigRequest) returns (QueryFederationSyncConfigResponse);
REST
HTTP Method | Path |
---|---|
GET | /v1/taproot-assets/universe/sync/config |
Code Samples
- gRPC
- REST
- Shell
- Javascript
- Python
const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const GRPC_HOST = 'localhost:10029'
const MACAROON_PATH = 'TAPROOT-ASSETS_DIR/regtest/taproot-assets.macaroon'
const TLS_PATH = 'TAPROOT-ASSETS_DIR/tls.cert'
const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync('universerpc/universe.proto', loaderOptions);
const universerpc = grpc.loadPackageDefinition(packageDefinition).universerpc;
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 universerpc.Universe(GRPC_HOST, creds);
let request = {
id: <ID>,
};
client.queryFederationSyncConfig(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "global_sync_configs": <GlobalFederationSyncConfig>,
// "asset_sync_configs": <AssetFederationSyncConfig>,
// }
import codecs, grpc, os
# Generate the following 2 modules by compiling the universerpc/universe.proto with the grpcio-tools.
# See https://github.com/lightningnetwork/lnd/blob/master/docs/grpc/python.md for instructions.
import universe_pb2 as universerpc, universe_pb2_grpc as universestub
GRPC_HOST = 'localhost:10029'
MACAROON_PATH = 'TAPROOT-ASSETS_DIR/regtest/taproot-assets.macaroon'
TLS_PATH = 'TAPROOT-ASSETS_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 = universestub.UniverseStub(channel)
request = universerpc.QueryFederationSyncConfigRequest(
id=<ID>,
)
response = stub.QueryFederationSyncConfig(request)
print(response)
# {
# "global_sync_configs": <GlobalFederationSyncConfig>,
# "asset_sync_configs": <AssetFederationSyncConfig>,
# }
- Javascript
- Python
const fs = require('fs');
const request = require('request');
const REST_HOST = 'localhost:8089'
const MACAROON_PATH = 'TAPROOT-ASSETS_DIR/regtest/taproot-assets.macaroon'
let options = {
url: `https://${REST_HOST}/v1/taproot-assets/universe/sync/config`,
// Work-around for self-signed certificates.
rejectUnauthorized: false,
json: true,
headers: {
'Grpc-Metadata-macaroon': fs.readFileSync(MACAROON_PATH).toString('hex'),
},
}
request.get(options, function(error, response, body) {
console.log(body);
});
// Console output:
// {
// "global_sync_configs": <array>, // <GlobalFederationSyncConfig>
// "asset_sync_configs": <array>, // <AssetFederationSyncConfig>
// }
import base64, codecs, json, requests
REST_HOST = 'localhost:8089'
MACAROON_PATH = 'TAPROOT-ASSETS_DIR/regtest/taproot-assets.macaroon'
TLS_PATH = 'TAPROOT-ASSETS_DIR/tls.cert'
url = f'https://{REST_HOST}/v1/taproot-assets/universe/sync/config'
macaroon = codecs.encode(open(MACAROON_PATH, 'rb').read(), 'hex')
headers = {'Grpc-Metadata-macaroon': macaroon}
r = requests.get(url, headers=headers, verify=TLS_PATH)
print(r.json())
# {
# "global_sync_configs": <GlobalFederationSyncConfig>,
# "asset_sync_configs": <AssetFederationSyncConfig>,
# }
$ tapcli universe federation config info --help
NAME:
tapcli universe federation config info - Get the sync behavior of the local Universe
USAGE:
tapcli universe federation config info [command options] [arguments...]
DESCRIPTION:
Get the sync behavior of the local Universe. These settings are
defined by the proof type (issuance or transfer), the sync behavior
(insert from remote Universe or export to remote Universe), and the
scope (all assets or specific assets).
OPTIONS:
--config_scope value the scope (global or local) of the config
--asset_id value the asset ID of the universe
--group_key value the group key of the universe
Messages
universerpc.QueryFederationSyncConfigRequest
Source: universerpc/universe.proto
Field | gRPC Type | REST Type | REST Placement |
---|---|---|---|
id | ID[] | object | unknown |
universerpc.QueryFederationSyncConfigResponse
Source: universerpc/universe.proto
Field | gRPC Type | REST Type |
---|---|---|
global_sync_configs | GlobalFederationSyncConfig[] | array |
asset_sync_configs | AssetFederationSyncConfig[] | array |
Nested Messages
universerpc.AssetFederationSyncConfig
Field | gRPC Type | REST Type |
---|---|---|
id | ID | object |
allow_sync_insert | bool | boolean |
allow_sync_export | bool | boolean |
universerpc.GlobalFederationSyncConfig
Field | gRPC Type | REST Type |
---|---|---|
proof_type | ProofType | string |
allow_sync_insert | bool | boolean |
allow_sync_export | bool | boolean |
universerpc.ID
Field | gRPC Type | REST Type |
---|---|---|
asset_id | bytes | string |
asset_id_str | string | string |
group_key | bytes | string |
group_key_str | string | string |
proof_type | ProofType | string |
Enums
universerpc.ProofType
Name | Number |
---|---|
PROOF_TYPE_UNSPECIFIED | 0 |
PROOF_TYPE_ISSUANCE | 1 |
PROOF_TYPE_TRANSFER | 2 |