Skip to content

Commit 899b1b3

Browse files
authored
fix: handle ConwayCertsFailure error while building portfolio
1 parent 13f039d commit 899b1b3

File tree

16 files changed

+245
-232
lines changed

16 files changed

+245
-232
lines changed

apps/browser-extension-wallet/package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@
5656
},
5757
"dependencies": {
5858
"@ant-design/icons": "^4.7.0",
59-
"@cardano-sdk/cardano-services-client": "0.26.14",
60-
"@cardano-sdk/core": "0.45.10",
61-
"@cardano-sdk/dapp-connector": "0.13.13",
62-
"@cardano-sdk/input-selection": "0.14.13",
63-
"@cardano-sdk/tx-construction": "0.26.12",
64-
"@cardano-sdk/util": "0.16.0",
65-
"@cardano-sdk/util-rxjs": "0.9.15",
66-
"@cardano-sdk/wallet": "0.52.9",
67-
"@cardano-sdk/web-extension": "0.39.9",
59+
"@cardano-sdk/cardano-services-client": "0.26.15",
60+
"@cardano-sdk/core": "0.46.0",
61+
"@cardano-sdk/dapp-connector": "0.13.14",
62+
"@cardano-sdk/input-selection": "0.14.14",
63+
"@cardano-sdk/tx-construction": "0.27.1",
64+
"@cardano-sdk/util": "0.17.0",
65+
"@cardano-sdk/util-rxjs": "0.9.16",
66+
"@cardano-sdk/wallet": "0.53.1",
67+
"@cardano-sdk/web-extension": "0.39.11",
6868
"@emurgo/cip14-js": "~3.0.1",
6969
"@input-output-hk/lace-ui-toolkit": "3.5.0",
7070
"@lace/bitcoin": "0.1.0",
@@ -119,7 +119,7 @@
119119
"zustand": "3.5.14"
120120
},
121121
"devDependencies": {
122-
"@cardano-sdk/hardware-ledger": "0.15.13",
122+
"@cardano-sdk/hardware-ledger": "0.16.1",
123123
"@emurgo/cardano-message-signing-asmjs": "1.0.1",
124124
"@openpgp/web-stream-tools": "0.0.11-patch-0",
125125
"@pdfme/common": "^4.0.2",

apps/browser-extension-wallet/src/features/dapp/components/confirm-transaction/utils.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ export const pubDRepKeyToHash = async (
6666
pubDRepKeyHex: Wallet.Crypto.Ed25519PublicKeyHex
6767
): Promise<Wallet.Crypto.Hash28ByteBase16> => {
6868
const pubDRepKey = await Wallet.Crypto.Ed25519PublicKey.fromHex(pubDRepKeyHex);
69-
const drepKeyHex = (await pubDRepKey.hash()).hex();
70-
return Wallet.Crypto.Hash28ByteBase16.fromEd25519KeyHashHex(drepKeyHex);
69+
return (await pubDRepKey.hash()).hex();
7170
};
7271

7372
export const depositPaidWithSymbol = (deposit: bigint, coinId: Wallet.CoinId): string => {

apps/browser-extension-wallet/src/lib/scripts/background/storage/extension-blob-key-value-store.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import { ExtensionDocumentStore } from './extension-document-store';
33
import { storage as sdkStorage } from '@cardano-sdk/wallet';
44
import { Logger } from 'ts-log';
55
import { defaultIfEmpty, EMPTY, firstValueFrom, from, mergeMap, Observable, of } from 'rxjs';
6-
import { OpaqueString, toSerializableObject } from '@cardano-sdk/util';
6+
import { toSerializableObject } from '@cardano-sdk/util';
77

88
/**
99
* Stores entire key-value collection in a single document
1010
*/
1111
// eslint-disable-next-line @typescript-eslint/no-explicit-any
12-
export class ExtensionBlobKeyValueStore<K extends string | OpaqueString<any>, V extends {}>
12+
export class ExtensionBlobKeyValueStore<K extends PropertyKey, V extends {}>
1313
extends ExtensionDocumentStore<Record<K, V>>
1414
implements sdkStorage.KeyValueStore<K, V>
1515
{
@@ -27,7 +27,7 @@ export class ExtensionBlobKeyValueStore<K extends string | OpaqueString<any>, V
2727
for (const key of keys) {
2828
const value = collection[key];
2929
if (!value) {
30-
this.logger.debug(`Key "$${key}" was not found`);
30+
this.logger.debug(`Key "$${key.toString()}" was not found`);
3131
return EMPTY;
3232
}
3333
values.push(value);

apps/browser-extension-wallet/src/lib/scripts/background/util.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
WalletType
1313
} from '@cardano-sdk/web-extension';
1414
import * as KeyManagement from '@cardano-sdk/key-management';
15+
import { HexBlob } from '@cardano-sdk/util';
1516
import { getBackgroundStorage } from './storage';
1617
import { catchAndBrandExtensionApiError } from '@utils/catch-and-brand-extension-api-error';
1718

@@ -193,5 +194,6 @@ export const getWalletName = (): string => {
193194

194195
export const hashExtendedAccountPublicKey = (extendedAccountPublicKey: string): string => {
195196
const input = Buffer.from(extendedAccountPublicKey);
196-
return blake2b(blake2b.BYTES_MIN).update(input).digest('hex');
197+
198+
return blake2b.hash(HexBlob.fromBytes(input), 32);
197199
};

apps/browser-extension-wallet/src/lib/scripts/background/wallet.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,17 @@ const walletFactory: WalletFactory<Wallet.WalletMetadata, Wallet.AccountMetadata
171171
if (!walletAccount) {
172172
throw new Error('Wallet account not found');
173173
}
174-
const bip32Account = new Wallet.KeyManagement.Bip32Account({
175-
accountIndex,
176-
chainId,
177-
extendedAccountPublicKey: walletAccount.extendedAccountPublicKey
178-
});
174+
const bip32Account = new Wallet.KeyManagement.Bip32Account(
175+
{
176+
accountIndex,
177+
chainId,
178+
extendedAccountPublicKey: walletAccount.extendedAccountPublicKey
179+
},
180+
{
181+
bip32Ed25519: await Wallet.getBip32Ed25519(),
182+
blake2b: Wallet.Crypto.blake2b
183+
}
184+
);
179185

180186
const useWebSocket = isExperimentEnabled(featureFlags, ExperimentName.WEBSOCKET_API);
181187
const localPollingIntervalConfig = !Number.isNaN(Number(process.env.WALLET_POLLING_INTERVAL_IN_SEC))

packages/cardano/package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,16 +40,16 @@
4040
"watch": "yarn build --watch"
4141
},
4242
"dependencies": {
43-
"@cardano-sdk/cardano-services-client": "0.26.14",
44-
"@cardano-sdk/core": "0.45.10",
45-
"@cardano-sdk/crypto": "0.2.3",
46-
"@cardano-sdk/hardware-ledger": "0.15.13",
47-
"@cardano-sdk/hardware-trezor": "0.7.12",
48-
"@cardano-sdk/key-management": "0.27.11",
49-
"@cardano-sdk/tx-construction": "0.26.12",
50-
"@cardano-sdk/util": "0.16.0",
51-
"@cardano-sdk/wallet": "0.52.9",
52-
"@cardano-sdk/web-extension": "0.39.9",
43+
"@cardano-sdk/cardano-services-client": "0.26.15",
44+
"@cardano-sdk/core": "0.46.0",
45+
"@cardano-sdk/crypto": "0.3.0",
46+
"@cardano-sdk/hardware-ledger": "0.16.1",
47+
"@cardano-sdk/hardware-trezor": "0.7.14",
48+
"@cardano-sdk/key-management": "0.28.0",
49+
"@cardano-sdk/tx-construction": "0.27.1",
50+
"@cardano-sdk/util": "0.17.0",
51+
"@cardano-sdk/wallet": "0.53.1",
52+
"@cardano-sdk/web-extension": "0.39.11",
5353
"@lace/common": "0.1.0",
5454
"@ledgerhq/devices": "^8.4.4",
5555
"@stablelib/chacha20poly1305": "1.0.1",
@@ -73,7 +73,7 @@
7373
},
7474
"devDependencies": {
7575
"@blockfrost/blockfrost-js": "^5.5.0",
76-
"@cardano-sdk/util-dev": "0.25.16",
76+
"@cardano-sdk/util-dev": "0.25.17",
7777
"@emurgo/cardano-message-signing-browser": "1.0.1",
7878
"@types/webextension-polyfill": "0.10.0",
7979
"rollup-plugin-polyfill-node": "^0.8.0",

packages/cardano/src/wallet/lib/__tests__/blockfrost-address-discovery.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('BlockfrostAddressDiscovery', () => {
4242
const paymentAddress2 = 'addr2...' as Cardano.PaymentAddress;
4343

4444
accountMock.deriveAddress
45-
.mockResolvedValueOnce({
45+
.mockReturnValueOnce({
4646
address: paymentAddress1,
4747
rewardAccount,
4848
type: AddressType.External,
@@ -54,7 +54,7 @@ describe('BlockfrostAddressDiscovery', () => {
5454
role: KeyRole.Stake
5555
}
5656
})
57-
.mockResolvedValue({
57+
.mockReturnValue({
5858
address: paymentAddress2,
5959
rewardAccount,
6060
type: AddressType.External,
@@ -104,7 +104,7 @@ describe('BlockfrostAddressDiscovery', () => {
104104
const rewardAccount = 'stake1u9p...' as Cardano.RewardAccount;
105105
const paymentAddress1 = 'addr1...' as Cardano.PaymentAddress;
106106

107-
accountMock.deriveAddress.mockResolvedValue({
107+
accountMock.deriveAddress.mockReturnValue({
108108
address: paymentAddress1,
109109
rewardAccount,
110110
type: AddressType.External,
@@ -130,7 +130,7 @@ describe('BlockfrostAddressDiscovery', () => {
130130
const paymentAddress1 = 'addr1...' as Cardano.PaymentAddress;
131131
const frankenAddress = 'addrUnknown...' as Cardano.PaymentAddress;
132132

133-
accountMock.deriveAddress.mockResolvedValue({
133+
accountMock.deriveAddress.mockReturnValue({
134134
address: paymentAddress1,
135135
rewardAccount,
136136
type: AddressType.External,

packages/cardano/src/wallet/test/mocks/mock-wallet.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import { Cardano, RewardAccountInfoProvider } from '@cardano-sdk/core';
33
import { ObservableWallet, BaseWallet, createPersonalWallet, storage } from '@cardano-sdk/wallet';
44
import * as KeyManagement from '@cardano-sdk/key-management';
5+
import * as Crypto from '@cardano-sdk/crypto';
56
import { assetsProviderStub } from './AssetsProviderStub';
67
import { networkInfoProviderStub } from './NetworkInfoProviderStub';
78
import { queryTransactionsResult, rewardAccount } from './ProviderStub';
@@ -60,6 +61,9 @@ export const mockWallet = async (customKeyAgent?: KeyManagement.InMemoryKeyAgent
6061
const rewardAccountInfoProvider = rewardAccountInfoProviderStub();
6162
const asyncKeyAgent = KeyManagement.util.createAsyncKeyAgent(keyAgent);
6263
const handleProvider = handleProviderStub();
64+
65+
const bip32Ed25519 = await Crypto.SodiumBip32Ed25519.create();
66+
const dependencies = { bip32Ed25519, blake2b: Crypto.blake2b, logger };
6367
const wallet = createPersonalWallet(
6468
{ name },
6569
{
@@ -74,7 +78,7 @@ export const mockWallet = async (customKeyAgent?: KeyManagement.InMemoryKeyAgent
7478
handleProvider,
7579
logger,
7680
witnesser: KeyManagement.util.createBip32Ed25519Witnesser(asyncKeyAgent),
77-
bip32Account: new KeyManagement.Bip32Account(keyAgent)
81+
bip32Account: new KeyManagement.Bip32Account(keyAgent, dependencies)
7882
}
7983
);
8084

packages/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"watch": "yarn build --watch"
4040
},
4141
"dependencies": {
42-
"@cardano-sdk/util": "0.16.0",
42+
"@cardano-sdk/util": "0.17.0",
4343
"antd": "^4.24.10",
4444
"classnames": "^2.3.1",
4545
"jdenticon": "3.1.0",

packages/core/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
},
4444
"dependencies": {
4545
"@ant-design/icons": "^4.7.0",
46-
"@cardano-sdk/crypto": "0.2.3",
47-
"@cardano-sdk/wallet": "0.52.9",
48-
"@cardano-sdk/web-extension": "0.39.9",
46+
"@cardano-sdk/crypto": "0.3.0",
47+
"@cardano-sdk/wallet": "0.53.1",
48+
"@cardano-sdk/web-extension": "0.39.11",
4949
"@input-output-hk/lace-ui-toolkit": "3.8.0",
5050
"@lace/cardano": "0.1.0",
5151
"@lace/common": "0.1.0",

0 commit comments

Comments
 (0)