rise-wallet 0.1.4-beta.1 → 0.2.28
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 +64 -34
- package/dist/cli/Dialog.d.ts +34 -0
- package/dist/cli/Dialog.js +60 -0
- package/dist/cli/Dialog.js.map +1 -0
- package/dist/cli/Messenger.d.ts +7 -0
- package/dist/cli/Messenger.js +123 -0
- package/dist/cli/Messenger.js.map +1 -0
- package/dist/cli/bin/commands-D7N5ucUu.js +50 -0
- package/dist/cli/bin/index.js +9 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/internal/http.d.ts +6 -0
- package/dist/cli/internal/http.js +17 -0
- package/dist/cli/internal/http.js.map +1 -0
- package/dist/cli/tsdown.config.d.ts +2 -0
- package/dist/cli/tsdown.config.js +28 -0
- package/dist/cli/tsdown.config.js.map +1 -0
- package/dist/core/Chains.d.ts +210 -0
- package/dist/core/Chains.js +20 -0
- package/dist/core/Chains.js.map +1 -0
- package/dist/core/Dialog.d.ts +307 -0
- package/dist/core/Dialog.js +809 -0
- package/dist/core/Dialog.js.map +1 -0
- package/dist/core/Messenger.d.ts +164 -0
- package/dist/core/Messenger.js +207 -0
- package/dist/core/Messenger.js.map +1 -0
- package/dist/core/Mode.d.ts +4 -0
- package/dist/core/Mode.js +5 -0
- package/dist/core/Mode.js.map +1 -0
- package/dist/core/Porto.d.ts +1608 -0
- package/dist/core/Porto.js +105 -0
- package/dist/core/Porto.js.map +1 -0
- package/dist/core/RpcSchema.d.ts +81 -0
- package/dist/core/RpcSchema.js +2 -0
- package/dist/core/RpcSchema.js.map +1 -0
- package/dist/core/Storage.d.ts +14 -0
- package/dist/core/Storage.js +109 -0
- package/dist/core/Storage.js.map +1 -0
- package/dist/core/Transport.d.ts +22 -0
- package/dist/core/Transport.js +37 -0
- package/dist/core/Transport.js.map +1 -0
- package/dist/core/internal/_generated/chains.d.ts +1 -0
- package/dist/core/internal/_generated/chains.js +3 -0
- package/dist/core/internal/_generated/chains.js.map +1 -0
- package/dist/core/internal/_generated/contracts/IthacaAccount.d.ts +1120 -0
- package/dist/core/internal/_generated/contracts/IthacaAccount.js +1453 -0
- package/dist/core/internal/_generated/contracts/IthacaAccount.js.map +1 -0
- package/dist/core/internal/call.d.ts +163 -0
- package/dist/core/internal/call.js +115 -0
- package/dist/core/internal/call.js.map +1 -0
- package/dist/core/internal/erc8010.d.ts +17 -0
- package/dist/core/internal/erc8010.js +29 -0
- package/dist/core/internal/erc8010.js.map +1 -0
- package/dist/core/internal/intersectionObserver.d.ts +1 -0
- package/dist/core/internal/intersectionObserver.js +5 -0
- package/dist/core/internal/intersectionObserver.js.map +1 -0
- package/dist/core/internal/logger.d.ts +21 -0
- package/dist/core/internal/logger.js +24 -0
- package/dist/core/internal/logger.js.map +1 -0
- package/dist/core/internal/mode.d.ts +344 -0
- package/dist/core/internal/mode.js +110 -0
- package/dist/core/internal/mode.js.map +1 -0
- package/dist/core/internal/modes/dialog.d.ts +799 -0
- package/dist/core/internal/modes/dialog.js +760 -0
- package/dist/core/internal/modes/dialog.js.map +1 -0
- package/dist/core/internal/modes/reactNative.d.ts +1401 -0
- package/dist/core/internal/modes/reactNative.js +19 -0
- package/dist/core/internal/modes/reactNative.js.map +1 -0
- package/dist/core/internal/modes/relay.d.ts +684 -0
- package/dist/core/internal/modes/relay.js +708 -0
- package/dist/core/internal/modes/relay.js.map +1 -0
- package/dist/core/internal/permissions.d.ts +59 -0
- package/dist/core/internal/permissions.js +30 -0
- package/dist/core/internal/permissions.js.map +1 -0
- package/dist/core/internal/permissionsRequest.d.ts +71 -0
- package/dist/core/internal/permissionsRequest.js +58 -0
- package/dist/core/internal/permissionsRequest.js.map +1 -0
- package/dist/core/internal/porto.d.ts +13 -0
- package/dist/core/internal/porto.js +2 -0
- package/dist/core/internal/porto.js.map +1 -0
- package/dist/core/internal/promise.d.ts +8 -0
- package/dist/core/internal/promise.js +11 -0
- package/dist/core/internal/promise.js.map +1 -0
- package/dist/core/internal/provider.d.ts +29 -0
- package/dist/core/internal/provider.js +941 -0
- package/dist/core/internal/provider.js.map +1 -0
- package/dist/core/internal/relay/rpcSchema.d.ts +75 -0
- package/dist/core/internal/relay/rpcSchema.js +7 -0
- package/dist/core/internal/relay/rpcSchema.js.map +1 -0
- package/dist/core/internal/relay/schema/capabilities.d.ts +164 -0
- package/dist/core/internal/relay/schema/capabilities.js +112 -0
- package/dist/core/internal/relay/schema/capabilities.js.map +1 -0
- package/dist/core/internal/relay/schema/intent.d.ts +167 -0
- package/dist/core/internal/relay/schema/intent.js +170 -0
- package/dist/core/internal/relay/schema/intent.js.map +1 -0
- package/dist/core/internal/relay/schema/key.d.ts +43 -0
- package/dist/core/internal/relay/schema/key.js +30 -0
- package/dist/core/internal/relay/schema/key.js.map +1 -0
- package/dist/core/internal/relay/schema/permission.d.ts +39 -0
- package/dist/core/internal/relay/schema/permission.js +29 -0
- package/dist/core/internal/relay/schema/permission.js.map +1 -0
- package/dist/core/internal/relay/schema/preCall.d.ts +62 -0
- package/dist/core/internal/relay/schema/preCall.js +36 -0
- package/dist/core/internal/relay/schema/preCall.js.map +1 -0
- package/dist/core/internal/relay/schema/quotes.d.ts +369 -0
- package/dist/core/internal/relay/schema/quotes.js +89 -0
- package/dist/core/internal/relay/schema/quotes.js.map +1 -0
- package/dist/core/internal/relay/schema/rpc.d.ts +1528 -0
- package/dist/core/internal/relay/schema/rpc.js +638 -0
- package/dist/core/internal/relay/schema/rpc.js.map +1 -0
- package/dist/core/internal/relay/schema/token.d.ts +13 -0
- package/dist/core/internal/relay/schema/token.js +13 -0
- package/dist/core/internal/relay/schema/token.js.map +1 -0
- package/dist/core/internal/requiredFunds.d.ts +18 -0
- package/dist/core/internal/requiredFunds.js +25 -0
- package/dist/core/internal/requiredFunds.js.map +1 -0
- package/dist/core/internal/schema/capabilities.d.ts +313 -0
- package/dist/core/internal/schema/capabilities.js +133 -0
- package/dist/core/internal/schema/capabilities.js.map +1 -0
- package/dist/core/internal/schema/key.d.ts +164 -0
- package/dist/core/internal/schema/key.js +75 -0
- package/dist/core/internal/schema/key.js.map +1 -0
- package/dist/core/internal/schema/permissions.d.ts +102 -0
- package/dist/core/internal/schema/permissions.js +28 -0
- package/dist/core/internal/schema/permissions.js.map +1 -0
- package/dist/core/internal/schema/request.d.ts +937 -0
- package/dist/core/internal/schema/request.js +57 -0
- package/dist/core/internal/schema/request.js.map +1 -0
- package/dist/core/internal/schema/rpc.d.ts +3314 -0
- package/dist/core/internal/schema/rpc.js +599 -0
- package/dist/core/internal/schema/rpc.js.map +1 -0
- package/dist/core/internal/schema/token.d.ts +1 -0
- package/dist/core/internal/schema/token.js +2 -0
- package/dist/core/internal/schema/token.js.map +1 -0
- package/dist/core/internal/schema/utils.d.ts +18 -0
- package/dist/core/internal/schema/utils.js +213 -0
- package/dist/core/internal/schema/utils.js.map +1 -0
- package/dist/core/internal/siwe.d.ts +32 -0
- package/dist/core/internal/siwe.js +92 -0
- package/dist/core/internal/siwe.js.map +1 -0
- package/dist/core/internal/store.d.ts +2 -0
- package/dist/core/internal/store.js +9 -0
- package/dist/core/internal/store.js.map +1 -0
- package/dist/core/internal/tokens.d.ts +57 -0
- package/dist/core/internal/tokens.js +69 -0
- package/dist/core/internal/tokens.js.map +1 -0
- package/dist/core/internal/types.d.ts +298 -0
- package/dist/core/internal/types.js +2 -0
- package/dist/core/internal/types.js.map +1 -0
- package/dist/core/internal/urlString.d.ts +1 -0
- package/dist/core/internal/urlString.js +8 -0
- package/dist/core/internal/urlString.js.map +1 -0
- package/dist/core/internal/userAgent.d.ts +10 -0
- package/dist/core/internal/userAgent.js +19 -0
- package/dist/core/internal/userAgent.js.map +1 -0
- package/dist/core/internal/utils.d.ts +24 -0
- package/dist/core/internal/utils.js +62 -0
- package/dist/core/internal/utils.js.map +1 -0
- package/dist/core/react-native/Porto.d.ts +1480 -0
- package/dist/core/react-native/Porto.js +17 -0
- package/dist/core/react-native/Porto.js.map +1 -0
- package/dist/core/react-native/configure.d.ts +9 -0
- package/dist/core/react-native/configure.js +24 -0
- package/dist/core/react-native/configure.js.map +1 -0
- package/dist/core/react-native/environment.d.ts +26 -0
- package/dist/core/react-native/environment.js +13 -0
- package/dist/core/react-native/environment.js.map +1 -0
- package/dist/core/react-native/index.d.ts +4 -0
- package/dist/core/react-native/index.js +5 -0
- package/dist/core/react-native/index.js.map +1 -0
- package/dist/core/react-native/utils.d.ts +1 -0
- package/dist/core/react-native/utils.js +12 -0
- package/dist/core/react-native/utils.js.map +1 -0
- package/dist/index.d.ts +16 -2
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -0
- package/dist/internal/index.d.ts +3 -0
- package/dist/internal/index.js +4 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/react-native/crypto.d.ts +1 -0
- package/dist/react-native/crypto.js +12 -0
- package/dist/react-native/crypto.js.map +1 -0
- package/dist/react-native/index.d.ts +7 -0
- package/dist/react-native/index.js +12 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/register.d.ts +2 -0
- package/dist/react-native/register.js +15 -0
- package/dist/react-native/register.js.map +1 -0
- package/dist/register/index.d.ts +14 -0
- package/dist/register/index.js +2 -0
- package/dist/register/index.js.map +1 -0
- package/dist/remote/Actions.d.ts +33 -0
- package/dist/remote/Actions.js +76 -0
- package/dist/remote/Actions.js.map +1 -0
- package/dist/remote/Events.d.ts +46 -0
- package/dist/remote/Events.js +132 -0
- package/dist/remote/Events.js.map +1 -0
- package/dist/remote/Hooks.d.ts +3800 -0
- package/dist/remote/Hooks.js +106 -0
- package/dist/remote/Hooks.js.map +1 -0
- package/dist/remote/Porto.d.ts +857 -0
- package/dist/remote/Porto.js +66 -0
- package/dist/remote/Porto.js.map +1 -0
- package/dist/remote/index.d.ts +4 -0
- package/dist/remote/index.js +5 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/internal/methodPolicies.d.ts +96 -0
- package/dist/remote/internal/methodPolicies.js +102 -0
- package/dist/remote/internal/methodPolicies.js.map +1 -0
- package/dist/server/Route.d.ts +87 -0
- package/dist/server/Route.js +189 -0
- package/dist/server/Route.js.map +1 -0
- package/dist/server/Router.d.ts +23 -0
- package/dist/server/Router.js +29 -0
- package/dist/server/Router.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.js +3 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/internal/merchantSchema.d.ts +64 -0
- package/dist/server/internal/merchantSchema.js +7 -0
- package/dist/server/internal/merchantSchema.js.map +1 -0
- package/dist/server/internal/requestListener.d.ts +123 -0
- package/dist/server/internal/requestListener.js +172 -0
- package/dist/server/internal/requestListener.js.map +1 -0
- package/dist/theme/Theme.d.ts +121 -0
- package/dist/theme/Theme.js +18 -0
- package/dist/theme/Theme.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/trusted-hosts.d.ts +1 -0
- package/dist/trusted-hosts.js +41 -0
- package/dist/trusted-hosts.js.map +1 -0
- package/dist/viem/Account.d.ts +110 -0
- package/dist/viem/Account.js +132 -0
- package/dist/viem/Account.js.map +1 -0
- package/dist/viem/AccountActions.d.ts +10 -0
- package/dist/viem/AccountActions.js +14 -0
- package/dist/viem/AccountActions.js.map +1 -0
- package/dist/viem/CapabilitiesSchema.d.ts +14 -0
- package/dist/viem/CapabilitiesSchema.js +2 -0
- package/dist/viem/CapabilitiesSchema.js.map +1 -0
- package/dist/viem/ContractActions.d.ts +208 -0
- package/dist/viem/ContractActions.js +350 -0
- package/dist/viem/ContractActions.js.map +1 -0
- package/dist/viem/Key.d.ts +1155 -0
- package/dist/viem/Key.js +924 -0
- package/dist/viem/Key.js.map +1 -0
- package/dist/viem/RelayActions.d.ts +435 -0
- package/dist/viem/RelayActions.js +385 -0
- package/dist/viem/RelayActions.js.map +1 -0
- package/dist/viem/RelayClient.d.ts +26 -0
- package/dist/viem/RelayClient.js +44 -0
- package/dist/viem/RelayClient.js.map +1 -0
- package/dist/viem/RpcSchema.d.ts +22 -0
- package/dist/viem/RpcSchema.js +2 -0
- package/dist/viem/RpcSchema.js.map +1 -0
- package/dist/viem/WalletActions.d.ts +86 -0
- package/dist/viem/WalletActions.js +220 -0
- package/dist/viem/WalletActions.js.map +1 -0
- package/dist/viem/WalletClient.d.ts +20 -0
- package/dist/viem/WalletClient.js +23 -0
- package/dist/viem/WalletClient.js.map +1 -0
- package/dist/viem/index.d.ts +13 -0
- package/dist/viem/index.js +12 -0
- package/dist/viem/index.js.map +1 -0
- package/dist/viem/internal/relayActions.d.ts +364 -0
- package/dist/viem/internal/relayActions.js +783 -0
- package/dist/viem/internal/relayActions.js.map +1 -0
- package/dist/viem/internal/utils.d.ts +15 -0
- package/dist/viem/internal/utils.js +2 -0
- package/dist/viem/internal/utils.js.map +1 -0
- package/dist/wagmi/Actions.d.ts +1 -0
- package/dist/wagmi/Actions.js +2 -0
- package/dist/wagmi/Actions.js.map +1 -0
- package/dist/wagmi/Connector.d.ts +26 -0
- package/dist/wagmi/Connector.js +238 -0
- package/dist/wagmi/Connector.js.map +1 -0
- package/dist/wagmi/Hooks.d.ts +1 -0
- package/dist/wagmi/Hooks.js +2 -0
- package/dist/wagmi/Hooks.js.map +1 -0
- package/dist/wagmi/Query.d.ts +1 -0
- package/dist/wagmi/Query.js +2 -0
- package/dist/wagmi/Query.js.map +1 -0
- package/dist/wagmi/index.d.ts +4 -0
- package/dist/wagmi/index.js +5 -0
- package/dist/wagmi/index.js.map +1 -0
- package/dist/wagmi/internal/core.d.ts +83 -0
- package/dist/wagmi/internal/core.js +229 -0
- package/dist/wagmi/internal/core.js.map +1 -0
- package/dist/wagmi/internal/query.d.ts +32 -0
- package/dist/wagmi/internal/query.js +23 -0
- package/dist/wagmi/internal/query.js.map +1 -0
- package/dist/wagmi/internal/react.d.ts +90 -0
- package/dist/wagmi/internal/react.js +256 -0
- package/dist/wagmi/internal/react.js.map +1 -0
- package/dist/wagmi/internal/types.d.ts +10 -0
- package/dist/wagmi/internal/types.js +2 -0
- package/dist/wagmi/internal/types.js.map +1 -0
- package/dist/wagmi/internal/utils.d.ts +1 -0
- package/dist/wagmi/internal/utils.js +18 -0
- package/dist/wagmi/internal/utils.js.map +1 -0
- package/package.json +286 -34
- package/src/cli/Dialog.ts +75 -0
- package/src/cli/Messenger.ts +148 -0
- package/src/cli/bin/index.ts +37 -0
- package/src/cli/bin/tsconfig.json +8 -0
- package/src/cli/index.ts +2 -0
- package/src/cli/internal/commands.ts +212 -0
- package/src/cli/internal/context.ts +56 -0
- package/src/cli/internal/http.ts +28 -0
- package/src/cli/internal/utils.ts +28 -0
- package/src/cli/tsdown.config.ts +37 -0
- package/src/core/Chains.ts +25 -0
- package/src/core/Dialog.ts +1059 -0
- package/src/core/Messenger.ts +394 -0
- package/src/core/Mode.ts +4 -0
- package/src/core/Porto.ts +287 -0
- package/src/core/RpcSchema.ts +124 -0
- package/src/core/Storage.ts +122 -0
- package/src/core/Transport.ts +45 -0
- package/src/core/internal/_generated/chains.ts +2 -0
- package/src/core/internal/_generated/contracts/EIP7702Proxy.ts +25 -0
- package/src/core/internal/_generated/contracts/Escrow.ts +330 -0
- package/src/core/internal/_generated/contracts/ExperimentERC20.ts +569 -0
- package/src/core/internal/_generated/contracts/ExperimentERC721.ts +588 -0
- package/src/core/internal/_generated/contracts/GuardedExecutor.ts +623 -0
- package/src/core/internal/_generated/contracts/ICallChecker.ts +34 -0
- package/src/core/internal/_generated/contracts/ICommon.ts +4 -0
- package/src/core/internal/_generated/contracts/IEscrow.ts +114 -0
- package/src/core/internal/_generated/contracts/IFunder.ts +80 -0
- package/src/core/internal/_generated/contracts/IFunderV4.ts +45 -0
- package/src/core/internal/_generated/contracts/IIthacaAccount.ts +107 -0
- package/src/core/internal/_generated/contracts/IOAppCore.ts +142 -0
- package/src/core/internal/_generated/contracts/IOAppMsgInspector.ts +45 -0
- package/src/core/internal/_generated/contracts/IOAppReceiver.ts +161 -0
- package/src/core/internal/_generated/contracts/IOrchestrator.ts +95 -0
- package/src/core/internal/_generated/contracts/ISettler.ts +52 -0
- package/src/core/internal/_generated/contracts/ISigner.ts +34 -0
- package/src/core/internal/_generated/contracts/IthacaAccount.ts +1454 -0
- package/src/core/internal/_generated/contracts/IthacaAccountNew.ts +1454 -0
- package/src/core/internal/_generated/contracts/IthacaAccountOld.ts +1454 -0
- package/src/core/internal/_generated/contracts/LayerZeroSettler.ts +811 -0
- package/src/core/internal/_generated/contracts/LibNonce.ts +15 -0
- package/src/core/internal/_generated/contracts/LibTStack.ts +4 -0
- package/src/core/internal/_generated/contracts/MultiSigSigner.ts +203 -0
- package/src/core/internal/_generated/contracts/OApp.ts +412 -0
- package/src/core/internal/_generated/contracts/OAppCore.ts +229 -0
- package/src/core/internal/_generated/contracts/OAppReceiver.ts +396 -0
- package/src/core/internal/_generated/contracts/OAppSender.ts +245 -0
- package/src/core/internal/_generated/contracts/Orchestrator.ts +390 -0
- package/src/core/internal/_generated/contracts/SimpleFunder.ts +534 -0
- package/src/core/internal/_generated/contracts/SimpleSettler.ts +360 -0
- package/src/core/internal/_generated/contracts/Simulator.ts +170 -0
- package/src/core/internal/_generated/contracts/TokenTransferLib.ts +4 -0
- package/src/core/internal/_snapshots/provider.browser.test.ts.snap +119 -0
- package/src/core/internal/_snapshots/provider.test.ts.snap +1103 -0
- package/src/core/internal/call.test.ts +116 -0
- package/src/core/internal/call.ts +245 -0
- package/src/core/internal/erc8010.test.ts +74 -0
- package/src/core/internal/erc8010.ts +44 -0
- package/src/core/internal/intersectionObserver.ts +5 -0
- package/src/core/internal/logger.ts +42 -0
- package/src/core/internal/mode.ts +498 -0
- package/src/core/internal/modes/dialog.ts +1051 -0
- package/src/core/internal/modes/reactNative.ts +29 -0
- package/src/core/internal/modes/relay.ts +893 -0
- package/src/core/internal/permissions.ts +43 -0
- package/src/core/internal/permissionsRequest.ts +88 -0
- package/src/core/internal/porto.ts +16 -0
- package/src/core/internal/promise.ts +19 -0
- package/src/core/internal/provider.browser.test.ts +311 -0
- package/src/core/internal/provider.test.ts +3552 -0
- package/src/core/internal/provider.ts +1277 -0
- package/src/core/internal/relay/rpcSchema.ts +101 -0
- package/src/core/internal/relay/schema/capabilities.test.ts +663 -0
- package/src/core/internal/relay/schema/capabilities.ts +156 -0
- package/src/core/internal/relay/schema/intent.test.ts +433 -0
- package/src/core/internal/relay/schema/intent.ts +174 -0
- package/src/core/internal/relay/schema/key.test.ts +424 -0
- package/src/core/internal/relay/schema/key.ts +34 -0
- package/src/core/internal/relay/schema/permission.test.ts +499 -0
- package/src/core/internal/relay/schema/permission.ts +34 -0
- package/src/core/internal/relay/schema/preCall.ts +39 -0
- package/src/core/internal/relay/schema/quotes.test.ts +901 -0
- package/src/core/internal/relay/schema/quotes.ts +98 -0
- package/src/core/internal/relay/schema/rpc.ts +822 -0
- package/src/core/internal/relay/schema/token.ts +16 -0
- package/src/core/internal/requiredFunds.test.ts +141 -0
- package/src/core/internal/requiredFunds.ts +45 -0
- package/src/core/internal/schema/capabilities.test.ts +1334 -0
- package/src/core/internal/schema/capabilities.ts +162 -0
- package/src/core/internal/schema/key.test.ts +570 -0
- package/src/core/internal/schema/key.ts +98 -0
- package/src/core/internal/schema/permissions.test.ts +948 -0
- package/src/core/internal/schema/permissions.ts +31 -0
- package/src/core/internal/schema/request.bench.ts +35 -0
- package/src/core/internal/schema/request.ts +90 -0
- package/src/core/internal/schema/rpc.ts +821 -0
- package/src/core/internal/schema/token.ts +1 -0
- package/src/core/internal/schema/utils.test.ts +572 -0
- package/src/core/internal/schema/utils.ts +236 -0
- package/src/core/internal/siwe.test.ts +473 -0
- package/src/core/internal/siwe.ts +144 -0
- package/src/core/internal/store.ts +9 -0
- package/src/core/internal/tokens.test.ts +317 -0
- package/src/core/internal/tokens.ts +125 -0
- package/src/core/internal/types.ts +448 -0
- package/src/core/internal/urlString.ts +5 -0
- package/src/core/internal/userAgent.ts +35 -0
- package/src/core/internal/utils.test.ts +35 -0
- package/src/core/internal/utils.ts +67 -0
- package/src/core/react-native/Porto.ts +22 -0
- package/src/core/react-native/configure.ts +31 -0
- package/src/core/react-native/environment.ts +43 -0
- package/src/core/react-native/index.ts +4 -0
- package/src/core/react-native/utils.ts +18 -0
- package/src/index.ts +17 -0
- package/src/internal/index.ts +3 -0
- package/src/react-native/crypto.ts +19 -0
- package/src/react-native/index.ts +15 -0
- package/src/react-native/register.ts +24 -0
- package/src/register/index.ts +17 -0
- package/src/remote/Actions.ts +115 -0
- package/src/remote/Events.ts +193 -0
- package/src/remote/Hooks.ts +194 -0
- package/src/remote/Porto.ts +144 -0
- package/src/remote/index.ts +4 -0
- package/src/remote/internal/methodPolicies.ts +124 -0
- package/src/server/Route.test.ts +347 -0
- package/src/server/Route.ts +259 -0
- package/src/server/Router.test.ts +32 -0
- package/src/server/Router.ts +59 -0
- package/src/server/index.ts +2 -0
- package/src/server/internal/merchantSchema.ts +11 -0
- package/src/server/internal/requestListener.ts +284 -0
- package/src/theme/Theme.ts +163 -0
- package/src/theme/index.ts +2 -0
- package/src/trusted-hosts.ts +40 -0
- package/src/tsconfig.build.tsbuildinfo +1 -0
- package/src/tsconfig.json +15 -0
- package/src/viem/Account.test.ts +270 -0
- package/src/viem/Account.ts +278 -0
- package/src/viem/AccountActions.test.ts +3 -0
- package/src/viem/AccountActions.ts +30 -0
- package/src/viem/CapabilitiesSchema.ts +18 -0
- package/src/viem/ContractActions.test.ts +980 -0
- package/src/viem/ContractActions.ts +624 -0
- package/src/viem/Key.test.ts +1420 -0
- package/src/viem/Key.ts +1318 -0
- package/src/viem/RelayActions.test.ts +1730 -0
- package/src/viem/RelayActions.ts +1082 -0
- package/src/viem/RelayClient.test.ts +127 -0
- package/src/viem/RelayClient.ts +87 -0
- package/src/viem/RpcSchema.ts +27 -0
- package/src/viem/WalletActions.test.ts +646 -0
- package/src/viem/WalletActions.ts +476 -0
- package/src/viem/WalletClient.test.ts +36 -0
- package/src/viem/WalletClient.ts +74 -0
- package/src/viem/index.ts +13 -0
- package/src/viem/internal/relayActions.test.ts +1296 -0
- package/src/viem/internal/relayActions.ts +1222 -0
- package/src/viem/internal/utils.ts +27 -0
- package/src/wagmi/Actions.ts +13 -0
- package/src/wagmi/Connector.ts +304 -0
- package/src/wagmi/Hooks.ts +14 -0
- package/src/wagmi/Query.ts +5 -0
- package/src/wagmi/index.ts +4 -0
- package/src/wagmi/internal/core.test.ts +12 -0
- package/src/wagmi/internal/core.ts +468 -0
- package/src/wagmi/internal/query.ts +52 -0
- package/src/wagmi/internal/react.test.ts +12 -0
- package/src/wagmi/internal/react.ts +705 -0
- package/src/wagmi/internal/types.ts +21 -0
- package/src/wagmi/internal/utils.ts +25 -0
- package/dist/chain.cjs +0 -17
- package/dist/chain.d.cts +0 -41
- package/dist/chain.d.ts +0 -41
- package/dist/chain.js +0 -13
- package/dist/config.cjs +0 -19
- package/dist/config.d.cts +0 -3
- package/dist/config.d.ts +0 -3
- package/dist/config.js +0 -16
- package/dist/index.cjs +0 -18
- package/dist/index.d.cts +0 -2
|
@@ -0,0 +1,1155 @@
|
|
|
1
|
+
import * as Address from 'ox/Address';
|
|
2
|
+
import * as Bytes from 'ox/Bytes';
|
|
3
|
+
import * as Hex from 'ox/Hex';
|
|
4
|
+
import * as Signature from 'ox/Signature';
|
|
5
|
+
import * as WebAuthnP256 from 'ox/WebAuthnP256';
|
|
6
|
+
import * as WebCryptoP256 from 'ox/WebCryptoP256';
|
|
7
|
+
import type * as RelayKey_schema from "../core/internal/relay/schema/key.js";
|
|
8
|
+
import type * as Key_schema from "../core/internal/schema/key.js";
|
|
9
|
+
import type * as Tokens from "../core/internal/tokens.js";
|
|
10
|
+
import type { Compute, ExactPartial, OneOf, PartialBy, RequiredBy, UnionOmit, UnionRequiredBy } from "../core/internal/types.js";
|
|
11
|
+
import type * as Storage from "../core/Storage.js";
|
|
12
|
+
type PrivateKeyFn = () => Hex.Hex;
|
|
13
|
+
export type BaseKey<type extends string = string, privateKey = unknown> = Compute<Key_schema.WithPermissions & {
|
|
14
|
+
/** Whether the key will need its digest (SHA256) prehashed when signing. */
|
|
15
|
+
prehash?: boolean | undefined;
|
|
16
|
+
/** Private key. */
|
|
17
|
+
privateKey?: privateKey | undefined;
|
|
18
|
+
/** Key type. */
|
|
19
|
+
type: type;
|
|
20
|
+
}>;
|
|
21
|
+
export type Key = OneOf<AddressKey | P256Key | Secp256k1Key | WebCryptoKey | WebAuthnKey>;
|
|
22
|
+
export type AddressKey = BaseKey<'address'>;
|
|
23
|
+
export type P256Key = BaseKey<'p256', PrivateKeyFn>;
|
|
24
|
+
export type Secp256k1Key = BaseKey<'secp256k1', PrivateKeyFn>;
|
|
25
|
+
export type WebCryptoKey = BaseKey<'p256', CryptoKey>;
|
|
26
|
+
export type WebAuthnKey = BaseKey<'webauthn-p256', OneOf<{
|
|
27
|
+
credential: Pick<WebAuthnP256.P256Credential, 'id' | 'publicKey'>;
|
|
28
|
+
rpId: string | undefined;
|
|
29
|
+
} | {
|
|
30
|
+
privateKey: PrivateKeyFn;
|
|
31
|
+
}>>;
|
|
32
|
+
export type Permissions = Key_schema.Permissions;
|
|
33
|
+
/** RPC (relay-compatible) format of a key. */
|
|
34
|
+
export type Relay = RelayKey_schema.WithPermissions;
|
|
35
|
+
/** Serialized (contract-compatible) format of a key. */
|
|
36
|
+
export type Serialized = {
|
|
37
|
+
expiry: number;
|
|
38
|
+
isSuperAdmin: boolean;
|
|
39
|
+
keyType: number;
|
|
40
|
+
publicKey: Hex.Hex;
|
|
41
|
+
};
|
|
42
|
+
export type SpendPermissions = Key_schema.SpendPermissions;
|
|
43
|
+
export type SpendPermission = SpendPermissions[number];
|
|
44
|
+
/** Relay key type to key type mapping. */
|
|
45
|
+
export declare const fromRelayKeyType: {
|
|
46
|
+
readonly p256: "p256";
|
|
47
|
+
readonly secp256k1: "secp256k1";
|
|
48
|
+
readonly webauthnp256: "webauthn-p256";
|
|
49
|
+
};
|
|
50
|
+
/** Relay key role to key role mapping. */
|
|
51
|
+
export declare const fromRelayKeyRole: {
|
|
52
|
+
readonly admin: "admin";
|
|
53
|
+
readonly normal: "session";
|
|
54
|
+
};
|
|
55
|
+
/** Serialized (contract-compatible) key type to key type mapping. */
|
|
56
|
+
export declare const fromSerializedKeyType: {
|
|
57
|
+
readonly 0: "p256";
|
|
58
|
+
readonly 1: "webauthn-p256";
|
|
59
|
+
readonly 2: "secp256k1";
|
|
60
|
+
};
|
|
61
|
+
/** Serialized (contract-compatible) spend period to period mapping. */
|
|
62
|
+
export declare const fromSerializedSpendPeriod: {
|
|
63
|
+
readonly 0: "minute";
|
|
64
|
+
readonly 1: "hour";
|
|
65
|
+
readonly 2: "day";
|
|
66
|
+
readonly 3: "week";
|
|
67
|
+
readonly 4: "month";
|
|
68
|
+
readonly 5: "year";
|
|
69
|
+
};
|
|
70
|
+
/** Key type to Relay key type mapping. */
|
|
71
|
+
export declare const toRelayKeyType: {
|
|
72
|
+
readonly address: "secp256k1";
|
|
73
|
+
readonly p256: "p256";
|
|
74
|
+
readonly secp256k1: "secp256k1";
|
|
75
|
+
readonly 'webauthn-p256': "webauthnp256";
|
|
76
|
+
};
|
|
77
|
+
/** Key role to Relay key role mapping. */
|
|
78
|
+
export declare const toRelayKeyRole: {
|
|
79
|
+
readonly admin: "admin";
|
|
80
|
+
readonly session: "normal";
|
|
81
|
+
};
|
|
82
|
+
/** Key type to serialized (contract-compatible) key type mapping. */
|
|
83
|
+
export declare const toSerializedKeyType: {
|
|
84
|
+
readonly address: 2;
|
|
85
|
+
readonly p256: 0;
|
|
86
|
+
readonly secp256k1: 2;
|
|
87
|
+
readonly 'webauthn-p256': 1;
|
|
88
|
+
};
|
|
89
|
+
/** Period to serialized (contract-compatible) spend period mapping. */
|
|
90
|
+
export declare const toSerializedSpendPeriod: {
|
|
91
|
+
readonly day: 2;
|
|
92
|
+
readonly hour: 1;
|
|
93
|
+
readonly minute: 0;
|
|
94
|
+
readonly month: 4;
|
|
95
|
+
readonly week: 3;
|
|
96
|
+
readonly year: 5;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Creates a random P256 key.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* import * as Key from './key.js'
|
|
104
|
+
*
|
|
105
|
+
* // Admin Key
|
|
106
|
+
* const key = Key.createP256()
|
|
107
|
+
*
|
|
108
|
+
* // Session Key
|
|
109
|
+
* const key = Key.createP256({
|
|
110
|
+
* expiry: 1714857600,
|
|
111
|
+
* role: 'session',
|
|
112
|
+
* })
|
|
113
|
+
* ```
|
|
114
|
+
*
|
|
115
|
+
* @param parameters - Key parameters.
|
|
116
|
+
* @returns P256 key.
|
|
117
|
+
*/
|
|
118
|
+
export declare function createP256(parameters?: createP256.Parameters): {
|
|
119
|
+
expiry: number;
|
|
120
|
+
hash: `0x${string}`;
|
|
121
|
+
id: `0x${string}`;
|
|
122
|
+
publicKey: `0x${string}`;
|
|
123
|
+
role: "admin" | "session";
|
|
124
|
+
type: "p256";
|
|
125
|
+
feeToken?: {
|
|
126
|
+
limit: `${number}` | `${number}.${number}`;
|
|
127
|
+
symbol?: string | undefined;
|
|
128
|
+
} | null | undefined;
|
|
129
|
+
permissions?: {
|
|
130
|
+
calls?: readonly ({
|
|
131
|
+
signature: string;
|
|
132
|
+
to: `0x${string}`;
|
|
133
|
+
} | {
|
|
134
|
+
signature: string;
|
|
135
|
+
to?: undefined;
|
|
136
|
+
} | {
|
|
137
|
+
to: `0x${string}`;
|
|
138
|
+
signature?: undefined;
|
|
139
|
+
})[] | undefined;
|
|
140
|
+
signatureVerification?: {
|
|
141
|
+
addresses: readonly `0x${string}`[];
|
|
142
|
+
} | undefined;
|
|
143
|
+
spend?: readonly {
|
|
144
|
+
limit: bigint;
|
|
145
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
146
|
+
token?: `0x${string}` | undefined;
|
|
147
|
+
}[] | undefined;
|
|
148
|
+
} | undefined;
|
|
149
|
+
chainId?: number | undefined;
|
|
150
|
+
prehash?: boolean | undefined
|
|
151
|
+
/** Private key. */
|
|
152
|
+
| undefined;
|
|
153
|
+
privateKey?: PrivateKeyFn | undefined;
|
|
154
|
+
} | {
|
|
155
|
+
expiry: number;
|
|
156
|
+
hash: `0x${string}`;
|
|
157
|
+
id: `0x${string}`;
|
|
158
|
+
publicKey: `0x${string}`;
|
|
159
|
+
role: "admin" | "session";
|
|
160
|
+
type: "p256";
|
|
161
|
+
feeToken?: {
|
|
162
|
+
limit: `${number}` | `${number}.${number}`;
|
|
163
|
+
symbol?: string | undefined;
|
|
164
|
+
} | null | undefined;
|
|
165
|
+
permissions?: {
|
|
166
|
+
calls?: readonly ({
|
|
167
|
+
signature: string;
|
|
168
|
+
to: `0x${string}`;
|
|
169
|
+
} | {
|
|
170
|
+
signature: string;
|
|
171
|
+
to?: undefined;
|
|
172
|
+
} | {
|
|
173
|
+
to: `0x${string}`;
|
|
174
|
+
signature?: undefined;
|
|
175
|
+
})[] | undefined;
|
|
176
|
+
signatureVerification?: {
|
|
177
|
+
addresses: readonly `0x${string}`[];
|
|
178
|
+
} | undefined;
|
|
179
|
+
spend?: readonly {
|
|
180
|
+
limit: bigint;
|
|
181
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
182
|
+
token?: `0x${string}` | undefined;
|
|
183
|
+
}[] | undefined;
|
|
184
|
+
} | undefined;
|
|
185
|
+
chainId?: number | undefined;
|
|
186
|
+
prehash?: boolean | undefined
|
|
187
|
+
/** Private key. */
|
|
188
|
+
| undefined;
|
|
189
|
+
privateKey?: CryptoKey | undefined;
|
|
190
|
+
};
|
|
191
|
+
export declare namespace createP256 {
|
|
192
|
+
type Parameters = Pick<fromP256.Parameters, 'expiry' | 'feeToken' | 'permissions' | 'role'>;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Creates a random Secp256k1 key.
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* ```ts
|
|
199
|
+
* import * as Key from './key.js'
|
|
200
|
+
*
|
|
201
|
+
* // Admin Key
|
|
202
|
+
* const key = Key.createSecp256k1()
|
|
203
|
+
*
|
|
204
|
+
* // Session Key
|
|
205
|
+
* const key = Key.createSecp256k1({
|
|
206
|
+
* expiry: 1714857600,
|
|
207
|
+
* role: 'session',
|
|
208
|
+
* })
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @param parameters - Key parameters.
|
|
212
|
+
* @returns Secp256k1 key.
|
|
213
|
+
*/
|
|
214
|
+
export declare function createSecp256k1(parameters?: createSecp256k1.Parameters): {
|
|
215
|
+
expiry: number;
|
|
216
|
+
hash: `0x${string}`;
|
|
217
|
+
id: `0x${string}`;
|
|
218
|
+
publicKey: `0x${string}`;
|
|
219
|
+
role: "admin" | "session";
|
|
220
|
+
type: "secp256k1";
|
|
221
|
+
feeToken?: {
|
|
222
|
+
limit: `${number}` | `${number}.${number}`;
|
|
223
|
+
symbol?: string | undefined;
|
|
224
|
+
} | null | undefined;
|
|
225
|
+
permissions?: {
|
|
226
|
+
calls?: readonly ({
|
|
227
|
+
signature: string;
|
|
228
|
+
to: `0x${string}`;
|
|
229
|
+
} | {
|
|
230
|
+
signature: string;
|
|
231
|
+
to?: undefined;
|
|
232
|
+
} | {
|
|
233
|
+
to: `0x${string}`;
|
|
234
|
+
signature?: undefined;
|
|
235
|
+
})[] | undefined;
|
|
236
|
+
signatureVerification?: {
|
|
237
|
+
addresses: readonly `0x${string}`[];
|
|
238
|
+
} | undefined;
|
|
239
|
+
spend?: readonly {
|
|
240
|
+
limit: bigint;
|
|
241
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
242
|
+
token?: `0x${string}` | undefined;
|
|
243
|
+
}[] | undefined;
|
|
244
|
+
} | undefined;
|
|
245
|
+
chainId?: number | undefined;
|
|
246
|
+
prehash?: boolean | undefined
|
|
247
|
+
/** Private key. */
|
|
248
|
+
| undefined;
|
|
249
|
+
privateKey?: PrivateKeyFn | undefined;
|
|
250
|
+
};
|
|
251
|
+
export declare namespace createSecp256k1 {
|
|
252
|
+
type Parameters = Pick<fromSecp256k1.Parameters, 'expiry' | 'feeToken' | 'permissions' | 'role'>;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Creates a WebAuthnP256 key.
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```ts
|
|
259
|
+
* import { Bytes } from 'ox'
|
|
260
|
+
* import * as Key from './key.js'
|
|
261
|
+
*
|
|
262
|
+
* // Admin Key
|
|
263
|
+
* const key = Key.createWebAuthnP256({
|
|
264
|
+
* label: 'My Key',
|
|
265
|
+
* userId: Bytes.from('0x0000000000000000000000000000000000000000'),
|
|
266
|
+
* })
|
|
267
|
+
*
|
|
268
|
+
* // Session Key
|
|
269
|
+
* const key = Key.createWebAuthnP256({
|
|
270
|
+
* expiry: 1714857600,
|
|
271
|
+
* label: 'My Key',
|
|
272
|
+
* role: 'session',
|
|
273
|
+
* userId: Bytes.from('0x0000000000000000000000000000000000000000'),
|
|
274
|
+
* })
|
|
275
|
+
* ```
|
|
276
|
+
*
|
|
277
|
+
* @param parameters - Key parameters.
|
|
278
|
+
* @returns WebAuthnP256 key.
|
|
279
|
+
*/
|
|
280
|
+
export declare function createWebAuthnP256(parameters: createWebAuthnP256.Parameters): Promise<{
|
|
281
|
+
expiry: number;
|
|
282
|
+
hash: `0x${string}`;
|
|
283
|
+
id: `0x${string}`;
|
|
284
|
+
publicKey: `0x${string}`;
|
|
285
|
+
role: "admin" | "session";
|
|
286
|
+
type: "webauthn-p256";
|
|
287
|
+
feeToken?: {
|
|
288
|
+
limit: `${number}` | `${number}.${number}`;
|
|
289
|
+
symbol?: string | undefined;
|
|
290
|
+
} | null | undefined;
|
|
291
|
+
permissions?: {
|
|
292
|
+
calls?: readonly ({
|
|
293
|
+
signature: string;
|
|
294
|
+
to: `0x${string}`;
|
|
295
|
+
} | {
|
|
296
|
+
signature: string;
|
|
297
|
+
to?: undefined;
|
|
298
|
+
} | {
|
|
299
|
+
to: `0x${string}`;
|
|
300
|
+
signature?: undefined;
|
|
301
|
+
})[] | undefined;
|
|
302
|
+
signatureVerification?: {
|
|
303
|
+
addresses: readonly `0x${string}`[];
|
|
304
|
+
} | undefined;
|
|
305
|
+
spend?: readonly {
|
|
306
|
+
limit: bigint;
|
|
307
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
308
|
+
token?: `0x${string}` | undefined;
|
|
309
|
+
}[] | undefined;
|
|
310
|
+
} | undefined;
|
|
311
|
+
chainId?: number | undefined;
|
|
312
|
+
prehash?: boolean | undefined
|
|
313
|
+
/** Private key. */
|
|
314
|
+
| undefined;
|
|
315
|
+
privateKey?: OneOf<{
|
|
316
|
+
credential: Pick<WebAuthnP256.P256Credential, "id" | "publicKey">;
|
|
317
|
+
rpId: string | undefined;
|
|
318
|
+
} | {
|
|
319
|
+
privateKey: PrivateKeyFn;
|
|
320
|
+
}> | undefined;
|
|
321
|
+
}>;
|
|
322
|
+
export declare namespace createWebAuthnP256 {
|
|
323
|
+
type Parameters = Pick<fromWebAuthnP256.Parameters, 'expiry' | 'feeToken' | 'permissions' | 'role'> & {
|
|
324
|
+
/**
|
|
325
|
+
* Credential creation function. Useful for environments that do not support
|
|
326
|
+
* the WebAuthn API natively (i.e. React Native or testing environments).
|
|
327
|
+
*
|
|
328
|
+
* @default window.navigator.credentials.create
|
|
329
|
+
*/
|
|
330
|
+
createFn?: WebAuthnP256.createCredential.Options['createFn'] | undefined;
|
|
331
|
+
/** Label. */
|
|
332
|
+
label: string;
|
|
333
|
+
/** Relying Party ID. */
|
|
334
|
+
rpId?: string | undefined;
|
|
335
|
+
/** User ID. */
|
|
336
|
+
userId?: Bytes.Bytes | undefined;
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Creates a random WebAuthn-wrapped P256 key.
|
|
341
|
+
*
|
|
342
|
+
* @example
|
|
343
|
+
* ```ts
|
|
344
|
+
* import * as Key from './key.js'
|
|
345
|
+
*
|
|
346
|
+
* // Admin Key
|
|
347
|
+
* const key = Key.createHeadlessWebAuthnP256()
|
|
348
|
+
*
|
|
349
|
+
* // Session Key
|
|
350
|
+
* const key = Key.createHeadlessWebAuthnP256({
|
|
351
|
+
* expiry: 1714857600,
|
|
352
|
+
* role: 'session',
|
|
353
|
+
* })
|
|
354
|
+
* ```
|
|
355
|
+
*
|
|
356
|
+
* @param parameters - Key parameters.
|
|
357
|
+
* @returns P256 key.
|
|
358
|
+
*/
|
|
359
|
+
export declare function createHeadlessWebAuthnP256(parameters?: createHeadlessWebAuthnP256.Parameters): {
|
|
360
|
+
expiry: number;
|
|
361
|
+
hash: `0x${string}`;
|
|
362
|
+
id: `0x${string}`;
|
|
363
|
+
publicKey: `0x${string}`;
|
|
364
|
+
role: "admin" | "session";
|
|
365
|
+
type: "webauthn-p256";
|
|
366
|
+
feeToken?: {
|
|
367
|
+
limit: `${number}` | `${number}.${number}`;
|
|
368
|
+
symbol?: string | undefined;
|
|
369
|
+
} | null | undefined;
|
|
370
|
+
permissions?: {
|
|
371
|
+
calls?: readonly ({
|
|
372
|
+
signature: string;
|
|
373
|
+
to: `0x${string}`;
|
|
374
|
+
} | {
|
|
375
|
+
signature: string;
|
|
376
|
+
to?: undefined;
|
|
377
|
+
} | {
|
|
378
|
+
to: `0x${string}`;
|
|
379
|
+
signature?: undefined;
|
|
380
|
+
})[] | undefined;
|
|
381
|
+
signatureVerification?: {
|
|
382
|
+
addresses: readonly `0x${string}`[];
|
|
383
|
+
} | undefined;
|
|
384
|
+
spend?: readonly {
|
|
385
|
+
limit: bigint;
|
|
386
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
387
|
+
token?: `0x${string}` | undefined;
|
|
388
|
+
}[] | undefined;
|
|
389
|
+
} | undefined;
|
|
390
|
+
chainId?: number | undefined;
|
|
391
|
+
prehash?: boolean | undefined
|
|
392
|
+
/** Private key. */
|
|
393
|
+
| undefined;
|
|
394
|
+
privateKey?: OneOf<{
|
|
395
|
+
credential: Pick<WebAuthnP256.P256Credential, "id" | "publicKey">;
|
|
396
|
+
rpId: string | undefined;
|
|
397
|
+
} | {
|
|
398
|
+
privateKey: PrivateKeyFn;
|
|
399
|
+
}> | undefined;
|
|
400
|
+
};
|
|
401
|
+
export declare namespace createHeadlessWebAuthnP256 {
|
|
402
|
+
type Parameters = Pick<fromHeadlessWebAuthnP256.Parameters, 'expiry' | 'feeToken' | 'permissions' | 'role'>;
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Creates a random WebCryptoP256 key.
|
|
406
|
+
*
|
|
407
|
+
* @example
|
|
408
|
+
* ```ts
|
|
409
|
+
* import * as Key from './key.js'
|
|
410
|
+
*
|
|
411
|
+
* // Admin Key
|
|
412
|
+
* const key = Key.createWebCryptoP256()
|
|
413
|
+
*
|
|
414
|
+
* // Session Key
|
|
415
|
+
* const key = Key.createWebCryptoP256({
|
|
416
|
+
* expiry: 1714857600,
|
|
417
|
+
* role: 'session',
|
|
418
|
+
* })
|
|
419
|
+
* ```
|
|
420
|
+
*
|
|
421
|
+
* @param parameters - Key parameters.
|
|
422
|
+
* @returns WebCryptoP256 key.
|
|
423
|
+
*/
|
|
424
|
+
export declare function createWebCryptoP256(parameters?: createWebCryptoP256.Parameters): Promise<{
|
|
425
|
+
expiry: number;
|
|
426
|
+
hash: `0x${string}`;
|
|
427
|
+
id: `0x${string}`;
|
|
428
|
+
publicKey: `0x${string}`;
|
|
429
|
+
role: "admin" | "session";
|
|
430
|
+
type: "p256";
|
|
431
|
+
feeToken?: {
|
|
432
|
+
limit: `${number}` | `${number}.${number}`;
|
|
433
|
+
symbol?: string | undefined;
|
|
434
|
+
} | null | undefined;
|
|
435
|
+
permissions?: {
|
|
436
|
+
calls?: readonly ({
|
|
437
|
+
signature: string;
|
|
438
|
+
to: `0x${string}`;
|
|
439
|
+
} | {
|
|
440
|
+
signature: string;
|
|
441
|
+
to?: undefined;
|
|
442
|
+
} | {
|
|
443
|
+
to: `0x${string}`;
|
|
444
|
+
signature?: undefined;
|
|
445
|
+
})[] | undefined;
|
|
446
|
+
signatureVerification?: {
|
|
447
|
+
addresses: readonly `0x${string}`[];
|
|
448
|
+
} | undefined;
|
|
449
|
+
spend?: readonly {
|
|
450
|
+
limit: bigint;
|
|
451
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
452
|
+
token?: `0x${string}` | undefined;
|
|
453
|
+
}[] | undefined;
|
|
454
|
+
} | undefined;
|
|
455
|
+
chainId?: number | undefined;
|
|
456
|
+
prehash?: boolean | undefined
|
|
457
|
+
/** Private key. */
|
|
458
|
+
| undefined;
|
|
459
|
+
privateKey?: PrivateKeyFn | undefined;
|
|
460
|
+
} | {
|
|
461
|
+
expiry: number;
|
|
462
|
+
hash: `0x${string}`;
|
|
463
|
+
id: `0x${string}`;
|
|
464
|
+
publicKey: `0x${string}`;
|
|
465
|
+
role: "admin" | "session";
|
|
466
|
+
type: "p256";
|
|
467
|
+
feeToken?: {
|
|
468
|
+
limit: `${number}` | `${number}.${number}`;
|
|
469
|
+
symbol?: string | undefined;
|
|
470
|
+
} | null | undefined;
|
|
471
|
+
permissions?: {
|
|
472
|
+
calls?: readonly ({
|
|
473
|
+
signature: string;
|
|
474
|
+
to: `0x${string}`;
|
|
475
|
+
} | {
|
|
476
|
+
signature: string;
|
|
477
|
+
to?: undefined;
|
|
478
|
+
} | {
|
|
479
|
+
to: `0x${string}`;
|
|
480
|
+
signature?: undefined;
|
|
481
|
+
})[] | undefined;
|
|
482
|
+
signatureVerification?: {
|
|
483
|
+
addresses: readonly `0x${string}`[];
|
|
484
|
+
} | undefined;
|
|
485
|
+
spend?: readonly {
|
|
486
|
+
limit: bigint;
|
|
487
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
488
|
+
token?: `0x${string}` | undefined;
|
|
489
|
+
}[] | undefined;
|
|
490
|
+
} | undefined;
|
|
491
|
+
chainId?: number | undefined;
|
|
492
|
+
prehash?: boolean | undefined
|
|
493
|
+
/** Private key. */
|
|
494
|
+
| undefined;
|
|
495
|
+
privateKey?: CryptoKey | undefined;
|
|
496
|
+
}>;
|
|
497
|
+
export declare namespace createWebCryptoP256 {
|
|
498
|
+
type Parameters = Pick<fromWebCryptoP256.Parameters, 'expiry' | 'feeToken' | 'permissions' | 'role'>;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Deserializes a key from its serialized format.
|
|
502
|
+
*
|
|
503
|
+
* @example
|
|
504
|
+
* ```ts
|
|
505
|
+
* import * as Key from './key.js'
|
|
506
|
+
*
|
|
507
|
+
* const key = Key.deserialize({
|
|
508
|
+
* expiry: 0,
|
|
509
|
+
* isSuperAdmin: false,
|
|
510
|
+
* keyType: 0,
|
|
511
|
+
* publicKey: '0x04ec0effa5f2f378cbf7fd2fa7ca1e8dc51cf777c129fa1c00a0e9a9205f2e511ff3f20b34a4e0b50587d055c0e0fad33d32cf1147d3bb2538fbab0d15d8e65008',
|
|
512
|
+
* })
|
|
513
|
+
* ```
|
|
514
|
+
*
|
|
515
|
+
* @param serialized - Serialized key.
|
|
516
|
+
* @returns Key.
|
|
517
|
+
*/
|
|
518
|
+
export declare function deserialize(serialized: Serialized, options?: deserialize.Options): Key;
|
|
519
|
+
export declare namespace deserialize {
|
|
520
|
+
type Options = {
|
|
521
|
+
chainId?: number | undefined;
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Instantiates a key from its parameters.
|
|
526
|
+
*
|
|
527
|
+
* @example
|
|
528
|
+
* ```ts
|
|
529
|
+
* import { P256 } from 'ox'
|
|
530
|
+
* import * as Key from './key.js'
|
|
531
|
+
*
|
|
532
|
+
* const privateKey = P256.randomPrivateKey()
|
|
533
|
+
* const publicKey = P256.getPublicKey({ privateKey })
|
|
534
|
+
*
|
|
535
|
+
* const key = Key.from({
|
|
536
|
+
* expiry: 0,
|
|
537
|
+
* publicKey,
|
|
538
|
+
* async sign({ payload }) {
|
|
539
|
+
* return P256.sign({ payload, privateKey })
|
|
540
|
+
* },
|
|
541
|
+
* type: 'p256',
|
|
542
|
+
* })
|
|
543
|
+
* ```
|
|
544
|
+
*
|
|
545
|
+
* @param key - Key.
|
|
546
|
+
* @returns Key.
|
|
547
|
+
*/
|
|
548
|
+
export declare function from<type extends Key['type']>(key: from.Value<type>, options?: from.Options): Extract<Key, {
|
|
549
|
+
type: type;
|
|
550
|
+
}>;
|
|
551
|
+
export declare namespace from {
|
|
552
|
+
type Value<type extends Key['type'] = Key['type']> = OneOf<UnionRequiredBy<ExactPartial<UnionOmit<Key, 'hash'>>, 'publicKey'> & {
|
|
553
|
+
type: type | Key['type'];
|
|
554
|
+
}>;
|
|
555
|
+
type Options = {
|
|
556
|
+
chainId?: number | undefined;
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Instantiates a P256 key from its parameters.
|
|
561
|
+
*
|
|
562
|
+
* @example
|
|
563
|
+
* ```ts
|
|
564
|
+
* import { P256 } from 'ox'
|
|
565
|
+
* import * as Key from './key.js'
|
|
566
|
+
*
|
|
567
|
+
* // Admin Key
|
|
568
|
+
* const key = Key.fromP256({
|
|
569
|
+
* privateKey: P256.randomPrivateKey(),
|
|
570
|
+
* })
|
|
571
|
+
*
|
|
572
|
+
* // Session Key
|
|
573
|
+
* const key = Key.fromP256({
|
|
574
|
+
* expiry: 1714857600,
|
|
575
|
+
* privateKey: P256.randomPrivateKey(),
|
|
576
|
+
* role: 'session',
|
|
577
|
+
* })
|
|
578
|
+
* ```
|
|
579
|
+
*
|
|
580
|
+
* @param parameters - Key parameters.
|
|
581
|
+
* @returns P256 key.
|
|
582
|
+
*/
|
|
583
|
+
export declare function fromP256(parameters: fromP256.Parameters): {
|
|
584
|
+
expiry: number;
|
|
585
|
+
hash: `0x${string}`;
|
|
586
|
+
id: `0x${string}`;
|
|
587
|
+
publicKey: `0x${string}`;
|
|
588
|
+
role: "admin" | "session";
|
|
589
|
+
type: "p256";
|
|
590
|
+
feeToken?: {
|
|
591
|
+
limit: `${number}` | `${number}.${number}`;
|
|
592
|
+
symbol?: string | undefined;
|
|
593
|
+
} | null | undefined;
|
|
594
|
+
permissions?: {
|
|
595
|
+
calls?: readonly ({
|
|
596
|
+
signature: string;
|
|
597
|
+
to: `0x${string}`;
|
|
598
|
+
} | {
|
|
599
|
+
signature: string;
|
|
600
|
+
to?: undefined;
|
|
601
|
+
} | {
|
|
602
|
+
to: `0x${string}`;
|
|
603
|
+
signature?: undefined;
|
|
604
|
+
})[] | undefined;
|
|
605
|
+
signatureVerification?: {
|
|
606
|
+
addresses: readonly `0x${string}`[];
|
|
607
|
+
} | undefined;
|
|
608
|
+
spend?: readonly {
|
|
609
|
+
limit: bigint;
|
|
610
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
611
|
+
token?: `0x${string}` | undefined;
|
|
612
|
+
}[] | undefined;
|
|
613
|
+
} | undefined;
|
|
614
|
+
chainId?: number | undefined;
|
|
615
|
+
prehash?: boolean | undefined
|
|
616
|
+
/** Private key. */
|
|
617
|
+
| undefined;
|
|
618
|
+
privateKey?: PrivateKeyFn | undefined;
|
|
619
|
+
} | {
|
|
620
|
+
expiry: number;
|
|
621
|
+
hash: `0x${string}`;
|
|
622
|
+
id: `0x${string}`;
|
|
623
|
+
publicKey: `0x${string}`;
|
|
624
|
+
role: "admin" | "session";
|
|
625
|
+
type: "p256";
|
|
626
|
+
feeToken?: {
|
|
627
|
+
limit: `${number}` | `${number}.${number}`;
|
|
628
|
+
symbol?: string | undefined;
|
|
629
|
+
} | null | undefined;
|
|
630
|
+
permissions?: {
|
|
631
|
+
calls?: readonly ({
|
|
632
|
+
signature: string;
|
|
633
|
+
to: `0x${string}`;
|
|
634
|
+
} | {
|
|
635
|
+
signature: string;
|
|
636
|
+
to?: undefined;
|
|
637
|
+
} | {
|
|
638
|
+
to: `0x${string}`;
|
|
639
|
+
signature?: undefined;
|
|
640
|
+
})[] | undefined;
|
|
641
|
+
signatureVerification?: {
|
|
642
|
+
addresses: readonly `0x${string}`[];
|
|
643
|
+
} | undefined;
|
|
644
|
+
spend?: readonly {
|
|
645
|
+
limit: bigint;
|
|
646
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
647
|
+
token?: `0x${string}` | undefined;
|
|
648
|
+
}[] | undefined;
|
|
649
|
+
} | undefined;
|
|
650
|
+
chainId?: number | undefined;
|
|
651
|
+
prehash?: boolean | undefined
|
|
652
|
+
/** Private key. */
|
|
653
|
+
| undefined;
|
|
654
|
+
privateKey?: CryptoKey | undefined;
|
|
655
|
+
};
|
|
656
|
+
export declare namespace fromP256 {
|
|
657
|
+
type Parameters = Pick<from.Value, 'chainId' | 'expiry' | 'feeToken' | 'permissions' | 'role'> & {
|
|
658
|
+
/** P256 private key. */
|
|
659
|
+
privateKey: Hex.Hex;
|
|
660
|
+
};
|
|
661
|
+
}
|
|
662
|
+
/**
|
|
663
|
+
* Converts a Relay-formatted key to a key.
|
|
664
|
+
*
|
|
665
|
+
* @example
|
|
666
|
+
* TODO
|
|
667
|
+
*
|
|
668
|
+
* @param relayKey - Relay key.
|
|
669
|
+
* @returns Key.
|
|
670
|
+
*/
|
|
671
|
+
export declare function fromRelay(relayKey: Relay, options: {
|
|
672
|
+
chainId: number;
|
|
673
|
+
}): Key;
|
|
674
|
+
/**
|
|
675
|
+
* Instantiates a Secp256k1 key from its parameters.
|
|
676
|
+
*
|
|
677
|
+
* @example
|
|
678
|
+
* ```ts
|
|
679
|
+
* import { Secp256k1 } from 'ox'
|
|
680
|
+
* import * as Key from './key.js'
|
|
681
|
+
*
|
|
682
|
+
* // Admin Key
|
|
683
|
+
* const key = Key.fromSecp256k1({
|
|
684
|
+
* privateKey: Secp256k1.randomPrivateKey(),
|
|
685
|
+
* })
|
|
686
|
+
*
|
|
687
|
+
* // Session Key
|
|
688
|
+
* const key = Key.fromSecp256k1({
|
|
689
|
+
* expiry: 1714857600,
|
|
690
|
+
* privateKey: Secp256k1.randomPrivateKey(),
|
|
691
|
+
* role: 'session',
|
|
692
|
+
* })
|
|
693
|
+
* ```
|
|
694
|
+
*
|
|
695
|
+
* @param parameters - Key parameters.
|
|
696
|
+
* @returns Secp256k1 key.
|
|
697
|
+
*/
|
|
698
|
+
export declare function fromSecp256k1(parameters: fromSecp256k1.Parameters): {
|
|
699
|
+
expiry: number;
|
|
700
|
+
hash: `0x${string}`;
|
|
701
|
+
id: `0x${string}`;
|
|
702
|
+
publicKey: `0x${string}`;
|
|
703
|
+
role: "admin" | "session";
|
|
704
|
+
type: "secp256k1";
|
|
705
|
+
feeToken?: {
|
|
706
|
+
limit: `${number}` | `${number}.${number}`;
|
|
707
|
+
symbol?: string | undefined;
|
|
708
|
+
} | null | undefined;
|
|
709
|
+
permissions?: {
|
|
710
|
+
calls?: readonly ({
|
|
711
|
+
signature: string;
|
|
712
|
+
to: `0x${string}`;
|
|
713
|
+
} | {
|
|
714
|
+
signature: string;
|
|
715
|
+
to?: undefined;
|
|
716
|
+
} | {
|
|
717
|
+
to: `0x${string}`;
|
|
718
|
+
signature?: undefined;
|
|
719
|
+
})[] | undefined;
|
|
720
|
+
signatureVerification?: {
|
|
721
|
+
addresses: readonly `0x${string}`[];
|
|
722
|
+
} | undefined;
|
|
723
|
+
spend?: readonly {
|
|
724
|
+
limit: bigint;
|
|
725
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
726
|
+
token?: `0x${string}` | undefined;
|
|
727
|
+
}[] | undefined;
|
|
728
|
+
} | undefined;
|
|
729
|
+
chainId?: number | undefined;
|
|
730
|
+
prehash?: boolean | undefined
|
|
731
|
+
/** Private key. */
|
|
732
|
+
| undefined;
|
|
733
|
+
privateKey?: PrivateKeyFn | undefined;
|
|
734
|
+
};
|
|
735
|
+
export declare namespace fromSecp256k1 {
|
|
736
|
+
type Parameters = Pick<from.Value, 'expiry' | 'feeToken' | 'permissions' | 'role'> & OneOf<{
|
|
737
|
+
/** Ethereum address. */
|
|
738
|
+
address: Address.Address;
|
|
739
|
+
} | {
|
|
740
|
+
/** Secp256k1 public key. */
|
|
741
|
+
publicKey: Hex.Hex;
|
|
742
|
+
} | {
|
|
743
|
+
/** Secp256k1 private key. */
|
|
744
|
+
privateKey: Hex.Hex;
|
|
745
|
+
}>;
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
748
|
+
* Instantiates a WebAuthnP256 key from its parameters.
|
|
749
|
+
*
|
|
750
|
+
* @example
|
|
751
|
+
* ```ts
|
|
752
|
+
* import { WebAuthnP256 } from 'ox'
|
|
753
|
+
* import * as Key from './key.js'
|
|
754
|
+
*
|
|
755
|
+
* const credential = await WebAuthnP256.createCredential({ name: 'My Key' })
|
|
756
|
+
*
|
|
757
|
+
* // Admin Key
|
|
758
|
+
* const key = Key.fromWebAuthnP256({
|
|
759
|
+
* credential,
|
|
760
|
+
* })
|
|
761
|
+
*
|
|
762
|
+
* // Session Key
|
|
763
|
+
* const key = Key.fromWebAuthnP256({
|
|
764
|
+
* expiry: 1714857600,
|
|
765
|
+
* credential,
|
|
766
|
+
* role: 'session',
|
|
767
|
+
* })
|
|
768
|
+
* ```
|
|
769
|
+
*
|
|
770
|
+
* @param parameters - Key parameters.
|
|
771
|
+
* @returns WebAuthnP256 key.
|
|
772
|
+
*/
|
|
773
|
+
export declare function fromWebAuthnP256(parameters: fromWebAuthnP256.Parameters): {
|
|
774
|
+
expiry: number;
|
|
775
|
+
hash: `0x${string}`;
|
|
776
|
+
id: `0x${string}`;
|
|
777
|
+
publicKey: `0x${string}`;
|
|
778
|
+
role: "admin" | "session";
|
|
779
|
+
type: "webauthn-p256";
|
|
780
|
+
feeToken?: {
|
|
781
|
+
limit: `${number}` | `${number}.${number}`;
|
|
782
|
+
symbol?: string | undefined;
|
|
783
|
+
} | null | undefined;
|
|
784
|
+
permissions?: {
|
|
785
|
+
calls?: readonly ({
|
|
786
|
+
signature: string;
|
|
787
|
+
to: `0x${string}`;
|
|
788
|
+
} | {
|
|
789
|
+
signature: string;
|
|
790
|
+
to?: undefined;
|
|
791
|
+
} | {
|
|
792
|
+
to: `0x${string}`;
|
|
793
|
+
signature?: undefined;
|
|
794
|
+
})[] | undefined;
|
|
795
|
+
signatureVerification?: {
|
|
796
|
+
addresses: readonly `0x${string}`[];
|
|
797
|
+
} | undefined;
|
|
798
|
+
spend?: readonly {
|
|
799
|
+
limit: bigint;
|
|
800
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
801
|
+
token?: `0x${string}` | undefined;
|
|
802
|
+
}[] | undefined;
|
|
803
|
+
} | undefined;
|
|
804
|
+
chainId?: number | undefined;
|
|
805
|
+
prehash?: boolean | undefined
|
|
806
|
+
/** Private key. */
|
|
807
|
+
| undefined;
|
|
808
|
+
privateKey?: OneOf<{
|
|
809
|
+
credential: Pick<WebAuthnP256.P256Credential, "id" | "publicKey">;
|
|
810
|
+
rpId: string | undefined;
|
|
811
|
+
} | {
|
|
812
|
+
privateKey: PrivateKeyFn;
|
|
813
|
+
}> | undefined;
|
|
814
|
+
};
|
|
815
|
+
export declare namespace fromWebAuthnP256 {
|
|
816
|
+
type Parameters = Pick<from.Value, 'chainId' | 'expiry' | 'feeToken' | 'id' | 'permissions' | 'role'> & {
|
|
817
|
+
/** WebAuthnP256 Credential. */
|
|
818
|
+
credential: Pick<WebAuthnP256.P256Credential, 'id' | 'publicKey'>;
|
|
819
|
+
/** Relying Party ID. */
|
|
820
|
+
rpId?: string | undefined;
|
|
821
|
+
};
|
|
822
|
+
}
|
|
823
|
+
/**
|
|
824
|
+
* Instantiates a WebAuthn-wrapped P256 key from its parameters.
|
|
825
|
+
*
|
|
826
|
+
* @example
|
|
827
|
+
* ```ts
|
|
828
|
+
* import { P256 } from 'ox'
|
|
829
|
+
* import * as Key from './key.js'
|
|
830
|
+
*
|
|
831
|
+
* const privateKey = P256.randomPrivateKey()
|
|
832
|
+
*
|
|
833
|
+
* // Admin Key
|
|
834
|
+
* const key = Key.fromHeadlessWebAuthnP256({
|
|
835
|
+
* privateKey,
|
|
836
|
+
* })
|
|
837
|
+
*
|
|
838
|
+
* // Session Key
|
|
839
|
+
* const key = Key.fromHeadlessWebAuthnP256({
|
|
840
|
+
* expiry: 1714857600,
|
|
841
|
+
* privateKey,
|
|
842
|
+
* role: 'session',
|
|
843
|
+
* })
|
|
844
|
+
* ```
|
|
845
|
+
*
|
|
846
|
+
* @param parameters - Key parameters.
|
|
847
|
+
* @returns WebAuthn-wrapped P256 key.
|
|
848
|
+
*/
|
|
849
|
+
export declare function fromHeadlessWebAuthnP256(parameters: fromHeadlessWebAuthnP256.Parameters): {
|
|
850
|
+
expiry: number;
|
|
851
|
+
hash: `0x${string}`;
|
|
852
|
+
id: `0x${string}`;
|
|
853
|
+
publicKey: `0x${string}`;
|
|
854
|
+
role: "admin" | "session";
|
|
855
|
+
type: "webauthn-p256";
|
|
856
|
+
feeToken?: {
|
|
857
|
+
limit: `${number}` | `${number}.${number}`;
|
|
858
|
+
symbol?: string | undefined;
|
|
859
|
+
} | null | undefined;
|
|
860
|
+
permissions?: {
|
|
861
|
+
calls?: readonly ({
|
|
862
|
+
signature: string;
|
|
863
|
+
to: `0x${string}`;
|
|
864
|
+
} | {
|
|
865
|
+
signature: string;
|
|
866
|
+
to?: undefined;
|
|
867
|
+
} | {
|
|
868
|
+
to: `0x${string}`;
|
|
869
|
+
signature?: undefined;
|
|
870
|
+
})[] | undefined;
|
|
871
|
+
signatureVerification?: {
|
|
872
|
+
addresses: readonly `0x${string}`[];
|
|
873
|
+
} | undefined;
|
|
874
|
+
spend?: readonly {
|
|
875
|
+
limit: bigint;
|
|
876
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
877
|
+
token?: `0x${string}` | undefined;
|
|
878
|
+
}[] | undefined;
|
|
879
|
+
} | undefined;
|
|
880
|
+
chainId?: number | undefined;
|
|
881
|
+
prehash?: boolean | undefined
|
|
882
|
+
/** Private key. */
|
|
883
|
+
| undefined;
|
|
884
|
+
privateKey?: OneOf<{
|
|
885
|
+
credential: Pick<WebAuthnP256.P256Credential, "id" | "publicKey">;
|
|
886
|
+
rpId: string | undefined;
|
|
887
|
+
} | {
|
|
888
|
+
privateKey: PrivateKeyFn;
|
|
889
|
+
}> | undefined;
|
|
890
|
+
};
|
|
891
|
+
export declare namespace fromHeadlessWebAuthnP256 {
|
|
892
|
+
type Parameters = Pick<from.Value, 'chainId' | 'expiry' | 'feeToken' | 'permissions' | 'role'> & {
|
|
893
|
+
/** P256 private key. */
|
|
894
|
+
privateKey: Hex.Hex;
|
|
895
|
+
};
|
|
896
|
+
}
|
|
897
|
+
/**
|
|
898
|
+
* Instantiates a WebCryptoP256 key from its parameters.
|
|
899
|
+
*
|
|
900
|
+
* @example
|
|
901
|
+
* ```ts
|
|
902
|
+
* import { WebCryptoP256 } from 'ox'
|
|
903
|
+
* import * as Key from './key.js'
|
|
904
|
+
*
|
|
905
|
+
* const keyPair = await WebCryptoP256.createKeyPair()
|
|
906
|
+
*
|
|
907
|
+
* // Admin Key
|
|
908
|
+
* const key = Key.fromWebCryptoP256({
|
|
909
|
+
* keyPair,
|
|
910
|
+
* })
|
|
911
|
+
*
|
|
912
|
+
* // Session Key
|
|
913
|
+
* const key = Key.fromWebCryptoP256({
|
|
914
|
+
* expiry: 1714857600,
|
|
915
|
+
* keyPair,
|
|
916
|
+
* role: 'session',
|
|
917
|
+
* })
|
|
918
|
+
* ```
|
|
919
|
+
*
|
|
920
|
+
* @param parameters - Key parameters.
|
|
921
|
+
* @returns WebCryptoP256 key.
|
|
922
|
+
*/
|
|
923
|
+
export declare function fromWebCryptoP256(parameters: fromWebCryptoP256.Parameters): {
|
|
924
|
+
expiry: number;
|
|
925
|
+
hash: `0x${string}`;
|
|
926
|
+
id: `0x${string}`;
|
|
927
|
+
publicKey: `0x${string}`;
|
|
928
|
+
role: "admin" | "session";
|
|
929
|
+
type: "p256";
|
|
930
|
+
feeToken?: {
|
|
931
|
+
limit: `${number}` | `${number}.${number}`;
|
|
932
|
+
symbol?: string | undefined;
|
|
933
|
+
} | null | undefined;
|
|
934
|
+
permissions?: {
|
|
935
|
+
calls?: readonly ({
|
|
936
|
+
signature: string;
|
|
937
|
+
to: `0x${string}`;
|
|
938
|
+
} | {
|
|
939
|
+
signature: string;
|
|
940
|
+
to?: undefined;
|
|
941
|
+
} | {
|
|
942
|
+
to: `0x${string}`;
|
|
943
|
+
signature?: undefined;
|
|
944
|
+
})[] | undefined;
|
|
945
|
+
signatureVerification?: {
|
|
946
|
+
addresses: readonly `0x${string}`[];
|
|
947
|
+
} | undefined;
|
|
948
|
+
spend?: readonly {
|
|
949
|
+
limit: bigint;
|
|
950
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
951
|
+
token?: `0x${string}` | undefined;
|
|
952
|
+
}[] | undefined;
|
|
953
|
+
} | undefined;
|
|
954
|
+
chainId?: number | undefined;
|
|
955
|
+
prehash?: boolean | undefined
|
|
956
|
+
/** Private key. */
|
|
957
|
+
| undefined;
|
|
958
|
+
privateKey?: PrivateKeyFn | undefined;
|
|
959
|
+
} | {
|
|
960
|
+
expiry: number;
|
|
961
|
+
hash: `0x${string}`;
|
|
962
|
+
id: `0x${string}`;
|
|
963
|
+
publicKey: `0x${string}`;
|
|
964
|
+
role: "admin" | "session";
|
|
965
|
+
type: "p256";
|
|
966
|
+
feeToken?: {
|
|
967
|
+
limit: `${number}` | `${number}.${number}`;
|
|
968
|
+
symbol?: string | undefined;
|
|
969
|
+
} | null | undefined;
|
|
970
|
+
permissions?: {
|
|
971
|
+
calls?: readonly ({
|
|
972
|
+
signature: string;
|
|
973
|
+
to: `0x${string}`;
|
|
974
|
+
} | {
|
|
975
|
+
signature: string;
|
|
976
|
+
to?: undefined;
|
|
977
|
+
} | {
|
|
978
|
+
to: `0x${string}`;
|
|
979
|
+
signature?: undefined;
|
|
980
|
+
})[] | undefined;
|
|
981
|
+
signatureVerification?: {
|
|
982
|
+
addresses: readonly `0x${string}`[];
|
|
983
|
+
} | undefined;
|
|
984
|
+
spend?: readonly {
|
|
985
|
+
limit: bigint;
|
|
986
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
987
|
+
token?: `0x${string}` | undefined;
|
|
988
|
+
}[] | undefined;
|
|
989
|
+
} | undefined;
|
|
990
|
+
chainId?: number | undefined;
|
|
991
|
+
prehash?: boolean | undefined
|
|
992
|
+
/** Private key. */
|
|
993
|
+
| undefined;
|
|
994
|
+
privateKey?: CryptoKey | undefined;
|
|
995
|
+
};
|
|
996
|
+
export declare namespace fromWebCryptoP256 {
|
|
997
|
+
type Parameters = Pick<from.Value, 'chainId' | 'expiry' | 'feeToken' | 'permissions' | 'role'> & {
|
|
998
|
+
/** P256 private key. */
|
|
999
|
+
keyPair: Awaited<ReturnType<typeof WebCryptoP256.createKeyPair>>;
|
|
1000
|
+
};
|
|
1001
|
+
}
|
|
1002
|
+
/**
|
|
1003
|
+
* Hashes a key.
|
|
1004
|
+
*
|
|
1005
|
+
* @example
|
|
1006
|
+
* ```ts
|
|
1007
|
+
* import * as Key from './key.js'
|
|
1008
|
+
*
|
|
1009
|
+
* const key = Key.createP256()
|
|
1010
|
+
*
|
|
1011
|
+
* const hash = Key.hash(key)
|
|
1012
|
+
* ```
|
|
1013
|
+
*
|
|
1014
|
+
* @param key - Key.
|
|
1015
|
+
* @returns Hashed key.
|
|
1016
|
+
*/
|
|
1017
|
+
export declare function hash(key: Pick<Key, 'publicKey' | 'type'>): Hex.Hex;
|
|
1018
|
+
/**
|
|
1019
|
+
* Serializes a public key.
|
|
1020
|
+
*
|
|
1021
|
+
* @param publicKey - Public key.
|
|
1022
|
+
* @returns Serialized public key.
|
|
1023
|
+
*/
|
|
1024
|
+
export declare function serializePublicKey(publicKey: Hex.Hex): Hex.Hex;
|
|
1025
|
+
/**
|
|
1026
|
+
* Serializes a key to a contract-compatible format.
|
|
1027
|
+
*
|
|
1028
|
+
* @example
|
|
1029
|
+
* ```ts
|
|
1030
|
+
* import * as Key from './key.js'
|
|
1031
|
+
*
|
|
1032
|
+
* const key = Key.createP256()
|
|
1033
|
+
*
|
|
1034
|
+
* const serialized = Key.serialize(key)
|
|
1035
|
+
* ```
|
|
1036
|
+
*
|
|
1037
|
+
* @param key - Key.
|
|
1038
|
+
* @returns Serialized key.
|
|
1039
|
+
*/
|
|
1040
|
+
export declare function serialize(key: Key): Serialized;
|
|
1041
|
+
export declare function sign(key: Key, parameters: sign.Parameters): Promise<`0x${string}`>;
|
|
1042
|
+
export declare namespace sign {
|
|
1043
|
+
type Parameters = {
|
|
1044
|
+
/**
|
|
1045
|
+
* Address to use for replay-safe signing.
|
|
1046
|
+
* `null` if replay-safe signing is not needed (e.g. signing call bundles).
|
|
1047
|
+
*/
|
|
1048
|
+
address: Address.Address | null;
|
|
1049
|
+
/**
|
|
1050
|
+
* Payload to sign.
|
|
1051
|
+
*/
|
|
1052
|
+
payload: Hex.Hex;
|
|
1053
|
+
/**
|
|
1054
|
+
* Storage to use for keytype-specific caching (e.g. WebAuthn user verification).
|
|
1055
|
+
*/
|
|
1056
|
+
storage?: Storage.Storage | undefined;
|
|
1057
|
+
/**
|
|
1058
|
+
* WebAuthn configuration.
|
|
1059
|
+
*/
|
|
1060
|
+
webAuthn?: {
|
|
1061
|
+
createFn?: WebAuthnP256.createCredential.Options['createFn'];
|
|
1062
|
+
getFn?: WebAuthnP256.sign.Options['getFn'];
|
|
1063
|
+
} | undefined;
|
|
1064
|
+
/**
|
|
1065
|
+
* Whether to wrap the signature with key metadata.
|
|
1066
|
+
* @default true
|
|
1067
|
+
*/
|
|
1068
|
+
wrap?: boolean | undefined;
|
|
1069
|
+
};
|
|
1070
|
+
}
|
|
1071
|
+
/**
|
|
1072
|
+
* Converts a key to a Relay-compatible format.
|
|
1073
|
+
*
|
|
1074
|
+
* @example
|
|
1075
|
+
* TODO
|
|
1076
|
+
*
|
|
1077
|
+
* @param key - Key.
|
|
1078
|
+
* @returns Relay key.
|
|
1079
|
+
*/
|
|
1080
|
+
export declare function toRelay(key: toRelay.Value, options?: toRelay.Options): RequiredBy<Relay, 'prehash'>;
|
|
1081
|
+
export declare namespace toRelay {
|
|
1082
|
+
type Value = PartialBy<Pick<Key, 'expiry' | 'prehash' | 'permissions' | 'publicKey' | 'role' | 'type'>, 'expiry' | 'role'>;
|
|
1083
|
+
type Options = {
|
|
1084
|
+
/** Fee tokens. */
|
|
1085
|
+
feeTokens?: readonly Tokens.Token[] | undefined;
|
|
1086
|
+
/** Orchestrator address. */
|
|
1087
|
+
orchestrator?: Address.Address | undefined;
|
|
1088
|
+
};
|
|
1089
|
+
}
|
|
1090
|
+
/**
|
|
1091
|
+
* Resolves the permissions for the permissions request, and if needed, adds
|
|
1092
|
+
* the fee limit to the spend permissions.
|
|
1093
|
+
*
|
|
1094
|
+
* @param request - Permissions request.
|
|
1095
|
+
* @param options - Options.
|
|
1096
|
+
* @returns Resolved permissions.
|
|
1097
|
+
*/
|
|
1098
|
+
export declare function resolvePermissions(key: Pick<Key, 'feeToken' | 'permissions'>, options: resolvePermissions.Options): {
|
|
1099
|
+
calls: ({
|
|
1100
|
+
signature: string;
|
|
1101
|
+
to: `0x${string}`;
|
|
1102
|
+
} | {
|
|
1103
|
+
signature: string;
|
|
1104
|
+
to?: undefined;
|
|
1105
|
+
} | {
|
|
1106
|
+
to: `0x${string}`;
|
|
1107
|
+
signature?: undefined;
|
|
1108
|
+
})[];
|
|
1109
|
+
spend: {
|
|
1110
|
+
limit: bigint;
|
|
1111
|
+
period: "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
1112
|
+
token?: `0x${string}` | undefined;
|
|
1113
|
+
}[];
|
|
1114
|
+
signatureVerification?: {
|
|
1115
|
+
addresses: readonly `0x${string}`[];
|
|
1116
|
+
} | undefined;
|
|
1117
|
+
};
|
|
1118
|
+
export declare namespace resolvePermissions {
|
|
1119
|
+
type Options = {
|
|
1120
|
+
feeTokens?: Tokens.Tokens | null | undefined;
|
|
1121
|
+
};
|
|
1122
|
+
}
|
|
1123
|
+
/**
|
|
1124
|
+
* Gets the fee limit (in units of the fee token) to be used for the
|
|
1125
|
+
* authorized permissions.
|
|
1126
|
+
*
|
|
1127
|
+
* @param request - The permissions request to get the fee limit for.
|
|
1128
|
+
* @param options - Options.
|
|
1129
|
+
* @returns Fee limit (in units of the fee token).
|
|
1130
|
+
*/
|
|
1131
|
+
export declare function getFeeToken(key: Pick<Key, 'feeToken' | 'permissions'>, options: getFeeToken.Options): getFeeToken.ReturnType;
|
|
1132
|
+
export declare namespace getFeeToken {
|
|
1133
|
+
type Options = {
|
|
1134
|
+
feeTokens: Tokens.Tokens;
|
|
1135
|
+
};
|
|
1136
|
+
type ReturnType = (Tokens.Token & {
|
|
1137
|
+
value: bigint;
|
|
1138
|
+
}) | undefined;
|
|
1139
|
+
}
|
|
1140
|
+
export declare function serializeWebAuthnSignature(options: serializeWebAuthnSignature.Options): `0x${string}`;
|
|
1141
|
+
export declare namespace serializeWebAuthnSignature {
|
|
1142
|
+
type Options = {
|
|
1143
|
+
metadata: WebAuthnP256.SignMetadata;
|
|
1144
|
+
signature: Signature.Signature<false>;
|
|
1145
|
+
};
|
|
1146
|
+
}
|
|
1147
|
+
export declare function wrapSignature(signature: Hex.Hex, options: wrapSignature.Options): `0x${string}`;
|
|
1148
|
+
declare namespace wrapSignature {
|
|
1149
|
+
type Options = {
|
|
1150
|
+
keyType: Key['type'];
|
|
1151
|
+
prehash?: boolean | undefined;
|
|
1152
|
+
publicKey: Hex.Hex;
|
|
1153
|
+
};
|
|
1154
|
+
}
|
|
1155
|
+
export {};
|