@phantom/embedded-provider-core 1.0.0-beta.4 → 1.0.0-beta.6
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/index.d.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +37 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +38 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -8
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import { StamperWithKeyManagement, Transaction, VersionedTransaction } from '@ph
|
|
|
2
2
|
import { ClientSideSdkHeaders, NetworkId } from '@phantom/constants';
|
|
3
3
|
import { AddressType } from '@phantom/client';
|
|
4
4
|
import { ParsedSignatureResult, ParsedTransactionResult } from '@phantom/parsers';
|
|
5
|
-
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/
|
|
5
|
+
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/chain-interfaces';
|
|
6
6
|
|
|
7
7
|
interface Keypair {
|
|
8
8
|
publicKey: string;
|
|
@@ -66,7 +66,6 @@ interface AuthResult {
|
|
|
66
66
|
}
|
|
67
67
|
interface PhantomConnectOptions {
|
|
68
68
|
organizationId: string;
|
|
69
|
-
parentOrganizationId: string;
|
|
70
69
|
appId: string;
|
|
71
70
|
provider?: "google" | "apple";
|
|
72
71
|
redirectUrl?: string;
|
|
@@ -77,7 +76,6 @@ interface PhantomConnectOptions {
|
|
|
77
76
|
interface JWTAuthOptions {
|
|
78
77
|
appId: string;
|
|
79
78
|
organizationId: string;
|
|
80
|
-
parentOrganizationId: string;
|
|
81
79
|
jwtToken: string;
|
|
82
80
|
customAuthData?: Record<string, any>;
|
|
83
81
|
}
|
|
@@ -134,13 +132,12 @@ interface AuthOptions {
|
|
|
134
132
|
interface EmbeddedProviderConfig {
|
|
135
133
|
apiBaseUrl: string;
|
|
136
134
|
appId: string;
|
|
137
|
-
organizationId: string;
|
|
138
135
|
authOptions: {
|
|
139
136
|
authUrl: string;
|
|
140
137
|
redirectUrl: string;
|
|
141
138
|
};
|
|
142
139
|
embeddedWalletType: "app-wallet" | "user-wallet" | (string & Record<never, never>);
|
|
143
|
-
addressTypes:
|
|
140
|
+
addressTypes: AddressType[];
|
|
144
141
|
}
|
|
145
142
|
|
|
146
143
|
type EmbeddedProviderEvent = "connect" | "connect_start" | "connect_error" | "disconnect" | "error";
|
|
@@ -164,6 +161,10 @@ declare class EmbeddedProvider {
|
|
|
164
161
|
on(event: EmbeddedProviderEvent, callback: EventCallback): void;
|
|
165
162
|
off(event: EmbeddedProviderEvent, callback: EventCallback): void;
|
|
166
163
|
private emit;
|
|
164
|
+
/**
|
|
165
|
+
* Get the appropriate address for a given network ID from available addresses
|
|
166
|
+
*/
|
|
167
|
+
private getAddressForNetwork;
|
|
167
168
|
private getAndFilterWalletAddresses;
|
|
168
169
|
private validateAndCleanSession;
|
|
169
170
|
private tryExistingConnection;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { StamperWithKeyManagement, Transaction, VersionedTransaction } from '@ph
|
|
|
2
2
|
import { ClientSideSdkHeaders, NetworkId } from '@phantom/constants';
|
|
3
3
|
import { AddressType } from '@phantom/client';
|
|
4
4
|
import { ParsedSignatureResult, ParsedTransactionResult } from '@phantom/parsers';
|
|
5
|
-
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/
|
|
5
|
+
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/chain-interfaces';
|
|
6
6
|
|
|
7
7
|
interface Keypair {
|
|
8
8
|
publicKey: string;
|
|
@@ -66,7 +66,6 @@ interface AuthResult {
|
|
|
66
66
|
}
|
|
67
67
|
interface PhantomConnectOptions {
|
|
68
68
|
organizationId: string;
|
|
69
|
-
parentOrganizationId: string;
|
|
70
69
|
appId: string;
|
|
71
70
|
provider?: "google" | "apple";
|
|
72
71
|
redirectUrl?: string;
|
|
@@ -77,7 +76,6 @@ interface PhantomConnectOptions {
|
|
|
77
76
|
interface JWTAuthOptions {
|
|
78
77
|
appId: string;
|
|
79
78
|
organizationId: string;
|
|
80
|
-
parentOrganizationId: string;
|
|
81
79
|
jwtToken: string;
|
|
82
80
|
customAuthData?: Record<string, any>;
|
|
83
81
|
}
|
|
@@ -134,13 +132,12 @@ interface AuthOptions {
|
|
|
134
132
|
interface EmbeddedProviderConfig {
|
|
135
133
|
apiBaseUrl: string;
|
|
136
134
|
appId: string;
|
|
137
|
-
organizationId: string;
|
|
138
135
|
authOptions: {
|
|
139
136
|
authUrl: string;
|
|
140
137
|
redirectUrl: string;
|
|
141
138
|
};
|
|
142
139
|
embeddedWalletType: "app-wallet" | "user-wallet" | (string & Record<never, never>);
|
|
143
|
-
addressTypes:
|
|
140
|
+
addressTypes: AddressType[];
|
|
144
141
|
}
|
|
145
142
|
|
|
146
143
|
type EmbeddedProviderEvent = "connect" | "connect_start" | "connect_error" | "disconnect" | "error";
|
|
@@ -164,6 +161,10 @@ declare class EmbeddedProvider {
|
|
|
164
161
|
on(event: EmbeddedProviderEvent, callback: EventCallback): void;
|
|
165
162
|
off(event: EmbeddedProviderEvent, callback: EventCallback): void;
|
|
166
163
|
private emit;
|
|
164
|
+
/**
|
|
165
|
+
* Get the appropriate address for a given network ID from available addresses
|
|
166
|
+
*/
|
|
167
|
+
private getAddressForNetwork;
|
|
167
168
|
private getAndFilterWalletAddresses;
|
|
168
169
|
private validateAndCleanSession;
|
|
169
170
|
private tryExistingConnection;
|
package/dist/index.js
CHANGED
|
@@ -71,8 +71,7 @@ var JWTAuth = class {
|
|
|
71
71
|
"X-PHANTOM-APPID": options.appId
|
|
72
72
|
},
|
|
73
73
|
body: JSON.stringify({
|
|
74
|
-
|
|
75
|
-
parentOrganizationId: options.parentOrganizationId,
|
|
74
|
+
appId: options.appId,
|
|
76
75
|
customAuthData: options.customAuthData
|
|
77
76
|
})
|
|
78
77
|
});
|
|
@@ -217,8 +216,8 @@ var EmbeddedSolanaChain = class {
|
|
|
217
216
|
networkId: this.currentNetworkId
|
|
218
217
|
});
|
|
219
218
|
const signedResult = (0, import_parsers.parseSolanaSignedTransaction)(result.rawTransaction);
|
|
220
|
-
if (signedResult
|
|
221
|
-
return signedResult
|
|
219
|
+
if (signedResult) {
|
|
220
|
+
return signedResult;
|
|
222
221
|
} else {
|
|
223
222
|
throw new Error("Failed to parse signed transaction");
|
|
224
223
|
}
|
|
@@ -557,6 +556,35 @@ var EmbeddedProvider = class {
|
|
|
557
556
|
});
|
|
558
557
|
}
|
|
559
558
|
}
|
|
559
|
+
/**
|
|
560
|
+
* Get the appropriate address for a given network ID from available addresses
|
|
561
|
+
*/
|
|
562
|
+
getAddressForNetwork(networkId) {
|
|
563
|
+
const network = networkId.split(":")[0].toLowerCase();
|
|
564
|
+
let targetAddressType;
|
|
565
|
+
switch (network) {
|
|
566
|
+
case "solana":
|
|
567
|
+
targetAddressType = import_client.AddressType.solana;
|
|
568
|
+
break;
|
|
569
|
+
case "eip155":
|
|
570
|
+
targetAddressType = import_client.AddressType.ethereum;
|
|
571
|
+
break;
|
|
572
|
+
case "bitcoin":
|
|
573
|
+
case "btc":
|
|
574
|
+
targetAddressType = import_client.AddressType.bitcoinSegwit;
|
|
575
|
+
break;
|
|
576
|
+
case "sui":
|
|
577
|
+
targetAddressType = import_client.AddressType.sui;
|
|
578
|
+
break;
|
|
579
|
+
default:
|
|
580
|
+
targetAddressType = import_client.AddressType.ethereum;
|
|
581
|
+
break;
|
|
582
|
+
}
|
|
583
|
+
const matchingAddress = this.addresses.find(
|
|
584
|
+
(addr) => addr.addressType.toLowerCase() === targetAddressType.toLowerCase()
|
|
585
|
+
);
|
|
586
|
+
return matchingAddress?.address;
|
|
587
|
+
}
|
|
560
588
|
async getAndFilterWalletAddresses(walletId) {
|
|
561
589
|
const session = await this.storage.getSession();
|
|
562
590
|
const derivationIndex = session?.accountDerivationIndex ?? 0;
|
|
@@ -798,7 +826,7 @@ var EmbeddedProvider = class {
|
|
|
798
826
|
);
|
|
799
827
|
const platformName = this.platform.name || "unknown";
|
|
800
828
|
const shortPubKey = stamperInfo.publicKey.slice(0, 8);
|
|
801
|
-
const organizationName = `${this.config.
|
|
829
|
+
const organizationName = `${this.config.appId.substring(0, 8)}-${platformName}-${shortPubKey}`;
|
|
802
830
|
this.logger.log("EMBEDDED_PROVIDER", "Creating organization", {
|
|
803
831
|
organizationName,
|
|
804
832
|
publicKey: stamperInfo.publicKey,
|
|
@@ -973,7 +1001,8 @@ var EmbeddedProvider = class {
|
|
|
973
1001
|
walletId: this.walletId,
|
|
974
1002
|
transaction: parsedTransaction.base64url,
|
|
975
1003
|
networkId: params.networkId,
|
|
976
|
-
derivationIndex
|
|
1004
|
+
derivationIndex,
|
|
1005
|
+
account: this.getAddressForNetwork(params.networkId)
|
|
977
1006
|
});
|
|
978
1007
|
this.logger.info("EMBEDDED_PROVIDER", "Transaction signed successfully", {
|
|
979
1008
|
walletId: this.walletId,
|
|
@@ -1003,7 +1032,8 @@ var EmbeddedProvider = class {
|
|
|
1003
1032
|
walletId: this.walletId,
|
|
1004
1033
|
transaction: parsedTransaction.base64url,
|
|
1005
1034
|
networkId: params.networkId,
|
|
1006
|
-
derivationIndex
|
|
1035
|
+
derivationIndex,
|
|
1036
|
+
account: this.getAddressForNetwork(params.networkId)
|
|
1007
1037
|
});
|
|
1008
1038
|
this.logger.info("EMBEDDED_PROVIDER", "Transaction signed and sent successfully", {
|
|
1009
1039
|
walletId: this.walletId,
|
|
@@ -1034,7 +1064,6 @@ var EmbeddedProvider = class {
|
|
|
1034
1064
|
} else {
|
|
1035
1065
|
this.logger.info("EMBEDDED_PROVIDER", "Starting redirect-based authentication flow", {
|
|
1036
1066
|
organizationId,
|
|
1037
|
-
parentOrganizationId: this.config.organizationId,
|
|
1038
1067
|
provider: authOptions?.provider
|
|
1039
1068
|
});
|
|
1040
1069
|
return await this.handleRedirectAuth(organizationId, stamperInfo, authOptions, username);
|
|
@@ -1093,7 +1122,6 @@ var EmbeddedProvider = class {
|
|
|
1093
1122
|
const authResult = await this.jwtAuth.authenticate({
|
|
1094
1123
|
organizationId,
|
|
1095
1124
|
appId: this.config.appId,
|
|
1096
|
-
parentOrganizationId: this.config.organizationId,
|
|
1097
1125
|
jwtToken: authOptions.jwtToken,
|
|
1098
1126
|
customAuthData: authOptions.customAuthData
|
|
1099
1127
|
});
|
|
@@ -1161,7 +1189,6 @@ var EmbeddedProvider = class {
|
|
|
1161
1189
|
await this.storage.saveSession(tempSession);
|
|
1162
1190
|
this.logger.info("EMBEDDED_PROVIDER", "Starting Phantom Connect redirect", {
|
|
1163
1191
|
organizationId,
|
|
1164
|
-
parentOrganizationId: this.config.organizationId,
|
|
1165
1192
|
appId: this.config.appId,
|
|
1166
1193
|
provider: authOptions?.provider,
|
|
1167
1194
|
authUrl: this.config.authOptions.authUrl
|
|
@@ -1169,7 +1196,6 @@ var EmbeddedProvider = class {
|
|
|
1169
1196
|
const authResult = await this.authProvider.authenticate({
|
|
1170
1197
|
organizationId,
|
|
1171
1198
|
appId: this.config.appId,
|
|
1172
|
-
parentOrganizationId: this.config.organizationId,
|
|
1173
1199
|
provider: authOptions?.provider,
|
|
1174
1200
|
redirectUrl: this.config.authOptions.redirectUrl,
|
|
1175
1201
|
customAuthData: authOptions?.customAuthData,
|