UNPKG

@tokenz/tokens-smartcontract-sdk

Version:
144 lines (127 loc) 5.31 kB
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;