@tokenz/tokens-smartcontract-sdk
Version:
Smart Contract SDK for Tokenz STO platform
137 lines (122 loc) • 4.69 kB
JavaScript
const coreLib = require('./Core');
class STOBasic{
constructor(address){
this.STOToken = new coreLib("STOToken" , address);
this.setup = this.setup.bind(this);
this.setup();
this.balance = this.balance.bind(this);
this.totalSupply = this.totalSupply.bind(this);
this.allowance = this.allowance().bind(this);
this.approve = this.approve.bind(this);
this.increaseAllowance = this.increaseAllowance.bind(this);
this.decreaseAllowance = this.decreaseAllowance.bind(this);
this.transfer = this.transfer.bind(this);
this.transferFrom = this.transferFrom.bind(this);
}
async setup () {
return new Promise(async function (resolve, reject) {
try {
this.macContractAddress = await this.STOFactory.callData("maCAddr", []);
this.ruleEngineAddress = await this.STOFactory.callData("ruCAddr", []);
this.contractCategory = await this.STOFactory.callData("contractCategory", []);
this.contractType = await this.STOFactory.callData("contractType", []);
this.kycRegisAddress = await this.STOFactory.callData("kycR", []);
this.STOLocale = await this.STOFactory.callData("stoLocalization", []);
resolve(0);
} catch (err) {
window.Sentry.captureException(err);
console.log(err);
reject(0)
}
}.bind(this))
}
async balance( address ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.callData("balanceOf", [ address ]);;
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async totalSupply() {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.callData("totalSupply", []);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async allowance ( owner , spender ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.callData("allowance", [ owner , spender ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async approve( spender , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.sendTx("approve", [ spender , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async increaseAllowance( spender , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.sendTx("increaseAllowance", [ spender , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async decreaseAllowance( spender , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.sendTx("decreaseAllowance", [ spender , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async transfer( address , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.sendTx("transfer", [ address , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
async transferFrom( sender , receiver , amt ) {
return new Promise(async function (resolve, reject) {
try {
let result = await this.STOToken.sendTx("transferFrom", [ sender , receiver , amt ]);
resolve(result);
} catch (err) {
window.Sentry.captureException(err);
reject(0)
}
}.bind(this))
}
}
module.exports = STOBasic;