@aut-labs/sdk
Version:
The TS/JS SDK package aims to make it easy for frontends/backends to integrate with Aut Smart Contracts
180 lines • 6.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutIDContract = void 0;
const response_1 = require("../models/response");
const base_contract_1 = __importDefault(require("./base.contract"));
const abi_types_1 = require("@aut-labs/abi-types");
const find_event_1 = require("../utils/find-event");
const logger_1 = require("../utils/logger");
const sdkLogger = (0, logger_1.getLogger)();
class AutIDContract extends base_contract_1.default {
constructor(address, multiSigner, biconomyWrapper) {
super(address, multiSigner, biconomyWrapper, abi_types_1.Web3AutIDProvider);
}
async getTokenIdForUserName(username) {
try {
const tokenId = await this.functions.tokenIdForUsername(username);
return new response_1.SDKContractGenericResponse({
isSuccess: true,
data: tokenId
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
async listUserHubs(holder) {
try {
const daos = await this.functions.getUserHubs(holder);
return new response_1.SDKContractGenericResponse({
isSuccess: true,
data: daos
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
async ownerOf(tokenID) {
try {
const owner = await this.functions.ownerOf(Number(tokenID));
return new response_1.SDKContractGenericResponse({
isSuccess: true,
data: owner
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
async balanceOf(owner) {
try {
const balance = await this.functions.balanceOf(owner);
return new response_1.SDKContractGenericResponse({
isSuccess: true,
data: balance
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
async getNextTokenID() {
try {
// const nextTokenID = await this.functions.nextTokenId();
// create random generator for token id
const nextTokenID = Math.floor(Math.random() * 1000000);
return new response_1.SDKContractGenericResponse({
isSuccess: true,
data: nextTokenID.toString()
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
async mintAndJoin(username, url, role, commitment, hubAddress, overrides) {
try {
sdkLogger.info("mintAndJoin", {
username,
url,
role,
commitment,
hubAddress
});
const tx = await (await this.functions.createRecordAndJoinHub(role, commitment, hubAddress, username, url, overrides)).wait();
const event = (0, find_event_1.findLogEvent)(tx, abi_types_1.AutIDContractEventType.RecordCreated);
sdkLogger.info("mintAndJoin", event);
return new response_1.SDKContractGenericResponse({
isSuccess: !!event,
event,
data: event?.args[0]?.toString()
});
}
catch (error) {
sdkLogger.error("mintAndJoin", error);
return new response_1.SDKContractGenericResponse({
error
});
}
}
async joinHub(role, commitment, hubAddress) {
const address = await this.contract.getAddress();
if (this.canSendEIP712Transaction(address)) {
try {
const { data } = await this.contract.populateTransaction.joinHub(role, commitment, hubAddress);
await this.sendEIP712Transaction(data);
return new response_1.SDKContractGenericResponse({
isSuccess: true
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
else {
try {
const tx = await (await this.functions.joinHub(role, commitment, hubAddress)).wait();
const event = (0, find_event_1.findLogEvent)(tx, abi_types_1.AutIDContractEventType.HubJoined);
return new response_1.SDKContractGenericResponse({
isSuccess: !!event,
event
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
}
async withdraw(hubAddress) {
try {
// @ts-ignore
const tx = await (await this.functions.withdraw(hubAddress)).wait();
// @ts-ignore
const event = (0, find_event_1.findLogEvent)(tx, abi_types_1.AutIDContractEventType.HubWithdrawn);
return new response_1.SDKContractGenericResponse({
isSuccess: !!event,
event
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
async setMetadataUri(metadataUri) {
try {
const tx = await (await this.functions.setTokenURI(metadataUri)).wait();
const event = (0, find_event_1.findLogEvent)(tx, abi_types_1.AutIDContractEventType.TokenMetadataUpdated);
return new response_1.SDKContractGenericResponse({
isSuccess: !!event,
event
});
}
catch (error) {
return new response_1.SDKContractGenericResponse({
error
});
}
}
}
exports.AutIDContract = AutIDContract;
//# sourceMappingURL=autID.contract.js.map