diff --git a/bun.lockb b/bun.lockb index cfd875f82..010075533 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/cli/src/commands/codegen.ts b/packages/cli/src/commands/codegen.ts index 0eb384de0..0e6e6f299 100644 --- a/packages/cli/src/commands/codegen.ts +++ b/packages/cli/src/commands/codegen.ts @@ -1,6 +1,7 @@ import { mkdirSync, rmSync, writeFileSync } from "node:fs"; import { join } from "node:path"; import { printAsciiArt, printCancel, printIntro, printNote, printOutro, printSpinner } from "@/lib/cli-message"; +import { createMinioS3Client } from "@/lib/codegen/minio"; import { Command } from "@commander-js/extra-typings"; import { loadSettleMintApplicationConfig, @@ -66,7 +67,7 @@ export function codegenCommand(): Command { const envCfg = loadSettleMintEnvironmentConfig(); - const { portalRest, portalGql, thegraphGql, hasuraGql, nodeJsonRpc, nodeJsonRpcDeploy } = appCfg; + const { portalRest, portalGql, thegraphGql, hasuraGql, nodeJsonRpc, nodeJsonRpcDeploy, minio } = appCfg; await printSpinner({ startMessage: "Generating SettleMint SDK", @@ -116,12 +117,15 @@ export function codegenCommand(): Command { settleMintDir, framework: cfg.framework, type: "hasura", - gqlUrl: process.env.LOCAL_HASURA ?? hasuraGql, + gqlUrl: hasuraGql, personalAccessToken: envCfg.SETTLEMINT_PAT_TOKEN, hasuraAdminSecret: envCfg.SETTLEMINT_HASURA_GQL_ADMIN_SECRET, }), ); } + if (minio) { + sdkParts.push(createMinioS3Client()); + } if (nodeJsonRpc || nodeJsonRpcDeploy) { sdkParts.push( createChainConfig({ @@ -165,7 +169,7 @@ export function codegenCommand(): Command { import { sdkGenerator, type ViemConfig, type WagmiConfig } from "@settlemint/sdk-next/browser"; ${importLines.filter((line) => line.trim() !== "").join("\n")} -export const connectSettlemint = (config: {viem?: ViemConfig, wagmi: WagmiConfig}) => (${JSON.stringify( +export const connectSettlemint = (config: {viem?: ViemConfig, wagmi: WagmiConfig, minio?: {endPoint: string}}) => (${JSON.stringify( settlemintObject, null, 2, diff --git a/packages/cli/src/lib/codegen/minio.ts b/packages/cli/src/lib/codegen/minio.ts new file mode 100644 index 000000000..85dd270fe --- /dev/null +++ b/packages/cli/src/lib/codegen/minio.ts @@ -0,0 +1,8 @@ +export async function createMinioS3Client() { + return { + importLine: "", + sdkLine: { + minio: "sdkGenerator.createMinioS3Client({...config?.minio}),", + }, + }; +} diff --git a/packages/next/package.json b/packages/next/package.json index bb54766b9..a2d2bfead 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -44,11 +44,12 @@ }, "devDependencies": {}, "dependencies": { - "@rainbow-me/rainbowkit": "^2", + "@rainbow-me/rainbowkit": "^2.1.7", "@settlemint/sdk-config": "workspace:*", "abitype": "^1", "graphql-request": "^7", "graphql-tag": "^2", + "minio": "^8.0.1", "openapi-fetch": "^0.12", "path-to-regexp": "^7", "viem": "^2", diff --git a/packages/next/src/browser/sdk/plugins/minio.ts b/packages/next/src/browser/sdk/plugins/minio.ts new file mode 100644 index 000000000..5406b2dc6 --- /dev/null +++ b/packages/next/src/browser/sdk/plugins/minio.ts @@ -0,0 +1,11 @@ +import { Client } from "minio"; + +export function createMinioS3Client({ endPoint }: { endPoint: string }) { + return new Client({ + endPoint: endPoint, + port: 443, + useSSL: true, + accessKey: process.env.SETTLEMINT_MINIO_ACCESS_KEY ?? "", + secretKey: process.env.SETTLEMINT_MINIO_SECRET_KEY ?? "", + }); +} diff --git a/packages/next/src/browser/sdk/sdk.ts b/packages/next/src/browser/sdk/sdk.ts index 277bc3c94..85adddbdb 100644 --- a/packages/next/src/browser/sdk/sdk.ts +++ b/packages/next/src/browser/sdk/sdk.ts @@ -2,6 +2,7 @@ import { createGraphqlClient } from "@/browser/sdk/plugins/graphql"; import { createPortalRestClient } from "@/browser/sdk/plugins/portal"; import { createViemPublicClient, createViemWalletClient } from "@/browser/sdk/plugins/viem"; import { createWagmiConfig } from "@/browser/sdk/plugins/wagmi"; +import { createMinioS3Client } from "./plugins/minio"; /** * A collection of functions for generating various SDK components. @@ -16,4 +17,5 @@ export const sdkGenerator = { createViemPublicClient, createViemWalletClient, createWagmiConfig, + createMinioS3Client, } as const; diff --git a/packages/next/src/node/next/with-settlemint.ts b/packages/next/src/node/next/with-settlemint.ts index ae418e474..6024500a9 100644 --- a/packages/next/src/node/next/with-settlemint.ts +++ b/packages/next/src/node/next/with-settlemint.ts @@ -77,7 +77,7 @@ function generateRewrites(cfg: ApplicationConfig): Rewrite[] { { condition: cfg.hasuraGql, source: "/proxy/hasura/graphql", - destination: process.env.LOCAL_HASURA ?? cfg.hasuraGql, + destination: cfg.hasuraGql, }, { condition: cfg.portalRest, source: "/proxy/portal/rest/:path*", destination: `${cfg.portalRest}/:path*` }, { condition: cfg.portalGql, source: "/proxy/portal/graphql", destination: cfg.portalGql },