Skip to content

Commit

Permalink
fix: error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
H34D committed Nov 27, 2023
1 parent 5e395ab commit ddf25b9
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 110 deletions.
120 changes: 62 additions & 58 deletions src/modules/identity/create.ts
Expand Up @@ -108,7 +108,7 @@ export const purchaseIdentityWithSoulName = async (
paymentMethod: PaymentMethod,
style?: string,
): Promise<{ identityId?: string | BigNumber } & CreateSoulNameResult> => {
const result: CreateSoulNameResult = {
const result: { identityId?: string | BigNumber } & CreateSoulNameResult = {
success: false,
errorCode: SoulNameErrorCodes.UnknownError,
message: "Unknown Error",
Expand All @@ -129,79 +129,83 @@ export const purchaseIdentityWithSoulName = async (

if (storeMetadataResponse) {
if (isSoulNameMetadataStoreResult(storeMetadataResponse)) {
const soulNameMetadataUrl = `${masa.soulName.getSoulNameMetadataPrefix()}${
storeMetadataResponse.metadataTransaction.id
}`;
console.log(`Soul Name Metadata URL: '${soulNameMetadataUrl}'`);

const { wait, hash } =
await masa.contracts.identity.purchaseIdentityAndName(
paymentMethod,
soulName,
soulNameLength,
duration,
soulNameMetadataUrl,
storeMetadataResponse.authorityAddress,
storeMetadataResponse.signature,
try {
const soulNameMetadataUrl = `${masa.soulName.getSoulNameMetadataPrefix()}${
storeMetadataResponse.metadataTransaction.id
}`;
console.log(`Soul Name Metadata URL: '${soulNameMetadataUrl}'`);

const { wait, hash } =
await masa.contracts.identity.purchaseIdentityAndName(
paymentMethod,
soulName,
soulNameLength,
duration,
soulNameMetadataUrl,
storeMetadataResponse.authorityAddress,
storeMetadataResponse.signature,
);

console.log(
Messages.WaitingToFinalize(
hash,
masa.config.network?.blockExplorerUrls?.[0],
),
);
console.log(
Messages.WaitingToFinalize(
hash,
masa.config.network?.blockExplorerUrls?.[0],
),
);

const { logs } = await wait();
const { logs } = await wait();

const parsedLogs = masa.contracts.parseLogs(logs);
const parsedLogs = masa.contracts.parseLogs(logs);

{
let identityId: string | undefined, tokenId: string | undefined;
{
let identityId: string | undefined, tokenId: string | undefined;

const identityMintEvent = parsedLogs.find(
(event: LogDescription) => event.name === "Mint",
);
const identityMintEvent = parsedLogs.find(
(event: LogDescription) => event.name === "Mint",
);

if (identityMintEvent) {
if (masa.config.verbose) {
console.info({ identityMintEvent });
if (identityMintEvent) {
if (masa.config.verbose) {
console.info({ identityMintEvent });
}

identityId = identityMintEvent.args._tokenId.toString();
console.log(`Identity with ID: '${identityId}' created.`);
}

identityId = identityMintEvent.args._tokenId.toString();
console.log(`Identity with ID: '${identityId}' created.`);
}
const soulnameTransferEvent = parsedLogs.find(
(event: LogDescription) => event.name === "Transfer",
);

const soulnameTransferEvent = parsedLogs.find(
(event: LogDescription) => event.name === "Transfer",
);
if (soulnameTransferEvent) {
const { args: soulnameTransferEventArgs } = soulnameTransferEvent;
if (masa.config.verbose) {
console.dir({ soulnameTransferEventArgs }, { depth: null });
}

if (soulnameTransferEvent) {
const { args: soulnameTransferEventArgs } = soulnameTransferEvent;
if (masa.config.verbose) {
console.dir({ soulnameTransferEventArgs }, { depth: null });
tokenId = soulnameTransferEventArgs.tokenId.toString();
console.log(`SoulName with ID: '${tokenId}' created.`);
}

tokenId = soulnameTransferEventArgs.tokenId.toString();
console.log(`SoulName with ID: '${tokenId}' created.`);
if (identityId && tokenId) {
result.success = true;
result.errorCode = SoulNameErrorCodes.NoError;
result.message = "";
result.tokenId = tokenId;
result.identityId = identityId;
result.soulName = soulName;
}
}

if (identityId && tokenId) {
return {
success: true,
errorCode: SoulNameErrorCodes.NoError,
message: "",
tokenId,
identityId,
soulName,
};
} catch (error: unknown) {
result.errorCode = SoulNameErrorCodes.NetworkError;
if (error instanceof Error) {
result.message = `Creating Soul Name failed! ${error.message}`;
}
}
} else {
return {
success: storeMetadataResponse.success,
message: storeMetadataResponse.message,
errorCode: storeMetadataResponse.errorCode,
};
result.success = storeMetadataResponse.success;
result.message = storeMetadataResponse.message;
result.errorCode = storeMetadataResponse.errorCode;
}
}
} else {
Expand Down
107 changes: 55 additions & 52 deletions src/modules/soul-name/create.ts
Expand Up @@ -45,66 +45,69 @@ const purchaseSoulName = async (

if (storeMetadataResponse) {
if (isSoulNameMetadataStoreResult(storeMetadataResponse)) {
const soulNameMetadataUrl = `${masa.soulName.getSoulNameMetadataPrefix()}${
storeMetadataResponse.metadataTransaction.id
}`;
console.log(`Soul Name Metadata URL: '${soulNameMetadataUrl}'`);

const { wait, hash } = await masa.contracts.soulName.purchase(
paymentMethod,
soulName,
soulNameLength,
duration,
soulNameMetadataUrl,
storeMetadataResponse.authorityAddress,
storeMetadataResponse.signature,
receiver,
);

console.log(
Messages.WaitingToFinalize(
hash,
masa.config.network?.blockExplorerUrls?.[0],
),
);

const { logs } = await wait();

const parsedLogs = masa.contracts.parseLogs(logs);

{
let tokenId: string | undefined;

const soulnameTransferEvent = parsedLogs.find(
(event: LogDescription) => event.name === "Transfer",
try {
const soulNameMetadataUrl = `${masa.soulName.getSoulNameMetadataPrefix()}${
storeMetadataResponse.metadataTransaction.id
}`;
console.log(`Soul Name Metadata URL: '${soulNameMetadataUrl}'`);

const { wait, hash } = await masa.contracts.soulName.purchase(
paymentMethod,
soulName,
soulNameLength,
duration,
soulNameMetadataUrl,
storeMetadataResponse.authorityAddress,
storeMetadataResponse.signature,
receiver,
);

if (soulnameTransferEvent) {
const { args: soulnameTransferEventArgs } = soulnameTransferEvent;
if (masa.config.verbose) {
console.dir({ soulnameTransferEventArgs }, { depth: null });
console.log(
Messages.WaitingToFinalize(
hash,
masa.config.network?.blockExplorerUrls?.[0],
),
);

const { logs } = await wait();

const parsedLogs = masa.contracts.parseLogs(logs);

{
let tokenId: string | undefined;

const soulnameTransferEvent = parsedLogs.find(
(event: LogDescription) => event.name === "Transfer",
);

if (soulnameTransferEvent) {
const { args: soulnameTransferEventArgs } = soulnameTransferEvent;
if (masa.config.verbose) {
console.dir({ soulnameTransferEventArgs }, { depth: null });
}

tokenId = soulnameTransferEventArgs.tokenId.toString();
console.log(`SoulName with ID: '${tokenId}' created.`);
}

tokenId = soulnameTransferEventArgs.tokenId.toString();
console.log(`SoulName with ID: '${tokenId}' created.`);
if (tokenId) {
result.success = true;
result.message = "";
result.errorCode = SoulNameErrorCodes.NoError;
result.tokenId = tokenId;
result.soulName = soulName;
}
}

if (tokenId) {
return {
success: true,
message: "",
errorCode: SoulNameErrorCodes.NoError,
tokenId,
soulName,
};
} catch (error: unknown) {
result.errorCode = SoulNameErrorCodes.NetworkError;
if (error instanceof Error) {
result.message = `Creating Soul Name failed! ${error.message}`;
}
}
} else {
return {
success: storeMetadataResponse.success,
message: storeMetadataResponse.message,
errorCode: storeMetadataResponse.errorCode,
};
result.success = storeMetadataResponse.success;
result.message = storeMetadataResponse.message;
result.errorCode = storeMetadataResponse.errorCode;
}
}
} else {
Expand Down

0 comments on commit ddf25b9

Please sign in to comment.