mcps-sdk-js
Version:
MCPS JavaScript SDK
83 lines • 2.88 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Auth = void 0;
const types = require("../types");
const is = require("is_js");
/**
* Auth module is only used to build `StdTx`
*
* @category Modules
* @since v0.17
*/
class Auth {
/** @hidden */
constructor(client) {
this.client = client;
this.defaultStdFee = {
amount: [this.client.config.fee],
gasLimit: this.client.config.gas,
};
}
/**
* Generate a new `StdTx` which is a standard way to wrap Msgs with Fee and Signatures.
*
* **NOTE:** The first signature is the fee payer
*
* @param msgs Msgs to be sent
* @param baseTx Base params of the transaction
* @param sigs Signatures of the transaction, defaults to []
* @param memo Memo of the transaction
*
* @returns
* @since v0.17
*/
newStdTx(msgs, baseTx) {
const stdFee = { amount: [], gasLimit: '' };
Object.assign(stdFee, this.defaultStdFee); // Copy from default std fee
if (baseTx.fee) {
stdFee.amount = [baseTx.fee];
}
if (baseTx.gas && is.not.empty(baseTx.gas)) {
stdFee.gasLimit = baseTx.gas;
}
const protoTx = new types.ProtoTx({
msgs,
memo: baseTx.memo || '',
stdFee,
chain_id: this.client.config.chainId,
account_number: baseTx.account_number || undefined,
sequence: baseTx.sequence || undefined
});
return protoTx;
}
/**
* Account returns account details based on address.
* @param address defines the address to query for.
*/
queryAccount(address) {
if (!address) {
throw new Error("address can not be empty");
}
const request = new types.auth_query_pb.QueryAccountRequest();
request.setAddress(address);
return this.client.rpcClient.protoQuery('/cosmos.auth.v1beta1.Query/Account', request, types.auth_query_pb.QueryAccountResponse).then((data) => {
let result = {};
if (data && data.account && data.account.value) {
result = types.auth_auth_pb.BaseAccount.deserializeBinary(data.account.value).toObject();
if (result.pubKey && result.pubKey.value) {
result.pubKey = types.crypto_secp256k1_keys_pb.PubKey.deserializeBinary(result.pubKey.value).toObject();
}
}
return result;
});
}
/**
* Params queries all parameters.
*/
queryParams() {
const request = new types.auth_query_pb.QueryParamsRequest();
return this.client.rpcClient.protoQuery('/cosmos.auth.v1beta1.Query/Params', request, types.auth_query_pb.QueryParamsResponse);
}
}
exports.Auth = Auth;
//# sourceMappingURL=auth.js.map
;