@shapeshiftoss/hdwallet-phantom 1.55.10-mipdalpha.0 → 1.55.10
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/adapter.d.ts +2 -2
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +5 -4
- package/dist/adapter.js.map +1 -1
- package/dist/phantom.d.ts +16 -5
- package/dist/phantom.d.ts.map +1 -1
- package/dist/phantom.js +49 -9
- package/dist/phantom.js.map +1 -1
- package/dist/solana.d.ts +9 -0
- package/dist/solana.d.ts.map +1 -0
- package/dist/solana.js +63 -0
- package/dist/solana.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/adapter.ts +5 -6
- package/src/phantom.test.ts +149 -126
- package/src/phantom.ts +68 -12
- package/src/solana.ts +80 -0
- package/src/types.ts +9 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/adapter.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
2
|
import { PhantomHDWallet } from "./phantom";
|
|
3
|
-
import { PhantomEvmProvider, PhantomUtxoProvider } from "./types";
|
|
3
|
+
import { PhantomEvmProvider, PhantomSolanaProvider, PhantomUtxoProvider } from "./types";
|
|
4
4
|
declare global {
|
|
5
5
|
interface Window {
|
|
6
6
|
phantom?: {
|
|
7
7
|
ethereum?: PhantomEvmProvider;
|
|
8
8
|
bitcoin?: PhantomUtxoProvider;
|
|
9
|
-
solana?:
|
|
9
|
+
solana?: PhantomSolanaProvider;
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
}
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEzF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,CAAC,EAAE;YACR,QAAQ,CAAC,EAAE,kBAAkB,CAAC;YAC9B,OAAO,CAAC,EAAE,mBAAmB,CAAC;YAC9B,MAAM,CAAC,EAAE,qBAAqB,CAAC;SAChC,CAAC;KACH;CACF;AAED,qBAAa,cAAc;IACzB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;IAEtB,OAAO;WAIO,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO;IAIjC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;CA8BhE"}
|
package/dist/adapter.js
CHANGED
|
@@ -49,16 +49,17 @@ class PhantomAdapter {
|
|
|
49
49
|
}
|
|
50
50
|
pairDevice() {
|
|
51
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
var _a, _b, _c;
|
|
52
|
+
var _a, _b, _c, _d;
|
|
53
53
|
const evmProvider = (_a = window.phantom) === null || _a === void 0 ? void 0 : _a.ethereum;
|
|
54
54
|
const bitcoinProvider = (_b = window.phantom) === null || _b === void 0 ? void 0 : _b.bitcoin;
|
|
55
|
-
|
|
55
|
+
const solanaProvider = (_c = window.phantom) === null || _c === void 0 ? void 0 : _c.solana;
|
|
56
|
+
if (!evmProvider || !bitcoinProvider || !solanaProvider) {
|
|
56
57
|
window.open("https://phantom.app/", "_blank");
|
|
57
58
|
console.error("Please install Phantom!");
|
|
58
59
|
throw new Error("Phantom provider not found");
|
|
59
60
|
}
|
|
60
61
|
try {
|
|
61
|
-
yield ((
|
|
62
|
+
yield ((_d = evmProvider.request) === null || _d === void 0 ? void 0 : _d.call(evmProvider, { method: "eth_requestAccounts" }).catch(() => {
|
|
62
63
|
var _a;
|
|
63
64
|
return (_a = evmProvider.request) === null || _a === void 0 ? void 0 : _a.call(evmProvider, {
|
|
64
65
|
method: "wallet_requestPermissions",
|
|
@@ -70,7 +71,7 @@ class PhantomAdapter {
|
|
|
70
71
|
console.error("Could not get Phantom accounts. ");
|
|
71
72
|
throw error;
|
|
72
73
|
}
|
|
73
|
-
const wallet = new phantom_1.PhantomHDWallet(evmProvider, bitcoinProvider);
|
|
74
|
+
const wallet = new phantom_1.PhantomHDWallet(evmProvider, bitcoinProvider, solanaProvider);
|
|
74
75
|
yield wallet.initialize();
|
|
75
76
|
const deviceID = yield wallet.getDeviceID();
|
|
76
77
|
this.keyring.add(wallet, deviceID);
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAqD;AAErD,uCAA4C;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAqD;AAErD,uCAA4C;AAa5C,MAAa,cAAc;IAGzB,YAAoB,OAAqB;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAqB;QAC5C,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAEY,UAAU;;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAClD,CAAC;KAAA;IAEY,UAAU;;;YACrB,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,OAAO,0CAAE,QAAQ,CAAC;YAC7C,MAAM,eAAe,GAAG,MAAA,MAAM,CAAC,OAAO,0CAAE,OAAO,CAAC;YAChD,MAAM,cAAc,GAAG,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,CAAC;YAE9C,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,CAAA,MAAA,WAAW,CAAC,OAAO,4DAAG,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE;;oBACxE,OAAA,MAAA,WAAW,CAAC,OAAO,4DAAG;wBACpB,MAAM,EAAE,2BAA2B;wBACnC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;qBAC/B,CAAC,CAAA;iBAAA,CACH,CAAA,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,yBAAe,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YACjF,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;YAExE,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AA7CD,wCA6CC"}
|
package/dist/phantom.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
-
import { PhantomEvmProvider, PhantomUtxoProvider } from "./types";
|
|
2
|
+
import { PhantomEvmProvider, PhantomSolanaProvider, PhantomUtxoProvider } from "./types";
|
|
3
3
|
export declare function isPhantom(wallet: core.HDWallet): wallet is PhantomHDWallet;
|
|
4
|
-
export declare class PhantomHDWalletInfo implements core.HDWalletInfo, core.BTCWalletInfo, core.ETHWalletInfo {
|
|
4
|
+
export declare class PhantomHDWalletInfo implements core.HDWalletInfo, core.BTCWalletInfo, core.ETHWalletInfo, core.SolanaWalletInfo {
|
|
5
5
|
readonly _supportsBTCInfo = true;
|
|
6
6
|
readonly _supportsETHInfo = true;
|
|
7
|
+
readonly _supportsSolanaInfo = true;
|
|
7
8
|
evmProvider: PhantomEvmProvider;
|
|
8
9
|
constructor(evmProvider: PhantomEvmProvider);
|
|
9
10
|
getVendor(): string;
|
|
@@ -30,9 +31,13 @@ export declare class PhantomHDWalletInfo implements core.HDWalletInfo, core.BTCW
|
|
|
30
31
|
btcSupportsSecureTransfer(): Promise<boolean>;
|
|
31
32
|
btcSupportsNativeShapeShift(): boolean;
|
|
32
33
|
btcGetAccountPaths(msg: core.BTCGetAccountPaths): Array<core.BTCAccountPath>;
|
|
34
|
+
btcIsSameAccount(msg: core.BTCAccountPath[]): boolean;
|
|
33
35
|
btcNextAccountPath(msg: core.BTCAccountPath): core.BTCAccountPath | undefined;
|
|
36
|
+
/** Solana */
|
|
37
|
+
solanaGetAccountPaths(msg: core.SolanaGetAccountPaths): Array<core.SolanaAccountPath>;
|
|
38
|
+
solanaNextAccountPath(msg: core.SolanaAccountPath): core.SolanaAccountPath | undefined;
|
|
34
39
|
}
|
|
35
|
-
export declare class PhantomHDWallet extends PhantomHDWalletInfo implements core.HDWallet, core.BTCWallet, core.ETHWallet {
|
|
40
|
+
export declare class PhantomHDWallet extends PhantomHDWalletInfo implements core.HDWallet, core.BTCWallet, core.ETHWallet, core.SolanaWallet {
|
|
36
41
|
readonly _supportsBTC = true;
|
|
37
42
|
readonly _supportsETH = true;
|
|
38
43
|
readonly _supportsEthSwitchChain = false;
|
|
@@ -44,11 +49,13 @@ export declare class PhantomHDWallet extends PhantomHDWalletInfo implements core
|
|
|
44
49
|
readonly _supportsArbitrumNova = false;
|
|
45
50
|
readonly _supportsBase = false;
|
|
46
51
|
readonly _supportsBSC = false;
|
|
52
|
+
readonly _supportsSolana = true;
|
|
47
53
|
readonly _isPhantom = true;
|
|
48
54
|
evmProvider: PhantomEvmProvider;
|
|
49
55
|
bitcoinProvider: PhantomUtxoProvider;
|
|
56
|
+
solanaProvider: PhantomSolanaProvider;
|
|
50
57
|
ethAddress?: string | null;
|
|
51
|
-
constructor(evmProvider: PhantomEvmProvider, bitcoinProvider: PhantomUtxoProvider);
|
|
58
|
+
constructor(evmProvider: PhantomEvmProvider, bitcoinProvider: PhantomUtxoProvider, solanaProvider: PhantomSolanaProvider);
|
|
52
59
|
getDeviceID(): Promise<string>;
|
|
53
60
|
getFeatures(): Promise<Record<string, any>>;
|
|
54
61
|
getFirmwareVersion(): Promise<string>;
|
|
@@ -71,7 +78,7 @@ export declare class PhantomHDWallet extends PhantomHDWalletInfo implements core
|
|
|
71
78
|
disconnect(): Promise<void>;
|
|
72
79
|
getPublicKeys(msg: Array<core.GetPublicKey>): Promise<Array<core.PublicKey | null>>;
|
|
73
80
|
/** Ethereum */
|
|
74
|
-
ethGetAddress(): Promise<string | null>;
|
|
81
|
+
ethGetAddress(_msg: core.ETHGetAddress): Promise<string | null>;
|
|
75
82
|
ethSignTx(msg: core.ETHSignTx): Promise<core.ETHSignedTx | null>;
|
|
76
83
|
ethSendTx(msg: core.ETHSignTx): Promise<core.ETHTxHash | null>;
|
|
77
84
|
ethSignMessage(msg: core.ETHSignMessage): Promise<core.ETHSignedMessage | null>;
|
|
@@ -82,5 +89,9 @@ export declare class PhantomHDWallet extends PhantomHDWalletInfo implements core
|
|
|
82
89
|
btcSignTx(msg: core.BTCSignTx): Promise<core.BTCSignedTx | null>;
|
|
83
90
|
btcSignMessage(msg: core.BTCSignMessage): Promise<core.BTCSignedMessage | null>;
|
|
84
91
|
btcVerifyMessage(msg: core.BTCVerifyMessage): Promise<boolean | null>;
|
|
92
|
+
/** Solana */
|
|
93
|
+
solanaGetAddress(): Promise<string | null>;
|
|
94
|
+
solanaSignTx(msg: core.SolanaSignTx): Promise<core.SolanaSignedTx | null>;
|
|
95
|
+
solanaSendTx(msg: core.SolanaSignTx): Promise<core.SolanaTxSignature | null>;
|
|
85
96
|
}
|
|
86
97
|
//# sourceMappingURL=phantom.d.ts.map
|
package/dist/phantom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom.d.ts","sourceRoot":"","sources":["../src/phantom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"phantom.d.ts","sourceRoot":"","sources":["../src/phantom.ts"],"names":[],"mappings":"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"}
|
package/dist/phantom.js
CHANGED
|
@@ -45,6 +45,7 @@ const utils_js_1 = require("ethers/lib/utils.js");
|
|
|
45
45
|
const lodash_1 = __importDefault(require("lodash"));
|
|
46
46
|
const btc = __importStar(require("./bitcoin"));
|
|
47
47
|
const eth = __importStar(require("./ethereum"));
|
|
48
|
+
const solana_1 = require("./solana");
|
|
48
49
|
function isPhantom(wallet) {
|
|
49
50
|
return lodash_1.default.isObject(wallet) && wallet._isPhantom;
|
|
50
51
|
}
|
|
@@ -52,6 +53,7 @@ class PhantomHDWalletInfo {
|
|
|
52
53
|
constructor(evmProvider) {
|
|
53
54
|
this._supportsBTCInfo = true;
|
|
54
55
|
this._supportsETHInfo = true;
|
|
56
|
+
this._supportsSolanaInfo = true;
|
|
55
57
|
this.evmProvider = evmProvider;
|
|
56
58
|
}
|
|
57
59
|
getVendor() {
|
|
@@ -96,6 +98,8 @@ class PhantomHDWalletInfo {
|
|
|
96
98
|
}
|
|
97
99
|
case "ethereum":
|
|
98
100
|
return core.describeETHPath(msg.path);
|
|
101
|
+
case "solana":
|
|
102
|
+
return core.solanaDescribePath(msg.path);
|
|
99
103
|
default:
|
|
100
104
|
throw new Error("Unsupported path");
|
|
101
105
|
}
|
|
@@ -139,12 +143,13 @@ class PhantomHDWalletInfo {
|
|
|
139
143
|
}
|
|
140
144
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
141
145
|
ethNextAccountPath(msg) {
|
|
142
|
-
|
|
146
|
+
console.error("Method not implemented");
|
|
147
|
+
return undefined;
|
|
143
148
|
}
|
|
144
149
|
/** Bitcoin */
|
|
145
150
|
btcSupportsCoin(coin) {
|
|
146
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
-
return coin === "bitcoin";
|
|
152
|
+
return coin.toLowerCase() === "bitcoin";
|
|
148
153
|
});
|
|
149
154
|
}
|
|
150
155
|
btcSupportsScriptType(coin, scriptType) {
|
|
@@ -172,13 +177,25 @@ class PhantomHDWalletInfo {
|
|
|
172
177
|
return btc.btcGetAccountPaths(msg);
|
|
173
178
|
}
|
|
174
179
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
180
|
+
btcIsSameAccount(msg) {
|
|
181
|
+
throw new Error("Method not implemented.");
|
|
182
|
+
}
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
175
184
|
btcNextAccountPath(msg) {
|
|
176
185
|
throw new Error("Method not implemented");
|
|
177
186
|
}
|
|
187
|
+
/** Solana */
|
|
188
|
+
solanaGetAccountPaths(msg) {
|
|
189
|
+
return core.solanaGetAccountPaths(msg);
|
|
190
|
+
}
|
|
191
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
192
|
+
solanaNextAccountPath(msg) {
|
|
193
|
+
throw new Error("Method not implemented");
|
|
194
|
+
}
|
|
178
195
|
}
|
|
179
196
|
exports.PhantomHDWalletInfo = PhantomHDWalletInfo;
|
|
180
197
|
class PhantomHDWallet extends PhantomHDWalletInfo {
|
|
181
|
-
constructor(evmProvider, bitcoinProvider) {
|
|
198
|
+
constructor(evmProvider, bitcoinProvider, solanaProvider) {
|
|
182
199
|
super(evmProvider);
|
|
183
200
|
this._supportsBTC = true;
|
|
184
201
|
this._supportsETH = true;
|
|
@@ -193,13 +210,15 @@ class PhantomHDWallet extends PhantomHDWalletInfo {
|
|
|
193
210
|
this._supportsArbitrumNova = false;
|
|
194
211
|
this._supportsBase = false;
|
|
195
212
|
this._supportsBSC = false;
|
|
213
|
+
this._supportsSolana = true;
|
|
196
214
|
this._isPhantom = true;
|
|
197
215
|
this.evmProvider = evmProvider;
|
|
198
216
|
this.bitcoinProvider = bitcoinProvider;
|
|
217
|
+
this.solanaProvider = solanaProvider;
|
|
199
218
|
}
|
|
200
219
|
getDeviceID() {
|
|
201
220
|
return __awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
return "phantom:" + (yield this.ethGetAddress());
|
|
221
|
+
return "phantom:" + (yield this.ethGetAddress({ addressNList: [] }));
|
|
203
222
|
});
|
|
204
223
|
}
|
|
205
224
|
getFeatures() {
|
|
@@ -296,7 +315,8 @@ class PhantomHDWallet extends PhantomHDWalletInfo {
|
|
|
296
315
|
});
|
|
297
316
|
}
|
|
298
317
|
/** Ethereum */
|
|
299
|
-
|
|
318
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
319
|
+
ethGetAddress(_msg) {
|
|
300
320
|
return __awaiter(this, void 0, void 0, function* () {
|
|
301
321
|
if (this.ethAddress) {
|
|
302
322
|
return this.ethAddress;
|
|
@@ -315,24 +335,25 @@ class PhantomHDWallet extends PhantomHDWalletInfo {
|
|
|
315
335
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
316
336
|
ethSignTx(msg) {
|
|
317
337
|
return __awaiter(this, void 0, void 0, function* () {
|
|
318
|
-
|
|
338
|
+
console.error("Method not implemented");
|
|
339
|
+
return null;
|
|
319
340
|
});
|
|
320
341
|
}
|
|
321
342
|
ethSendTx(msg) {
|
|
322
343
|
return __awaiter(this, void 0, void 0, function* () {
|
|
323
|
-
const address = yield this.ethGetAddress();
|
|
344
|
+
const address = yield this.ethGetAddress({ addressNList: [] });
|
|
324
345
|
return address ? eth.ethSendTx(msg, this.evmProvider, address) : null;
|
|
325
346
|
});
|
|
326
347
|
}
|
|
327
348
|
ethSignMessage(msg) {
|
|
328
349
|
return __awaiter(this, void 0, void 0, function* () {
|
|
329
|
-
const address = yield this.ethGetAddress();
|
|
350
|
+
const address = yield this.ethGetAddress({ addressNList: [] });
|
|
330
351
|
return address ? eth.ethSignMessage(msg, this.evmProvider, address) : null;
|
|
331
352
|
});
|
|
332
353
|
}
|
|
333
354
|
ethSignTypedData(msg) {
|
|
334
355
|
return __awaiter(this, void 0, void 0, function* () {
|
|
335
|
-
const address = yield this.ethGetAddress();
|
|
356
|
+
const address = yield this.ethGetAddress({ addressNList: [] });
|
|
336
357
|
return address ? eth.ethSignTypedData(msg, this.evmProvider, address) : null;
|
|
337
358
|
});
|
|
338
359
|
}
|
|
@@ -398,6 +419,25 @@ class PhantomHDWallet extends PhantomHDWalletInfo {
|
|
|
398
419
|
return bitcoinMsg.verify(msg.message, msg.address, signature);
|
|
399
420
|
});
|
|
400
421
|
}
|
|
422
|
+
/** Solana */
|
|
423
|
+
solanaGetAddress() {
|
|
424
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
425
|
+
const { publicKey } = yield this.solanaProvider.connect();
|
|
426
|
+
return publicKey.toString();
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
solanaSignTx(msg) {
|
|
430
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
431
|
+
const address = yield this.solanaGetAddress();
|
|
432
|
+
return address ? (0, solana_1.solanaSignTx)(msg, this.solanaProvider, address) : null;
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
solanaSendTx(msg) {
|
|
436
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
437
|
+
const address = yield this.solanaGetAddress();
|
|
438
|
+
return address ? (0, solana_1.solanaSendTx)(msg, this.solanaProvider, address) : null;
|
|
439
|
+
});
|
|
440
|
+
}
|
|
401
441
|
}
|
|
402
442
|
exports.PhantomHDWallet = PhantomHDWallet;
|
|
403
443
|
//# sourceMappingURL=phantom.js.map
|
package/dist/phantom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../src/phantom.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"phantom.js","sourceRoot":"","sources":["../src/phantom.ts"],"names":[],"mappings":"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"}
|
package/dist/solana.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
import { PhantomSolanaProvider } from "./types";
|
|
4
|
+
export type SolanaAccount = {
|
|
5
|
+
publicKey: PublicKey;
|
|
6
|
+
};
|
|
7
|
+
export declare function solanaSignTx(msg: core.SolanaSignTx, provider: PhantomSolanaProvider, address: string): Promise<core.SolanaSignedTx | null>;
|
|
8
|
+
export declare function solanaSendTx(msg: core.SolanaSignTx, provider: PhantomSolanaProvider, address: string): Promise<core.SolanaTxSignature | null>;
|
|
9
|
+
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAEL,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AA4CF,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,CAOrC;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAIxC"}
|
package/dist/solana.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.solanaSignTx = solanaSignTx;
|
|
13
|
+
exports.solanaSendTx = solanaSendTx;
|
|
14
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
15
|
+
function toTransactionInstructions(instructions) {
|
|
16
|
+
return instructions.map((instruction) => new web3_js_1.TransactionInstruction({
|
|
17
|
+
keys: instruction.keys.map((key) => Object.assign(key, { pubkey: new web3_js_1.PublicKey(key.pubkey) })),
|
|
18
|
+
programId: new web3_js_1.PublicKey(instruction.programId),
|
|
19
|
+
data: instruction.data,
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
function buildTransaction(msg, address) {
|
|
23
|
+
var _a;
|
|
24
|
+
const instructions = toTransactionInstructions((_a = msg.instructions) !== null && _a !== void 0 ? _a : []);
|
|
25
|
+
const value = Number(msg.value);
|
|
26
|
+
if (!isNaN(value) && value > 0 && msg.to) {
|
|
27
|
+
instructions.push(web3_js_1.SystemProgram.transfer({
|
|
28
|
+
fromPubkey: new web3_js_1.PublicKey(address),
|
|
29
|
+
toPubkey: new web3_js_1.PublicKey(msg.to),
|
|
30
|
+
lamports: value,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
if (msg.computeUnitLimit !== undefined) {
|
|
34
|
+
instructions.push(web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: msg.computeUnitLimit }));
|
|
35
|
+
}
|
|
36
|
+
if (msg.computeUnitPrice !== undefined) {
|
|
37
|
+
instructions.push(web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({ microLamports: msg.computeUnitPrice }));
|
|
38
|
+
}
|
|
39
|
+
const message = new web3_js_1.TransactionMessage({
|
|
40
|
+
payerKey: new web3_js_1.PublicKey(address),
|
|
41
|
+
instructions,
|
|
42
|
+
recentBlockhash: msg.blockHash,
|
|
43
|
+
}).compileToV0Message();
|
|
44
|
+
return new web3_js_1.VersionedTransaction(message);
|
|
45
|
+
}
|
|
46
|
+
function solanaSignTx(msg, provider, address) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const transaction = buildTransaction(msg, address);
|
|
49
|
+
const signedTransaction = yield provider.signTransaction(transaction);
|
|
50
|
+
return {
|
|
51
|
+
serialized: Buffer.from(signedTransaction.serialize()).toString("base64"),
|
|
52
|
+
signatures: signedTransaction.signatures.map((signature) => Buffer.from(signature).toString("base64")),
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function solanaSendTx(msg, provider, address) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const transaction = buildTransaction(msg, address);
|
|
59
|
+
const { signature } = yield provider.signAndSendTransaction(transaction);
|
|
60
|
+
return { signature };
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=solana.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../src/solana.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { PublicKey, VersionedTransaction } from "@solana/web3.js";
|
|
1
2
|
import { providers } from "ethers";
|
|
2
3
|
import { BtcAccount } from "./bitcoin";
|
|
4
|
+
import { SolanaAccount } from "./solana";
|
|
3
5
|
export type PhantomEvmProvider = providers.ExternalProvider & {
|
|
4
6
|
_metamask: {
|
|
5
7
|
isUnlocked: () => boolean;
|
|
@@ -18,4 +20,12 @@ export type PhantomUtxoProvider = providers.ExternalProvider & {
|
|
|
18
20
|
}[];
|
|
19
21
|
}): Promise<Uint8Array>;
|
|
20
22
|
};
|
|
23
|
+
export type PhantomSolanaProvider = providers.ExternalProvider & {
|
|
24
|
+
publicKey?: PublicKey;
|
|
25
|
+
connect(): Promise<SolanaAccount>;
|
|
26
|
+
signTransaction(transaction: VersionedTransaction): Promise<VersionedTransaction>;
|
|
27
|
+
signAndSendTransaction(transaction: VersionedTransaction): Promise<{
|
|
28
|
+
signature: any;
|
|
29
|
+
}>;
|
|
30
|
+
};
|
|
21
31
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,gBAAgB,GAAG;IAC5D,SAAS,EAAE;QACT,UAAU,EAAE,MAAM,OAAO,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,gBAAgB,GAAG;IAC7D,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7C,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,UAAU,KAChB,OAAO,CAAC;QACX,SAAS,EAAE,UAAU,CAAC;KACvB,CAAC,CAAC;IACH,QAAQ,CACN,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;QAAE,YAAY,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,EAAE,CAAA;SAAE,EAAE,CAAA;KAAE,GACvG,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,gBAAgB,GAAG;IAC/D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAClC,eAAe,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClF,sBAAsB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CACxF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shapeshiftoss/hdwallet-phantom",
|
|
3
|
-
"version": "1.55.10
|
|
3
|
+
"version": "1.55.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@shapeshiftoss/bitcoinjs-lib": "5.2.0-shapeshift.2",
|
|
18
|
-
"@shapeshiftoss/hdwallet-core": "
|
|
18
|
+
"@shapeshiftoss/hdwallet-core": "1.55.10",
|
|
19
|
+
"@solana/web3.js": "^1.95.3",
|
|
19
20
|
"base64-js": "^1.5.1",
|
|
20
21
|
"bitcoinjs-message": "^2.0.0",
|
|
21
22
|
"ethers": "5.7.2",
|
|
@@ -24,5 +25,5 @@
|
|
|
24
25
|
"devDependencies": {
|
|
25
26
|
"@types/lodash": "^4.14.168"
|
|
26
27
|
},
|
|
27
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "d20a7d9b2eab4498f0f1eea11c7dfb825363b7a3"
|
|
28
29
|
}
|
package/src/adapter.ts
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import * as core from "@shapeshiftoss/hdwallet-core";
|
|
2
2
|
|
|
3
3
|
import { PhantomHDWallet } from "./phantom";
|
|
4
|
-
import { PhantomEvmProvider, PhantomUtxoProvider } from "./types";
|
|
4
|
+
import { PhantomEvmProvider, PhantomSolanaProvider, PhantomUtxoProvider } from "./types";
|
|
5
5
|
|
|
6
6
|
declare global {
|
|
7
7
|
interface Window {
|
|
8
8
|
phantom?: {
|
|
9
9
|
ethereum?: PhantomEvmProvider;
|
|
10
10
|
bitcoin?: PhantomUtxoProvider;
|
|
11
|
-
|
|
12
|
-
// https://github.com/anza-xyz/wallet-adapter/blob/3761cd8cc867da39da7c0b070bbf8779402cff36/packages/wallets/phantom/src/adapter.ts#L36
|
|
13
|
-
solana?: any;
|
|
11
|
+
solana?: PhantomSolanaProvider;
|
|
14
12
|
};
|
|
15
13
|
}
|
|
16
14
|
}
|
|
@@ -33,8 +31,9 @@ export class PhantomAdapter {
|
|
|
33
31
|
public async pairDevice(): Promise<PhantomHDWallet | undefined> {
|
|
34
32
|
const evmProvider = window.phantom?.ethereum;
|
|
35
33
|
const bitcoinProvider = window.phantom?.bitcoin;
|
|
34
|
+
const solanaProvider = window.phantom?.solana;
|
|
36
35
|
|
|
37
|
-
if (!evmProvider || !bitcoinProvider) {
|
|
36
|
+
if (!evmProvider || !bitcoinProvider || !solanaProvider) {
|
|
38
37
|
window.open("https://phantom.app/", "_blank");
|
|
39
38
|
console.error("Please install Phantom!");
|
|
40
39
|
throw new Error("Phantom provider not found");
|
|
@@ -51,7 +50,7 @@ export class PhantomAdapter {
|
|
|
51
50
|
console.error("Could not get Phantom accounts. ");
|
|
52
51
|
throw error;
|
|
53
52
|
}
|
|
54
|
-
const wallet = new PhantomHDWallet(evmProvider, bitcoinProvider);
|
|
53
|
+
const wallet = new PhantomHDWallet(evmProvider, bitcoinProvider, solanaProvider);
|
|
55
54
|
await wallet.initialize();
|
|
56
55
|
const deviceID = await wallet.getDeviceID();
|
|
57
56
|
this.keyring.add(wallet, deviceID);
|