Skip to content

Commit 135797d

Browse files
Upgrade sdk-core to v14 (#1392)
1 parent 88bb119 commit 135797d

18 files changed

Lines changed: 1500 additions & 1793 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [[v4.0.0-alpha.0](https://github.com/multiversx/mx-sdk-dapp/pull/1393)] - 2025-03-27
11+
12+
- [Upgrade to sdk-core v.14](https://github.com/multiversx/mx-sdk-dapp/pull/1392)
13+
1014
## [[v3.3.2](https://github.com/multiversx/mx-sdk-dapp/pull/1391)] - 2025-03-17
1115

1216
- [Fixed floating data field decode dropdown](https://github.com/multiversx/mx-sdk-dapp/pull/1390)

package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiversx/sdk-dapp",
3-
"version": "3.3.2",
3+
"version": "4.0.0-alpha.0",
44
"description": "A library to hold the main logic for a dapp on the MultiversX blockchain",
55
"author": "MultiversX",
66
"license": "GPL-3.0-or-later",
@@ -38,7 +38,7 @@
3838
"@babel/preset-react": "7.23.3",
3939
"@babel/preset-typescript": "7.23.3",
4040
"@ledgerhq/hw-transport-mocker": "6.27.17",
41-
"@multiversx/sdk-core": ">= 13.17.1",
41+
"@multiversx/sdk-core": ">= 14.0.1",
4242
"@octokit/rest": "19.0.5",
4343
"@storybook/addon-actions": "6.5.14",
4444
"@storybook/addon-essentials": "6.5.14",
@@ -124,7 +124,7 @@
124124
"transaction"
125125
],
126126
"peerDependencies": {
127-
"@multiversx/sdk-core": ">= 13.17.1",
127+
"@multiversx/sdk-core": ">= 14.0.1",
128128
"@types/react": "^18.0.24",
129129
"@types/react-dom": "^18.0.8",
130130
"axios": ">=1.7.4",
@@ -159,18 +159,18 @@
159159
"dependencies": {
160160
"@lifeomic/axios-fetch": "3.0.1",
161161
"@metamask/providers": "16.0.0",
162-
"@multiversx/sdk-dapp-utils": "1.0.0",
163-
"@multiversx/sdk-extension-provider": "4.0.1",
164-
"@multiversx/sdk-hw-provider": "7.0.0",
165-
"@multiversx/sdk-metamask-provider": "1.0.0",
162+
"@multiversx/sdk-dapp-utils": "2.0.0",
163+
"@multiversx/sdk-extension-provider": "5.0.0",
164+
"@multiversx/sdk-hw-provider": "8.0.0",
165+
"@multiversx/sdk-metamask-provider": "2.0.0",
166166
"@multiversx/sdk-native-auth-client": "1.0.9",
167167
"@multiversx/sdk-opera-provider": "1.0.0-alpha.1",
168-
"@multiversx/sdk-passkey-provider": "2.0.0",
169-
"@multiversx/sdk-wallet-connect-provider": "5.0.2",
170-
"@multiversx/sdk-web-wallet-cross-window-provider": "2.0.6",
171-
"@multiversx/sdk-web-wallet-iframe-provider": "2.0.1",
172-
"@multiversx/sdk-web-wallet-provider": "4.1.0",
173-
"@multiversx/sdk-webview-provider": "2.0.3",
168+
"@multiversx/sdk-passkey-provider": "2.0.1",
169+
"@multiversx/sdk-wallet-connect-provider": "6.0.1",
170+
"@multiversx/sdk-web-wallet-cross-window-provider": "3.0.0",
171+
"@multiversx/sdk-web-wallet-iframe-provider": "3.0.0",
172+
"@multiversx/sdk-web-wallet-provider": "5.0.0",
173+
"@multiversx/sdk-webview-provider": "3.0.0",
174174
"@reduxjs/toolkit": "1.8.2",
175175
"bignumber.js": "9.x",
176176
"linkify-react": "4.0.2",

src/UI/SignTransactionsModals/SignWithDeviceModal/components/components/ConfirmFee/ConfirmFee.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ const ConfirmFeeComponent = ({
3636
const [showGasDetails, setShowGasDetails] = useState(false);
3737
const { shard } = useGetAccount();
3838

39-
const nonce = transaction.getNonce().valueOf();
39+
const nonce = Number(transaction.nonce);
4040

4141
const [initialGasPriceInfo, setInitialGasPriceInfo] = useState({
42-
[nonce]: transaction.getGasPrice().valueOf()
42+
[nonce]: Number(transaction.gasPrice)
4343
});
4444

4545
useEffect(() => {
4646
setInitialGasPriceInfo((existing) => ({
4747
...existing,
48-
[nonce]: transaction.getGasPrice().valueOf()
48+
[nonce]: Number(transaction.gasPrice)
4949
}));
5050
}, [nonce]);
5151

@@ -56,10 +56,10 @@ const ConfirmFeeComponent = ({
5656
const feeLimit = calculateFeeLimit({
5757
gasPerDataByte: String(GAS_PER_DATA_BYTE),
5858
gasPriceModifier: String(GAS_PRICE_MODIFIER),
59-
gasLimit: transaction.getGasLimit().valueOf().toString(),
60-
gasPrice: transaction.getGasPrice().valueOf().toString(),
61-
data: transaction.getData().toString(),
62-
chainId: transaction.getChainID().valueOf()
59+
gasLimit: transaction.gasLimit.toString(),
60+
gasPrice: transaction.gasPrice.toString(),
61+
data: transaction.data.toString(),
62+
chainId: transaction.chainID.valueOf()
6363
});
6464

6565
const feeLimitFormatted = formatAmount({

src/UI/SignTransactionsModals/SignWithDeviceModal/components/components/ConfirmFee/components/GasDetails/helpers/getGasPriceDetails.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ export const getGasPriceDetails = ({
2525

2626
const fastGasPrice = fastPpu
2727
? recommendGasPrice({
28-
transactionDataLength: transaction.getData().toString().length,
29-
transactionGasLimit: transaction.getGasLimit().valueOf(),
28+
transactionDataLength: transaction.data.length,
29+
transactionGasLimit: Number(transaction.gasLimit),
3030
ppu: fastPpu
3131
})
3232
: initialGasPrice;
3333

3434
const fasterGasPrice = fasterPpu
3535
? recommendGasPrice({
36-
transactionDataLength: transaction.getData().toString().length,
37-
transactionGasLimit: transaction.getGasLimit().valueOf(),
36+
transactionDataLength: transaction.data.length,
37+
transactionGasLimit: Number(transaction.gasLimit),
3838
ppu: fasterPpu
3939
})
4040
: initialGasPrice;

src/hooks/signMessage/tests/verifyMessage.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ describe('Verify Message test', () => {
1010
const signature =
1111
'{"address":"erd1axhx4kenjlae6sknq7zjg2g4fvzavv979r2fg425p62wkl84avtqsf7vvv","message":"0x68656c6c6f20776f726c64","signature":"0x795b8437bdbcc9c2a3f610a96d95bd393d23d584d40121ea388999ebd9a34157117a665c86a0285cb207e7da23f4fced848f81c218ebab735da22a5cdb00f803","version":1,"signer":"ErdJS"}';
1212

13-
it('should verify message successfully', () => {
14-
const { address, isVerified, message } = verifyMessage(signature);
13+
it('should verify message successfully', async () => {
14+
const { address, isVerified, message } = await verifyMessage(signature);
1515

1616
expect(address).toStrictEqual(
1717
'erd1axhx4kenjlae6sknq7zjg2g4fvzavv979r2fg425p62wkl84avtqsf7vvv'

src/hooks/signMessage/verifyMessage.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import { Address, Message, MessageComputer } from '@multiversx/sdk-core/out';
22
import { getVerifier } from './getVerifier';
33

4-
export const verifyMessage = (signedMessage: string) => {
4+
export const verifyMessage = async (
5+
signedMessage: string
6+
): Promise<{
7+
isVerified: boolean;
8+
message: string;
9+
address: string;
10+
}> => {
511
try {
612
const { message, address, signature } = JSON.parse(signedMessage);
713

@@ -19,7 +25,10 @@ export const verifyMessage = (signedMessage: string) => {
1925

2026
const serializedMessage = messageComputer.computeBytesForVerifying(msg);
2127

22-
const isVerified = verifier.verify(serializedMessage, decodedSignature);
28+
const isVerified = await verifier.verify(
29+
serializedMessage,
30+
decodedSignature
31+
);
2332

2433
return {
2534
isVerified,

src/hooks/transactions/helpers/computeTransactionsNonce.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ export const computeTransactionsNonce = ({
1515
return transactions.map((tx: Transaction, index: number) => {
1616
const nextNonce = latestNonce + index;
1717

18-
const transactionNonce = tx.getNonce().valueOf();
18+
const transactionNonce = tx.nonce;
1919

2020
// stop replacing nonce if transaction is configured with a higher nonce than the existing one
2121
const computedNonce = computeTransactionNonce({
2222
accountNonce: nextNonce,
23-
transactionNonce
23+
transactionNonce: Number(transactionNonce)
2424
});
2525

26-
tx.setNonce(computedNonce);
26+
tx.nonce = BigInt(computedNonce);
2727

2828
return tx;
2929
});

src/hooks/transactions/tests/computeTransactionsNonce.test.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ describe('computeTransactionsNonce', () => {
6262
const transactions = mockedTransactions.map((tx) => {
6363
tx.nonce = 0;
6464
const newTx = newTransaction(tx);
65-
newTx.setNonce = jest.fn();
6665
return newTx;
6766
});
6867

@@ -71,9 +70,6 @@ describe('computeTransactionsNonce', () => {
7170
transactions
7271
});
7372

74-
expect(transactions[0].setNonce).toHaveBeenCalledWith(123);
75-
expect(transactions[1].setNonce).toHaveBeenCalledWith(124);
76-
expect(transactions[2].setNonce).toHaveBeenCalledWith(125);
7773
expect(result).toEqual(transactions);
7874
});
7975

@@ -83,7 +79,6 @@ describe('computeTransactionsNonce', () => {
8379
const transactions = mockedTransactions.map((tx, i) => {
8480
tx.nonce = 125 + i;
8581
const newTx = newTransaction(tx);
86-
newTx.setNonce = jest.fn();
8782
return newTx;
8883
});
8984

@@ -92,9 +87,6 @@ describe('computeTransactionsNonce', () => {
9287
transactions
9388
});
9489

95-
expect(transactions[0].setNonce).toHaveBeenCalledWith(125);
96-
expect(transactions[1].setNonce).toHaveBeenCalledWith(126);
97-
expect(transactions[2].setNonce).toHaveBeenCalledWith(127);
9890
expect(result).toEqual(transactions);
9991
});
10092
});

src/hooks/transactions/useSignMultipleTransactions.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,15 @@ export const useSignMultipleTransactions = ({
9595
useParseMultiEsdtTransferData({
9696
transactions: activeGuardianAddress
9797
? transactionsToSign?.map((transaction) => {
98-
transaction.setSender(Address.fromBech32(address));
99-
transaction.setVersion(TransactionVersion.withTxOptions());
100-
transaction.setGuardian(Address.fromBech32(activeGuardianAddress));
98+
transaction.sender = Address.newFromBech32(address);
99+
transaction.version = TransactionVersion.withTxOptions().valueOf();
100+
transaction.guardian = Address.newFromBech32(activeGuardianAddress);
101101
const options = {
102102
guarded: true,
103103
...(isLedger ? { hashSign: true } : {})
104104
};
105-
transaction.setOptions(TransactionOptions.withOptions(options));
105+
transaction.options =
106+
TransactionOptions.withOptions(options).valueOf();
106107
return transaction;
107108
})
108109
: transactionsToSign
@@ -165,7 +166,7 @@ export const useSignMultipleTransactions = ({
165166

166167
setCurrentTransaction({
167168
transaction,
168-
ppu: ppuMap[nonce].ppu || EMPTY_PPU,
169+
ppu: ppuMap[Number(nonce)].ppu || EMPTY_PPU,
169170
receiverScamInfo: verifiedAddresses[receiver]?.info || null,
170171
transactionTokenInfo,
171172
isTokenTransaction,
@@ -181,27 +182,26 @@ export const useSignMultipleTransactions = ({
181182

182183
const nonce = currentEditedTransaction.getNonce().valueOf();
183184

184-
const currentMultiplier = ppuMap[nonce].ppu;
185-
const initialGasPrice = ppuMap[nonce].initialGasPrice;
185+
const currentMultiplier = ppuMap[Number(nonce)].ppu;
186+
const initialGasPrice = ppuMap[Number(nonce)].initialGasPrice;
186187

187188
if (currentMultiplier === newPPU) {
188189
return;
189190
}
190191

191192
setPpuMap((existing) => {
192193
const newPpuMap = { ...existing };
193-
newPpuMap[nonce] = {
194-
...newPpuMap[nonce],
194+
newPpuMap[Number(nonce)] = {
195+
...newPpuMap[Number(nonce)],
195196
ppu: newPPU
196197
};
197198
return newPpuMap;
198199
});
199200

200201
const newGasPrice = newPPU
201202
? recommendGasPrice({
202-
transactionDataLength: currentEditedTransaction.getData().toString()
203-
.length,
204-
transactionGasLimit: currentEditedTransaction.getGasLimit().valueOf(),
203+
transactionDataLength: currentEditedTransaction.data.length,
204+
transactionGasLimit: Number(currentEditedTransaction.gasLimit),
205205
ppu: newPPU
206206
})
207207
: initialGasPrice;
@@ -238,9 +238,9 @@ export const useSignMultipleTransactions = ({
238238
useEffect(() => {
239239
const newPpuMap: typeof ppuMap = {};
240240
allTransactions.forEach((transaction) => {
241-
const nonce = transaction.transaction.getNonce().valueOf();
242-
newPpuMap[nonce] = {
243-
initialGasPrice: transaction.transaction.getGasPrice().valueOf(),
241+
const nonce = transaction.transaction.nonce;
242+
newPpuMap[Number(nonce)] = {
243+
initialGasPrice: Number(transaction.transaction.gasPrice),
244244
ppu: EMPTY_PPU
245245
};
246246
});

src/hooks/transactions/useSignTransactions.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,11 @@ export const useSignTransactions = () => {
239239
(await provider.signTransactions(
240240
isGuarded && allowGuardian
241241
? transactions?.map((transaction) => {
242-
transaction.setVersion(TransactionVersion.withTxOptions());
243-
transaction.setOptions(
244-
TransactionOptions.withOptions({ guarded: true })
245-
);
242+
transaction.version =
243+
TransactionVersion.withTxOptions().valueOf();
244+
transaction.options = TransactionOptions.withOptions({
245+
guarded: true
246+
}).valueOf();
246247
return transaction;
247248
})
248249
: transactions

0 commit comments

Comments
 (0)