Skip to content

Commit

Permalink
fix sbt loading
Browse files Browse the repository at this point in the history
fix price calculation
  • Loading branch information
H34D committed May 22, 2023
1 parent c433671 commit 34a8b7f
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 22 deletions.
9 changes: 4 additions & 5 deletions src/contracts/modules/masa-module-base.ts
Expand Up @@ -22,7 +22,6 @@ import {
MasaSBT,
MasaSBTAuthority,
MasaSBTSelfSovereign,
MasaSBTSelfSovereign__factory,
SoulLinker,
SoulStore,
} from "@masa-finance/masa-contracts-identity";
Expand Down Expand Up @@ -314,7 +313,7 @@ export class MasaModuleBase extends MasaBase {
>(
masaConfig: MasaConfig,
address: string,
factory: ContractFactory = MasaSBTSelfSovereign__factory
factory: ContractFactory
): Promise<Contract | undefined> => {
let sbtContract: Contract | undefined;

Expand All @@ -332,12 +331,12 @@ export class MasaModuleBase extends MasaBase {
)
: undefined;

if (sbtContract && masaConfig.verbose) {
console.info(`Loaded contract with name: ${await sbtContract.name()}`);
} else {
if (!sbtContract) {
console.error(
`Smart contract '${address}' does not exist on network '${masaConfig.networkName}'!`
);
} else if (masaConfig.verbose) {
console.info(`Loaded contract with name: ${await sbtContract.name()}`);
}
} else {
console.error(`Address '${address}' is not valid!`);
Expand Down
4 changes: 2 additions & 2 deletions src/contracts/modules/sbt.ts
@@ -1,9 +1,9 @@
import { ContractFactory, MasaModuleBase } from "./masa-module-base";
import {
MasaSBT,
MasaSBT__factory,
MasaSBTAuthority,
MasaSBTSelfSovereign,
MasaSBTSelfSovereign__factory,
} from "@masa-finance/masa-contracts-identity";
import { TypedDataDomain, TypedDataField, Wallet } from "ethers";
import { BigNumber } from "@ethersproject/bignumber";
Expand Down Expand Up @@ -177,7 +177,7 @@ export class SBT extends MasaModuleBase {
Contract extends MasaSBTSelfSovereign | MasaSBTAuthority | MasaSBT
>(
address: string,
factory: ContractFactory = MasaSBTSelfSovereign__factory
factory: ContractFactory = MasaSBT__factory
): Promise<ContractWrapper<Contract> | undefined> => {
const sbtContract: Contract | undefined = await this.loadSBTContract(
this.masa.config,
Expand Down
7 changes: 5 additions & 2 deletions src/sbt/ASBT/asbt.ts
@@ -1,6 +1,6 @@
import {
MasaSBTAuthority__factory,
ReferenceSBTAuthority,
ReferenceSBTAuthority__factory,
} from "@masa-finance/masa-contracts-identity";
import { deployASBT } from "./deploy";
import { mintASBT } from "./mint";
Expand All @@ -24,7 +24,10 @@ export class MasaASBT<
) => deployASBT(this.masa, name, symbol, baseTokenUri, adminAddress);

public async connect(address: string) {
const wrapper = await super.connect(address, MasaSBTAuthority__factory);
const wrapper = await super.connect(
address,
ReferenceSBTAuthority__factory
);

return {
...wrapper,
Expand Down
18 changes: 13 additions & 5 deletions src/sbt/ASBT/mint.ts
Expand Up @@ -39,17 +39,25 @@ export const mintASBT = async (
] = [paymentAddress, receiver];

const mintASBTOverrides: PayableOverrides = {
value: price,
value: price.gt(0) ? price : undefined,
};

if (masa.config.verbose) {
console.info(mintASBTArguments, mintASBTOverrides);
}

const { wait, hash } = await sbtContract["mint(address,address)"](
...mintASBTArguments,
mintASBTOverrides
);
const {
"mint(address,address)": mint,
estimateGas: { "mint(address,address)": estimateGas },
} = sbtContract;

const gasLimit = await estimateGas(...mintASBTArguments, mintASBTOverrides);

const { wait, hash } = await mint(...mintASBTArguments, {
...mintASBTOverrides,
gasLimit,
});

console.log(Messages.WaitingToFinalize(hash));

const { logs } = await wait();
Expand Down
16 changes: 12 additions & 4 deletions src/sbt/SSSBT/mint.ts
Expand Up @@ -69,16 +69,24 @@ export const mintSSSBT = async (
] = [paymentAddress, receiver, authorityAddress, signatureDate, signature];

const mintSSSBTOverrides: PayableOverrides = {
value: price,
value: price.gt(0) ? price : undefined,
};

if (masa.config.verbose) {
console.info(mintSSSBTArguments, prepareMintResults);
}

const { wait, hash } = await sbtContract[
"mint(address,address,address,uint256,bytes)"
](...mintSSSBTArguments, mintSSSBTOverrides);
const {
"mint(address,address,address,uint256,bytes)": mint,
estimateGas: { "mint(address,address,address,uint256,bytes)": estimateGas },
} = sbtContract;

const gasLimit = await estimateGas(...mintSSSBTArguments, mintSSSBTOverrides);

const { wait, hash } = await mint(...mintSSSBTArguments, {
...mintSSSBTOverrides,
gasLimit,
});

console.log(Messages.WaitingToFinalize(hash));

Expand Down
7 changes: 5 additions & 2 deletions src/sbt/SSSBT/sssbt.ts
@@ -1,6 +1,6 @@
import {
MasaSBTSelfSovereign__factory,
ReferenceSBTSelfSovereign,
ReferenceSBTSelfSovereign__factory,
} from "@masa-finance/masa-contracts-identity";
import { deploySSSBT } from "./deploy";
import { signSSSBT } from "./sign";
Expand Down Expand Up @@ -35,7 +35,10 @@ export class MasaSSSBT<
);

public async connect(address: string) {
const wrapper = await super.connect(address, MasaSBTSelfSovereign__factory);
const wrapper = await super.connect(
address,
ReferenceSBTSelfSovereign__factory
);

return {
...wrapper,
Expand Down
4 changes: 2 additions & 2 deletions src/sbt/sbt.ts
@@ -1,6 +1,6 @@
import {
MasaSBT as MasaSBTContract,
MasaSBTSelfSovereign__factory,
MasaSBT__factory,
ReferenceSBTAuthority,
ReferenceSBTSelfSovereign,
} from "@masa-finance/masa-contracts-identity";
Expand All @@ -23,7 +23,7 @@ export class MasaSBT<
*/
public async connect(
address: string,
factory: ContractFactory = MasaSBTSelfSovereign__factory
factory: ContractFactory = MasaSBT__factory
) {
const { sbtContract } =
(await this.masa.contracts.sbt.connect<Contract>(address, factory)) || {};
Expand Down

0 comments on commit 34a8b7f

Please sign in to comment.