@tokenz/tokens-smartcontract-sdk
Version:
Smart Contract SDK for Tokenz STO platform
144 lines (127 loc) • 5.31 kB
JavaScript
const coreLib = require('./Core');
class STOIssuance{
constructor(){
this.STOIssuance = new coreLib("STOIssuance");
this.setup = this.setup.bind(this);
this.setup();
this.calculateT1 = this.calculateT1.bind(this);
this.calculateT2 = this.calculateT2.bind(this);
}
async setup () {
return new Promise(async function (resolve, reject) {
try {
this.macContractAddress = await this.STOIssuance.callData("maCAddr", []);
this.ruleEngineAddress = await this.STOIssuance.callData("ruCAddr", []);
this.contractCategory = await this.STOIssuance.callData("contractCategory", []);
this.contractType = await this.STOIssuance.callData("contractType", []);
this.kycRegisAddress = await this.STOIssuance.callData("kycAddr", []);
this.stoFactoryAddress = await this.STOIssuance.callData("STOFAddr", []);
resolve(0);
} catch (err) {
window.Sentry.captureException(err);
console.log(err);
reject(0)
}
}.bind(this))
}
async calculateT1( baseRate , ceilingRate , baseQty , ceilingQty , actualQty ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.callData("calculateT1", [ baseRate , ceilingRate , baseQty , ceilingQty , actualQty ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async calculateT2( baseRate , ceilingRate , baseQty , ceilingQty , actualQty ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.callData("calculateT1", [ baseRate , ceilingRate , baseQty , ceilingQty , actualQty ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async fetchSTORates( address) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.callData("STOIssue", [ address ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async fetchSTOCollection( address ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.callData("STOCollection", [ address ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async setupIssuance ( address , stoType , stoGraphType , baseRate , ceilingRate , baseQty , ceilingQty , startTime , endTime ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.callData("", [ address , stoType , stoGraphType , baseRate , ceilingRate , baseQty , ceilingQty , startTime , endTime ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async updateIssuance( address , stoType , stoGraphType , baseRate , ceilingRate , baseQty , ceilingQty , startTime , endTime ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.callData("", [ address , stoType , stoGraphType , baseRate , ceilingRate , baseQty , ceilingQty , startTime , endTime ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async participate( address , value ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.sendTx("mint", [ address ] , value );
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async burn( stoAddress , address , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.sendTx("burn", [ stoAddress , address , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async withdraw ( address , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOIssuance.sendTx("withdraw", [ address , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
}
module.exports = STOIssuance;