nomadex-client
Version:
Client library to programmatically interact with https://voi.nomadex.app
96 lines (95 loc) • 3.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MySmartAsset = void 0;
const algosdk_1 = require("algosdk");
const SmartAssetClient_1 = require("./SmartAssetClient");
class MySmartAsset {
constructor(id, nodeClient, signer) {
this.assetClient = new SmartAssetClient_1.SmartAssetClient({
id: id,
resolveBy: 'id',
sender: signer ?? {
addr: 'DYX2V5XF4IKOHE55Z63XAHVBJTMYM723HK5WJZ72BDZ5AFEFKJ5YP4DOQQ',
signer: (0, algosdk_1.makeEmptyTransactionSigner)()
},
}, nodeClient);
}
static from(id, nodeClient) {
return new MySmartAsset(id, nodeClient);
}
async arc200Symbol() {
const composer = this.assetClient.compose();
const { methodResults: [result] } = await composer.arc200Symbol({}).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
const symbolBuffer = result.rawReturnValue;
return Buffer.from(symbolBuffer).toString().replace(/\u0000/g, '');
}
async arc200Name() {
const composer = this.assetClient.compose();
const { methodResults: [result] } = await composer.arc200Name({}).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
const nameBuffer = result.rawReturnValue;
return Buffer.from(nameBuffer).toString().replace(/\u0000/g, '');
}
async arc200Decimals() {
const composer = this.assetClient.compose();
const { returns: [decimals] } = await composer.arc200Decimals({}).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
return decimals;
}
async arc200TotalSupply() {
const composer = this.assetClient.compose();
const { returns: [supply] } = await composer.arc200TotalSupply({}).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
return supply;
}
async manager() {
const composer = this.assetClient.compose();
const { returns: [manager] } = await composer.manager({}).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
return manager;
}
async arc200BalanceOf(address) {
const composer = this.assetClient.compose();
const { returns: [balance] } = await composer.arc200BalanceOf({ owner: address }).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
return balance;
}
async arc200Allowance(owner, spender) {
const composer = this.assetClient.compose();
const { returns: [allowance] } = await composer.arc200Allowance({ owner, spender }).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
return allowance;
}
async hasBox(owner, spender = (0, algosdk_1.encodeAddress)(new Uint8Array(32))) {
const composer = this.assetClient.compose();
const ret = await composer.hasBox({ owner, spender }).simulate({
allowMoreLogging: true,
allowEmptySignatures: true,
allowUnnamedResources: true
});
return ret.returns[0];
}
}
exports.MySmartAsset = MySmartAsset;