@meshconnect/uwc-wallet-connect-connector 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/services/connection-service.d.ts.map +1 -1
  2. package/dist/services/connection-service.js +0 -2
  3. package/dist/services/connection-service.js.map +1 -1
  4. package/dist/services/ethereum/ethereum-transaction-builder.d.ts +14 -0
  5. package/dist/services/ethereum/ethereum-transaction-builder.d.ts.map +1 -0
  6. package/dist/services/ethereum/ethereum-transaction-builder.js +60 -0
  7. package/dist/services/ethereum/ethereum-transaction-builder.js.map +1 -0
  8. package/dist/services/ethereum/ethereum-transaction-service.d.ts +21 -0
  9. package/dist/services/ethereum/ethereum-transaction-service.d.ts.map +1 -0
  10. package/dist/services/ethereum/ethereum-transaction-service.js +107 -0
  11. package/dist/services/ethereum/ethereum-transaction-service.js.map +1 -0
  12. package/dist/services/solana/solana-transaction-builder.d.ts +20 -0
  13. package/dist/services/solana/solana-transaction-builder.d.ts.map +1 -0
  14. package/dist/services/solana/solana-transaction-builder.js +112 -0
  15. package/dist/services/solana/solana-transaction-builder.js.map +1 -0
  16. package/dist/services/solana/solana-transaction-service.d.ts +17 -0
  17. package/dist/services/solana/solana-transaction-service.d.ts.map +1 -0
  18. package/dist/services/solana/solana-transaction-service.js +178 -0
  19. package/dist/services/solana/solana-transaction-service.js.map +1 -0
  20. package/dist/services/transaction-service.d.ts +2 -17
  21. package/dist/services/transaction-service.d.ts.map +1 -1
  22. package/dist/services/transaction-service.js +8 -246
  23. package/dist/services/transaction-service.js.map +1 -1
  24. package/package.json +3 -2
  25. package/src/services/connection-service.ts +0 -3
  26. package/src/services/ethereum/ethereum-transaction-builder.ts +82 -0
  27. package/src/services/ethereum/ethereum-transaction-service.ts +152 -0
  28. package/src/services/solana/solana-transaction-builder.ts +214 -0
  29. package/src/services/solana/solana-transaction-service.ts +294 -0
  30. package/src/services/transaction-service.ts +17 -339
  31. package/src/utils/account-utils.ts +1 -1
  32. package/src/utils/solana-transactions.ts +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"connection-service.d.ts","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAI5D;;GAEG;AACH,qBAAa,iBAAiB;IAMhB,OAAO,CAAC,mBAAmB;IALvC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAsB;gBAEvB,mBAAmB,EAAE,mBAAmB;IAE5D;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC;IA0D3B;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqGnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;OAEG;IACH,UAAU,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,gBAAgB,IAAI,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
1
+ {"version":3,"file":"connection-service.d.ts","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAI5D;;GAEG;AACH,qBAAa,iBAAiB;IAMhB,OAAO,CAAC,mBAAmB;IALvC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAsB;gBAEvB,mBAAmB,EAAE,mBAAmB;IAE5D;;;OAGG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,eAAe,CAAC;IAuD3B;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqGnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;OAEG;IACH,UAAU,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,IAAI;IAI9C;;OAEG;IACH,gBAAgB,IAAI,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
@@ -20,8 +20,6 @@ export class ConnectionService {
20
20
  async connect(network, provider) {
21
21
  try {
22
22
  const client = await this.walletConnectClient.getClient();
23
- // Disconnect any existing sessions first
24
- await this.walletConnectClient.disconnectAll();
25
23
  // Build namespaces from the provider's supported network IDs
26
24
  const optionalNamespaces = this.buildNamespacesFromProvider(provider);
27
25
  // Initiate connection - this starts the connection process
@@ -1 +1 @@
1
- {"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-service.js","sourceRoot":"","sources":["../../src/services/connection-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { EVMNativeTransferRequest, EVMContractCallRequest } from '@meshconnect/uwc-types';
2
+ import type { TransactionRequest } from 'ethers';
3
+ /**
4
+ * Service for handling Ethereum/EVM transaction operations
5
+ */
6
+ export declare class EthereumTransactionBuilder {
7
+ getContractTransaction(request: EVMContractCallRequest): Promise<TransactionRequest>;
8
+ getNativeTransaction(request: EVMNativeTransferRequest): Promise<TransactionRequest>;
9
+ /**
10
+ * Helper to format gas configuration for ethers
11
+ */
12
+ private formatGasConfig;
13
+ }
14
+ //# sourceMappingURL=ethereum-transaction-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum-transaction-builder.d.ts","sourceRoot":"","sources":["../../../src/services/ethereum/ethereum-transaction-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAEhD;;GAEG;AACH,qBAAa,0BAA0B;IAC/B,sBAAsB,CAC1B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;IAgCxB,oBAAoB,CACxB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC;IAY9B;;OAEG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
@@ -0,0 +1,60 @@
1
+ import { ethers } from 'ethers';
2
+ import { parseError } from '../../utils/error-utils';
3
+ /**
4
+ * Service for handling Ethereum/EVM transaction operations
5
+ */
6
+ export class EthereumTransactionBuilder {
7
+ async getContractTransaction(request) {
8
+ try {
9
+ // Build transaction options
10
+ const txOptions = {
11
+ ...this.formatGasConfig(request.gasConfig)
12
+ };
13
+ // Add value for payable functions
14
+ if (request.value) {
15
+ txOptions.value = request.value;
16
+ }
17
+ const iface = new ethers.Interface(request.abi);
18
+ const data = iface.encodeFunctionData(request.functionName, request.args || []);
19
+ const txRequest = {
20
+ to: request.contractAddress,
21
+ data,
22
+ value: request.value ?? 0n,
23
+ ...txOptions
24
+ };
25
+ return txRequest;
26
+ }
27
+ catch (error) {
28
+ parseError(error);
29
+ }
30
+ }
31
+ async getNativeTransaction(request) {
32
+ try {
33
+ return {
34
+ to: request.to,
35
+ value: request.amount,
36
+ ...this.formatGasConfig(request.gasConfig)
37
+ };
38
+ }
39
+ catch (error) {
40
+ parseError(error);
41
+ }
42
+ }
43
+ /**
44
+ * Helper to format gas configuration for ethers
45
+ */
46
+ formatGasConfig(gasConfig) {
47
+ const txOptions = {};
48
+ if (gasConfig?.gasLimit) {
49
+ txOptions.gasLimit = BigInt(Math.floor(gasConfig.gasLimit));
50
+ }
51
+ if (gasConfig?.maxFeePerGas) {
52
+ txOptions.maxFeePerGas = BigInt(Math.floor(gasConfig.maxFeePerGas));
53
+ }
54
+ if (gasConfig?.maxPriorityFeePerGas) {
55
+ txOptions.maxPriorityFeePerGas = BigInt(Math.floor(gasConfig.maxPriorityFeePerGas));
56
+ }
57
+ return txOptions;
58
+ }
59
+ }
60
+ //# sourceMappingURL=ethereum-transaction-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum-transaction-builder.js","sourceRoot":"","sources":["../../../src/services/ethereum/ethereum-transaction-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAM/B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGpD;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACrC,KAAK,CAAC,sBAAsB,CAC1B,OAA+B;QAE/B,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,SAAS,GAAqB;gBAClC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;aAC3C,CAAA;YAED,kCAAkC;YAClC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;YACjC,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAE/C,MAAM,IAAI,GAAG,KAAK,CAAC,kBAAkB,CACnC,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,IAAI,IAAI,EAAE,CACnB,CAAA;YAED,MAAM,SAAS,GAAuB;gBACpC,EAAE,EAAE,OAAO,CAAC,eAAe;gBAC3B,IAAI;gBACJ,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;gBAC1B,GAAG,SAAS;aACb,CAAA;YAED,OAAO,SAAS,CAAA;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,OAAiC;QAEjC,IAAI,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC;aAC3C,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,SAAwB;QAC9C,MAAM,SAAS,GAAqB,EAAE,CAAA;QAEtC,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC;YACxB,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;YAC5B,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,SAAS,EAAE,oBAAoB,EAAE,CAAC;YACpC,SAAS,CAAC,oBAAoB,GAAG,MAAM,CACrC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAC3C,CAAA;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { EthereumTransactionRequest } from '@meshconnect/uwc-types';
2
+ import type SignClient from '@walletconnect/sign-client';
3
+ import type { SessionTypes } from '@walletconnect/types';
4
+ export declare class EthereumTransactionService {
5
+ private builder;
6
+ constructor();
7
+ /**
8
+ * Send an Ethereum transaction
9
+ */
10
+ sendTransaction(client: SignClient, session: SessionTypes.Struct, request: EthereumTransactionRequest, activeNetworkId: string): Promise<string>;
11
+ /**
12
+ * Send native token transfer (ETH, BNB, MATIC, etc.)
13
+ */
14
+ private sendNativeTransaction;
15
+ /**
16
+ * Send smart contract transaction (including ERC-20 transfers)
17
+ */
18
+ private sendContractCall;
19
+ private parseTransaction;
20
+ }
21
+ //# sourceMappingURL=ethereum-transaction-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum-transaction-service.d.ts","sourceRoot":"","sources":["../../../src/services/ethereum/ethereum-transaction-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAI3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAMxD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,OAAO,CAA4B;;IAI3C;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,YAAY,CAAC,MAAM,EAC5B,OAAO,EAAE,0BAA0B,EACnC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC;IAgClB;;OAEG;YACW,qBAAqB;IA6BnC;;OAEG;YACW,gBAAgB;IA6B9B,OAAO,CAAC,gBAAgB;CA6BzB"}
@@ -0,0 +1,107 @@
1
+ import { getChainIdFromNetworkId } from '../../utils/account-utils';
2
+ import { parseError } from '../../utils/error-utils';
3
+ import { EthereumTransactionBuilder } from './ethereum-transaction-builder';
4
+ export class EthereumTransactionService {
5
+ builder;
6
+ constructor() {
7
+ this.builder = new EthereumTransactionBuilder();
8
+ }
9
+ /**
10
+ * Send an Ethereum transaction
11
+ */
12
+ async sendTransaction(client, session, request, activeNetworkId) {
13
+ try {
14
+ // Handle different types of EVM transactions
15
+ if ('contractAddress' in request && 'abi' in request) {
16
+ // Contract call
17
+ return await this.sendContractCall(client, session, request, activeNetworkId);
18
+ }
19
+ else if ('calls' in request) {
20
+ // Batch transaction - not yet supported
21
+ throw new Error('Batch transactions are not yet supported for WalletConnect');
22
+ }
23
+ else if ('amount' in request && typeof request.amount === 'bigint') {
24
+ // Native transfer
25
+ return await this.sendNativeTransaction(client, session, request, activeNetworkId);
26
+ }
27
+ else {
28
+ throw new Error('Invalid transaction request type');
29
+ }
30
+ }
31
+ catch (error) {
32
+ throw parseError(error);
33
+ }
34
+ }
35
+ /**
36
+ * Send native token transfer (ETH, BNB, MATIC, etc.)
37
+ */
38
+ async sendNativeTransaction(client, session, request, activeNetworkId) {
39
+ try {
40
+ // Use the active network chainId
41
+ const chainId = getChainIdFromNetworkId(activeNetworkId);
42
+ const params = this.parseTransaction(await this.builder.getNativeTransaction(request));
43
+ const hash = await client.request({
44
+ topic: session.topic,
45
+ chainId: `eip155:${chainId}`,
46
+ request: {
47
+ method: 'eth_sendTransaction',
48
+ params: [params]
49
+ }
50
+ });
51
+ return hash;
52
+ }
53
+ catch (error) {
54
+ throw parseError(error);
55
+ }
56
+ }
57
+ /**
58
+ * Send smart contract transaction (including ERC-20 transfers)
59
+ */
60
+ async sendContractCall(client, session, request, activeNetworkId) {
61
+ try {
62
+ // Use the active network chainId
63
+ const chainId = getChainIdFromNetworkId(activeNetworkId);
64
+ const params = this.parseTransaction(await this.builder.getContractTransaction(request));
65
+ const hash = await client.request({
66
+ topic: session.topic,
67
+ chainId: `eip155:${chainId}`,
68
+ request: {
69
+ method: 'eth_sendTransaction',
70
+ params: [params]
71
+ }
72
+ });
73
+ return hash;
74
+ }
75
+ catch (error) {
76
+ throw parseError(error);
77
+ }
78
+ }
79
+ parseTransaction(tx) {
80
+ // Convert to hex format for WalletConnect
81
+ const txParams = {
82
+ from: tx.from,
83
+ to: tx.to,
84
+ data: (tx.data ?? '0x')
85
+ };
86
+ // Add value if present
87
+ if (tx.value) {
88
+ txParams['value'] = '0x' + BigInt(tx.value).toString(16);
89
+ }
90
+ else {
91
+ txParams['value'] = '0x';
92
+ }
93
+ // Add gas params if present
94
+ if (tx.gasLimit) {
95
+ txParams['gasLimit'] = '0x' + tx.gasLimit.toString(16);
96
+ }
97
+ if (tx.maxFeePerGas) {
98
+ txParams['maxFeePerGas'] = '0x' + tx.maxFeePerGas.toString(16);
99
+ }
100
+ if (tx.maxPriorityFeePerGas) {
101
+ txParams['maxPriorityFeePerGas'] =
102
+ '0x' + tx.maxPriorityFeePerGas.toString(16);
103
+ }
104
+ return txParams;
105
+ }
106
+ }
107
+ //# sourceMappingURL=ethereum-transaction-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum-transaction-service.js","sourceRoot":"","sources":["../../../src/services/ethereum/ethereum-transaction-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { PublicKey, TransactionInstruction, VersionedTransaction } from '@solana/web3.js';
2
+ import type { SolanaTransactionRequest } from '@meshconnect/uwc-types';
3
+ /**
4
+ * Service for handling Solana transaction operations
5
+ */
6
+ export declare class SolanaTransactionBuilder {
7
+ buildTransferInstructions(request: SolanaTransactionRequest): Promise<TransactionInstruction[]>;
8
+ getVersionedTransaction(feePayer: PublicKey, request: SolanaTransactionRequest): Promise<VersionedTransaction>;
9
+ /**
10
+ * Build native SOL transfer
11
+ */
12
+ private buildNativeTransferInstruction;
13
+ /**
14
+ * Build SPL Token transfer
15
+ */
16
+ private buildSplTokenTransferInstructions;
17
+ private buildGenericTransferInstructions;
18
+ private parseLookupTable;
19
+ }
20
+ //# sourceMappingURL=solana-transaction-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-transaction-builder.d.ts","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAET,sBAAsB,EAEtB,oBAAoB,EAErB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAKV,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAU/B;;GAEG;AACH,qBAAa,wBAAwB;IAC7B,yBAAyB,CAC7B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAkB9B,uBAAuB,CAC3B,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,oBAAoB,CAAC;IAYhC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;OAEG;YACW,iCAAiC;YA8DjC,gCAAgC;IAiD9C,OAAO,CAAC,gBAAgB,CAqBvB;CACF"}
@@ -0,0 +1,112 @@
1
+ import { AddressLookupTableAccount, PublicKey, SystemProgram, TransactionInstruction, TransactionMessage, VersionedTransaction } from '@solana/web3.js';
2
+ import { createTransferCheckedInstruction, createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddress, TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token';
3
+ import { Buffer } from 'buffer';
4
+ /**
5
+ * Service for handling Solana transaction operations
6
+ */
7
+ export class SolanaTransactionBuilder {
8
+ async buildTransferInstructions(request) {
9
+ if ('tokenMint' in request) {
10
+ return await this.buildSplTokenTransferInstructions(request);
11
+ }
12
+ else if ('instructions' in request) {
13
+ return await this.buildGenericTransferInstructions(request);
14
+ }
15
+ else {
16
+ return [
17
+ this.buildNativeTransferInstruction(request)
18
+ ];
19
+ }
20
+ }
21
+ async getVersionedTransaction(feePayer, request) {
22
+ const lookupTable = this.parseLookupTable(request);
23
+ return new VersionedTransaction(new TransactionMessage({
24
+ payerKey: feePayer,
25
+ recentBlockhash: request.blockhash,
26
+ instructions: await this.buildTransferInstructions(request)
27
+ }).compileToV0Message(lookupTable));
28
+ }
29
+ /**
30
+ * Build native SOL transfer
31
+ */
32
+ buildNativeTransferInstruction(request) {
33
+ return SystemProgram.transfer({
34
+ fromPubkey: new PublicKey(request.from),
35
+ toPubkey: new PublicKey(request.to),
36
+ lamports: Number(request.amount)
37
+ });
38
+ }
39
+ /**
40
+ * Build SPL Token transfer
41
+ */
42
+ async buildSplTokenTransferInstructions(request) {
43
+ let instructions = [];
44
+ // Create Public Keys
45
+ const mint = new PublicKey(request.tokenMint);
46
+ const from = new PublicKey(request.from);
47
+ const to = new PublicKey(request.to);
48
+ const fromTokenAccount = await getAssociatedTokenAddress(mint, from, false, request.tokenProgram
49
+ ? new PublicKey(request.tokenProgram)
50
+ : TOKEN_PROGRAM_ID);
51
+ const toTokenAccount = await getAssociatedTokenAddress(mint, to, false, request.tokenProgram
52
+ ? new PublicKey(request.tokenProgram)
53
+ : TOKEN_PROGRAM_ID);
54
+ // Create target associated token account
55
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(from, toTokenAccount, to, mint, request.tokenProgram
56
+ ? new PublicKey(request.tokenProgram)
57
+ : TOKEN_PROGRAM_ID));
58
+ const programId = request.tokenProgram === TOKEN_2022_PROGRAM_ID.toBase58()
59
+ ? TOKEN_2022_PROGRAM_ID
60
+ : TOKEN_PROGRAM_ID;
61
+ instructions.push(createTransferCheckedInstruction(fromTokenAccount, mint, toTokenAccount, from, request.amount, request.tokenDecimals, [], programId));
62
+ return instructions;
63
+ }
64
+ async buildGenericTransferInstructions(request) {
65
+ const result = [];
66
+ const instructions = request.instructions;
67
+ for (let instrIndex = 0; instrIndex < instructions.length; instrIndex++) {
68
+ const ix = instructions[instrIndex];
69
+ const programId = new PublicKey(ix.programId);
70
+ const keys = ix.accounts.map((meta, accountIndex) => {
71
+ if (!meta.pubKey) {
72
+ throw new Error(`Account at instruction ${instrIndex}, index ${accountIndex} has no pubKey and is not fillable`);
73
+ }
74
+ const resolvedPubkey = new PublicKey(meta.pubKey);
75
+ return {
76
+ pubkey: resolvedPubkey,
77
+ isSigner: meta.isSigner,
78
+ isWritable: meta.isWritable
79
+ };
80
+ });
81
+ result.push(new TransactionInstruction({
82
+ keys,
83
+ programId,
84
+ data: Buffer.from(ix.data, 'base64')
85
+ }));
86
+ }
87
+ if (request.additionalRequests) {
88
+ const extraInstructions = await Promise.all(request.additionalRequests.map(req => this.buildTransferInstructions(req)));
89
+ result.push(...extraInstructions.flat());
90
+ }
91
+ return result;
92
+ }
93
+ parseLookupTable = (request) => {
94
+ if (!('states' in request)) {
95
+ return undefined;
96
+ }
97
+ return (request.states ?? []).map(state => {
98
+ const currentState = {
99
+ deactivationSlot: state.deactivationSlot,
100
+ lastExtendedSlot: state.lastExtendedSlot,
101
+ lastExtendedSlotStartIndex: state.lastExtendedStartIndex,
102
+ addresses: [],
103
+ ...(state.authority && { authority: new PublicKey(state.authority) })
104
+ };
105
+ return new AddressLookupTableAccount({
106
+ key: new PublicKey(state.key),
107
+ state: currentState
108
+ });
109
+ });
110
+ };
111
+ }
112
+ //# sourceMappingURL=solana-transaction-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-transaction-builder.js","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { NetworkRpcMap, SolanaTransactionRequest } from '@meshconnect/uwc-types';
2
+ import type SignClient from '@walletconnect/sign-client';
3
+ import type { SessionTypes } from '@walletconnect/types';
4
+ export declare class SolanaTransactionService {
5
+ private networkRpcMap;
6
+ private builder;
7
+ constructor(networkRpcMap?: NetworkRpcMap);
8
+ /**
9
+ * Send a Solana transaction
10
+ */
11
+ sendTransaction(client: SignClient, session: SessionTypes.Struct, request: SolanaTransactionRequest, activeNetworkId: string, activeAddress: string): Promise<string>;
12
+ private sendGenericTransferWithInstructions;
13
+ private sendNativeTransaction;
14
+ private sendSplTokenTransaction;
15
+ private submitTransaction;
16
+ }
17
+ //# sourceMappingURL=solana-transaction-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-transaction-service.d.ts","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAIb,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAO/B,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOxD,qBAAa,wBAAwB;IAGvB,OAAO,CAAC,aAAa;IAFjC,OAAO,CAAC,OAAO,CAA0B;gBAErB,aAAa,GAAE,aAAkB;IAIrD;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,YAAY,CAAC,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC;YAsCJ,mCAAmC;YAuCnC,qBAAqB;YAsCrB,uBAAuB;YAuCvB,iBAAiB;CAqGhC"}
@@ -0,0 +1,178 @@
1
+ import { VersionedTransaction, PublicKey, Connection, Transaction } from '@solana/web3.js';
2
+ import { standardizeSignature } from '../../utils/encoding-utils';
3
+ import { parseError } from '../../utils/error-utils';
4
+ import { Buffer } from 'buffer';
5
+ import base58 from 'bs58';
6
+ import { SolanaTransactionBuilder } from './solana-transaction-builder';
7
+ export class SolanaTransactionService {
8
+ networkRpcMap;
9
+ builder;
10
+ constructor(networkRpcMap = {}) {
11
+ this.networkRpcMap = networkRpcMap;
12
+ this.builder = new SolanaTransactionBuilder();
13
+ }
14
+ /**
15
+ * Send a Solana transaction
16
+ */
17
+ async sendTransaction(client, session, request, activeNetworkId, activeAddress) {
18
+ try {
19
+ // Handle different types of Solana transactions
20
+ if ('tokenMint' in request) {
21
+ // SPL token transfer
22
+ return await this.sendSplTokenTransaction(client, session, request, activeNetworkId, activeAddress);
23
+ }
24
+ else if ('instructions' in request) {
25
+ // Generic transaction with instructions
26
+ return await this.sendGenericTransferWithInstructions(client, session, request, activeNetworkId, activeAddress);
27
+ }
28
+ else if ('from' in request) {
29
+ // Native transfer
30
+ return await this.sendNativeTransaction(client, session, request, activeNetworkId, activeAddress);
31
+ }
32
+ else {
33
+ throw new Error('Invalid transaction request type');
34
+ }
35
+ }
36
+ catch (error) {
37
+ throw parseError(error);
38
+ }
39
+ }
40
+ async sendGenericTransferWithInstructions(client, session, request, activeNetworkId, activeAddress) {
41
+ try {
42
+ if (!activeNetworkId) {
43
+ throw new Error('Active network not found');
44
+ }
45
+ // Verify the from address matches active address
46
+ if (request.feePayer !== activeAddress) {
47
+ throw new Error('Fee payer address does not match connected wallet');
48
+ }
49
+ // Blockhash is required
50
+ if (!request.blockhash) {
51
+ throw new Error('Blockhash is required for Solana transactions');
52
+ }
53
+ let transaction = await this.builder.getVersionedTransaction(new PublicKey(activeAddress), request);
54
+ return this.submitTransaction(client, session, transaction, activeNetworkId, activeAddress);
55
+ }
56
+ catch (error) {
57
+ throw parseError(error);
58
+ }
59
+ }
60
+ async sendNativeTransaction(client, session, request, activeNetworkId, activeAddress) {
61
+ try {
62
+ // Verify the from address matches active address
63
+ if (request.from !== activeAddress) {
64
+ throw new Error('From address does not match connected wallet');
65
+ }
66
+ // Blockhash is required
67
+ if (!request.blockhash) {
68
+ throw new Error('Blockhash is required for Solana transactions');
69
+ }
70
+ let transaction = new Transaction();
71
+ transaction.recentBlockhash = request.blockhash;
72
+ transaction.feePayer = new PublicKey(request.from);
73
+ transaction.instructions =
74
+ await this.builder.buildTransferInstructions(request);
75
+ // Serialize the transaction for WalletConnect
76
+ return this.submitTransaction(client, session, transaction, activeNetworkId, activeAddress);
77
+ }
78
+ catch (error) {
79
+ throw parseError(error);
80
+ }
81
+ }
82
+ async sendSplTokenTransaction(client, session, request, activeNetworkId, activeAddress) {
83
+ try {
84
+ if (!activeNetworkId) {
85
+ throw new Error('Active network not found');
86
+ }
87
+ // Verify the from address matches active address
88
+ if (request.from !== activeAddress) {
89
+ throw new Error('From address does not match connected wallet');
90
+ }
91
+ // Blockhash is required
92
+ if (!request.blockhash) {
93
+ throw new Error('Blockhash is required for Solana transactions');
94
+ }
95
+ let transaction = await this.builder.getVersionedTransaction(new PublicKey(activeAddress), request);
96
+ return this.submitTransaction(client, session, transaction, activeNetworkId, activeAddress);
97
+ }
98
+ catch (error) {
99
+ throw parseError(error);
100
+ }
101
+ }
102
+ async submitTransaction(client, session, transaction, activeNetworkId, activeAddress) {
103
+ // Get the chain ID (e.g., "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" for mainnet)
104
+ const chainId = activeNetworkId;
105
+ let serializedTransaction;
106
+ if (transaction instanceof Transaction) {
107
+ serializedTransaction = transaction
108
+ .serialize({
109
+ verifySignatures: false
110
+ })
111
+ .toString('base64');
112
+ }
113
+ else {
114
+ serializedTransaction = Buffer.from(new Uint8Array(transaction.serialize())).toString('base64');
115
+ }
116
+ try {
117
+ // First try signAndSendTransaction (preferred method)
118
+ const result = await client.request({
119
+ topic: session.topic,
120
+ chainId,
121
+ request: {
122
+ method: 'solana_signAndSendTransaction',
123
+ params: {
124
+ transaction: serializedTransaction
125
+ }
126
+ }
127
+ });
128
+ // WalletConnect returns the signature directly for Solana
129
+ return result;
130
+ }
131
+ catch (signAndSendError) {
132
+ const errorMessage = signAndSendError instanceof Error
133
+ ? signAndSendError.message
134
+ : String(signAndSendError);
135
+ // If signAndSendTransaction is not supported, fallback to signTransaction
136
+ if (errorMessage.includes('solana_signAndSendTransaction') ||
137
+ errorMessage.includes('Missing or invalid')) {
138
+ // Sign the transaction only
139
+ const result = await client.request({
140
+ topic: session.topic,
141
+ chainId,
142
+ request: {
143
+ method: 'solana_signTransaction',
144
+ params: {
145
+ transaction: serializedTransaction
146
+ }
147
+ }
148
+ });
149
+ if ('signature' in result) {
150
+ const decoded = base58.decode(result.signature);
151
+ transaction.addSignature(new PublicKey(activeAddress), Buffer.from(decoded));
152
+ }
153
+ if ('transaction' in result) {
154
+ const decodedTransaction = Buffer.from(result.transaction, 'base64');
155
+ if (transaction instanceof VersionedTransaction) {
156
+ transaction = VersionedTransaction.deserialize(new Uint8Array(decodedTransaction));
157
+ }
158
+ else {
159
+ transaction = Transaction.from(decodedTransaction);
160
+ }
161
+ }
162
+ // Get RPC URL from the network RPC map or fall back to public endpoint
163
+ const rpcUrl = this.networkRpcMap[activeNetworkId] ||
164
+ 'https://alien-newest-vineyard.solana-mainnet.quiknode.pro/ebe5e35661d7edb7a5e48ab84bd9d477e472a40b';
165
+ const connection = new Connection(rpcUrl);
166
+ const rawSignature = await connection.sendRawTransaction(transaction.serialize(), {
167
+ skipPreflight: false,
168
+ maxRetries: 3,
169
+ preflightCommitment: 'confirmed'
170
+ });
171
+ return standardizeSignature(rawSignature);
172
+ }
173
+ // If it's a different error, throw it
174
+ throw signAndSendError;
175
+ }
176
+ }
177
+ }
178
+ //# sourceMappingURL=solana-transaction-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-transaction-service.js","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-service.ts"],"names":[],"mappings":"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"}