Skip to content

feat: use KoraLabsHandleProvider #1815

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/browser-extension-wallet/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"permissions": ["webRequest", "storage", "tabs", "unlimitedStorage"],
"host_permissions": ["<all_urls>"],
"content_security_policy": {
"extension_pages": "default-src 'self' $LOCALHOST_DEFAULT_SRC; frame-src https://connect.trezor.io/ https://www.youtube-nocookie.com; script-src 'self' 'wasm-unsafe-eval'; font-src 'self' data: https://use.typekit.net; object-src 'self'; connect-src $BLOCKFROST_URLS $MAESTRO_URLS $CARDANO_SERVICES_URLS $CARDANO_WS_SERVER_URLS $SENTRY_URL $DAPP_RADAR_APPI_URL https://coingecko.live-mainnet.eks.lw.iog.io https://coingecko.live-mainnet.eks.lw.iog.io https://muesliswap.live-mainnet.eks.lw.iog.io $LOCALHOST_CONNECT_SRC $POSTHOG_HOST https://use.typekit.net data:; style-src * 'unsafe-inline'; img-src * data: blob:;"
"extension_pages": "default-src 'self' $LOCALHOST_DEFAULT_SRC; frame-src https://connect.trezor.io/ https://www.youtube-nocookie.com; script-src 'self' 'wasm-unsafe-eval'; font-src 'self' data: https://use.typekit.net; object-src 'self'; connect-src $BLOCKFROST_URLS $MAESTRO_URLS $CARDANO_SERVICES_URLS $CARDANO_WS_SERVER_URLS $SENTRY_URL $DAPP_RADAR_APPI_URL https://coingecko.live-mainnet.eks.lw.iog.io https://coingecko.live-mainnet.eks.lw.iog.io https://muesliswap.live-mainnet.eks.lw.iog.io $LOCALHOST_CONNECT_SRC $POSTHOG_HOST https://api.handle.me/ https://*.api.handle.me/ https://use.typekit.net data:; style-src * 'unsafe-inline'; img-src * data: blob:;"
},
"content_scripts": [
{
Expand Down
18 changes: 9 additions & 9 deletions apps/browser-extension-wallet/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@
},
"dependencies": {
"@ant-design/icons": "^4.7.0",
"@cardano-sdk/cardano-services-client": "0.26.8",
"@cardano-sdk/core": "0.45.5",
"@cardano-sdk/dapp-connector": "0.13.8",
"@cardano-sdk/input-selection": "0.14.7",
"@cardano-sdk/tx-construction": "0.26.6",
"@cardano-sdk/cardano-services-client": "0.26.9",
"@cardano-sdk/core": "0.45.6",
"@cardano-sdk/dapp-connector": "0.13.9",
"@cardano-sdk/input-selection": "0.14.8",
"@cardano-sdk/tx-construction": "0.26.7",
"@cardano-sdk/util": "0.16.0",
"@cardano-sdk/util-rxjs": "0.9.10",
"@cardano-sdk/wallet": "0.52.2",
"@cardano-sdk/web-extension": "0.39.2",
"@cardano-sdk/util-rxjs": "0.9.11",
"@cardano-sdk/wallet": "0.52.3",
"@cardano-sdk/web-extension": "0.39.3",
"@emurgo/cip14-js": "~3.0.1",
"@input-output-hk/lace-ui-toolkit": "3.2.7",
"@lace/bitcoin": "0.1.0",
Expand Down Expand Up @@ -108,7 +108,7 @@
"zustand": "3.5.14"
},
"devDependencies": {
"@cardano-sdk/hardware-ledger": "0.15.7",
"@cardano-sdk/hardware-ledger": "0.15.8",
"@emurgo/cardano-message-signing-asmjs": "1.0.1",
"@openpgp/web-stream-tools": "0.0.11-patch-0",
"@pdfme/common": "^4.0.2",
Expand Down
16 changes: 8 additions & 8 deletions apps/browser-extension-wallet/src/hooks/useHandleResolver.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import { getBaseUrlForChain } from '@src/utils/chain';
import { getBaseKoraLabsUrlForChain } from '@src/utils/chain';
import { getChainName } from '@src/utils/get-chain-name';
import { useMemo } from 'react';
import { useWalletStore } from '@src/stores';
import { handleHttpProvider } from '@cardano-sdk/cardano-services-client';
import { KoraLabsHandleProvider } from '@cardano-sdk/cardano-services-client';
import axiosFetchAdapter from '@shiroyasha9/axios-fetch-adapter';
import { HandleProvider } from '@cardano-sdk/core';
import { logger } from '@lace/common';
import { handleKoraLabsPolicyId } from '@src/utils/constants';

export const useHandleResolver = (): HandleProvider => {
const { currentChain } = useWalletStore();
const baseCardanoServicesUrl = getBaseUrlForChain(getChainName(currentChain));
const serverUrl = getBaseKoraLabsUrlForChain(getChainName(currentChain));

return useMemo(
() =>
handleHttpProvider({
new KoraLabsHandleProvider({
adapter: axiosFetchAdapter,
baseUrl: baseCardanoServicesUrl,
logger
serverUrl,
policyId: handleKoraLabsPolicyId
}),
[baseCardanoServicesUrl]
[serverUrl]
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
} from 'rxjs';
import { getProviders, SESSION_TIMEOUT } from './config';
import { createPersonalWallet, createSharedWallet, DEFAULT_POLLING_CONFIG, storage } from '@cardano-sdk/wallet';
import { handleHttpProvider } from '@cardano-sdk/cardano-services-client';
import { KoraLabsHandleProvider } from '@cardano-sdk/cardano-services-client';
import { Cardano, HandleProvider } from '@cardano-sdk/core';
import {
AnyWallet,
Expand All @@ -38,7 +38,7 @@ import { cacheActivatedWalletAddressSubscription } from './cache-wallets-address
import axiosFetchAdapter from '@shiroyasha9/axios-fetch-adapter';
import { isBackgroundProcess } from '@cardano-sdk/util';
import { SharedWalletScriptKind } from '@lace/core';
import { getBaseUrlForChain, getMagicForChain } from '@utils/chain';
import { getBaseKoraLabsUrlForChain, getMagicForChain } from '@utils/chain';
import { cacheNamiMetadataSubscription } from './cache-nami-metadata';
import { logger } from '@lace/common';
import { getBackgroundStorage } from '@lib/scripts/background/storage';
Expand All @@ -51,7 +51,7 @@ import { migrateCollectionStore, migrateWalletStores, shouldAttemptWalletStoresM
import { createUserSessionTracker, isLacePopupOpen$, isLaceTabActive$ } from './session';
import { TrackerSubject } from '@cardano-sdk/util-rxjs';
import { ExperimentName, FeatureFlags } from '../types/feature-flags';
import { TX_HISTORY_LIMIT_SIZE } from '@utils/constants';
import { handleKoraLabsPolicyId, TX_HISTORY_LIMIT_SIZE } from '@utils/constants';
import { Bitcoin } from '@lace/bitcoin';
import {
bitcoinProviderProperties,
Expand Down Expand Up @@ -134,7 +134,7 @@ const walletFactory: WalletFactory<Wallet.WalletMetadata, Wallet.AccountMetadata
// eslint-disable-next-line complexity, max-statements
create: async ({ chainId, accountIndex }, wallet, { stores, witnesser }) => {
const chainName: Wallet.ChainName = networkMagicToChainName(chainId.networkMagic);
const baseUrl = getBaseUrlForChain(chainName);
const serverUrl = getBaseKoraLabsUrlForChain(chainName);
let providers = await getProviders(chainName);

// Sanchonet does not have a handle provider
Expand Down Expand Up @@ -167,10 +167,10 @@ const walletFactory: WalletFactory<Wallet.WalletMetadata, Wallet.AccountMetadata
paymentScript,
stakingScript,
handleProvider: supportsHandleResolver
? handleHttpProvider({
? new KoraLabsHandleProvider({
adapter: axiosFetchAdapter,
baseUrl,
logger
serverUrl,
policyId: handleKoraLabsPolicyId
})
: noopHandleResolver,
stores,
Expand Down Expand Up @@ -215,10 +215,10 @@ const walletFactory: WalletFactory<Wallet.WalletMetadata, Wallet.AccountMetadata
...providers,
stores,
handleProvider: supportsHandleResolver
? handleHttpProvider({
? new KoraLabsHandleProvider({
adapter: axiosFetchAdapter,
baseUrl,
logger
serverUrl,
policyId: handleKoraLabsPolicyId
})
: noopHandleResolver,
witnesser,
Expand Down
13 changes: 13 additions & 0 deletions apps/browser-extension-wallet/src/utils/chain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ export const getBaseUrlForChain = (chainName: Wallet.ChainName): string => {
return url;
};

export const getBaseKoraLabsUrlForChain = (chainName: Wallet.ChainName): string => {
switch (chainName) {
case 'Mainnet':
return 'https://api.handle.me/';
case 'Preprod':
return 'https://preprod.api.handle.me/';
case 'Preview':
return 'https://preview.api.handle.me/';
}

throw new Error('Chain not supported by KoraLabs');
};

export const getMagicForChain = (chainName: Wallet.ChainName): Wallet.Cardano.NetworkMagics => {
const { AVAILABLE_CHAINS } = config();
let magic = 0;
Expand Down
3 changes: 3 additions & 0 deletions apps/browser-extension-wallet/src/utils/constants.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { Cardano } from '@cardano-sdk/core';
import { Wallet } from '@lace/cardano';

export const LACE_APP_ID = 'lace-app';
Expand Down Expand Up @@ -120,3 +121,5 @@ export const MULTIDELEGATION_DAPP_COMPATIBILITY_LS_KEY = 'isMultiDelegationDAppC
export const STAKING_BROWSER_PREFERENCES_LS_KEY = 'stakingBrowserPreferences';

export const TRACK_POPUP_CHANNEL = 'popup';

export const handleKoraLabsPolicyId = Cardano.PolicyId('f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a');
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"browser": "APP_NAME=browser-extension-wallet yarn $0",
"build": "yarn base-command-for-build-scripts -c build",
"build-deps": "EXCLUDE_APP=true yarn build",
"bump-cardano-js-sdk": "sh bump-cardano-js-sdk.sh",
"bump-cardano-js-sdk": "bash bump-cardano-js-sdk.sh",
"cardano:lint": "yarn eslint-cmd \"packages/cardano/**/*.{js,ts,tsx}\"",
"chromatic": "ENV=development yarn build-storybook; chromatic --exit-zero-on-changes --project-token=e28776c940b9 -d storybook-static/",
"cleanup": "yarn workspaces foreach run cleanup && yarn exec rm -rf node_modules storybook-static && rm -rf .cache/eslintcache",
Expand Down
18 changes: 9 additions & 9 deletions packages/cardano/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,16 @@
"watch": "yarn build --watch"
},
"dependencies": {
"@cardano-sdk/cardano-services-client": "0.26.8",
"@cardano-sdk/core": "0.45.5",
"@cardano-sdk/cardano-services-client": "0.26.9",
"@cardano-sdk/core": "0.45.6",
"@cardano-sdk/crypto": "0.2.3",
"@cardano-sdk/hardware-ledger": "0.15.7",
"@cardano-sdk/hardware-trezor": "0.7.6",
"@cardano-sdk/key-management": "0.27.6",
"@cardano-sdk/tx-construction": "0.26.6",
"@cardano-sdk/hardware-ledger": "0.15.8",
"@cardano-sdk/hardware-trezor": "0.7.7",
"@cardano-sdk/key-management": "0.27.7",
"@cardano-sdk/tx-construction": "0.26.7",
"@cardano-sdk/util": "0.16.0",
"@cardano-sdk/wallet": "0.52.2",
"@cardano-sdk/web-extension": "0.39.2",
"@cardano-sdk/wallet": "0.52.3",
"@cardano-sdk/web-extension": "0.39.3",
"@lace/common": "0.1.0",
"@ledgerhq/devices": "^8.4.4",
"@stablelib/chacha20poly1305": "1.0.1",
Expand All @@ -73,7 +73,7 @@
},
"devDependencies": {
"@blockfrost/blockfrost-js": "^5.5.0",
"@cardano-sdk/util-dev": "0.25.10",
"@cardano-sdk/util-dev": "0.25.11",
"@emurgo/cardano-message-signing-browser": "1.0.1",
"@types/webextension-polyfill": "0.10.0",
"axios": "^1.8.2",
Expand Down
4 changes: 2 additions & 2 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
"dependencies": {
"@ant-design/icons": "^4.7.0",
"@cardano-sdk/crypto": "0.2.3",
"@cardano-sdk/wallet": "0.52.2",
"@cardano-sdk/web-extension": "0.39.2",
"@cardano-sdk/wallet": "0.52.3",
"@cardano-sdk/web-extension": "0.39.3",
"@input-output-hk/lace-ui-toolkit": "1.19.0",
"@lace/cardano": "0.1.0",
"@lace/common": "0.1.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/nami/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@
},
"dependencies": {
"@biglup/is-cid": "^1.0.3",
"@cardano-sdk/core": "0.45.5",
"@cardano-sdk/core": "0.45.6",
"@cardano-sdk/crypto": "0.2.3",
"@cardano-sdk/tx-construction": "0.26.6",
"@cardano-sdk/tx-construction": "0.26.7",
"@cardano-sdk/util": "0.16.0",
"@cardano-sdk/web-extension": "0.39.2",
"@cardano-sdk/web-extension": "0.39.3",
"@chakra-ui/css-reset": "1.0.0",
"@chakra-ui/icons": "1.0.13",
"@chakra-ui/react": "1.6.4",
Expand Down
18 changes: 9 additions & 9 deletions packages/staking/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,12 +78,12 @@
},
"devDependencies": {
"@babel/core": "^7.21.0",
"@cardano-sdk/core": "0.45.5",
"@cardano-sdk/input-selection": "0.14.7",
"@cardano-sdk/tx-construction": "0.26.6",
"@cardano-sdk/core": "0.45.6",
"@cardano-sdk/input-selection": "0.14.8",
"@cardano-sdk/tx-construction": "0.26.7",
"@cardano-sdk/util": "0.16.0",
"@cardano-sdk/wallet": "0.52.2",
"@cardano-sdk/web-extension": "0.39.2",
"@cardano-sdk/wallet": "0.52.3",
"@cardano-sdk/web-extension": "0.39.3",
"@storybook/addon-actions": "^7.6.7",
"@storybook/addon-essentials": "^7.6.7",
"@storybook/addon-interactions": "^7.6.7",
Expand Down Expand Up @@ -129,11 +129,11 @@
"wait-on": "^7.0.1"
},
"peerDependencies": {
"@cardano-sdk/input-selection": "0.14.7",
"@cardano-sdk/tx-construction": "0.26.6",
"@cardano-sdk/input-selection": "0.14.8",
"@cardano-sdk/tx-construction": "0.26.7",
"@cardano-sdk/util": "0.16.0",
"@cardano-sdk/wallet": "0.52.2",
"@cardano-sdk/web-extension": "0.39.2",
"@cardano-sdk/wallet": "0.52.3",
"@cardano-sdk/web-extension": "0.39.3",
"@lace/cardano": "^0.1.0",
"@lace/common": "^0.1.0",
"@lace/core": "0.1.0",
Expand Down
Loading
Loading