Skip to content

Commit 798299d

Browse files
authored
feat: upgrade to sdk v2 (#382)
1 parent 29d7b72 commit 798299d

File tree

9 files changed

+241
-53
lines changed

9 files changed

+241
-53
lines changed

examples/sample-react-app/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
"@vechain/dapp-kit": "workspace:^",
1919
"@vechain/dapp-kit-react": "workspace:*",
2020
"@vechain/dapp-kit-ui": "workspace:^",
21-
"@vechain/sdk-core": "1.2.0",
22-
"@vechain/sdk-network": "1.2.0",
21+
"@vechain/sdk-core": "2.0.5",
22+
"@vechain/sdk-network": "2.0.5",
2323
"react": "^19.1.0",
2424
"react-dom": "^19.1.0",
2525
"vite": "^6.2.5"

packages/dapp-kit-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"@lit/react": "^1.0.7",
2828
"@vechain/dapp-kit": "workspace:*",
2929
"@vechain/dapp-kit-ui": "workspace:*",
30-
"@vechain/sdk-core": "1.2.0",
30+
"@vechain/sdk-core": "^2.0.0",
3131
"valtio": "1.13.2"
3232
},
3333
"devDependencies": {

packages/dapp-kit-ui/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
"dependencies": {
3636
"@vechain/dapp-kit": "workspace:*",
3737
"@vechain/picasso": "2.1.1",
38-
"@vechain/sdk-core": "1.2.0",
39-
"@vechain/sdk-network": "1.2.0",
38+
"@vechain/sdk-core": "^2.0.0",
39+
"@vechain/sdk-network": "^2.0.0",
4040
"@wagmi/core": "^2.16.7",
4141
"@web3modal/ethereum": "^2.7.1",
4242
"@web3modal/html": "^2.7.1",

packages/dapp-kit/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
},
2525
"dependencies": {
2626
"@vechain/connex-wallet-buddy": "^0.1.11",
27-
"@vechain/sdk-core": "1.2.0",
28-
"@vechain/sdk-errors": "1.2.0",
29-
"@vechain/sdk-network": "1.2.0",
27+
"@vechain/sdk-core": "^2.0.0",
28+
"@vechain/sdk-errors": "^2.0.0",
29+
"@vechain/sdk-network": "^2.0.0",
3030
"@walletconnect/modal": "2.7.0",
3131
"@walletconnect/sign-client": "2.19.2",
3232
"@walletconnect/utils": "2.19.2",

packages/dapp-kit/src/classes/certificate-wallet.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ import type {
2323
TransactionOptions,
2424
TransactionResponse,
2525
} from '../types/requests';
26-
import { getPrimaryType } from '../utils/typed-data';
26+
import {
27+
getPrimaryType,
28+
parseChainId,
29+
stringifyChainId,
30+
} from '../utils/typed-data';
2731

2832
/**
2933
* A `VechainWallet` for wallet's that use a certificate connection
@@ -79,7 +83,10 @@ class CertificateBasedWallet implements VeChainWallet {
7983
const signer = await recoverTypedDataAddress({
8084
signature: res as `0x${string}`,
8185
message: value.value,
82-
domain: value.domain,
86+
domain: {
87+
...value.domain,
88+
chainId: parseChainId(value.domain.chainId),
89+
},
8390
types: value.types,
8491
primaryType: getPrimaryType(value.types),
8592
});
@@ -192,7 +199,12 @@ class CertificateBasedWallet implements VeChainWallet {
192199
if (!this.wallet.signTypedData) {
193200
throw new Error('signTypedData is not implemented');
194201
}
195-
return this.wallet?.signTypedData(domain, types, message, options);
202+
return this.wallet?.signTypedData(
203+
{ ...domain, chainId: stringifyChainId(domain.chainId) },
204+
types,
205+
message,
206+
options,
207+
);
196208
};
197209

198210
disconnect = async () => {

packages/dapp-kit/src/classes/wallet-manager.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import type {
2727
import type { TypedDataMessage } from '../types/types';
2828
import { createWallet, DAppKitLogger, Storage } from '../utils';
2929
import { getAccountDomain } from '../utils/get-account-domain';
30-
import { getPrimaryType } from '../utils/typed-data';
30+
import { getPrimaryType, parseChainId } from '../utils/typed-data';
3131

3232
class WalletManager {
3333
public state: WalletManagerState;
@@ -273,7 +273,10 @@ class WalletManager {
273273
const signer = await recoverTypedDataAddress({
274274
signature: res as `0x${string}`,
275275
message: typedMessage.value,
276-
domain: typedMessage.domain,
276+
domain: {
277+
...value.domain,
278+
chainId: parseChainId(value.domain.chainId),
279+
},
277280
types: typedMessage.types,
278281
primaryType: getPrimaryType(typedMessage.types),
279282
});

packages/dapp-kit/src/types/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ declare global {
2929
type WalletSource = 'wallet-connect' | 'veworld' | 'sync' | 'sync2';
3030

3131
type TypedDataDomain = {
32-
chainId?: number | bigint | undefined;
32+
chainId?: number | bigint | string | undefined;
3333
name?: string | undefined;
3434
salt?: `0x${string}` | undefined;
3535
verifyingContract?: string | undefined;

packages/dapp-kit/src/utils/typed-data.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { TypedDataDomain } from 'viem';
12
import type { TypedDataMessage } from '../types';
23

34
/**
@@ -109,3 +110,19 @@ const hasBaseEncoder = (type: string) => {
109110

110111
return false;
111112
};
113+
114+
export const parseChainId = (
115+
chainId: TypedDataMessage['domain']['chainId'],
116+
): TypedDataDomain['chainId'] => {
117+
if (chainId === undefined) return undefined;
118+
if (typeof chainId === 'string') return BigInt(chainId);
119+
return chainId;
120+
};
121+
122+
export const stringifyChainId = (
123+
chainId: TypedDataMessage['domain']['chainId'],
124+
): string | undefined => {
125+
if (chainId === undefined) return undefined;
126+
if (typeof chainId === 'string') return chainId;
127+
return chainId.toString();
128+
};

0 commit comments

Comments
 (0)