From 13bba58cb2a7ce2f3017f1b808ffb9899ddc4620 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 11 Apr 2024 14:51:12 +0100 Subject: [PATCH 1/2] remove owner param from createApp --- packages/sdk/src/constants/chains.ts | 30 ++++++++++++++++++++++++++++ packages/sdk/src/core/factory.ts | 18 ++++++++--------- packages/sdk/src/types/index.ts | 2 +- packages/sdk/test/app.test.ts | 8 ++------ 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/packages/sdk/src/constants/chains.ts b/packages/sdk/src/constants/chains.ts index fc0a1a0..511f6a4 100644 --- a/packages/sdk/src/constants/chains.ts +++ b/packages/sdk/src/constants/chains.ts @@ -35,10 +35,40 @@ export const polygonMumbai = { testnet: true, } as const satisfies Chain; +export const arbitrumSepolia = { + id: 421_614, + name: 'Arbitrum Sepolia', + nativeCurrency: { + name: 'Arbitrum Sepolia Ether', + symbol: 'ETH', + decimals: 18, + }, + rpcUrls: { + default: { + http: ['https://sepolia-rollup.arbitrum.io/rpc'], + }, + }, + blockExplorers: { + default: { + name: 'Arbiscan', + url: 'https://sepolia.arbiscan.io', + apiUrl: 'https://api-sepolia.arbiscan.io/api', + }, + }, + contracts: { + multicall3: { + address: '0xca11bde05977b3631167028862be2a173976ca11', + blockCreated: 81930, + }, + }, + testnet: true, +}; + export const Chains = { aurora, auroraTestnet, foundry, polygon, polygonMumbai, + arbitrumSepolia, }; diff --git a/packages/sdk/src/core/factory.ts b/packages/sdk/src/core/factory.ts index 4f4d383..e897999 100644 --- a/packages/sdk/src/core/factory.ts +++ b/packages/sdk/src/core/factory.ts @@ -7,8 +7,8 @@ import { } from 'ethers'; import { appFactoryContracts } from '../constants'; import { AppFactory__factory } from '../contract-types'; -import { validateWallets } from '../helpers'; import { getArgumentFromEvent, parseErrorData } from '../helpers/transaction'; +import { Errors } from '../types'; import { BaseContract } from './base'; /** * A class representing a Factory contract that extends the BaseContract class. @@ -74,18 +74,16 @@ export class Factory extends BaseContract { * @returns {Promise} A Promise that resolves to the transaction receipt of the contract creation. */ - async createApp({ - name, - owner, - }: { - name: string; - owner: string; - }): Promise<{ id: string }> { + async createApp({ name }: { name: string }): Promise<{ id: string }> { try { const providerNetwork = await this.provider.getNetwork(); this.checkNetworksMatch(); - validateWallets([owner]); + const signerAddress = await this.signer?.getAddress(); + + if (!signerAddress || !ethers.utils.isAddress(signerAddress)) { + throw new Error(Errors.InvalidSigner); + } const factoryAddress = this.getAppFactoryContractAddress( providerNetwork.chainId @@ -98,7 +96,7 @@ export class Factory extends BaseContract { const tx = await contract.create( ethers.utils.formatBytes32String(name), - owner + signerAddress ); const receipt = await this.processTransaction(tx); diff --git a/packages/sdk/src/types/index.ts b/packages/sdk/src/types/index.ts index 18720ab..21e2de3 100644 --- a/packages/sdk/src/types/index.ts +++ b/packages/sdk/src/types/index.ts @@ -442,5 +442,5 @@ export enum ContractErrors { } export enum Errors { - LowTransactionFeeBalance = 'Signer $OFT balance too low. Please top up.', + InvalidSigner = 'The signer does not exist or is not a valid address', } diff --git a/packages/sdk/test/app.test.ts b/packages/sdk/test/app.test.ts index 2175c49..71b8c38 100644 --- a/packages/sdk/test/app.test.ts +++ b/packages/sdk/test/app.test.ts @@ -77,7 +77,6 @@ describe('AppFactory', () => { it('should create an app', async () => { const app = await global.sdk.factory.createApp({ name: faker.internet.domainWord(), - owner: global.walletAddress, }); expect(app.id).toContain('0x'); @@ -85,14 +84,11 @@ describe('AppFactory', () => { it('should throw error if app name already exists', async () => { const name = faker.internet.domainWord(); - const params = { - owner: global.walletAddress, - }; - await global.sdk.factory.createApp({ name, ...params }); + await global.sdk.factory.createApp({ name }); async function handleCreate() { - await global.sdk.factory.createApp({ name, ...params }); + await global.sdk.factory.createApp({ name }); } await expect(handleCreate).rejects.toThrow( From fd17a28b2dc821ef7558fb5f1677979fda33c2e9 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 11 Apr 2024 14:51:40 +0100 Subject: [PATCH 2/2] docs(changeset): - Remove owner param from createApp --- .changeset/wet-ways-impress.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wet-ways-impress.md diff --git a/.changeset/wet-ways-impress.md b/.changeset/wet-ways-impress.md new file mode 100644 index 0000000..732bbe9 --- /dev/null +++ b/.changeset/wet-ways-impress.md @@ -0,0 +1,5 @@ +--- +"@openformat/sdk": patch +--- + +- Remove owner param from createApp