@multiplatform.one/web3 7.23.1 → 7.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -11
- package/dist/cjs/clients/evm.cjs +299 -11
- package/dist/cjs/clients/evm.native.js +500 -12
- package/dist/cjs/clients/evm.native.js.map +1 -1
- package/dist/cjs/clients/index.cjs +5 -0
- package/dist/cjs/clients/index.native.js +5 -0
- package/dist/cjs/clients/index.native.js.map +1 -1
- package/dist/cjs/clients/solana.cjs +39 -21
- package/dist/cjs/clients/solana.native.js +48 -23
- package/dist/cjs/clients/solana.native.js.map +1 -1
- package/dist/cjs/connectkit/GpgProvider.cjs +44 -0
- package/dist/cjs/connectkit/GpgProvider.native.js +51 -0
- package/dist/cjs/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/EthereumAdapter.cjs +6 -15
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/cjs/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SolanaAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/adapters/SuiAdapter.cjs +5 -14
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/cjs/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/cjs/connectkit/connectors/createWalletMessage.cjs +2 -2
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js +2 -2
- package/dist/cjs/connectkit/connectors/createWalletMessage.native.js.map +1 -1
- package/dist/cjs/connectkit/index.cjs +4 -3
- package/dist/cjs/connectkit/index.native.js +4 -3
- package/dist/cjs/connectkit/index.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/cjs/connectkit/siwe/SIWEProvider.cjs +18 -3
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js +18 -3
- package/dist/cjs/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/keycloak/KeycloakWalletLogin.cjs +255 -0
- package/dist/cjs/keycloak/KeycloakWalletLogin.native.js +33 -0
- package/dist/cjs/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/cjs/keycloak/browserFlow.cjs +83 -0
- package/dist/cjs/keycloak/browserFlow.native.js +90 -0
- package/dist/cjs/keycloak/browserFlow.native.js.map +1 -0
- package/dist/cjs/keycloak/device.cjs +36 -0
- package/dist/cjs/keycloak/device.native.js +45 -0
- package/dist/cjs/keycloak/device.native.js.map +1 -0
- package/dist/cjs/keycloak/directGrant.cjs +189 -0
- package/dist/cjs/keycloak/directGrant.native.js +233 -0
- package/dist/cjs/keycloak/directGrant.native.js.map +1 -0
- package/dist/cjs/keycloak/iife.cjs +4 -0
- package/dist/cjs/keycloak/iife.native.js +7 -0
- package/dist/cjs/keycloak/iife.native.js.map +1 -0
- package/dist/cjs/keycloak/index.cjs +53 -0
- package/dist/cjs/keycloak/index.native.js +56 -0
- package/dist/cjs/keycloak/index.native.js.map +1 -0
- package/dist/cjs/keycloak/keycloakWallet.cjs +214 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js +285 -0
- package/dist/cjs/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/cjs/keycloak/mount.cjs +53 -0
- package/dist/cjs/keycloak/mount.native.js +33 -0
- package/dist/cjs/keycloak/mount.native.js.map +1 -0
- package/dist/cjs/keycloak/registerWallet.cjs +74 -0
- package/dist/cjs/keycloak/registerWallet.native.js +81 -0
- package/dist/cjs/keycloak/registerWallet.native.js.map +1 -0
- package/dist/cjs/keycloak/types.cjs +46 -0
- package/dist/cjs/keycloak/types.native.js +179 -0
- package/dist/cjs/keycloak/types.native.js.map +1 -0
- package/dist/cjs/keycloak/useDirectLogin.cjs +57 -0
- package/dist/cjs/keycloak/useDirectLogin.native.js +77 -0
- package/dist/cjs/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/cjs/keycloak/useWalletLogin.cjs +97 -0
- package/dist/cjs/keycloak/useWalletLogin.native.js +33 -0
- package/dist/cjs/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/cjs/message/buildWalletMessage.cjs +113 -0
- package/dist/cjs/message/buildWalletMessage.native.js +121 -0
- package/dist/cjs/message/buildWalletMessage.native.js.map +1 -0
- package/dist/cjs/message/index.cjs +29 -0
- package/dist/cjs/message/index.native.js +32 -0
- package/dist/cjs/message/index.native.js.map +1 -0
- package/dist/cjs/providers/WalletProvider.cjs +8 -2
- package/dist/cjs/siws/message.cjs +5 -16
- package/dist/cjs/siws/message.native.js +6 -16
- package/dist/cjs/siws/message.native.js.map +1 -1
- package/dist/cjs/solana.native.js.map +1 -1
- package/dist/esm/clients/evm.mjs +295 -12
- package/dist/esm/clients/evm.mjs.map +1 -1
- package/dist/esm/clients/evm.native.js +496 -13
- package/dist/esm/clients/evm.native.js.map +1 -1
- package/dist/esm/clients/index.mjs +2 -2
- package/dist/esm/clients/index.mjs.map +1 -1
- package/dist/esm/clients/index.native.js +2 -2
- package/dist/esm/clients/index.native.js.map +1 -1
- package/dist/esm/clients/solana.mjs +39 -21
- package/dist/esm/clients/solana.mjs.map +1 -1
- package/dist/esm/clients/solana.native.js +48 -23
- package/dist/esm/clients/solana.native.js.map +1 -1
- package/dist/esm/connectkit/GpgProvider.mjs +19 -0
- package/dist/esm/connectkit/GpgProvider.mjs.map +1 -0
- package/dist/esm/connectkit/GpgProvider.native.js +23 -0
- package/dist/esm/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/EthereumAdapter.mjs +6 -15
- package/dist/esm/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/esm/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs +5 -14
- package/dist/esm/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/esm/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.mjs +1 -1
- package/dist/esm/connectkit/connectors/createWalletMessage.native.js +1 -1
- package/dist/esm/connectkit/index.mjs +3 -2
- package/dist/esm/connectkit/index.mjs.map +1 -1
- package/dist/esm/connectkit/index.native.js +3 -2
- package/dist/esm/connectkit/index.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEContext.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs +19 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js +19 -4
- package/dist/esm/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keycloak/KeycloakWalletLogin.mjs +218 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.mjs.map +1 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.native.js +5 -0
- package/dist/esm/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/esm/keycloak/browserFlow.mjs +58 -0
- package/dist/esm/keycloak/browserFlow.mjs.map +1 -0
- package/dist/esm/keycloak/browserFlow.native.js +62 -0
- package/dist/esm/keycloak/browserFlow.native.js.map +1 -0
- package/dist/esm/keycloak/device.mjs +10 -0
- package/dist/esm/keycloak/device.mjs.map +1 -0
- package/dist/esm/keycloak/device.native.js +16 -0
- package/dist/esm/keycloak/device.native.js.map +1 -0
- package/dist/esm/keycloak/directGrant.mjs +164 -0
- package/dist/esm/keycloak/directGrant.mjs.map +1 -0
- package/dist/esm/keycloak/directGrant.native.js +205 -0
- package/dist/esm/keycloak/directGrant.native.js.map +1 -0
- package/dist/esm/keycloak/iife.mjs +5 -0
- package/dist/esm/keycloak/iife.mjs.map +1 -0
- package/dist/esm/keycloak/iife.native.js +5 -0
- package/dist/esm/keycloak/iife.native.js.map +1 -0
- package/dist/esm/keycloak/index.mjs +13 -0
- package/dist/esm/keycloak/index.mjs.map +1 -0
- package/dist/esm/keycloak/index.native.js +13 -0
- package/dist/esm/keycloak/index.native.js.map +1 -0
- package/dist/esm/keycloak/keycloakWallet.mjs +186 -0
- package/dist/esm/keycloak/keycloakWallet.mjs.map +1 -0
- package/dist/esm/keycloak/keycloakWallet.native.js +254 -0
- package/dist/esm/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/esm/keycloak/mount.mjs +28 -0
- package/dist/esm/keycloak/mount.mjs.map +1 -0
- package/dist/esm/keycloak/mount.native.js +5 -0
- package/dist/esm/keycloak/mount.native.js.map +1 -0
- package/dist/esm/keycloak/registerWallet.mjs +49 -0
- package/dist/esm/keycloak/registerWallet.mjs.map +1 -0
- package/dist/esm/keycloak/registerWallet.native.js +53 -0
- package/dist/esm/keycloak/registerWallet.native.js.map +1 -0
- package/dist/esm/keycloak/types.mjs +20 -0
- package/dist/esm/keycloak/types.mjs.map +1 -0
- package/dist/esm/keycloak/types.native.js +150 -0
- package/dist/esm/keycloak/types.native.js.map +1 -0
- package/dist/esm/keycloak/useDirectLogin.mjs +32 -0
- package/dist/esm/keycloak/useDirectLogin.mjs.map +1 -0
- package/dist/esm/keycloak/useDirectLogin.native.js +49 -0
- package/dist/esm/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/esm/keycloak/useWalletLogin.mjs +72 -0
- package/dist/esm/keycloak/useWalletLogin.mjs.map +1 -0
- package/dist/esm/keycloak/useWalletLogin.native.js +5 -0
- package/dist/esm/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/esm/message/buildWalletMessage.mjs +87 -0
- package/dist/esm/message/buildWalletMessage.mjs.map +1 -0
- package/dist/esm/message/buildWalletMessage.native.js +92 -0
- package/dist/esm/message/buildWalletMessage.native.js.map +1 -0
- package/dist/esm/message/index.mjs +3 -0
- package/dist/esm/message/index.mjs.map +1 -0
- package/dist/esm/message/index.native.js +3 -0
- package/dist/esm/message/index.native.js.map +1 -0
- package/dist/esm/providers/WalletProvider.mjs +9 -3
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/siws/message.mjs +5 -16
- package/dist/esm/siws/message.mjs.map +1 -1
- package/dist/esm/siws/message.native.js +6 -16
- package/dist/esm/siws/message.native.js.map +1 -1
- package/dist/esm/solana.mjs.map +1 -1
- package/dist/esm/solana.native.js.map +1 -1
- package/dist/jsx/clients/evm.mjs +295 -12
- package/dist/jsx/clients/evm.mjs.map +1 -1
- package/dist/jsx/clients/evm.native.js +500 -12
- package/dist/jsx/clients/evm.native.js.map +1 -1
- package/dist/jsx/clients/index.mjs +2 -2
- package/dist/jsx/clients/index.mjs.map +1 -1
- package/dist/jsx/clients/index.native.js +5 -0
- package/dist/jsx/clients/index.native.js.map +1 -1
- package/dist/jsx/clients/solana.mjs +39 -21
- package/dist/jsx/clients/solana.mjs.map +1 -1
- package/dist/jsx/clients/solana.native.js +48 -23
- package/dist/jsx/clients/solana.native.js.map +1 -1
- package/dist/jsx/connectkit/GpgProvider.mjs +19 -0
- package/dist/jsx/connectkit/GpgProvider.mjs.map +1 -0
- package/dist/jsx/connectkit/GpgProvider.native.js +51 -0
- package/dist/jsx/connectkit/GpgProvider.native.js.map +1 -0
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/BitcoinAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs +6 -15
- package/dist/jsx/connectkit/adapters/EthereumAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js +7 -16
- package/dist/jsx/connectkit/adapters/EthereumAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/SolanaAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/SolanaAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs +5 -14
- package/dist/jsx/connectkit/adapters/SuiAdapter.mjs.map +1 -1
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js +5 -15
- package/dist/jsx/connectkit/adapters/SuiAdapter.native.js.map +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.mjs +1 -1
- package/dist/jsx/connectkit/connectors/createWalletMessage.native.js +2 -2
- package/dist/jsx/connectkit/index.mjs +3 -2
- package/dist/jsx/connectkit/index.mjs.map +1 -1
- package/dist/jsx/connectkit/index.native.js +4 -3
- package/dist/jsx/connectkit/index.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEContext.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEContext.native.js.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs +19 -4
- package/dist/jsx/connectkit/siwe/SIWEProvider.mjs.map +1 -1
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js +18 -3
- package/dist/jsx/connectkit/siwe/SIWEProvider.native.js.map +1 -1
- package/dist/jsx/index.js +1 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +1 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +1 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/keycloak/KeycloakWalletLogin.mjs +218 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.native.js +33 -0
- package/dist/jsx/keycloak/KeycloakWalletLogin.native.js.map +1 -0
- package/dist/jsx/keycloak/browserFlow.mjs +58 -0
- package/dist/jsx/keycloak/browserFlow.mjs.map +1 -0
- package/dist/jsx/keycloak/browserFlow.native.js +90 -0
- package/dist/jsx/keycloak/browserFlow.native.js.map +1 -0
- package/dist/jsx/keycloak/device.mjs +10 -0
- package/dist/jsx/keycloak/device.mjs.map +1 -0
- package/dist/jsx/keycloak/device.native.js +45 -0
- package/dist/jsx/keycloak/device.native.js.map +1 -0
- package/dist/jsx/keycloak/directGrant.mjs +164 -0
- package/dist/jsx/keycloak/directGrant.mjs.map +1 -0
- package/dist/jsx/keycloak/directGrant.native.js +233 -0
- package/dist/jsx/keycloak/directGrant.native.js.map +1 -0
- package/dist/jsx/keycloak/iife.mjs +5 -0
- package/dist/jsx/keycloak/iife.mjs.map +1 -0
- package/dist/jsx/keycloak/iife.native.js +7 -0
- package/dist/jsx/keycloak/iife.native.js.map +1 -0
- package/dist/jsx/keycloak/index.mjs +13 -0
- package/dist/jsx/keycloak/index.mjs.map +1 -0
- package/dist/jsx/keycloak/index.native.js +56 -0
- package/dist/jsx/keycloak/index.native.js.map +1 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs +186 -0
- package/dist/jsx/keycloak/keycloakWallet.mjs.map +1 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js +285 -0
- package/dist/jsx/keycloak/keycloakWallet.native.js.map +1 -0
- package/dist/jsx/keycloak/mount.mjs +28 -0
- package/dist/jsx/keycloak/mount.mjs.map +1 -0
- package/dist/jsx/keycloak/mount.native.js +33 -0
- package/dist/jsx/keycloak/mount.native.js.map +1 -0
- package/dist/jsx/keycloak/registerWallet.mjs +49 -0
- package/dist/jsx/keycloak/registerWallet.mjs.map +1 -0
- package/dist/jsx/keycloak/registerWallet.native.js +81 -0
- package/dist/jsx/keycloak/registerWallet.native.js.map +1 -0
- package/dist/jsx/keycloak/types.mjs +20 -0
- package/dist/jsx/keycloak/types.mjs.map +1 -0
- package/dist/jsx/keycloak/types.native.js +179 -0
- package/dist/jsx/keycloak/types.native.js.map +1 -0
- package/dist/jsx/keycloak/useDirectLogin.mjs +32 -0
- package/dist/jsx/keycloak/useDirectLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/useDirectLogin.native.js +77 -0
- package/dist/jsx/keycloak/useDirectLogin.native.js.map +1 -0
- package/dist/jsx/keycloak/useWalletLogin.mjs +72 -0
- package/dist/jsx/keycloak/useWalletLogin.mjs.map +1 -0
- package/dist/jsx/keycloak/useWalletLogin.native.js +33 -0
- package/dist/jsx/keycloak/useWalletLogin.native.js.map +1 -0
- package/dist/jsx/message/buildWalletMessage.mjs +87 -0
- package/dist/jsx/message/buildWalletMessage.mjs.map +1 -0
- package/dist/jsx/message/buildWalletMessage.native.js +121 -0
- package/dist/jsx/message/buildWalletMessage.native.js.map +1 -0
- package/dist/jsx/message/index.mjs +3 -0
- package/dist/jsx/message/index.mjs.map +1 -0
- package/dist/jsx/message/index.native.js +32 -0
- package/dist/jsx/message/index.native.js.map +1 -0
- package/dist/jsx/providers/WalletProvider.mjs +9 -3
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/siws/message.mjs +5 -16
- package/dist/jsx/siws/message.mjs.map +1 -1
- package/dist/jsx/siws/message.native.js +6 -16
- package/dist/jsx/siws/message.native.js.map +1 -1
- package/dist/jsx/solana.mjs.map +1 -1
- package/dist/jsx/solana.native.js.map +1 -1
- package/dist/keycloak/login.iife.js +3604 -0
- package/package.json +27 -8
- package/src/clients/evm.spec.ts +644 -10
- package/src/clients/evm.ts +498 -10
- package/src/clients/index.ts +8 -0
- package/src/clients/solana.spec.ts +116 -0
- package/src/clients/solana.ts +51 -31
- package/src/connectkit/GpgProvider.tsx +16 -0
- package/src/connectkit/adapters/BitcoinAdapter.ts +5 -16
- package/src/connectkit/adapters/EthereumAdapter.ts +6 -17
- package/src/connectkit/adapters/SolanaAdapter.ts +5 -16
- package/src/connectkit/adapters/SuiAdapter.ts +5 -16
- package/src/connectkit/connectors/createWalletMessage.ts +1 -1
- package/src/connectkit/index.ts +2 -6
- package/src/connectkit/openConnector/modal.spec.tsx +1 -1
- package/src/connectkit/siwe/SIWEContext.tsx +6 -2
- package/src/connectkit/siwe/SIWEProvider.tsx +22 -5
- package/src/index.ts +3 -0
- package/src/keycloak/KeycloakWalletLogin.native.tsx +7 -0
- package/src/keycloak/KeycloakWalletLogin.spec.tsx +168 -0
- package/src/keycloak/KeycloakWalletLogin.tsx +251 -0
- package/src/keycloak/browserFlow.spec.ts +108 -0
- package/src/keycloak/browserFlow.ts +84 -0
- package/src/keycloak/device.ts +17 -0
- package/src/keycloak/directGrant.spec.ts +331 -0
- package/src/keycloak/directGrant.ts +214 -0
- package/src/keycloak/iife.ts +3 -0
- package/src/keycloak/index.ts +44 -0
- package/src/keycloak/keycloakWallet.spec.ts +216 -0
- package/src/keycloak/keycloakWallet.ts +275 -0
- package/src/keycloak/mount.native.ts +11 -0
- package/src/keycloak/mount.tsx +45 -0
- package/src/keycloak/nonceReset.spec.tsx +205 -0
- package/src/keycloak/registerWallet.spec.ts +88 -0
- package/src/keycloak/registerWallet.ts +59 -0
- package/src/keycloak/types.ts +66 -0
- package/src/keycloak/useDirectLogin.spec.tsx +112 -0
- package/src/keycloak/useDirectLogin.ts +74 -0
- package/src/keycloak/useWalletLogin.native.ts +7 -0
- package/src/keycloak/useWalletLogin.ts +99 -0
- package/src/message/buildWalletMessage.spec.ts +291 -0
- package/src/message/buildWalletMessage.ts +150 -0
- package/src/message/index.ts +8 -0
- package/src/providers/WalletProvider.tsx +15 -2
- package/src/siws/message.ts +3 -22
- package/src/solana.ts +1 -0
- package/types/clients/evm.d.ts +144 -2
- package/types/clients/evm.d.ts.map +1 -1
- package/types/clients/index.d.ts +1 -1
- package/types/clients/index.d.ts.map +1 -1
- package/types/clients/solana.d.ts +14 -5
- package/types/clients/solana.d.ts.map +1 -1
- package/types/connectkit/GpgProvider.d.ts +10 -0
- package/types/connectkit/GpgProvider.d.ts.map +1 -0
- package/types/connectkit/adapters/BitcoinAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/EthereumAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SolanaAdapter.d.ts.map +1 -1
- package/types/connectkit/adapters/SuiAdapter.d.ts.map +1 -1
- package/types/connectkit/connectors/createWalletMessage.d.ts +1 -1
- package/types/connectkit/connectors/createWalletMessage.d.ts.map +1 -1
- package/types/connectkit/index.d.ts +3 -2
- package/types/connectkit/index.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEContext.d.ts +2 -1
- package/types/connectkit/siwe/SIWEContext.d.ts.map +1 -1
- package/types/connectkit/siwe/SIWEProvider.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/keycloak/KeycloakWalletLogin.d.ts +45 -0
- package/types/keycloak/KeycloakWalletLogin.d.ts.map +1 -0
- package/types/keycloak/KeycloakWalletLogin.native.d.ts +4 -0
- package/types/keycloak/KeycloakWalletLogin.native.d.ts.map +1 -0
- package/types/keycloak/browserFlow.d.ts +27 -0
- package/types/keycloak/browserFlow.d.ts.map +1 -0
- package/types/keycloak/device.d.ts +14 -0
- package/types/keycloak/device.d.ts.map +1 -0
- package/types/keycloak/directGrant.d.ts +43 -0
- package/types/keycloak/directGrant.d.ts.map +1 -0
- package/types/keycloak/iife.d.ts +2 -0
- package/types/keycloak/iife.d.ts.map +1 -0
- package/types/keycloak/index.d.ts +12 -0
- package/types/keycloak/index.d.ts.map +1 -0
- package/types/keycloak/keycloakWallet.d.ts +120 -0
- package/types/keycloak/keycloakWallet.d.ts.map +1 -0
- package/types/keycloak/mount.d.ts +16 -0
- package/types/keycloak/mount.d.ts.map +1 -0
- package/types/keycloak/mount.native.d.ts +5 -0
- package/types/keycloak/mount.native.d.ts.map +1 -0
- package/types/keycloak/registerWallet.d.ts +22 -0
- package/types/keycloak/registerWallet.d.ts.map +1 -0
- package/types/keycloak/types.d.ts +50 -0
- package/types/keycloak/types.d.ts.map +1 -0
- package/types/keycloak/useDirectLogin.d.ts +29 -0
- package/types/keycloak/useDirectLogin.d.ts.map +1 -0
- package/types/keycloak/useWalletLogin.d.ts +26 -0
- package/types/keycloak/useWalletLogin.d.ts.map +1 -0
- package/types/keycloak/useWalletLogin.native.d.ts +4 -0
- package/types/keycloak/useWalletLogin.native.d.ts.map +1 -0
- package/types/message/buildWalletMessage.d.ts +46 -0
- package/types/message/buildWalletMessage.d.ts.map +1 -0
- package/types/message/index.d.ts +2 -0
- package/types/message/index.d.ts.map +1 -0
- package/types/providers/WalletProvider.d.ts +8 -1
- package/types/providers/WalletProvider.d.ts.map +1 -1
- package/types/siws/message.d.ts.map +1 -1
- package/types/solana.d.ts +1 -1
- package/types/solana.d.ts.map +1 -1
- package/dist/cjs/connectkit/adapters/messages.cjs +0 -73
- package/dist/cjs/connectkit/adapters/messages.native.js +0 -79
- package/dist/cjs/connectkit/adapters/messages.native.js.map +0 -1
- package/dist/esm/connectkit/adapters/messages.mjs +0 -48
- package/dist/esm/connectkit/adapters/messages.mjs.map +0 -1
- package/dist/esm/connectkit/adapters/messages.native.js +0 -51
- package/dist/esm/connectkit/adapters/messages.native.js.map +0 -1
- package/dist/jsx/connectkit/adapters/messages.mjs +0 -48
- package/dist/jsx/connectkit/adapters/messages.mjs.map +0 -1
- package/dist/jsx/connectkit/adapters/messages.native.js +0 -79
- package/dist/jsx/connectkit/adapters/messages.native.js.map +0 -1
- package/src/connectkit/adapters/messages.ts +0 -84
- package/types/connectkit/adapters/messages.d.ts +0 -16
- package/types/connectkit/adapters/messages.d.ts.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { SIWEConfig } from "../connectkit/siwe/SIWEContext";
|
|
2
|
+
import { type BrowserFlowOptions } from "./browserFlow";
|
|
3
|
+
import { type DirectGrant, type DirectGrantOptions } from "./directGrant";
|
|
4
|
+
import { type RegisterWalletOptions, type WalletRegistration } from "./registerWallet";
|
|
5
|
+
import { type KeycloakWalletResource, type OnSign } from "./types";
|
|
6
|
+
export interface KeycloakWalletOptions {
|
|
7
|
+
/** Keycloak base URL, e.g. `https://account.example.com` or `http://localhost:8080/auth`. */
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
realm: string;
|
|
10
|
+
/** Defaults to `siww` (SHC Keycloak); mpo's own SPI mounts `wallet`. */
|
|
11
|
+
resource?: KeycloakWalletResource;
|
|
12
|
+
/**
|
|
13
|
+
* Domain written into every sign-in message. Defaults to the page host. A
|
|
14
|
+
* WebView or native caller passes the hosted page's host the realm allows.
|
|
15
|
+
*/
|
|
16
|
+
domain?: string;
|
|
17
|
+
/** URI written into every sign-in message. Defaults to the page origin or `https://<domain>`. */
|
|
18
|
+
uri?: string;
|
|
19
|
+
fetch?: typeof fetch;
|
|
20
|
+
}
|
|
21
|
+
export interface BrowserLoginUrlOptions {
|
|
22
|
+
/**
|
|
23
|
+
* A public client with `standardFlowEnabled` and `redirectUri` registered
|
|
24
|
+
* exactly, no wildcard. A direct-grant client such as mpo's `siwe-public`
|
|
25
|
+
* or `siws-public` (`standardFlowEnabled: false`) is refused; mpo's realm
|
|
26
|
+
* carries `wallet-onboarding` for this.
|
|
27
|
+
*/
|
|
28
|
+
clientId: string;
|
|
29
|
+
/** Where Keycloak sends the browser back: the app's deep link or page. */
|
|
30
|
+
redirectUri: string;
|
|
31
|
+
/** Default `openid`. */
|
|
32
|
+
scope?: string | string[];
|
|
33
|
+
}
|
|
34
|
+
export interface BrowserLogin {
|
|
35
|
+
url: string;
|
|
36
|
+
/** Keep it, and accept the redirect back only when its `state` matches. */
|
|
37
|
+
state: string;
|
|
38
|
+
/** The PKCE S256 verifier behind the URL's `code_challenge`, for the code exchange. */
|
|
39
|
+
codeVerifier: string;
|
|
40
|
+
}
|
|
41
|
+
export interface KeycloakWallet {
|
|
42
|
+
readonly baseUrl: string;
|
|
43
|
+
readonly realm: string;
|
|
44
|
+
readonly resource: KeycloakWalletResource;
|
|
45
|
+
readonly realmUrl: string;
|
|
46
|
+
readonly resourceUrl: string;
|
|
47
|
+
readonly tokenUrl: string;
|
|
48
|
+
/**
|
|
49
|
+
* A server nonce, shared by every caller until `resetNonce()`. Each `/nonce`
|
|
50
|
+
* call replaces the previous nonce server side (and rotates its cookie), so
|
|
51
|
+
* two flows fetching their own would leave one signing a dead nonce.
|
|
52
|
+
*/
|
|
53
|
+
getNonce(): Promise<string>;
|
|
54
|
+
/** Drop the shared nonce (the server consumed or rotated it) and tell every subscriber. */
|
|
55
|
+
resetNonce(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Call `listener` on every `resetNonce()`. SIWEProvider and GpgProvider
|
|
58
|
+
* subscribe through the configs below and refetch their cached copy, so a
|
|
59
|
+
* second sign-in never signs a nonce the server has already dropped.
|
|
60
|
+
*/
|
|
61
|
+
subscribeNonceReset(listener: () => void): () => void;
|
|
62
|
+
/** `SIWEConfig.createMessage`, with this wallet's domain and uri. */
|
|
63
|
+
createMessage(args: {
|
|
64
|
+
nonce: string;
|
|
65
|
+
address: string;
|
|
66
|
+
chainId: number;
|
|
67
|
+
}): string;
|
|
68
|
+
/** `GpgConfig.buildMessage`, with this wallet's domain and uri. */
|
|
69
|
+
gpgMessage(args: {
|
|
70
|
+
nonce: string;
|
|
71
|
+
}): string;
|
|
72
|
+
/** Props for `<SIWEProvider>` that sign through `onSign` (a browser flow, direct grant or registration). */
|
|
73
|
+
siweConfig(onSign: OnSign): SIWEConfig;
|
|
74
|
+
/** Props for `<GpgProvider>` that sign through `onSign`. */
|
|
75
|
+
gpgConfig(onSign: OnSign): {
|
|
76
|
+
getNonce: () => Promise<string>;
|
|
77
|
+
buildMessage: (args: {
|
|
78
|
+
nonce: string;
|
|
79
|
+
}) => string;
|
|
80
|
+
onSign: OnSign;
|
|
81
|
+
subscribeNonceReset: (listener: () => void) => () => void;
|
|
82
|
+
};
|
|
83
|
+
browserFlow(opts?: BrowserFlowOptions): OnSign;
|
|
84
|
+
directGrant(opts: DirectGrantOptions): DirectGrant;
|
|
85
|
+
/**
|
|
86
|
+
* The realm's authorization-code login, with a fresh `state` and PKCE S256
|
|
87
|
+
* pair. Open `url` in the system browser or a WebView when a direct grant
|
|
88
|
+
* rejects with `ProfileIncompleteError`: Keycloak's own login runs the
|
|
89
|
+
* pending required actions (the profile form), and the next direct grant
|
|
90
|
+
* succeeds.
|
|
91
|
+
*/
|
|
92
|
+
browserLoginUrl(opts: BrowserLoginUrlOptions): BrowserLogin;
|
|
93
|
+
registerWallet(opts: RegisterWalletOptions): WalletRegistration;
|
|
94
|
+
/** `fetch` against Keycloak carrying the nonce session cookie. */
|
|
95
|
+
request(url: string, init?: RequestInit): Promise<Response>;
|
|
96
|
+
}
|
|
97
|
+
/** RFC 7636 S256: base64url(SHA-256(ASCII(verifier))). */
|
|
98
|
+
export declare function pkceChallenge(codeVerifier: string): string;
|
|
99
|
+
/** `username`/`password` for a signature over `message`, base64 done without btoa so it runs on Hermes. */
|
|
100
|
+
export declare function toCredentials(args: {
|
|
101
|
+
signature: string;
|
|
102
|
+
message: string;
|
|
103
|
+
}): {
|
|
104
|
+
username: string;
|
|
105
|
+
password: string;
|
|
106
|
+
message: string;
|
|
107
|
+
};
|
|
108
|
+
export declare function keycloakWallet(options: KeycloakWalletOptions): KeycloakWallet;
|
|
109
|
+
/**
|
|
110
|
+
* Keycloak base URL and realm of a page Keycloak serves (`<base>/realms/<realm>/...`),
|
|
111
|
+
* or undefined off such a page.
|
|
112
|
+
*/
|
|
113
|
+
export declare function deriveKeycloakFromLocation(location?: {
|
|
114
|
+
origin: string;
|
|
115
|
+
pathname: string;
|
|
116
|
+
} | undefined): {
|
|
117
|
+
baseUrl: string;
|
|
118
|
+
realm: string;
|
|
119
|
+
} | undefined;
|
|
120
|
+
//# sourceMappingURL=keycloakWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keycloakWallet.d.ts","sourceRoot":"","sources":["../../src/keycloak/keycloakWallet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAuB,KAAK,sBAAsB,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAExF,MAAM,WAAW,qBAAqB;IACpC,6FAA6F;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iGAAiG;IACjG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,2FAA2F;IAC3F,UAAU,IAAI,IAAI,CAAC;IACnB;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACtD,qEAAqE;IACrE,aAAa,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IACjF,mEAAmE;IACnE,UAAU,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAC5C,4GAA4G;IAC5G,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IACvC,4DAA4D;IAC5D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG;QACzB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,YAAY,EAAE,CAAC,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,CAAC;QAClD,MAAM,EAAE,MAAM,CAAC;QACf,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;KAC3D,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC/C,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAAC;IACnD;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,YAAY,CAAC;IAC5D,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,kBAAkB,CAAC;IAChE,kEAAkE;IAClE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7D;AA2BD,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;EAMzE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAwH7E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,GAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAEvC,GACT;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIhD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Config } from "wagmi";
|
|
2
|
+
import { type KeycloakWalletLoginProps } from "./KeycloakWalletLogin";
|
|
3
|
+
export interface MountedKeycloakWalletLogin {
|
|
4
|
+
/** The wagmi config the login signs with. */
|
|
5
|
+
readonly config: Config;
|
|
6
|
+
unmount(): void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Render `<KeycloakWalletLogin>` into `target` under its own React root, so a
|
|
10
|
+
* Keycloak theme on another React (or none) can host it. Mounting an element
|
|
11
|
+
* that already holds one returns that one: a second root would fetch a second
|
|
12
|
+
* nonce and rotate the session cookie under the first. `unmount()` frees the
|
|
13
|
+
* element for a fresh mount.
|
|
14
|
+
*/
|
|
15
|
+
export declare function mount(target: string | Element, opts?: KeycloakWalletLoginProps): MountedKeycloakWalletLogin;
|
|
16
|
+
//# sourceMappingURL=mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/keycloak/mount.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAEL,KAAK,wBAAwB,EAE9B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,0BAA0B;IACzC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,IAAI,IAAI,CAAC;CACjB;AAID;;;;;;GAMG;AACH,wBAAgB,KAAK,CACnB,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,IAAI,GAAE,wBAA6B,GAClC,0BAA0B,CAkB5B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { KeycloakWalletLoginProps } from "./KeycloakWalletLogin";
|
|
2
|
+
import type { MountedKeycloakWalletLogin } from "./mount";
|
|
3
|
+
export type { MountedKeycloakWalletLogin };
|
|
4
|
+
export declare function mount(_target: string | Element, _opts?: KeycloakWalletLoginProps): MountedKeycloakWalletLogin;
|
|
5
|
+
//# sourceMappingURL=mount.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.native.d.ts","sourceRoot":"","sources":["../../src/keycloak/mount.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,YAAY,EAAE,0BAA0B,EAAE,CAAC;AAE3C,wBAAgB,KAAK,CACnB,OAAO,EAAE,MAAM,GAAG,OAAO,EACzB,KAAK,CAAC,EAAE,wBAAwB,GAC/B,0BAA0B,CAE5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { KeycloakWallet } from "./keycloakWallet";
|
|
2
|
+
import { type OnSign } from "./types";
|
|
3
|
+
export interface RegisterWalletOptions {
|
|
4
|
+
/** The signed-in user's access token, or a getter such as `directGrant(...).getAccessToken`. */
|
|
5
|
+
accessToken: string | (() => string | null | Promise<string | null>);
|
|
6
|
+
}
|
|
7
|
+
export interface WalletRegistration {
|
|
8
|
+
/** `onSign` for `<SIWEProvider>`: proves the connected wallet and binds it to the signed-in user. */
|
|
9
|
+
onSign: OnSign;
|
|
10
|
+
/**
|
|
11
|
+
* POST `<resource>/register`. `registered` is false when the wallet was
|
|
12
|
+
* already this user's; another user's wallet is a 409.
|
|
13
|
+
*/
|
|
14
|
+
register(args: {
|
|
15
|
+
message: string;
|
|
16
|
+
signature: string;
|
|
17
|
+
}): Promise<{
|
|
18
|
+
registered: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
export declare function createWalletRegistration(kc: KeycloakWallet, opts: RegisterWalletOptions): WalletRegistration;
|
|
22
|
+
//# sourceMappingURL=registerWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerWallet.d.ts","sourceRoot":"","sources":["../../src/keycloak/registerWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,gGAAgG;IAChG,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,kBAAkB;IACjC,qGAAqG;IACrG,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,qBAAqB,GAC1B,kBAAkB,CAqCpB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The REST resource the Keycloak wallet SPI mounts under `/realms/<realm>/`:
|
|
3
|
+
* `siww` on the SHC Keycloak, `wallet` on mpo's own SPI.
|
|
4
|
+
*/
|
|
5
|
+
export type KeycloakWalletResource = "siww" | "wallet";
|
|
6
|
+
/**
|
|
7
|
+
* What SIWEProvider and GpgProvider hand their `onSign`: `username` is the raw
|
|
8
|
+
* signature (or the GPG blob), `password` is base64(message).
|
|
9
|
+
*/
|
|
10
|
+
export interface WalletSignIn {
|
|
11
|
+
username: string;
|
|
12
|
+
password: string;
|
|
13
|
+
message: string;
|
|
14
|
+
}
|
|
15
|
+
export type OnSign = (credentials: WalletSignIn) => Promise<boolean>;
|
|
16
|
+
export interface KeycloakTokens {
|
|
17
|
+
accessToken: string;
|
|
18
|
+
refreshToken?: string;
|
|
19
|
+
idToken?: string;
|
|
20
|
+
tokenType: string;
|
|
21
|
+
scope?: string;
|
|
22
|
+
/** Epoch ms after which the access token is expired. */
|
|
23
|
+
expiresAt: number;
|
|
24
|
+
/** Epoch ms after which the refresh token is expired; absent for offline or non-expiring tokens. */
|
|
25
|
+
refreshExpiresAt?: number;
|
|
26
|
+
}
|
|
27
|
+
export declare class KeycloakWalletError extends Error {
|
|
28
|
+
readonly status: number;
|
|
29
|
+
readonly error?: string;
|
|
30
|
+
readonly errorDescription?: string;
|
|
31
|
+
constructor(message: string, status: number, details?: {
|
|
32
|
+
error?: string;
|
|
33
|
+
errorDescription?: string;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Keycloak accepted the wallet but the account has required actions left (a
|
|
38
|
+
* new user's profile form, terms, a verified email), which a direct grant
|
|
39
|
+
* cannot run: Keycloak answers 400 invalid_grant "Account is not fully set
|
|
40
|
+
* up". Send the user through the browser login once
|
|
41
|
+
* (`kc.browserLoginUrl(...)` in the system browser or a WebView) so Keycloak
|
|
42
|
+
* shows its own forms; the direct grant succeeds after that.
|
|
43
|
+
*/
|
|
44
|
+
export declare class ProfileIncompleteError extends KeycloakWalletError {
|
|
45
|
+
constructor(message: string, status: number, details?: {
|
|
46
|
+
error?: string;
|
|
47
|
+
errorDescription?: string;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/keycloak/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;gBAGjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;CAQ9D;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,mBAAmB;gBAE3D,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;CAK9D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { DirectGrant } from "./directGrant";
|
|
2
|
+
import { type KeycloakTokens } from "./types";
|
|
3
|
+
export type DirectLoginStatus = "idle" | "signing" | "signed-in" | "profile-incomplete" | "error";
|
|
4
|
+
export interface UseDirectLoginResult {
|
|
5
|
+
/**
|
|
6
|
+
* `profile-incomplete`: Keycloak took the wallet but the account has
|
|
7
|
+
* required actions left, and `error` is the `ProfileIncompleteError`. Open
|
|
8
|
+
* `kc.browserLoginUrl(...)` (system browser or WebView) so Keycloak's own
|
|
9
|
+
* forms run, then `signIn()` again.
|
|
10
|
+
*/
|
|
11
|
+
status: DirectLoginStatus;
|
|
12
|
+
tokens: KeycloakTokens | null;
|
|
13
|
+
error: Error | null;
|
|
14
|
+
/**
|
|
15
|
+
* Sign in with the connected wallet through SIWEProvider and exchange the
|
|
16
|
+
* signature for tokens. Resolves null when the wallet or Keycloak refused.
|
|
17
|
+
*/
|
|
18
|
+
signIn(): Promise<KeycloakTokens | null>;
|
|
19
|
+
refresh(): Promise<KeycloakTokens>;
|
|
20
|
+
signOut(): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Direct (browserless) wallet login: SIWEProvider signs, the grant trades the
|
|
24
|
+
* signature for Keycloak tokens. Mount it under
|
|
25
|
+
* `<SIWEProvider {...kc.siweConfig(grant.onSign)}>`; every login attempt resets
|
|
26
|
+
* the kc nonce, which refetches it in SIWEProvider and GpgProvider alike.
|
|
27
|
+
*/
|
|
28
|
+
export declare function useDirectLogin(grant: DirectGrant): UseDirectLoginResult;
|
|
29
|
+
//# sourceMappingURL=useDirectLogin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDirectLogin.d.ts","sourceRoot":"","sources":["../../src/keycloak/useDirectLogin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,oBAAoB,GAAG,OAAO,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzC,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAyCvE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StatusState } from "../connectkit/siwe/SIWEContext";
|
|
2
|
+
export interface UseWalletLoginOptions {
|
|
3
|
+
/** sessionStorage key of the pending-login mark. One per button on a page. */
|
|
4
|
+
intentKey?: string;
|
|
5
|
+
/** How long a connect started by `login()` may still drive the signature. Default 90 s. */
|
|
6
|
+
intentTtlMs?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface UseWalletLoginResult {
|
|
9
|
+
/** Connect if needed, then sign through SIWEProvider. One press, no Continue step. */
|
|
10
|
+
login(): Promise<void>;
|
|
11
|
+
status: StatusState;
|
|
12
|
+
isConnected: boolean;
|
|
13
|
+
address?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A wallet login button's behaviour. Pressing it while disconnected opens the
|
|
17
|
+
* connect modal, or on a phone with ConnectKit's `mobile.preferredConnector`
|
|
18
|
+
* that wallet straight away, so call `login()` synchronously in the click
|
|
19
|
+
* handler. The press is marked in sessionStorage (the wallet bounce can reload
|
|
20
|
+
* the page); once the wallet connects the signature starts by itself.
|
|
21
|
+
* Only a fresh mark drives it, so a wallet that reconnects on a later visit
|
|
22
|
+
* never signs unasked. A phone browser opens the wallet for a signature only
|
|
23
|
+
* from a tap, so without one the user presses again.
|
|
24
|
+
*/
|
|
25
|
+
export declare function useWalletLogin(opts?: UseWalletLoginOptions): UseWalletLoginResult;
|
|
26
|
+
//# sourceMappingURL=useWalletLogin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWalletLogin.d.ts","sourceRoot":"","sources":["../../src/keycloak/useWalletLogin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG1E,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,sFAAsF;IACtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuBD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,qBAA0B,GAAG,oBAAoB,CA6CrF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { UseWalletLoginOptions, UseWalletLoginResult } from "./useWalletLogin";
|
|
2
|
+
export type { UseWalletLoginOptions, UseWalletLoginResult };
|
|
3
|
+
export declare function useWalletLogin(_opts?: UseWalletLoginOptions): UseWalletLoginResult;
|
|
4
|
+
//# sourceMappingURL=useWalletLogin.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWalletLogin.native.d.ts","sourceRoot":"","sources":["../../src/keycloak/useWalletLogin.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEpF,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;AAE5D,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAElF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The signer families a wallet sign-in message can be built for. The Keycloak
|
|
3
|
+
* SPIs (SHC `siww`, mpo `wallet`) content-sniff exactly these headers.
|
|
4
|
+
*/
|
|
5
|
+
export type WalletMessageFamily = "eth" | "sol" | "sui" | "btc" | "gpg";
|
|
6
|
+
/** Ecosystem names the connectors use; accepted as aliases of the short family. */
|
|
7
|
+
export type WalletMessageEcosystem = "evm" | "solana" | "sui" | "bitcoin";
|
|
8
|
+
export type SignerFamily = WalletMessageFamily | WalletMessageEcosystem;
|
|
9
|
+
export interface WalletMessageOptions {
|
|
10
|
+
nonce: string;
|
|
11
|
+
/** Signer address. Required for every family except `gpg`, whose identity comes from the key. */
|
|
12
|
+
address?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Host the user signs in to, checked against the realm's frontend host and
|
|
15
|
+
* `siww.allowedDomains` / `wallet.allowedDomains`. Defaults to
|
|
16
|
+
* `window.location.host`; pass it explicitly from a WebView or native page,
|
|
17
|
+
* where that host is empty or not the one the realm allows.
|
|
18
|
+
*/
|
|
19
|
+
domain?: string;
|
|
20
|
+
/** Defaults to `window.location.origin`, or `https://<domain>` when the page has no origin. */
|
|
21
|
+
uri?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Defaults to the family's statement; `null` or `""` omits it. `eth` then
|
|
24
|
+
* keeps the empty line EIP-4361 puts in its place.
|
|
25
|
+
*/
|
|
26
|
+
statement?: string | null;
|
|
27
|
+
/** Defaults to now. */
|
|
28
|
+
issuedAt?: string;
|
|
29
|
+
/**
|
|
30
|
+
* `eth`: the chain id (default 1). Other families keep their fixed `Chain ID:`
|
|
31
|
+
* value (`solana:mainnet`, ...) unless given a string; a number there is a
|
|
32
|
+
* connector's synthetic chain id and is ignored.
|
|
33
|
+
*/
|
|
34
|
+
chainId?: number | string;
|
|
35
|
+
version?: string;
|
|
36
|
+
}
|
|
37
|
+
/** Map an ecosystem name (`evm`, `solana`, `bitcoin`) or a short family to the short family. */
|
|
38
|
+
export declare function toWalletMessageFamily(family: SignerFamily): WalletMessageFamily;
|
|
39
|
+
/**
|
|
40
|
+
* Build the sign-in message for one signer family. This is the only builder in
|
|
41
|
+
* mpo web3: EIP-4361 for `eth` (EIP-55 address, no optional fields), SIWS for
|
|
42
|
+
* `sol`, and the same envelope for `sui`, `btc` and `gpg`, in the exact bytes
|
|
43
|
+
* the Keycloak verifiers parse.
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildWalletMessage(family: SignerFamily, opts: WalletMessageOptions): string;
|
|
46
|
+
//# sourceMappingURL=buildWalletMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildWalletMessage.d.ts","sourceRoot":"","sources":["../../src/message/buildWalletMessage.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAExE,mFAAmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiDD,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,CAI/E;AAaD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAoC3F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { QueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { type SIWEConfig } from "../connectkit";
|
|
2
3
|
import type { PropsWithChildren } from "react";
|
|
3
4
|
import { type Web3Config } from "./walletConfig";
|
|
4
5
|
export interface WalletProviderProps extends PropsWithChildren {
|
|
5
6
|
config: Web3Config;
|
|
6
7
|
queryClient?: QueryClient;
|
|
8
|
+
/**
|
|
9
|
+
* Mounts a SIWEProvider around the ConnectKit modal, e.g.
|
|
10
|
+
* `kc.siweConfig(grant.onSign)` for `useDirectLogin`. It has to sit outside
|
|
11
|
+
* ConnectKitProvider, so a child cannot add its own.
|
|
12
|
+
*/
|
|
13
|
+
siwe?: SIWEConfig;
|
|
7
14
|
}
|
|
8
|
-
export declare function WalletProvider({ children, config: web3Config, queryClient, }: WalletProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function WalletProvider({ children, config: web3Config, queryClient, siwe, }: WalletProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
16
|
export { defaultChains } from "./walletConfig";
|
|
10
17
|
export { useWeb3Config, type Web3Config } from "./walletConfig";
|
|
11
18
|
//# sourceMappingURL=WalletProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAoC,KAAK,UAAU,EAAoB,MAAM,eAAe,CAAC;AAEpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK/C,OAAO,EAAE,KAAK,UAAU,EAAoC,MAAM,gBAAgB,CAAC;AAEnF,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAWD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,WAAgC,EAChC,IAAI,GACL,EAAE,mBAAmB,2CAyErB;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/siws/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/siws/message.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEnE"}
|
package/types/solana.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { connectSolanaWallet, findSolanaSigner, injectedSolanaSigner, solanaChainFromRpcUrl, solanaClient, solanaRpcUrls, standardSolanaSigner, transferSolInstruction, SolanaConfirmationError, type SolanaChain, type SolanaClient, type SolanaClientConfig, type SolanaCluster, type SolanaConfirmationFailure, type SolanaConfirmOptions, type SolanaSigner, type SolanaSubmission, } from "./clients/solana";
|
|
1
|
+
export { connectSolanaWallet, findSolanaSigner, injectedSolanaSigner, solanaChainFromRpcUrl, solanaClient, solanaRpcUrls, standardSolanaSigner, transferSolInstruction, SolanaConfirmationError, type SolanaChain, type SolanaClient, type SolanaClientConfig, type SolanaCluster, type SolanaCommitmentStatus, type SolanaConfirmationFailure, type SolanaConfirmOptions, type SolanaSigner, type SolanaSubmission, } from "./clients/solana";
|
|
2
2
|
export { useSolanaClient } from "./clients/useSolanaClient";
|
|
3
3
|
export { getSolanaWallets, getStandardWallets, type StandardWallet, type StandardWalletAccount, } from "./clients/walletStandard";
|
|
4
4
|
//# sourceMappingURL=solana.d.ts.map
|
package/types/solana.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var messages_exports = {};
|
|
24
|
-
__export(messages_exports, {
|
|
25
|
-
buildWalletMessage: () => buildWalletMessage
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(messages_exports);
|
|
28
|
-
var import_viem = require("viem");
|
|
29
|
-
const SPECS = {
|
|
30
|
-
evm: {
|
|
31
|
-
label: "Ethereum",
|
|
32
|
-
statement: "Sign in With Ethereum.",
|
|
33
|
-
chainIdLine: "1",
|
|
34
|
-
// moonstoneid's SiweMessage rejects a non-checksummed address.
|
|
35
|
-
normalize: a => (0, import_viem.getAddress)(a)
|
|
36
|
-
},
|
|
37
|
-
solana: {
|
|
38
|
-
label: "Solana",
|
|
39
|
-
statement: "Sign in With Solana.",
|
|
40
|
-
chainIdLine: "solana:mainnet"
|
|
41
|
-
},
|
|
42
|
-
sui: {
|
|
43
|
-
label: "Sui",
|
|
44
|
-
statement: "Sign in With Sui.",
|
|
45
|
-
chainIdLine: "sui:mainnet"
|
|
46
|
-
},
|
|
47
|
-
bitcoin: {
|
|
48
|
-
label: "Bitcoin",
|
|
49
|
-
statement: "Sign in With Bitcoin.",
|
|
50
|
-
chainIdLine: "bitcoin"
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
function buildWalletMessage(family, opts) {
|
|
54
|
-
const spec = SPECS[family];
|
|
55
|
-
const host = typeof window !== "undefined" ? window.location.host : "";
|
|
56
|
-
const origin = typeof window !== "undefined" ? window.location.origin : "";
|
|
57
|
-
const domain = opts.domain ?? host;
|
|
58
|
-
const uri = opts.uri ?? origin;
|
|
59
|
-
const issuedAt = opts.issuedAt ?? (/* @__PURE__ */new Date()).toISOString();
|
|
60
|
-
const statement = opts.statement ?? spec.statement;
|
|
61
|
-
const address = spec.normalize ? spec.normalize(opts.address) : opts.address;
|
|
62
|
-
const chainIdLine = family === "evm" ? String(opts.chainId ?? 1) : spec.chainIdLine;
|
|
63
|
-
return `${domain} wants you to sign in with your ${spec.label} account:
|
|
64
|
-
${address}
|
|
65
|
-
|
|
66
|
-
${statement}
|
|
67
|
-
|
|
68
|
-
URI: ${uri}
|
|
69
|
-
Version: 1
|
|
70
|
-
Chain ID: ${chainIdLine}
|
|
71
|
-
Nonce: ${opts.nonce}
|
|
72
|
-
Issued At: ${issuedAt}`;
|
|
73
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
25
|
-
var messages_exports = {};
|
|
26
|
-
__export(messages_exports, {
|
|
27
|
-
buildWalletMessage: () => buildWalletMessage
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(messages_exports);
|
|
30
|
-
var import_viem = require("viem");
|
|
31
|
-
var SPECS = {
|
|
32
|
-
evm: {
|
|
33
|
-
label: "Ethereum",
|
|
34
|
-
statement: "Sign in With Ethereum.",
|
|
35
|
-
chainIdLine: "1",
|
|
36
|
-
// moonstoneid's SiweMessage rejects a non-checksummed address.
|
|
37
|
-
normalize: function normalize(a) {
|
|
38
|
-
return (0, import_viem.getAddress)(a);
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
solana: {
|
|
42
|
-
label: "Solana",
|
|
43
|
-
statement: "Sign in With Solana.",
|
|
44
|
-
chainIdLine: "solana:mainnet"
|
|
45
|
-
},
|
|
46
|
-
sui: {
|
|
47
|
-
label: "Sui",
|
|
48
|
-
statement: "Sign in With Sui.",
|
|
49
|
-
chainIdLine: "sui:mainnet"
|
|
50
|
-
},
|
|
51
|
-
bitcoin: {
|
|
52
|
-
label: "Bitcoin",
|
|
53
|
-
statement: "Sign in With Bitcoin.",
|
|
54
|
-
chainIdLine: "bitcoin"
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
function buildWalletMessage(family, opts) {
|
|
58
|
-
var _opts_domain, _opts_uri, _opts_issuedAt, _opts_statement, _opts_chainId;
|
|
59
|
-
var spec = SPECS[family];
|
|
60
|
-
var host = typeof window !== "undefined" ? window.location.host : "";
|
|
61
|
-
var origin = typeof window !== "undefined" ? window.location.origin : "";
|
|
62
|
-
var domain = (_opts_domain = opts.domain) !== null && _opts_domain !== void 0 ? _opts_domain : host;
|
|
63
|
-
var uri = (_opts_uri = opts.uri) !== null && _opts_uri !== void 0 ? _opts_uri : origin;
|
|
64
|
-
var issuedAt = (_opts_issuedAt = opts.issuedAt) !== null && _opts_issuedAt !== void 0 ? _opts_issuedAt : (/* @__PURE__ */new Date()).toISOString();
|
|
65
|
-
var statement = (_opts_statement = opts.statement) !== null && _opts_statement !== void 0 ? _opts_statement : spec.statement;
|
|
66
|
-
var address = spec.normalize ? spec.normalize(opts.address) : opts.address;
|
|
67
|
-
var chainIdLine = family === "evm" ? String((_opts_chainId = opts.chainId) !== null && _opts_chainId !== void 0 ? _opts_chainId : 1) : spec.chainIdLine;
|
|
68
|
-
return `${domain} wants you to sign in with your ${spec.label} account:
|
|
69
|
-
${address}
|
|
70
|
-
|
|
71
|
-
${statement}
|
|
72
|
-
|
|
73
|
-
URI: ${uri}
|
|
74
|
-
Version: 1
|
|
75
|
-
Chain ID: ${chainIdLine}
|
|
76
|
-
Nonce: ${opts.nonce}
|
|
77
|
-
Issued At: ${issuedAt}`;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=messages.native.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","messages_exports","__export","buildWalletMessage","module","exports","import_viem","require","SPECS","evm","label","statement","chainIdLine","normalize","a","getAddress","solana","sui","bitcoin","family","opts","_opts_domain","_opts_uri","_opts_issuedAt","_opts_statement","_opts_chainId","spec","host","window","location","origin","domain","uri","issuedAt","Date","toISOString","address","String","chainId"],"sources":["../../../../src/connectkit/adapters/messages.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,gBAAA;AAAAC,QAAA,CAAAD,gBAAA;EAAAE,kBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA2B,CAAAK,gBAAA;AAwB3B,IAAAK,WAAgD,GAAAC,OAAA;AAAA,IAC9CC,KAAK;EAAAC,GACH;IACAC,KAAA,YAAW;IACXC,SAAA,0BAAa;IAAAC,WAAA;IAEb;IACFC,SAAA,WAAAA,UAAAC,CAAA;MACA,OAAQ,IAAAR,WAAA,CAAAS,UAAA,EAAAD,CAAA;IACN;EAAO;EACIE,MACX;IACFN,KAAA;IACAC,SAAK;IACHC,WAAO;EAAA;EACIK,GACX;IACFP,KAAA;IACAC,SAAS;IACPC,WAAO;EAAA;EACIM,OACX;IACFR,KAAA;IACFC,SAAA;IAcOC,WAAS;EACd;AACA;AACA,SAAMT,kBAAgBA,CAAAgB,MAAA,EAAWC,IAAA;EACjC,IAAAC,YAAe,EAAAC,SAAK,EAAAC,cAAU,EAAAC,eAAA,EAAAC,aAAA;EAC9B,IAAAC,IAAM,GAAAlB,KAAM,CAAKW,MAAA,CAAO;EACxB,IAAAQ,IAAM,UAAWC,MAAK,gBAAY,GAAAA,MAAA,CAAAC,QAAI,CAAAF,IAAO;EAC7C,IAAAG,MAAM,UAAYF,MAAK,gBAAkB,GAAAA,MAAA,CAAAC,QAAA,CAAAC,MAAA;EACzC,IAAAC,MAAM,IAAAV,YAAe,GAAAD,IAAY,CAAAW,MAAK,UAAU,IAAKV,YAAW,KAAK,SAAAA,YAAA,GAAAM,IAAA;EACrE,IAAAK,GAAM,IAAAV,SAAc,GAAAF,IAAA,CAAAY,GAAW,UAAQ,IAAAV,SAAY,UAAY,IAAIA,SAAK,GAAAQ,MAAA;EACxE,IAAAG,QACK,IAAMV,cAAA,GAAAH,IAAA,CAAAa,QAAA,MAAmC,IAAK,IAAAV,cAAK,cAAAA,cAAA,uBAAAW,IAAA,IAAAC,WAAA;EACnD,IAAAxB,SAAO,IAAAa,eAAA,GAAAJ,IAAA,CAAAT,SAAA,cAAAa,eAAA,cAAAA,eAAA,GAAAE,IAAA,CAAAf,SAAA;EAAA,IAAAyB,OAAA,GAAAV,IAAA,CAAAb,SAAA,GAAAa,IAAA,CAAAb,SAAA,CAAAO,IAAA,CAAAgB,OAAA,IAAAhB,IAAA,CAAAgB,OAAA;EAEP,IAAAxB,WAAS,GAAAO,MAAA,aAAAkB,MAAA,EAAAZ,aAAA,GAAAL,IAAA,CAAAkB,OAAA,cAAAb,aAAA,cAAAA,aAAA,QAAAC,IAAA,CAAAd,WAAA;EAAA,UAAAmB,MAAA,mCAAAL,IAAA,CAAAhB,KAAA;AAAA,EAAA0B,OAEJ;AAAG;AAAA,EAAAzB,SAAA;AAEa;AACJ,OAAAqB,GAAA;AAGxB","ignoreList":[]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { getAddress } from "viem";
|
|
2
|
-
const SPECS = {
|
|
3
|
-
evm: {
|
|
4
|
-
label: "Ethereum",
|
|
5
|
-
statement: "Sign in With Ethereum.",
|
|
6
|
-
chainIdLine: "1",
|
|
7
|
-
// moonstoneid's SiweMessage rejects a non-checksummed address.
|
|
8
|
-
normalize: a => getAddress(a)
|
|
9
|
-
},
|
|
10
|
-
solana: {
|
|
11
|
-
label: "Solana",
|
|
12
|
-
statement: "Sign in With Solana.",
|
|
13
|
-
chainIdLine: "solana:mainnet"
|
|
14
|
-
},
|
|
15
|
-
sui: {
|
|
16
|
-
label: "Sui",
|
|
17
|
-
statement: "Sign in With Sui.",
|
|
18
|
-
chainIdLine: "sui:mainnet"
|
|
19
|
-
},
|
|
20
|
-
bitcoin: {
|
|
21
|
-
label: "Bitcoin",
|
|
22
|
-
statement: "Sign in With Bitcoin.",
|
|
23
|
-
chainIdLine: "bitcoin"
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
function buildWalletMessage(family, opts) {
|
|
27
|
-
const spec = SPECS[family];
|
|
28
|
-
const host = typeof window !== "undefined" ? window.location.host : "";
|
|
29
|
-
const origin = typeof window !== "undefined" ? window.location.origin : "";
|
|
30
|
-
const domain = opts.domain ?? host;
|
|
31
|
-
const uri = opts.uri ?? origin;
|
|
32
|
-
const issuedAt = opts.issuedAt ?? (/* @__PURE__ */new Date()).toISOString();
|
|
33
|
-
const statement = opts.statement ?? spec.statement;
|
|
34
|
-
const address = spec.normalize ? spec.normalize(opts.address) : opts.address;
|
|
35
|
-
const chainIdLine = family === "evm" ? String(opts.chainId ?? 1) : spec.chainIdLine;
|
|
36
|
-
return `${domain} wants you to sign in with your ${spec.label} account:
|
|
37
|
-
${address}
|
|
38
|
-
|
|
39
|
-
${statement}
|
|
40
|
-
|
|
41
|
-
URI: ${uri}
|
|
42
|
-
Version: 1
|
|
43
|
-
Chain ID: ${chainIdLine}
|
|
44
|
-
Nonce: ${opts.nonce}
|
|
45
|
-
Issued At: ${issuedAt}`;
|
|
46
|
-
}
|
|
47
|
-
export { buildWalletMessage };
|
|
48
|
-
//# sourceMappingURL=messages.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getAddress","SPECS","evm","label","statement","chainIdLine","normalize","a","solana","sui","bitcoin","buildWalletMessage","family","opts","spec","host","window","location","origin","domain","uri","issuedAt","Date","toISOString","address","String","chainId","nonce"],"sources":["../../../../src/connectkit/adapters/messages.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAwB3B,MAAMC,KAAA,GAA0C;EAC9CC,GAAA,EAAK;IACHC,KAAA,EAAO;IACPC,SAAA,EAAW;IACXC,WAAA,EAAa;IAAA;IAEbC,SAAA,EAAYC,CAAA,IAAMP,UAAA,CAAWO,CAAC;EAChC;EACAC,MAAA,EAAQ;IACNL,KAAA,EAAO;IACPC,SAAA,EAAW;IACXC,WAAA,EAAa;EACf;EACAI,GAAA,EAAK;IACHN,KAAA,EAAO;IACPC,SAAA,EAAW;IACXC,WAAA,EAAa;EACf;EACAK,OAAA,EAAS;IACPP,KAAA,EAAO;IACPC,SAAA,EAAW;IACXC,WAAA,EAAa;EACf;AACF;AAcO,SAASM,mBAAmBC,MAAA,EAAsBC,IAAA,EAAoC;EAC3F,MAAMC,IAAA,GAAOb,KAAA,CAAMW,MAAM;EACzB,MAAMG,IAAA,GAAO,OAAOC,MAAA,KAAW,cAAcA,MAAA,CAAOC,QAAA,CAASF,IAAA,GAAO;EACpE,MAAMG,MAAA,GAAS,OAAOF,MAAA,KAAW,cAAcA,MAAA,CAAOC,QAAA,CAASC,MAAA,GAAS;EACxE,MAAMC,MAAA,GAASN,IAAA,CAAKM,MAAA,IAAUJ,IAAA;EAC9B,MAAMK,GAAA,GAAMP,IAAA,CAAKO,GAAA,IAAOF,MAAA;EACxB,MAAMG,QAAA,GAAWR,IAAA,CAAKQ,QAAA,KAAY,mBAAIC,IAAA,CAAK,GAAEC,WAAA,CAAY;EACzD,MAAMnB,SAAA,GAAYS,IAAA,CAAKT,SAAA,IAAaU,IAAA,CAAKV,SAAA;EACzC,MAAMoB,OAAA,GAAUV,IAAA,CAAKR,SAAA,GAAYQ,IAAA,CAAKR,SAAA,CAAUO,IAAA,CAAKW,OAAO,IAAIX,IAAA,CAAKW,OAAA;EACrE,MAAMnB,WAAA,GAAcO,MAAA,KAAW,QAAQa,MAAA,CAAOZ,IAAA,CAAKa,OAAA,IAAW,CAAC,IAAIZ,IAAA,CAAKT,WAAA;EACxE,OACE,GAAGc,MAAM,mCAAmCL,IAAA,CAAKX,KAAK;AAAA,EACnDqB,OAAO;AAAA;AAAA,EAEPpB,SAAS;AAAA;AAAA,OAEJgB,GAAG;AAAA;AAAA,YAEEf,WAAW;AAAA,SACdQ,IAAA,CAAKc,KAAK;AAAA,aACNN,QAAQ;AAE1B","ignoreList":[]}
|