laconic-sdk/dist/messages/nameservice.js

241 lines
9.0 KiB
JavaScript

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTxMsgDeleteName = exports.createTxMsgSetAuthorityBond = exports.createTxMsgSetRecord = exports.createTxMsgSetName = exports.createTxMsgReserveAuthority = exports.NAMESERVICE_ERRORS = exports.parseMsgSetRecordResponse = void 0;
const eip712_1 = require("@tharsis/eip712");
const nameserviceTx = __importStar(require("../proto/vulcanize/nameservice/v1beta1/tx"));
const nameservice = __importStar(require("../proto/vulcanize/nameservice/v1beta1/nameservice"));
const util_1 = require("./util");
const MSG_RESERVE_AUTHORITY_TYPES = {
MsgValue: [
{ name: 'name', type: 'string' },
{ name: 'signer', type: 'string' },
{ name: 'owner', type: 'string' },
],
};
const MSG_SET_NAME_TYPES = {
MsgValue: [
{ name: 'crn', type: 'string' },
{ name: 'cid', type: 'string' },
{ name: 'signer', type: 'string' },
],
};
const MSG_SET_RECORD_TYPES = {
MsgValue: [
{ name: 'bond_id', type: 'string' },
{ name: 'signer', type: 'string' },
{ name: 'payload', type: 'TypePayload' },
],
TypePayload: [
{ name: 'record', type: 'TypePayloadRecord' },
{ name: 'signatures', type: 'TypePayloadSignatures[]' },
],
TypePayloadRecord: [
{ name: 'id', type: 'string' },
{ name: 'bond_id', type: 'string' },
{ name: 'create_time', type: 'string' },
{ name: 'expiry_time', type: 'string' },
{ name: 'deleted', type: 'bool' },
{ name: 'attributes', type: 'string' },
],
TypePayloadSignatures: [
{ name: 'sig', type: 'string' },
{ name: 'pub_key', type: 'string' }
],
};
const MSG_SET_AUTHORITY_BOND_TYPES = {
MsgValue: [
{ name: 'name', type: 'string' },
{ name: 'bond_id', type: 'string' },
{ name: 'signer', type: 'string' },
],
};
const MSG_DELETE_NAME_TYPES = {
MsgValue: [
{ name: 'crn', type: 'string' },
{ name: 'signer', type: 'string' },
],
};
const parseMsgSetRecordResponse = (data) => {
const responseBytes = Buffer.from(data, 'hex');
// TODO: Decode response using protobuf.
// const msgSetRecordResponse = nameserviceTx.vulcanize.nameservice.v1beta1.MsgSetRecordResponse.deserialize(responseBytes);
// return msgSetRecordResponse.toObject();
// Workaround as proto based decoding is not working.
const [_, id] = responseBytes.toString().split(';');
return { id };
};
exports.parseMsgSetRecordResponse = parseMsgSetRecordResponse;
exports.NAMESERVICE_ERRORS = [
'Name already reserved.',
'Authority bond not found.',
'Name authority not found.',
'Access denied.',
];
function createTxMsgReserveAuthority(chain, sender, fee, memo, params) {
const types = (0, eip712_1.generateTypes)(MSG_RESERVE_AUTHORITY_TYPES);
const msg = createMsgReserveAuthority(params.name, sender.accountAddress, params.owner);
const msgCosmos = protoCreateMsgReserveAuthority(params.name, sender.accountAddress, params.owner);
return (0, util_1.createTx)(chain, sender, fee, memo, types, msg, msgCosmos);
}
exports.createTxMsgReserveAuthority = createTxMsgReserveAuthority;
function createTxMsgSetName(chain, sender, fee, memo, params) {
const types = (0, eip712_1.generateTypes)(MSG_SET_NAME_TYPES);
const msg = createMsgSetName(params.crn, params.cid, sender.accountAddress);
const msgCosmos = protoCreateMsgSetName(params.crn, params.cid, sender.accountAddress);
return (0, util_1.createTx)(chain, sender, fee, memo, types, msg, msgCosmos);
}
exports.createTxMsgSetName = createTxMsgSetName;
function createTxMsgSetRecord(chain, sender, fee, memo, params) {
const types = (0, eip712_1.generateTypes)(MSG_SET_RECORD_TYPES);
const msg = createMsgSetRecord(params.bondId, params.payload, sender.accountAddress);
const msgCosmos = protoCreateMsgSetRecord(params.bondId, params.payload, sender.accountAddress);
return (0, util_1.createTx)(chain, sender, fee, memo, types, msg, msgCosmos);
}
exports.createTxMsgSetRecord = createTxMsgSetRecord;
function createTxMsgSetAuthorityBond(chain, sender, fee, memo, params) {
const types = (0, eip712_1.generateTypes)(MSG_SET_AUTHORITY_BOND_TYPES);
const msg = createMsgSetAuthorityBond(params.name, params.bondId, sender.accountAddress);
const msgCosmos = protoCreateMsgSetAuthorityBond(params.name, params.bondId, sender.accountAddress);
return (0, util_1.createTx)(chain, sender, fee, memo, types, msg, msgCosmos);
}
exports.createTxMsgSetAuthorityBond = createTxMsgSetAuthorityBond;
function createTxMsgDeleteName(chain, sender, fee, memo, params) {
const types = (0, eip712_1.generateTypes)(MSG_DELETE_NAME_TYPES);
const msg = createMsgDeleteName(params.crn, sender.accountAddress);
const msgCosmos = protoCreateMsgDeleteName(params.crn, sender.accountAddress);
return (0, util_1.createTx)(chain, sender, fee, memo, types, msg, msgCosmos);
}
exports.createTxMsgDeleteName = createTxMsgDeleteName;
function createMsgReserveAuthority(name, signer, owner) {
return {
type: 'nameservice/ReserveAuthority',
value: {
name,
signer,
owner
},
};
}
const protoCreateMsgReserveAuthority = (name, signer, owner) => {
const reserveAuthorityMessage = new nameserviceTx.vulcanize.nameservice.v1beta1.MsgReserveAuthority({
name,
signer,
owner
});
return {
message: reserveAuthorityMessage,
path: 'vulcanize.nameservice.v1beta1.MsgReserveAuthority',
};
};
function createMsgSetName(crn, cid, signer) {
return {
type: 'nameservice/SetName',
value: {
crn,
cid,
signer
},
};
}
const protoCreateMsgSetName = (crn, cid, signer) => {
const setNameMessage = new nameserviceTx.vulcanize.nameservice.v1beta1.MsgSetName({
crn,
cid,
signer,
});
return {
message: setNameMessage,
path: 'vulcanize.nameservice.v1beta1.MsgSetName',
};
};
function createMsgSetRecord(bondId, payload, signer) {
return {
type: 'nameservice/SetRecord',
value: {
bond_id: bondId,
signer,
payload: payload.serialize()
},
};
}
const protoCreateMsgSetRecord = (bondId, payloadData, signer) => {
const record = new nameservice.vulcanize.nameservice.v1beta1.Record(payloadData.record.serialize());
const signatures = payloadData.signatures.map(signature => new nameservice.vulcanize.nameservice.v1beta1.Signature(signature.serialize()));
const payload = new nameserviceTx.vulcanize.nameservice.v1beta1.Payload({
record,
signatures
});
const setNameMessage = new nameserviceTx.vulcanize.nameservice.v1beta1.MsgSetRecord({
bond_id: bondId,
signer,
payload
});
return {
message: setNameMessage,
path: 'vulcanize.nameservice.v1beta1.MsgSetRecord',
};
};
function createMsgSetAuthorityBond(name, bondId, signer) {
return {
type: 'nameservice/SetAuthorityBond',
value: {
name,
bond_id: bondId,
signer
},
};
}
const protoCreateMsgSetAuthorityBond = (name, bondId, signer) => {
const setAuthorityBondMessage = new nameserviceTx.vulcanize.nameservice.v1beta1.MsgSetAuthorityBond({
name,
bond_id: bondId,
signer,
});
return {
message: setAuthorityBondMessage,
path: 'vulcanize.nameservice.v1beta1.MsgSetAuthorityBond',
};
};
function createMsgDeleteName(crn, signer) {
return {
type: 'nameservice/DeleteAuthority',
value: {
crn,
signer
},
};
}
const protoCreateMsgDeleteName = (crn, signer) => {
const deleteNameAutorityMessage = new nameserviceTx.vulcanize.nameservice.v1beta1.MsgDeleteNameAuthority({
crn,
signer,
});
return {
message: deleteNameAutorityMessage,
path: 'vulcanize.nameservice.v1beta1.MsgDeleteNameAuthority',
};
};