@meshconnect/uwc-wallet-connect-connector 0.2.2 → 0.2.4
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.
- package/dist/services/ethereum/ethereum-transaction-builder.d.ts.map +1 -1
- package/dist/services/ethereum/ethereum-transaction-builder.js +2 -0
- package/dist/services/ethereum/ethereum-transaction-builder.js.map +1 -1
- package/dist/services/signature-service.d.ts +2 -1
- package/dist/services/signature-service.d.ts.map +1 -1
- package/dist/services/signature-service.js +36 -18
- package/dist/services/signature-service.js.map +1 -1
- package/dist/wallet-connect-connector.d.ts +2 -2
- package/dist/wallet-connect-connector.d.ts.map +1 -1
- package/dist/wallet-connect-connector.js.map +1 -1
- package/package.json +3 -2
- package/src/services/ethereum/ethereum-transaction-builder.ts +2 -0
- package/src/services/signature-service.ts +47 -18
- package/src/wallet-connect-connector.ts +3 -2
|
@@ -1 +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;
|
|
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;IAiCxB,oBAAoB,CACxB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC;IAa9B;;OAEG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
|
|
@@ -17,6 +17,7 @@ export class EthereumTransactionBuilder {
|
|
|
17
17
|
const iface = new ethers.Interface(request.abi);
|
|
18
18
|
const data = iface.encodeFunctionData(request.functionName, request.args || []);
|
|
19
19
|
const txRequest = {
|
|
20
|
+
from: request.from,
|
|
20
21
|
to: request.contractAddress,
|
|
21
22
|
data,
|
|
22
23
|
value: request.value ?? 0n,
|
|
@@ -31,6 +32,7 @@ export class EthereumTransactionBuilder {
|
|
|
31
32
|
async getNativeTransaction(request) {
|
|
32
33
|
try {
|
|
33
34
|
return {
|
|
35
|
+
from: request.from,
|
|
34
36
|
to: request.to,
|
|
35
37
|
value: request.amount,
|
|
36
38
|
...this.formatGasConfig(request.gasConfig)
|
|
@@ -1 +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"}
|
|
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,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,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,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,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"}
|
|
@@ -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<
|
|
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,
|
|
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 '
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
];
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
|
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
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Network, Connector, ConnectorResult, SwitchNetworkResult, WalletConnectConfig, WalletConnectProvider, TransactionRequest, TransactionResult, NetworkRpcMap } from '@meshconnect/uwc-types';
|
|
1
|
+
import type { Network, Connector, ConnectorResult, SwitchNetworkResult, WalletConnectConfig, WalletConnectProvider, TransactionRequest, TransactionResult, NetworkRpcMap, SignatureType } from '@meshconnect/uwc-types';
|
|
2
2
|
export declare class WalletConnectConnector implements Connector {
|
|
3
3
|
private walletConnectClient;
|
|
4
4
|
private connectionService;
|
|
@@ -11,7 +11,7 @@ export declare class WalletConnectConnector implements Connector {
|
|
|
11
11
|
getConnectionURI(): string;
|
|
12
12
|
disconnect(): Promise<void>;
|
|
13
13
|
switchNetwork(network: Network): Promise<SwitchNetworkResult>;
|
|
14
|
-
signMessage(message: string): Promise<
|
|
14
|
+
signMessage(message: string): Promise<SignatureType>;
|
|
15
15
|
sendTransaction(request: TransactionRequest): Promise<TransactionResult>;
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=wallet-connect-connector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-connect-connector.d.ts","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAA;AAO/B,qBAAa,sBAAuB,YAAW,SAAS;IACtD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,aAAa,CAAe;gBAExB,MAAM,EAAE,mBAAmB,EAAE,aAAa,GAAE,aAAkB;IAmBpE,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC;IAU3B,gBAAgB,IAAI,MAAM;IAQpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"wallet-connect-connector.d.ts","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACd,MAAM,wBAAwB,CAAA;AAO/B,qBAAa,sBAAuB,YAAW,SAAS;IACtD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,aAAa,CAAe;gBAExB,MAAM,EAAE,mBAAmB,EAAE,aAAa,GAAE,aAAkB;IAmBpE,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,OAAO,CAAC,eAAe,CAAC;IAU3B,gBAAgB,IAAI,MAAM;IAQpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIpD,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;CAG9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-connect-connector.js","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-connect-connector.js","sourceRoot":"","sources":["../src/wallet-connect-connector.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,MAAM,OAAO,sBAAsB;IACzB,mBAAmB,CAAqB;IACxC,iBAAiB,CAAmB;IACpC,oBAAoB,CAAsB;IAC1C,gBAAgB,CAAkB;IAClC,kBAAkB,CAAoB;IACtC,aAAa,CAAe;IAEpC,YAAY,MAA2B,EAAE,gBAA+B,EAAE;QACxE,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAC1D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QACxE,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAClD,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,CACvB,CAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAC1C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,CACvB,CAAA;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAC9C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAgB,EAChB,QAAgC;QAEhC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAA;QACH,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC1D,CAAC;IAED,gBAAgB;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAA;QACrD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB;QAClC,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAA2B;QAE3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACzD,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/uwc-wallet-connect-connector",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "WalletConnect connector for Universal Wallet Connector",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
"bs58": "^6.0.0",
|
|
25
25
|
"buffer": "^6.0.3",
|
|
26
26
|
"ethers": "^6.15.0",
|
|
27
|
-
"
|
|
27
|
+
"tronweb": "^6.0.4",
|
|
28
|
+
"@meshconnect/uwc-types": "0.2.2"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
31
|
"typescript": "^5.9.2"
|
|
@@ -33,6 +33,7 @@ export class EthereumTransactionBuilder {
|
|
|
33
33
|
)
|
|
34
34
|
|
|
35
35
|
const txRequest: TransactionRequest = {
|
|
36
|
+
from: request.from,
|
|
36
37
|
to: request.contractAddress,
|
|
37
38
|
data,
|
|
38
39
|
value: request.value ?? 0n,
|
|
@@ -50,6 +51,7 @@ export class EthereumTransactionBuilder {
|
|
|
50
51
|
): Promise<TransactionRequest> {
|
|
51
52
|
try {
|
|
52
53
|
return {
|
|
54
|
+
from: request.from,
|
|
53
55
|
to: request.to,
|
|
54
56
|
value: request.amount,
|
|
55
57
|
...this.formatGasConfig(request.gasConfig)
|
|
@@ -3,6 +3,8 @@ 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'
|
|
7
|
+
import type { SignatureType } from '@meshconnect/uwc-types'
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Service for handling message signing in WalletConnect
|
|
@@ -16,7 +18,7 @@ export class SignatureService {
|
|
|
16
18
|
/**
|
|
17
19
|
* Sign a message with the connected wallet
|
|
18
20
|
*/
|
|
19
|
-
async signMessage(message: string): Promise<
|
|
21
|
+
async signMessage(message: string): Promise<SignatureType> {
|
|
20
22
|
try {
|
|
21
23
|
const session = this.connectionService.getSession()
|
|
22
24
|
if (!session) {
|
|
@@ -79,25 +81,37 @@ export class SignatureService {
|
|
|
79
81
|
break
|
|
80
82
|
}
|
|
81
83
|
|
|
82
|
-
case '
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
case 'tron': {
|
|
85
|
+
// For TRON the user signs a mock transaction, since trust wallet returns incorrect TRON signatures
|
|
86
|
+
const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io/' })
|
|
87
|
+
const mockContract = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
|
|
88
|
+
|
|
89
|
+
const mockTransaction =
|
|
90
|
+
await tronWeb.transactionBuilder.triggerSmartContract(
|
|
91
|
+
mockContract,
|
|
92
|
+
'approve(address,uint256)',
|
|
93
|
+
{ feeLimit: 200000000 },
|
|
94
|
+
[
|
|
95
|
+
{ type: 'address', value: address },
|
|
96
|
+
{ type: 'uint256', value: 0 }
|
|
97
|
+
],
|
|
87
98
|
address
|
|
88
|
-
|
|
89
|
-
]
|
|
90
|
-
break
|
|
99
|
+
)
|
|
91
100
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
if (!mockTransaction.transaction) {
|
|
102
|
+
throw new Error('Failed to trigger contract')
|
|
103
|
+
}
|
|
104
|
+
mockTransaction.transaction.raw_data.data = tronWeb.toHex(message)
|
|
105
|
+
|
|
106
|
+
method = 'tron_signTransaction'
|
|
107
|
+
params = {
|
|
108
|
+
address,
|
|
109
|
+
transaction: {
|
|
110
|
+
...mockTransaction
|
|
98
111
|
}
|
|
99
|
-
|
|
112
|
+
}
|
|
100
113
|
break
|
|
114
|
+
}
|
|
101
115
|
|
|
102
116
|
default:
|
|
103
117
|
throw new Error(
|
|
@@ -117,10 +131,25 @@ export class SignatureService {
|
|
|
117
131
|
// Handle different response formats
|
|
118
132
|
if (accountNamespace === 'solana') {
|
|
119
133
|
// Solana returns an object with a signature property
|
|
120
|
-
return
|
|
134
|
+
return {
|
|
135
|
+
type: 'standard',
|
|
136
|
+
signature: (result as { signature: string }).signature
|
|
137
|
+
}
|
|
138
|
+
} else if (accountNamespace === 'tron') {
|
|
139
|
+
const tronResult = (
|
|
140
|
+
result as { result: { signature: string[]; txID: string } }
|
|
141
|
+
).result
|
|
142
|
+
return {
|
|
143
|
+
type: 'tron',
|
|
144
|
+
signature: tronResult.signature,
|
|
145
|
+
txID: tronResult.txID
|
|
146
|
+
}
|
|
121
147
|
}
|
|
122
148
|
|
|
123
|
-
return
|
|
149
|
+
return {
|
|
150
|
+
type: 'standard',
|
|
151
|
+
signature: result as string
|
|
152
|
+
}
|
|
124
153
|
} catch (error) {
|
|
125
154
|
throw parseError(error)
|
|
126
155
|
}
|
|
@@ -7,7 +7,8 @@ import type {
|
|
|
7
7
|
WalletConnectProvider,
|
|
8
8
|
TransactionRequest,
|
|
9
9
|
TransactionResult,
|
|
10
|
-
NetworkRpcMap
|
|
10
|
+
NetworkRpcMap,
|
|
11
|
+
SignatureType
|
|
11
12
|
} from '@meshconnect/uwc-types'
|
|
12
13
|
import { WalletConnectClient } from './services/walletconnect-client'
|
|
13
14
|
import { ConnectionService } from './services/connection-service'
|
|
@@ -71,7 +72,7 @@ export class WalletConnectConnector implements Connector {
|
|
|
71
72
|
return this.networkSwitchService.switchNetwork(network)
|
|
72
73
|
}
|
|
73
74
|
|
|
74
|
-
async signMessage(message: string): Promise<
|
|
75
|
+
async signMessage(message: string): Promise<SignatureType> {
|
|
75
76
|
return this.signatureService.signMessage(message)
|
|
76
77
|
}
|
|
77
78
|
|