@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 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/chains';
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: [AddressType, ...AddressType[]];
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/chains';
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: [AddressType, ...AddressType[]];
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
- organizationId: options.organizationId,
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.transaction && !signedResult.fallback) {
221
- return signedResult.transaction;
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.organizationId.substring(0, 8)}-${platformName}-${shortPubKey}`;
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,