@simbachain/simbats
Version:
TypeScript SDK for SIMBA Chain
152 lines • 5.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SimbaContract = void 0;
const config_1 = require("./config");
const request_handler_1 = require("./request_handler");
const param_checking_contract_1 = require("./param_checking_contract");
const simba_1 = require("./simba");
/**
* Main class for submitting contract methods
*/
class SimbaContract extends param_checking_contract_1.ParamCheckingContract {
constructor(baseApiURL, appName, contractName) {
super(appName, contractName, baseApiURL);
this.paramsRestricted = null;
this.baseApiURL = baseApiURL;
this.appName = appName;
this.contractName = contractName;
this.requestHandler = new request_handler_1.RequestHandler(this.baseApiURL);
this.simba = new simba_1.Simba(this.baseApiURL);
}
/**
* returns past invocations of contract method calls for methodName
* @param methodName
* @returns {Promise<AxiosResponse<any> | Record<any, any>>}
*/
async callMethod(methodName) {
const params = {
methodName,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.callContractMethod(this.appName, this.contractName, methodName);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res :${res}`);
return res;
}
/**
* invokes methodName
* @param methodName
* @param inputs
* @param filePaths
* @param validateParams
* @returns {Promise<AxiosResponse<any> | Record<any, any>>}
*/
async submitMethod(methodName, inputs, filePaths, validateParams = true) {
const params = {
methodName,
inputs,
filePaths,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
if (validateParams && inputs) {
await this.validateParams(methodName, inputs);
}
const res = await this.simba.submitContractMethod(this.appName, this.contractName, methodName, inputs, filePaths);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
/**
* returns transactions for methodName
* @param methodName
* @param queryParams
* @returns {Promise<AxiosResponse<any> | Record<any, any>>}
*/
async getTransactionsByMethod(methodName, queryParams) {
const params = {
queryParams,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.getTransactionsByMethod(this.appName, this.contractName, methodName, queryParams);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
/**
* returns events for eventName
* @param eventName
* @param queryParams
* @returns {Promise<AxiosResponse<any> | Record<any, any>>}
*/
async getEvents(eventName, queryParams) {
const params = {
eventName,
queryParams,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.getEvents(this.appName, this.contractName, eventName, queryParams);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
/**
* validate bundleHash
* @param bundleHash
* @returns {Promise<AxiosResponse<any> | Record<any, any> | void>}
*/
async validateBundleHash(bundleHash) {
const params = {
bundleHash,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.validateBundleHash(this.appName, this.contractName, bundleHash);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
/**
* get bundle from bundleHash
* @param bundleHash
* @param downloadLocation
* @returns {Promise<AxiosResponse<any> | Record<any, any> | void | unknown>}
*/
async getBundle(bundleHash, downloadLocation) {
const params = {
bundleHash,
downloadLocation,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.getBundle(this.appName, this.contractName, bundleHash, downloadLocation);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
/**
* get file from bundleHash
* @param bundleHash
* @param fileName
* @param downloadLocation
* @returns {Promise<AxiosResponse<any> | Record<any, any> | void | unknown>}
*/
async getBundleFile(bundleHash, fileName, downloadLocation) {
const params = {
bundleHash,
fileName,
downloadLocation,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.getBundleFile(this.appName, this.contractName, bundleHash, fileName, downloadLocation);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
/**
* get manifest from bundleHash
* @param bundleHash
* @returns {Promise<AxiosResponse<any> | Record<any, any> | void>}
*/
async getManifestFromBundleHash(bundleHash) {
const params = {
bundleHash,
};
config_1.SimbaConfig.log.debug(`:: SIMBA : ENTER : params : ${JSON.stringify(params)}`);
const res = await this.simba.getManifestForBundleFromBundleHash(this.appName, this.contractName, bundleHash);
config_1.SimbaConfig.log.debug(`:: SIMBA : EXIT : res : ${res}`);
return res;
}
}
exports.SimbaContract = SimbaContract;
//# sourceMappingURL=simba_contract.js.map