vue-tronlink
Version:
Vue support for the TronLink browser extension
921 lines (920 loc) • 28.5 kB
JavaScript
import { version, Contract } from "tronweb";
import BaseContract from "./base/base";
export class TokenTrc20 extends BaseContract {
constructor(tron) {
super();
this.__debug = true;
this.tronweb = null;
this.based_version = version;
this.tronweb = tron;
}
static Instance() {
if (window && window.hasOwnProperty("_contractTrc20Token888")) {
const obj = window._contractTrc20Token888;
if (obj instanceof TokenTrc20) {
return (obj);
}
else {
return (obj);
}
}
else {
return false;
}
}
async init(contract_address) {
this.contract = await new Contract(this.tronweb, TokenTrc20.ABI(), contract_address);
this.contract_address_t = contract_address;
if (window && !window.hasOwnProperty("_contractTrc20Token888")) {
window._contractTrc20Token888 = this;
}
}
setDebug(bool) {
this.__debug = bool;
}
isVersionCompatible() {
return this.based_version === this.tronweb.version;
}
async addMinter(account) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.addMinter(account)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 addMinter");
console.log(val);
console.groupEnd();
}
return val;
}
async allowance(owner, spender) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.allowance(owner, spender)
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 allowance");
console.log(val);
console.groupEnd();
}
return val;
}
async approve(spender, amount) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.approve(spender, amount)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 approve");
console.log(val);
console.groupEnd();
}
return val;
}
async balanceOf(account) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.balanceOf(account)
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 balanceOf");
console.log(val);
console.groupEnd();
}
return val;
}
async burn(amount) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.burn(amount)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 burn");
console.log(val);
console.groupEnd();
}
return val;
}
async burnFrom(account, amount) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.burnFrom(account, amount)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 burnFrom");
console.log(val);
console.groupEnd();
}
return val;
}
async cap() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.cap()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 cap");
console.log(val);
console.groupEnd();
}
return val;
}
async decimals() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.decimals()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 decimals");
console.log(val);
console.groupEnd();
}
return val;
}
async decreaseAllowance(spender, subtractedValue) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.decreaseAllowance(spender, subtractedValue)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 decreaseAllowance");
console.log(val);
console.groupEnd();
}
return val;
}
async getDecimals() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.getDecimals()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 getDecimals");
console.log(val);
console.groupEnd();
}
return val;
}
async increaseAllowance(spender, addedValue) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.increaseAllowance(spender, addedValue)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 increaseAllowance");
console.log(val);
console.groupEnd();
}
return val;
}
async isMinter(account) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.isMinter(account)
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 isMinter");
console.log(val);
console.groupEnd();
}
return val;
}
async mint(account, amount) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.mint(account, amount)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 mint");
console.log(val);
console.groupEnd();
}
return val;
}
async name() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.name()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 name");
console.log(val);
console.groupEnd();
}
return val;
}
async renounceMinter() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.renounceMinter()
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 renounceMinter");
console.log(val);
console.groupEnd();
}
return val;
}
async symbol() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.symbol()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 symbol");
console.log(val);
console.groupEnd();
}
return val;
}
async tokenName() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.tokenName()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 tokenName");
console.log(val);
console.groupEnd();
}
return val;
}
async tokenSymbol() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.tokenSymbol()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 tokenSymbol");
console.log(val);
console.groupEnd();
}
return val;
}
async totalSupply() {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: true,
callValue: 0,
};
let val = await this.contract.totalSupply()
.call(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 totalSupply");
console.log(val);
console.groupEnd();
}
return val;
}
async transfer(recipient, amount) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.transfer(recipient, amount)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 transfer");
console.log(val);
console.groupEnd();
}
return val;
}
async transferFrom(sender, recipient, amount) {
let callparams = {
userFeePercentage: 30,
feeLimit: 100000000,
shouldPollResponse: true,
_isConstant: false,
callValue: 0,
};
let val = await this.contract.transferFrom(sender, recipient, amount)
.send(callparams);
if (this.__debug) {
console.group("==> debug return raw 💮 transferFrom");
console.log(val);
console.groupEnd();
}
return val;
}
async startEventListeners() {
await this.contract && this.contract.Approval().watch((err, _result) => {
if (err)
return console.error('Failed to bind event listener:', err);
if (_result) {
let { result, block, transaction, name, contract } = _result;
if (this.__debug) {
console.group('New event received');
console.log('- Contract Address:', contract);
console.log('- Event Name:', name);
console.log('- Transaction:', transaction);
console.log('- Block number:', block);
console.log('- Result:', result, '\n');
console.groupEnd();
}
this.emit("event_Approval", result);
}
});
await this.contract && this.contract.MinterAdded().watch((err, _result) => {
if (err)
return console.error('Failed to bind event listener:', err);
if (_result) {
let { result, block, transaction, name, contract } = _result;
if (this.__debug) {
console.group('New event received');
console.log('- Contract Address:', contract);
console.log('- Event Name:', name);
console.log('- Transaction:', transaction);
console.log('- Block number:', block);
console.log('- Result:', result, '\n');
console.groupEnd();
}
this.emit("event_MinterAdded", result);
}
});
await this.contract && this.contract.MinterRemoved().watch((err, _result) => {
if (err)
return console.error('Failed to bind event listener:', err);
if (_result) {
let { result, block, transaction, name, contract } = _result;
if (this.__debug) {
console.group('New event received');
console.log('- Contract Address:', contract);
console.log('- Event Name:', name);
console.log('- Transaction:', transaction);
console.log('- Block number:', block);
console.log('- Result:', result, '\n');
console.groupEnd();
}
this.emit("event_MinterRemoved", result);
}
});
await this.contract && this.contract.Transfer().watch((err, _result) => {
if (err)
return console.error('Failed to bind event listener:', err);
if (_result) {
let { result, block, transaction, name, contract } = _result;
if (this.__debug) {
console.group('New event received');
console.log('- Contract Address:', contract);
console.log('- Event Name:', name);
console.log('- Transaction:', transaction);
console.log('- Block number:', block);
console.log('- Result:', result, '\n');
console.groupEnd();
}
this.emit("event_Transfer", result);
}
});
}
static ABI() {
const abi = [
{
inputs: [],
outputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'constructor',
},
{
anonymous: false,
inputs: [
{
name: 'owner',
type: 'address',
indexed: true,
},
{
name: 'spender',
type: 'address',
indexed: true,
},
{
name: 'value',
type: 'uint256',
indexed: false,
},
],
name: 'Approval',
outputs: [],
type: 'event',
},
{
anonymous: false,
inputs: [
{
name: 'account',
type: 'address',
indexed: true,
},
],
name: 'MinterAdded',
outputs: [],
type: 'event',
},
{
anonymous: false,
inputs: [
{
name: 'account',
type: 'address',
indexed: true,
},
],
name: 'MinterRemoved',
outputs: [],
type: 'event',
},
{
anonymous: false,
inputs: [
{
name: 'from',
type: 'address',
indexed: true,
},
{
name: 'to',
type: 'address',
indexed: true,
},
{
name: 'value',
type: 'uint256',
indexed: false,
},
],
name: 'Transfer',
outputs: [],
type: 'event',
},
{
constant: false,
inputs: [
{
name: 'account',
type: 'address',
},
],
name: 'addMinter',
outputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [
{
name: 'owner',
type: 'address',
},
{
name: 'spender',
type: 'address',
},
],
name: 'allowance',
outputs: [
{
name: '',
type: 'uint256',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'spender',
type: 'address',
},
{
name: 'amount',
type: 'uint256',
},
],
name: 'approve',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [
{
name: 'account',
type: 'address',
},
],
name: 'balanceOf',
outputs: [
{
name: '',
type: 'uint256',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'amount',
type: 'uint256',
},
],
name: 'burn',
outputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'account',
type: 'address',
},
{
name: 'amount',
type: 'uint256',
},
],
name: 'burnFrom',
outputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'cap',
outputs: [
{
name: '',
type: 'uint256',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'decimals',
outputs: [
{
name: '',
type: 'uint8',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'spender',
type: 'address',
},
{
name: 'subtractedValue',
type: 'uint256',
},
],
name: 'decreaseAllowance',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'getDecimals',
outputs: [
{
name: '',
type: 'uint8',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'spender',
type: 'address',
},
{
name: 'addedValue',
type: 'uint256',
},
],
name: 'increaseAllowance',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [
{
name: 'account',
type: 'address',
},
],
name: 'isMinter',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'account',
type: 'address',
},
{
name: 'amount',
type: 'uint256',
},
],
name: 'mint',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'name',
outputs: [
{
name: '',
type: 'string',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [],
name: 'renounceMinter',
outputs: [],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'symbol',
outputs: [
{
name: '',
type: 'string',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'tokenName',
outputs: [
{
name: '',
type: 'string',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'tokenSymbol',
outputs: [
{
name: '',
type: 'string',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: true,
inputs: [],
name: 'totalSupply',
outputs: [
{
name: '',
type: 'uint256',
},
],
payable: false,
stateMutability: 'view',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'recipient',
type: 'address',
},
{
name: 'amount',
type: 'uint256',
},
],
name: 'transfer',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
{
constant: false,
inputs: [
{
name: 'sender',
type: 'address',
},
{
name: 'recipient',
type: 'address',
},
{
name: 'amount',
type: 'uint256',
},
],
name: 'transferFrom',
outputs: [
{
name: '',
type: 'bool',
},
],
payable: false,
stateMutability: 'nonpayable',
type: 'function',
},
];
return abi;
}
}
TokenTrc20.contractName = "TokenTrc20";