Skip to main content

MultiverseRoot

MultiverseRoot returns the root of the multiverse tree. This is useful to determine the equality of two multiverse trees, since the root can directly be compared to another multiverse root to find out if a sync is required.

Source: universerpc/universe.proto

gRPC

rpc MultiverseRoot (MultiverseRootRequest) returns (MultiverseRootResponse);

REST

HTTP MethodPath
POST /v1/taproot-assets/universe/multiverse

Code Samples

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 = {
proof_type: <ProofType>,
specific_ids: <ID>,
};
client.multiverseRoot(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "multiverse_root": <MerkleSumNode>,
// }

Messages

universerpc.MultiverseRootRequest

Source: universerpc/universe.proto

FieldgRPC TypeREST TypeREST Placement
proof_type
ProofTypestringbody
specific_ids
ID[]arraybody

universerpc.MultiverseRootResponse

Source: universerpc/universe.proto

FieldgRPC TypeREST Type
multiverse_root
MerkleSumNodeobject

Nested Messages

universerpc.ID

FieldgRPC TypeREST Type
asset_id
bytesstring
asset_id_str
stringstring
group_key
bytesstring
group_key_str
stringstring
proof_type
ProofTypestring

universerpc.MerkleSumNode

FieldgRPC TypeREST Type
root_hash
bytesstring
root_sum
int64string

Enums

universerpc.ProofType

NameNumber
PROOF_TYPE_UNSPECIFIED
0
PROOF_TYPE_ISSUANCE
1
PROOF_TYPE_TRANSFER
2