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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions apps/browser-extension-wallet/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@
},
"dependencies": {
"@ant-design/icons": "^4.7.0",
"@cardano-sdk/cardano-services-client": "0.26.18",
"@cardano-sdk/core": "0.46.2",
"@cardano-sdk/dapp-connector": "0.13.16",
"@cardano-sdk/input-selection": "0.14.17",
"@cardano-sdk/tx-construction": "0.27.4",
"@cardano-sdk/cardano-services-client": "0.26.19",
"@cardano-sdk/core": "0.46.3",
"@cardano-sdk/dapp-connector": "0.13.17",
"@cardano-sdk/input-selection": "0.14.18",
"@cardano-sdk/tx-construction": "0.28.0",
"@cardano-sdk/util": "0.17.0",
"@cardano-sdk/util-rxjs": "0.9.19",
"@cardano-sdk/wallet": "0.53.5",
"@cardano-sdk/web-extension": "0.39.15",
"@cardano-sdk/util-rxjs": "0.9.20",
"@cardano-sdk/wallet": "0.53.7",
"@cardano-sdk/web-extension": "0.39.17",
"@emurgo/cip14-js": "~3.0.1",
"@input-output-hk/lace-ui-toolkit": "3.5.0",
"@lace/bitcoin": "0.1.0",
Expand Down Expand Up @@ -119,7 +119,7 @@
"zustand": "3.5.14"
},
"devDependencies": {
"@cardano-sdk/hardware-ledger": "0.16.5",
"@cardano-sdk/hardware-ledger": "0.16.7",
"@emurgo/cardano-message-signing-asmjs": "1.0.1",
"@openpgp/web-stream-tools": "0.0.11-patch-0",
"@pdfme/common": "^4.0.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,9 @@ describe('Testing sendTransactionSelector', () => {
expect(result.current).toHaveProperty('transactionValue');
expect(result.current).toHaveProperty('transaction');
expect(result.current).toHaveProperty('transactionFeeLovelace');
expect(result.current).toHaveProperty('minimumCoinQuantity');
expect(result.current).toHaveProperty('setDestinationAddress');
expect(result.current).toHaveProperty('setTransactionValue');
expect(result.current).toHaveProperty('setTransaction');
expect(result.current).toHaveProperty('setTransactionFeeLovelace');
expect(result.current).toHaveProperty('setMinimumCoinQuantity');
});
});
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
import { availableCoinsTransformer, displayedCoinsTransformer } from '../transformers';
import { mockAvailableBalance, mockDisplayedCoins } from '../../../../utils/mocks/test-helpers';
import { TxMinimumCoinQuantity } from '../../../../types';
import { availableCoinsTransformer } from '../transformers';
import { mockAvailableBalance } from '../../../../utils/mocks/test-helpers';
import { firstValueFrom } from 'rxjs';

const assetId = '659f2917fb63f12b33667463ee575eeac1845bbc736b9c0bbc40ba8254534c41';
const minimumCoinQuantity: TxMinimumCoinQuantity = {
coinMissing: '2000000',
minimumCoin: '2500000'
};

describe('Testing availableCoinsTransformer function', () => {
it('should return parsed available coins', async () => {
Expand All @@ -27,32 +22,3 @@ describe('Testing availableCoinsTransformer function', () => {
]);
});
});

describe('Testing displayedCoinsTransformer function', () => {
it('should return only coins field if no assets are displayed', () => {
const result = displayedCoinsTransformer(mockDisplayedCoins);
expect(result.coins.toString()).toBe('0');
});

it('should return coins and assets fields when both are displayed', () => {
const result = displayedCoinsTransformer([...mockDisplayedCoins, { amount: '5', coinId: assetId }]);
expect(result.coins.toString()).toBe('0');
expect(result.assets).toEqual(new Map([[assetId, BigInt('5')]]));
});

it(
'should return default minimum coin quantity as coins ' +
'if displayed coins list only has assets and no minimum is provided',
() => {
const result = displayedCoinsTransformer([{ amount: '5', coinId: assetId }]);
expect(result.coins.toString()).toBe('1000000');
expect(result.assets).toEqual(new Map([[assetId, BigInt('5')]]));
}
);

it('should return provided minimum coin quantity as coins if displayed coins list only has assets', () => {
const result = displayedCoinsTransformer([{ amount: '5', coinId: assetId }], minimumCoinQuantity);
expect(result.coins.toString()).toBe('2500000');
expect(result.assets).toEqual(new Map([[assetId, BigInt('5')]]));
});
});
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
/* eslint-disable no-magic-numbers */
import isEmpty from 'lodash/isEmpty';
import { IAssetInfo, DisplayedCoinDetail } from '../types';
import { Tokens, CardanoTxOutValue, TokensDetails, TxMinimumCoinQuantity } from '../../../types';
import { IAssetInfo } from '../types';
import { Tokens, TokensDetails } from '../../../types';
import { Wallet } from '@lace/cardano';
import { addEllipsis } from '@lace/common';
import { cardanoCoin } from '../../../utils/constants';
import { MIN_COIN_TO_SEND } from '../config';
import BigNumber from 'bignumber.js';

export const availableCoinsTransformer = (
coins: string,
Expand All @@ -31,28 +29,3 @@ export const availableCoinsTransformer = (

return [adaCoin, ...assetList];
};

export const displayedCoinsTransformer = (
displayedCoins: Array<DisplayedCoinDetail>,
minimumCoinQuantity?: TxMinimumCoinQuantity
): CardanoTxOutValue => {
const ada = displayedCoins.find((item) => item.coinId === cardanoCoin.id);
const nonAdaAssets = displayedCoins.filter((item) => item.coinId !== cardanoCoin.id);

const assets =
nonAdaAssets.length > 0
? new Map<Wallet.Cardano.AssetId, bigint>(
nonAdaAssets.map((asset) => [Wallet.Cardano.AssetId(asset.coinId), BigInt(asset.amount)])
)
: undefined;

return {
// The transaction must always have ADA on it,
// if the displayedCoins list does not have ADA we send the minimum coin qty
coins:
ada && new BigNumber(ada.amount).gte(0)
? BigInt(Wallet.util.adaToLovelacesString(ada.amount))
: BigInt(minimumCoinQuantity?.minimumCoin ?? Wallet.util.adaToLovelacesString(MIN_COIN_TO_SEND.toString())),
assets
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,17 @@ export const sendTransactionSelector: StateSelector<SendStore, SendTransactionSl
transactionValue,
transaction,
transactionFeeLovelace,
minimumCoinQuantity,
setDestinationAddress,
setTransactionValue,
setTransaction,
setTransactionFeeLovelace,
setMinimumCoinQuantity
setTransactionFeeLovelace
}) => ({
destinationAddress,
transactionValue,
transaction,
transactionFeeLovelace,
minimumCoinQuantity,
setDestinationAddress,
setTransactionValue,
setTransaction,
setTransactionFeeLovelace,
setMinimumCoinQuantity
setTransactionFeeLovelace
});
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,10 @@ describe('Testing send transaction store slice', () => {
expect(result.current.transaction).toBeUndefined();
expect(result.current.transactionValue).toBeUndefined();
expect(result.current.transactionFeeLovelace).toEqual('0');
expect(result.current.minimumCoinQuantity).toEqual({ coinMissing: '0', minimumCoin: '0' });
expect(typeof result.current.setDestinationAddress).toBe('function');
expect(typeof result.current.setTransaction).toBe('function');
expect(typeof result.current.setTransactionValue).toBe('function');
expect(typeof result.current.setTransactionFeeLovelace).toBe('function');
expect(typeof result.current.setMinimumCoinQuantity).toBe('function');
});

test('should be able to set destination address', () => {
Expand Down Expand Up @@ -62,13 +60,4 @@ describe('Testing send transaction store slice', () => {

expect(result.current.transactionFeeLovelace).toEqual('2000000');
});

test('should be able to set minimum coin quantity', () => {
const { result } = renderHook(() => useSendTxHook());
act(() => {
result.current.setMinimumCoinQuantity({ coinMissing: '0', minimumCoin: '2000000' });
});

expect(result.current.minimumCoinQuantity).toEqual({ coinMissing: '0', minimumCoin: '2000000' });
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,8 @@ export const sendTransactionSlice: StateCreator<SendTransactionSlice> = (set) =>
destinationAddress: undefined,
transactionValue: undefined,
transaction: undefined,
minimumCoinQuantity: { coinMissing: '0', minimumCoin: '0' },
setDestinationAddress: (address) => set(() => ({ destinationAddress: address })),
setTransactionValue: (value) => set(() => ({ transactionValue: value })),
setTransaction: (tx) => set(() => ({ transaction: tx })),
setTransactionFeeLovelace: (fee) => set(() => ({ transactionFeeLovelace: fee })),
setMinimumCoinQuantity: (coinQty) => set(() => ({ minimumCoinQuantity: coinQty }))
setTransactionFeeLovelace: (fee) => set(() => ({ transactionFeeLovelace: fee }))
});
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { TxMinimumCoinQuantity } from '../../../types';
import { CardanoTxBuild, CardanoTxOutAddress, CardanoTxOutValue } from '../../../types/cardano';

export interface SendCancelModalSlice {
Expand All @@ -11,12 +10,10 @@ export interface SendTransactionSlice {
transactionValue: CardanoTxOutValue;
transaction: CardanoTxBuild;
transactionFeeLovelace: string;
minimumCoinQuantity: TxMinimumCoinQuantity;
setDestinationAddress: (address: CardanoTxOutAddress) => void;
setTransactionValue: (value: CardanoTxOutValue) => void;
setTransaction: (tx: CardanoTxBuild) => void;
setTransactionFeeLovelace: (fee: string) => void;
setMinimumCoinQuantity: (coinQty: TxMinimumCoinQuantity) => void;
}

export type SendStore = SendTransactionSlice & SendCancelModalSlice;
20 changes: 10 additions & 10 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.18",
"@cardano-sdk/core": "0.46.2",
"@cardano-sdk/crypto": "0.4.1",
"@cardano-sdk/hardware-ledger": "0.16.5",
"@cardano-sdk/hardware-trezor": "0.7.17",
"@cardano-sdk/key-management": "0.29.1",
"@cardano-sdk/tx-construction": "0.27.4",
"@cardano-sdk/cardano-services-client": "0.26.19",
"@cardano-sdk/core": "0.46.3",
"@cardano-sdk/crypto": "0.4.2",
"@cardano-sdk/hardware-ledger": "0.16.7",
"@cardano-sdk/hardware-trezor": "0.7.19",
"@cardano-sdk/key-management": "0.29.2",
"@cardano-sdk/tx-construction": "0.28.0",
"@cardano-sdk/util": "0.17.0",
"@cardano-sdk/wallet": "0.53.5",
"@cardano-sdk/web-extension": "0.39.15",
"@cardano-sdk/wallet": "0.53.7",
"@cardano-sdk/web-extension": "0.39.17",
"@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.20",
"@cardano-sdk/util-dev": "0.25.21",
"@emurgo/cardano-message-signing-browser": "1.0.1",
"@types/webextension-polyfill": "0.10.0",
"rollup-plugin-polyfill-node": "^0.8.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@
},
"dependencies": {
"@ant-design/icons": "^4.7.0",
"@cardano-sdk/crypto": "0.4.1",
"@cardano-sdk/wallet": "0.53.5",
"@cardano-sdk/web-extension": "0.39.15",
"@cardano-sdk/crypto": "0.4.2",
"@cardano-sdk/wallet": "0.53.7",
"@cardano-sdk/web-extension": "0.39.17",
"@input-output-hk/lace-ui-toolkit": "3.8.0",
"@lace/cardano": "0.1.0",
"@lace/common": "0.1.0",
Expand Down
8 changes: 4 additions & 4 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.46.2",
"@cardano-sdk/crypto": "0.4.1",
"@cardano-sdk/tx-construction": "0.27.4",
"@cardano-sdk/core": "0.46.3",
"@cardano-sdk/crypto": "0.4.2",
"@cardano-sdk/tx-construction": "0.28.0",
"@cardano-sdk/util": "0.17.0",
"@cardano-sdk/web-extension": "0.39.15",
"@cardano-sdk/web-extension": "0.39.17",
"@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 @@ -79,12 +79,12 @@
},
"devDependencies": {
"@babel/core": "^7.21.0",
"@cardano-sdk/core": "0.46.2",
"@cardano-sdk/input-selection": "0.14.17",
"@cardano-sdk/tx-construction": "0.27.4",
"@cardano-sdk/core": "0.46.3",
"@cardano-sdk/input-selection": "0.14.18",
"@cardano-sdk/tx-construction": "0.28.0",
"@cardano-sdk/util": "0.17.0",
"@cardano-sdk/wallet": "0.53.5",
"@cardano-sdk/web-extension": "0.39.15",
"@cardano-sdk/wallet": "0.53.7",
"@cardano-sdk/web-extension": "0.39.17",
"@storybook/addon-actions": "^7.6.7",
"@storybook/addon-essentials": "^7.6.7",
"@storybook/addon-interactions": "^7.6.7",
Expand Down Expand Up @@ -130,11 +130,11 @@
"wait-on": "^7.0.1"
},
"peerDependencies": {
"@cardano-sdk/input-selection": "0.14.17",
"@cardano-sdk/tx-construction": "0.27.4",
"@cardano-sdk/input-selection": "0.14.18",
"@cardano-sdk/tx-construction": "0.28.0",
"@cardano-sdk/util": "0.17.0",
"@cardano-sdk/wallet": "0.53.5",
"@cardano-sdk/web-extension": "0.39.15",
"@cardano-sdk/wallet": "0.53.7",
"@cardano-sdk/web-extension": "0.39.17",
"@lace/cardano": "^0.1.0",
"@lace/common": "^0.1.0",
"@lace/core": "0.1.0",
Expand Down
Loading
Loading