Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@ node_modules
dist
.turbo
*.tsbuildinfo
*.d.ts.map
.DS_Store
coverage
.env
.env.local
pnpm-debug.log*
site/.vitepress/cache/
site/.vitepress/cache/

# Build artifacts that may leak into src/ from bad tsc emit
packages/*/src/**/*.js
packages/*/src/**/*.js.map
packages/*/src/**/*.d.ts
packages/*/src/**/*.d.ts.map
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"packageManager": "[email protected]",
"scripts": {
"build": "pnpm -r --filter='./packages/**' run build",
"build": "pnpm --filter @growae/reactive run build && pnpm -r --filter='./packages/**' --filter='!@growae/reactive' run build && pnpm --filter @growae/reactive run build:connectors",
"build:core": "pnpm --filter @growae/reactive run build",
"build:react": "pnpm --filter @growae/reactive-react run build",
"build:vue": "pnpm --filter @growae/reactive-vue run build",
Expand Down
11 changes: 10 additions & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
"types": "./dist/types/exports/networks.d.ts",
"default": "./dist/esm/exports/networks.js"
},
"./connectors": {
"types": "./dist/types/exports/connectors.d.ts",
"default": "./dist/esm/exports/connectors.js"
},
"./internal": {
"types": "./dist/types/exports/internal.d.ts",
"default": "./dist/esm/exports/internal.js"
Expand All @@ -30,7 +34,8 @@
},
"scripts": {
"build": "pnpm run build:esm+types",
"build:esm+types": "tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types",
"build:esm+types": "tsc --project tsconfig.bootstrap.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types",
"build:connectors": "pnpm --filter @growae/reactive-connectors run build && tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types",
"clean": "rm -rf dist",
"check:types": "tsc --noEmit",
"dev": "tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types --watch"
Expand All @@ -41,10 +46,14 @@
"zustand": "^5.0.0"
},
"peerDependencies": {
"@growae/reactive-connectors": "workspace:*",
"@tanstack/query-core": ">=5.0.0",
"typescript": ">=5.7.0"
},
"peerDependenciesMeta": {
"@growae/reactive-connectors": {
"optional": true
},
"@tanstack/query-core": {
"optional": true
},
Expand Down
15 changes: 15 additions & 0 deletions packages/core/src/exports/connectors.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export {
superhero,
type SuperheroParameters,
iframe,
type IframeParameters,
webExtension,
type WebExtensionParameters,
ledger,
type LedgerParameters,
metamaskSnap,
type MetaMaskSnapParameters,
walletDetect,
type DetectedWallet,
type WalletDetectResult,
} from '@growae/reactive-connectors'
8 changes: 8 additions & 0 deletions packages/core/tsconfig.bootstrap.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"extends": "./tsconfig.build.json",
"exclude": [
"src/**/*.test.ts",
"src/**/*.test-d.ts",
"src/exports/connectors.ts"
]
}
6 changes: 5 additions & 1 deletion packages/core/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
"declarationDir": "dist/types",
"declaration": true,
"declarationMap": true,
"sourceMap": true
"sourceMap": true,
"paths": {
"@growae/reactive": ["./src/exports/index.ts"],
"@growae/reactive/*": ["./src/exports/*.ts"]
}
},
"include": ["src/**/*.ts"],
"exclude": ["src/**/*.test.ts", "src/**/*.test-d.ts"]
Expand Down
21 changes: 21 additions & 0 deletions packages/react/src/exports/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ export {
useEstimateGas,
type UseEstimateGasParameters,
type UseEstimateGasReturnType,
useWaitForTransactionConfirm,
type UseWaitForTransactionConfirmParameters,
type UseWaitForTransactionConfirmReturnType,
useMicroBlock,
type UseMicroBlockParameters,
type UseMicroBlockReturnType,
// Transactions
useSendTransaction,
type UseSendTransactionParameters,
Expand All @@ -113,6 +119,12 @@ export {
usePayForTransaction,
type UsePayForTransactionParameters,
type UsePayForTransactionReturnType,
useBuildTransaction,
type UseBuildTransactionParameters,
type UseBuildTransactionReturnType,
useTransferFunds,
type UseTransferFundsParameters,
type UseTransferFundsReturnType,
// Signing
useSignMessage,
type UseSignMessageParameters,
Expand All @@ -129,6 +141,9 @@ export {
useVerifyTypedData,
type UseVerifyTypedDataParameters,
type UseVerifyTypedDataReturnType,
useSignDelegation,
type UseSignDelegationParameters,
type UseSignDelegationReturnType,
// Contracts
useDeployContract,
type UseDeployContractParameters,
Expand All @@ -148,6 +163,9 @@ export {
useContractEvents,
type UseContractEventsParameters,
type UseContractEventsReturnType,
useCompileContract,
type UseCompileContractParameters,
type UseCompileContractReturnType,
// AENS
usePreclaimName,
type UsePreclaimNameParameters,
Expand All @@ -167,6 +185,9 @@ export {
useResolveName,
type UseResolveNameParameters,
type UseResolveNameReturnType,
useNameEntry,
type UseNameEntryParameters,
type UseNameEntryReturnType,
// Oracles
useRegisterOracle,
type UseRegisterOracleParameters,
Expand Down
21 changes: 21 additions & 0 deletions packages/solid/src/exports/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ export {
useEstimateGas,
type UseEstimateGasParameters,
type UseEstimateGasReturnType,
useWaitForTransactionConfirm,
type UseWaitForTransactionConfirmParameters,
type UseWaitForTransactionConfirmReturnType,
useMicroBlock,
type UseMicroBlockParameters,
type UseMicroBlockReturnType,
// Transactions
useSendTransaction,
type UseSendTransactionParameters,
Expand All @@ -113,6 +119,12 @@ export {
usePayForTransaction,
type UsePayForTransactionParameters,
type UsePayForTransactionReturnType,
useBuildTransaction,
type UseBuildTransactionParameters,
type UseBuildTransactionReturnType,
useTransferFunds,
type UseTransferFundsParameters,
type UseTransferFundsReturnType,
// Signing
useSignMessage,
type UseSignMessageParameters,
Expand All @@ -129,6 +141,9 @@ export {
useVerifyTypedData,
type UseVerifyTypedDataParameters,
type UseVerifyTypedDataReturnType,
useSignDelegation,
type UseSignDelegationParameters,
type UseSignDelegationReturnType,
// Contracts
useDeployContract,
type UseDeployContractParameters,
Expand All @@ -148,6 +163,9 @@ export {
useContractEvents,
type UseContractEventsParameters,
type UseContractEventsReturnType,
useCompileContract,
type UseCompileContractParameters,
type UseCompileContractReturnType,
// AENS
usePreclaimName,
type UsePreclaimNameParameters,
Expand All @@ -167,6 +185,9 @@ export {
useResolveName,
type UseResolveNameParameters,
type UseResolveNameReturnType,
useNameEntry,
type UseNameEntryParameters,
type UseNameEntryReturnType,
// Oracles
useRegisterOracle,
type UseRegisterOracleParameters,
Expand Down
21 changes: 21 additions & 0 deletions packages/vue/src/exports/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ export {
useEstimateGas,
type UseEstimateGasParameters,
type UseEstimateGasReturnType,
useWaitForTransactionConfirm,
type UseWaitForTransactionConfirmParameters,
type UseWaitForTransactionConfirmReturnType,
useMicroBlock,
type UseMicroBlockParameters,
type UseMicroBlockReturnType,
// Transactions
useSendTransaction,
type UseSendTransactionParameters,
Expand All @@ -106,6 +112,12 @@ export {
usePayForTransaction,
type UsePayForTransactionParameters,
type UsePayForTransactionReturnType,
useBuildTransaction,
type UseBuildTransactionParameters,
type UseBuildTransactionReturnType,
useTransferFunds,
type UseTransferFundsParameters,
type UseTransferFundsReturnType,
// Signing
useSignMessage,
type UseSignMessageParameters,
Expand All @@ -122,6 +134,9 @@ export {
useVerifyTypedData,
type UseVerifyTypedDataParameters,
type UseVerifyTypedDataReturnType,
useSignDelegation,
type UseSignDelegationParameters,
type UseSignDelegationReturnType,
// Contracts
useDeployContract,
type UseDeployContractParameters,
Expand All @@ -141,6 +156,9 @@ export {
useContractEvents,
type UseContractEventsParameters,
type UseContractEventsReturnType,
useCompileContract,
type UseCompileContractParameters,
type UseCompileContractReturnType,
// AENS
usePreclaimName,
type UsePreclaimNameParameters,
Expand All @@ -160,6 +178,9 @@ export {
useResolveName,
type UseResolveNameParameters,
type UseResolveNameReturnType,
useNameEntry,
type UseNameEntryParameters,
type UseNameEntryReturnType,
// Oracles
useRegisterOracle,
type UseRegisterOracleParameters,
Expand Down
5 changes: 4 additions & 1 deletion pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions site/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ function coreSidebar(): DefaultTheme.SidebarItem[] {
items: [
{ text: 'Configuration', link: '/core/configuration' },
{ text: 'Networks', link: '/core/networks' },
{ text: 'Connectors', link: '/core/guides/connectors' },
{ text: 'Multi-Account', link: '/core/guides/multi-account' },
{ text: 'AENS Names', link: '/core/guides/aens' },
{ text: 'Sophia Contracts', link: '/core/guides/contracts' },
Expand All @@ -90,6 +91,18 @@ function coreSidebar(): DefaultTheme.SidebarItem[] {
{ text: 'createConnector', link: '/core/api/createConnector' },
],
},
{
text: 'Connectors',
items: [
{ text: 'superhero', link: '/core/api/connectors/superhero' },
{ text: 'iframe', link: '/core/api/connectors/iframe' },
{ text: 'webExtension', link: '/core/api/connectors/webExtension' },
{ text: 'ledger', link: '/core/api/connectors/ledger' },
{ text: 'metamaskSnap', link: '/core/api/connectors/metamaskSnap' },
{ text: 'memory', link: '/core/api/connectors/memory' },
{ text: 'walletDetect', link: '/core/api/connectors/walletDetect' },
],
},
{
text: 'Account & Wallet',
items: [
Expand Down
69 changes: 69 additions & 0 deletions site/core/api/connectors/iframe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# iframe

For dApps embedded in an iframe that talk to a wallet in the parent (or another) window via `postMessage`.

## Import

```typescript
import { iframe } from '@growae/reactive/connectors'
```

## Usage

Parent hosts the wallet; the dApp runs inside `<iframe src="https://your-dapp">` and targets the parent window:

```typescript
import { createConfig } from '@growae/reactive'
import { testnet } from '@growae/reactive/networks'
import { iframe } from '@growae/reactive/connectors'

const config = createConfig({
networks: [testnet],
connectors: [
iframe({
name: 'Embedded dApp',
target: window.parent,
origin: 'https://wallet.example',
}),
],
})
```

## Parameters

### name

- **Type:** `string`
- **Default:** `'Reactive dApp'`

Handshake name for `WalletConnectorFrame.connect`.

### target

- **Type:** `Window`
- **Default:** `window.parent` in the browser

Window that owns the wallet side of the channel.

### origin

- **Type:** `string`

Expected wallet origin for validation on the message connection (recommended in production).

### debug

- **Type:** `boolean`
- **Default:** `false`

Debug logging for the underlying connection.

## Connector Details (type, id, capabilities)

| Field | Value |
| ----- | ----- |
| **type** | `'iframe'` |
| **id** | `'iframe'` |
| **name** | `'Iframe Wallet'` |

**Transport / signing:** `WalletConnectorFrame` + `BrowserWindowMessageConnection` to `target`; subscribes to account and network changes; `signTransaction`, `signMessage`.
Loading
Loading