@q-dev/q-js-sdk
Version:
Typescript Library to interact with Q System Contracts
82 lines • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ERC20Instance = void 0;
const SystemContractInstance_1 = require("../../SystemContractInstance");
/**
* ERC20 instance to interact with Stablecoin contract.
* See [onchain documentation](@system-contracts-repo/@network/ERC20/) for more details.
* An instance of this class for a deployed network can be obtained via {@link ContractRegistryInstance.stableCoin}
*/
class ERC20Instance extends SystemContractInstance_1.SystemContractInstance {
constructor(signerOrProvider, address) {
super(signerOrProvider, 'ERC20.json', address);
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#approve)
*/
async approve(spender, amount, txOptions) {
return this.submitTransaction('approve', [spender, amount], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#allowance)
*/
async allowance(owner, spender) {
return (await this.instance.allowance(owner, spender)).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#transfer)
*/
async transfer(recipient, amount, txOptions) {
return this.submitTransaction('transfer', [recipient, amount], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#transferfrom)
*/
async transferFrom(sender, recipient, amount, txOptions) {
return this.submitTransaction('transferFrom', [sender, recipient, amount], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#balanceof)
*/
async balanceOf(address) {
return (await this.instance.balanceOf(address)).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#totalsupply)
*/
async totalSupply() {
return (await this.instance.totalSupply()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#name)
*/
async name() {
return this.instance.name();
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#symbol)
*/
async symbol() {
return this.instance.symbol();
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#decimals)
*/
async decimals() {
return (await this.instance.decimals()).toString();
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#increaseallowance)
*/
async increaseAllowance(spender, amount, txOptions) {
return this.submitTransaction('increaseAllowance', [spender, amount], txOptions);
}
/**
* [External documentation](@system-contracts-repo/@network/ERC20/#decreaseallowance)
*/
async decreaseAllowance(spender, amount, txOptions) {
return this.submitTransaction('decreaseAllowance', [spender, amount], txOptions);
}
}
exports.ERC20Instance = ERC20Instance;
//# sourceMappingURL=ERC20Instance.js.map