Skip to content

Commit

Permalink
added identity purchase method for purchasing without a soulname
Browse files Browse the repository at this point in the history
  • Loading branch information
H34D committed Nov 9, 2022
1 parent 310dd78 commit 55f539f
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 5 deletions.
35 changes: 33 additions & 2 deletions src/identity/create.ts
@@ -1,6 +1,20 @@
import Masa from "../masa";
import { PaymentMethod } from "../contracts";

export const purchaseIdentity = async (masa: Masa) => {
const identityContracts = await masa.contracts.loadIdentityContracts();

const tx = await masa.contracts.service.purchaseIdentity(
identityContracts,
masa.config.wallet
);

console.log("Waiting for transaction to finalize");
const result = await tx.wait();

console.log(result);
};

export const purchaseIdentityWithSoulname = async (
masa: Masa,
soulName: string,
Expand Down Expand Up @@ -36,7 +50,24 @@ export const purchaseIdentityWithSoulname = async (
}
};

export const createIdentity = async (
export const createIdentity = async (masa: Masa): Promise<boolean> => {
let identityCreated = false;

const address = await masa.config.wallet.getAddress();
const identityId = await masa.identity.load(address);

if (identityId) {
console.error(`Identity already created! '${identityId}'`);
return identityCreated;
}

await purchaseIdentity(masa);

identityCreated = true;
return identityCreated;
};

export const createIdentityWithSoulName = async (
masa: Masa,
soulName: string,
duration: number,
Expand All @@ -53,7 +84,7 @@ export const createIdentity = async (
const identityId = await masa.identity.load(address);

if (identityId) {
console.error("Identity already created!");
console.error(`Identity already created! '${identityId}'`);
return identityCreated;
}

Expand Down
10 changes: 7 additions & 3 deletions src/identity/indetity.ts
@@ -1,13 +1,17 @@
import { PaymentMethod } from "../contracts";
import { createIdentity } from "./create";
import { createIdentity, createIdentityWithSoulName } from "./create";
import { loadIdentityByAddress } from "./load";
import { burnIdentity } from "./burn";
import { showIdentity } from "./show";
import Masa from "../masa";

export const identity = (masa: Masa) => ({
create: (soulName: string, duration: number, paymentMethod: PaymentMethod) =>
createIdentity(masa, soulName, duration, paymentMethod),
create: () => createIdentity(masa),
createWithSoulName: (
soulName: string,
duration: number,
paymentMethod: PaymentMethod
) => createIdentityWithSoulName(masa, soulName, duration, paymentMethod),
load: (address?: string) => loadIdentityByAddress(masa, address),
burn: () => burnIdentity(masa),
show: (address?: string) => showIdentity(masa, address),
Expand Down

0 comments on commit 55f539f

Please sign in to comment.