@meshconnect/uwc-wallet-connect-connector 0.2.1 → 0.2.3

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 (37) hide show
  1. package/dist/services/ethereum/ethereum-transaction-builder.d.ts +14 -0
  2. package/dist/services/ethereum/ethereum-transaction-builder.d.ts.map +1 -0
  3. package/dist/services/ethereum/ethereum-transaction-builder.js +60 -0
  4. package/dist/services/ethereum/ethereum-transaction-builder.js.map +1 -0
  5. package/dist/services/ethereum/ethereum-transaction-service.d.ts +21 -0
  6. package/dist/services/ethereum/ethereum-transaction-service.d.ts.map +1 -0
  7. package/dist/services/ethereum/ethereum-transaction-service.js +107 -0
  8. package/dist/services/ethereum/ethereum-transaction-service.js.map +1 -0
  9. package/dist/services/signature-service.d.ts +2 -1
  10. package/dist/services/signature-service.d.ts.map +1 -1
  11. package/dist/services/signature-service.js +36 -18
  12. package/dist/services/signature-service.js.map +1 -1
  13. package/dist/services/solana/solana-transaction-builder.d.ts +20 -0
  14. package/dist/services/solana/solana-transaction-builder.d.ts.map +1 -0
  15. package/dist/services/solana/solana-transaction-builder.js +112 -0
  16. package/dist/services/solana/solana-transaction-builder.js.map +1 -0
  17. package/dist/services/solana/solana-transaction-service.d.ts +17 -0
  18. package/dist/services/solana/solana-transaction-service.d.ts.map +1 -0
  19. package/dist/services/solana/solana-transaction-service.js +178 -0
  20. package/dist/services/solana/solana-transaction-service.js.map +1 -0
  21. package/dist/services/transaction-service.d.ts +2 -17
  22. package/dist/services/transaction-service.d.ts.map +1 -1
  23. package/dist/services/transaction-service.js +8 -246
  24. package/dist/services/transaction-service.js.map +1 -1
  25. package/dist/wallet-connect-connector.d.ts +2 -2
  26. package/dist/wallet-connect-connector.d.ts.map +1 -1
  27. package/dist/wallet-connect-connector.js.map +1 -1
  28. package/package.json +4 -2
  29. package/src/services/ethereum/ethereum-transaction-builder.ts +82 -0
  30. package/src/services/ethereum/ethereum-transaction-service.ts +152 -0
  31. package/src/services/signature-service.ts +47 -18
  32. package/src/services/solana/solana-transaction-builder.ts +214 -0
  33. package/src/services/solana/solana-transaction-service.ts +294 -0
  34. package/src/services/transaction-service.ts +17 -339
  35. package/src/utils/account-utils.ts +1 -1
  36. package/src/wallet-connect-connector.ts +3 -2
  37. package/src/utils/solana-transactions.ts +0 -24
@@ -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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"}
@@ -1,5 +1,6 @@
1
1
  import { WalletConnectClient } from './walletconnect-client';
2
2
  import { ConnectionService } from './connection-service';
3
+ import type { SignatureType } from '@meshconnect/uwc-types';
3
4
  /**
4
5
  * Service for handling message signing in WalletConnect
5
6
  */
@@ -10,6 +11,6 @@ export declare class SignatureService {
10
11
  /**
11
12
  * Sign a message with the connected wallet
12
13
  */
13
- signMessage(message: string): Promise<string>;
14
+ signMessage(message: string): Promise<SignatureType>;
14
15
  }
15
16
  //# sourceMappingURL=signature-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature-service.d.ts","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,iBAAiB;gBADjB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB;IAG9C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA6GpD"}
1
+ {"version":3,"file":"signature-service.d.ts","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,iBAAiB;gBADjB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB;IAG9C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAwI3D"}
@@ -3,6 +3,7 @@ import { ConnectionService } from './connection-service';
3
3
  import { findAccountInNamespaces, parseAccount } from '../utils/account-utils';
4
4
  import { base58Encode } from '../utils/encoding-utils';
5
5
  import { parseError } from '../utils/error-utils';
6
+ import { TronWeb } from 'tronweb';
6
7
  /**
7
8
  * Service for handling message signing in WalletConnect
8
9
  */
@@ -57,24 +58,27 @@ export class SignatureService {
57
58
  };
58
59
  break;
59
60
  }
60
- case 'bip122':
61
- method = 'signMessage';
62
- params = [
63
- {
64
- message,
65
- address
66
- }
67
- ];
68
- break;
69
- case 'tron':
70
- method = 'tron_signMessage';
71
- params = [
72
- {
73
- message,
74
- address
61
+ case 'tron': {
62
+ // For TRON the user signs a mock transaction, since trust wallet returns incorrect TRON signatures
63
+ const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io/' });
64
+ const mockContract = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';
65
+ const mockTransaction = await tronWeb.transactionBuilder.triggerSmartContract(mockContract, 'approve(address,uint256)', { feeLimit: 200000000 }, [
66
+ { type: 'address', value: address },
67
+ { type: 'uint256', value: 0 }
68
+ ], address);
69
+ if (!mockTransaction.transaction) {
70
+ throw new Error('Failed to trigger contract');
71
+ }
72
+ mockTransaction.transaction.raw_data.data = tronWeb.toHex(message);
73
+ method = 'tron_signTransaction';
74
+ params = {
75
+ address,
76
+ transaction: {
77
+ ...mockTransaction
75
78
  }
76
- ];
79
+ };
77
80
  break;
81
+ }
78
82
  default:
79
83
  throw new Error(`Signing not supported for namespace: ${accountNamespace}`);
80
84
  }
@@ -90,9 +94,23 @@ export class SignatureService {
90
94
  // Handle different response formats
91
95
  if (accountNamespace === 'solana') {
92
96
  // Solana returns an object with a signature property
93
- return result.signature;
97
+ return {
98
+ type: 'standard',
99
+ signature: result.signature
100
+ };
101
+ }
102
+ else if (accountNamespace === 'tron') {
103
+ const tronResult = result.result;
104
+ return {
105
+ type: 'tron',
106
+ signature: tronResult.signature,
107
+ txID: tronResult.txID
108
+ };
94
109
  }
95
- return result;
110
+ return {
111
+ type: 'standard',
112
+ signature: result
113
+ };
96
114
  }
97
115
  catch (error) {
98
116
  throw parseError(error);
@@ -1 +1 @@
1
- {"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGjC;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAEjB;IACA;IAFV,YACU,mBAAwC,EACxC,iBAAoC;QADpC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAC3C,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAA;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAA;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAA;YAE/D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;YAEzD,+DAA+D;YAC/D,MAAM,aAAa,GAAG,uBAAuB,CAC3C,OAAO,CAAC,UAAU,EAClB,aAAa,CAAC,EAAE,EAChB,aAAa,CACd,CAAA;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CACb,gCAAgC,aAAa,CAAC,EAAE,gBAAgB,aAAa,EAAE,CAChF,CAAA;YACH,CAAC;YAED,MAAM,EACJ,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EACP,OAAO,EACR,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;YAE/B,kDAAkD;YAClD,IAAI,MAAc,CAAA;YAClB,IAAI,MAA2B,CAAA;YAE/B,QAAQ,gBAAgB,EAAE,CAAC;gBACzB,KAAK,QAAQ;oBACX,MAAM,GAAG,eAAe,CAAA;oBACxB,wCAAwC;oBACxC,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBAC3B,MAAK;gBAEP,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,MAAM,GAAG,oBAAoB,CAAA;oBAC7B,iDAAiD;oBACjD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;oBAE3C,gDAAgD;oBAChD,MAAM,GAAG;wBACP,OAAO,EAAE,aAAa;wBACtB,MAAM,EAAE,OAAO;qBAChB,CAAA;oBACD,MAAK;gBACP,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,mGAAmG;oBACnG,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAA;oBACrE,MAAM,YAAY,GAAG,oCAAoC,CAAA;oBAEzD,MAAM,eAAe,GACnB,MAAM,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CACnD,YAAY,EACZ,0BAA0B,EAC1B,EAAE,QAAQ,EAAE,SAAS,EAAE,EACvB;wBACE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;wBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;qBAC9B,EACD,OAAO,CACR,CAAA;oBAEH,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;wBACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;oBAC/C,CAAC;oBACD,eAAe,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAElE,MAAM,GAAG,sBAAsB,CAAA;oBAC/B,MAAM,GAAG;wBACP,OAAO;wBACP,WAAW,EAAE;4BACX,GAAG,eAAe;yBACnB;qBACF,CAAA;oBACD,MAAK;gBACP,CAAC;gBAED;oBACE,MAAM,IAAI,KAAK,CACb,wCAAwC,gBAAgB,EAAE,CAC3D,CAAA;YACL,CAAC;YACD,2BAA2B;YAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,GAAG,gBAAgB,IAAI,OAAO,EAAE;gBACzC,OAAO,EAAE;oBACP,MAAM;oBACN,MAAM;iBACP;aACF,CAAC,CAAA;YAEF,oCAAoC;YACpC,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBAClC,qDAAqD;gBACrD,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAG,MAAgC,CAAC,SAAS;iBACvD,CAAA;YACH,CAAC;iBAAM,IAAI,gBAAgB,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,UAAU,GACd,MACD,CAAC,MAAM,CAAA;gBACR,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,UAAU,CAAC,IAAI;iBACtB,CAAA;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,MAAgB;aAC5B,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;CACF"}
@@ -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"}