@meshconnect/uwc-wallet-connect-connector 0.2.2 → 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.
- 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/signature-service.ts +47 -18
- package/src/wallet-connect-connector.ts +3 -2
|
@@ -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.3",
|
|
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"
|
|
@@ -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
|
|