@turnkey/react-wallet-kit 1.8.1 → 1.9.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/send-transaction/helpers.tsx"],"names":[],"mappings":";AAEA,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAepE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAI3D"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/components/send-transaction/helpers.tsx"],"names":[],"mappings":";AAEA,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAuBpE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAI3D"}
@@ -5,6 +5,12 @@ var Svg = require('../design/Svg.js');
5
5
 
6
6
  function getExplorerUrl(txHash, caip2) {
7
7
  switch (caip2) {
8
+ case "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":
9
+ return `https://solscan.io/tx/${txHash}`;
10
+ case "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG":
11
+ return `https://solscan.io/tx/${txHash}?cluster=devnet`;
12
+ case "solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY":
13
+ return `https://solscan.io/tx/${txHash}?cluster=testnet`;
8
14
  case "eip155:8453":
9
15
  return `https://basescan.org/tx/${txHash}`;
10
16
  case "eip155:84532":
@@ -16,7 +22,7 @@ function getExplorerUrl(txHash, caip2) {
16
22
  case "eip155:137":
17
23
  return `https://polygonscan.com/tx/${txHash}`;
18
24
  default:
19
- return `https://etherscan.io/tx/${txHash}`;
25
+ return caip2.startsWith("solana:") ? `https://solscan.io/tx/${txHash}` : `https://etherscan.io/tx/${txHash}`;
20
26
  }
21
27
  }
22
28
  function getChainLogo(caip2) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/components/send-transaction/helpers.tsx"],"sourcesContent":[null],"names":["getExplorerUrl","txHash","caip2","getChainLogo","Logo","startsWith","SolanaLogo","EthereumLogo","_jsx","className"],"mappings":";;;;;AAEM,SAAUA,cAAcA,CAACC,MAAc,EAAEC,KAAa,EAAA;AAC1D,EAAA,QAAQA,KAAK;AACX,IAAA,KAAK,aAAa;MAChB,OAAO,CAAA,wBAAA,EAA2BD,MAAM,CAAA,CAAE;AAC5C,IAAA,KAAK,cAAc;MACjB,OAAO,CAAA,gCAAA,EAAmCA,MAAM,CAAA,CAAE;AACpD,IAAA,KAAK,UAAU;MACb,OAAO,CAAA,wBAAA,EAA2BA,MAAM,CAAA,CAAE;AAC5C,IAAA,KAAK,iBAAiB;MACpB,OAAO,CAAA,gCAAA,EAAmCA,MAAM,CAAA,CAAE;AACpD,IAAA,KAAK,YAAY;MACf,OAAO,CAAA,2BAAA,EAA8BA,MAAM,CAAA,CAAE;AAC/C,IAAA;MACE,OAAO,CAAA,wBAAA,EAA2BA,MAAM,CAAA,CAAE;AAC9C;AACF;AAEM,SAAUE,YAAYA,CAACD,KAAa,EAAA;EACxC,MAAME,IAAI,GAAGF,KAAK,CAACG,UAAU,CAAC,SAAS,CAAC,GAAGC,cAAU,GAAGC,gBAAY;EAEpE,OAAOC,eAACJ,IAAI,EAAA;AAACK,IAAAA,SAAS,EAAC;IAA2B;AACpD;;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/components/send-transaction/helpers.tsx"],"sourcesContent":[null],"names":["getExplorerUrl","txHash","caip2","startsWith","getChainLogo","Logo","SolanaLogo","EthereumLogo","_jsx","className"],"mappings":";;;;;AAEM,SAAUA,cAAcA,CAACC,MAAc,EAAEC,KAAa,EAAA;AAC1D,EAAA,QAAQA,KAAK;AACX,IAAA,KAAK,yCAAyC;MAC5C,OAAO,CAAA,sBAAA,EAAyBD,MAAM,CAAA,CAAE;AAC1C,IAAA,KAAK,qDAAqD;MACxD,OAAO,CAAA,sBAAA,EAAyBA,MAAM,CAAA,eAAA,CAAiB;AACzD,IAAA,KAAK,qDAAqD;MACxD,OAAO,CAAA,sBAAA,EAAyBA,MAAM,CAAA,gBAAA,CAAkB;AAC1D,IAAA,KAAK,aAAa;MAChB,OAAO,CAAA,wBAAA,EAA2BA,MAAM,CAAA,CAAE;AAC5C,IAAA,KAAK,cAAc;MACjB,OAAO,CAAA,gCAAA,EAAmCA,MAAM,CAAA,CAAE;AACpD,IAAA,KAAK,UAAU;MACb,OAAO,CAAA,wBAAA,EAA2BA,MAAM,CAAA,CAAE;AAC5C,IAAA,KAAK,iBAAiB;MACpB,OAAO,CAAA,gCAAA,EAAmCA,MAAM,CAAA,CAAE;AACpD,IAAA,KAAK,YAAY;MACf,OAAO,CAAA,2BAAA,EAA8BA,MAAM,CAAA,CAAE;AAC/C,IAAA;AACE,MAAA,OAAOC,KAAK,CAACC,UAAU,CAAC,SAAS,CAAC,GAC9B,CAAA,sBAAA,EAAyBF,MAAM,CAAA,CAAE,GACjC,CAAA,wBAAA,EAA2BA,MAAM,CAAA,CAAE;AAC3C;AACF;AAEM,SAAUG,YAAYA,CAACF,KAAa,EAAA;EACxC,MAAMG,IAAI,GAAGH,KAAK,CAACC,UAAU,CAAC,SAAS,CAAC,GAAGG,cAAU,GAAGC,gBAAY;EAEpE,OAAOC,eAACH,IAAI,EAAA;AAACI,IAAAA,SAAS,EAAC;IAA2B;AACpD;;;;;"}
@@ -3,6 +3,12 @@ import { SolanaLogo, EthereumLogo } from '../design/Svg.mjs';
3
3
 
4
4
  function getExplorerUrl(txHash, caip2) {
5
5
  switch (caip2) {
6
+ case "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":
7
+ return "https://solscan.io/tx/".concat(txHash);
8
+ case "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG":
9
+ return "https://solscan.io/tx/".concat(txHash, "?cluster=devnet");
10
+ case "solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY":
11
+ return "https://solscan.io/tx/".concat(txHash, "?cluster=testnet");
6
12
  case "eip155:8453":
7
13
  return "https://basescan.org/tx/".concat(txHash);
8
14
  case "eip155:84532":
@@ -14,7 +20,7 @@ function getExplorerUrl(txHash, caip2) {
14
20
  case "eip155:137":
15
21
  return "https://polygonscan.com/tx/".concat(txHash);
16
22
  default:
17
- return "https://etherscan.io/tx/".concat(txHash);
23
+ return caip2.startsWith("solana:") ? "https://solscan.io/tx/".concat(txHash) : "https://etherscan.io/tx/".concat(txHash);
18
24
  }
19
25
  }
20
26
  function getChainLogo(caip2) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.mjs","sources":["../../../src/components/send-transaction/helpers.tsx"],"sourcesContent":[null],"names":["getExplorerUrl","txHash","caip2","concat","getChainLogo","Logo","startsWith","SolanaLogo","EthereumLogo","_jsx","className"],"mappings":";;;AAEM,SAAUA,cAAcA,CAACC,MAAc,EAAEC,KAAa,EAAA;AAC1D,EAAA,QAAQA,KAAK;AACX,IAAA,KAAK,aAAa;MAChB,OAAA,0BAAA,CAAAC,MAAA,CAAkCF,MAAM,CAAA;AAC1C,IAAA,KAAK,cAAc;MACjB,OAAA,kCAAA,CAAAE,MAAA,CAA0CF,MAAM,CAAA;AAClD,IAAA,KAAK,UAAU;MACb,OAAA,0BAAA,CAAAE,MAAA,CAAkCF,MAAM,CAAA;AAC1C,IAAA,KAAK,iBAAiB;MACpB,OAAA,kCAAA,CAAAE,MAAA,CAA0CF,MAAM,CAAA;AAClD,IAAA,KAAK,YAAY;MACf,OAAA,6BAAA,CAAAE,MAAA,CAAqCF,MAAM,CAAA;AAC7C,IAAA;MACE,OAAA,0BAAA,CAAAE,MAAA,CAAkCF,MAAM,CAAA;AAC5C;AACF;AAEM,SAAUG,YAAYA,CAACF,KAAa,EAAA;EACxC,IAAMG,IAAI,GAAGH,KAAK,CAACI,UAAU,CAAC,SAAS,CAAC,GAAGC,UAAU,GAAGC,YAAY;EAEpE,OAAOC,IAACJ,IAAI,EAAA;AAACK,IAAAA,SAAS,EAAC;IAA2B;AACpD;;;;"}
1
+ {"version":3,"file":"helpers.mjs","sources":["../../../src/components/send-transaction/helpers.tsx"],"sourcesContent":[null],"names":["getExplorerUrl","txHash","caip2","concat","startsWith","getChainLogo","Logo","SolanaLogo","EthereumLogo","_jsx","className"],"mappings":";;;AAEM,SAAUA,cAAcA,CAACC,MAAc,EAAEC,KAAa,EAAA;AAC1D,EAAA,QAAQA,KAAK;AACX,IAAA,KAAK,yCAAyC;MAC5C,OAAA,wBAAA,CAAAC,MAAA,CAAgCF,MAAM,CAAA;AACxC,IAAA,KAAK,qDAAqD;MACxD,OAAA,wBAAA,CAAAE,MAAA,CAAgCF,MAAM,EAAA,iBAAA,CAAA;AACxC,IAAA,KAAK,qDAAqD;MACxD,OAAA,wBAAA,CAAAE,MAAA,CAAgCF,MAAM,EAAA,kBAAA,CAAA;AACxC,IAAA,KAAK,aAAa;MAChB,OAAA,0BAAA,CAAAE,MAAA,CAAkCF,MAAM,CAAA;AAC1C,IAAA,KAAK,cAAc;MACjB,OAAA,kCAAA,CAAAE,MAAA,CAA0CF,MAAM,CAAA;AAClD,IAAA,KAAK,UAAU;MACb,OAAA,0BAAA,CAAAE,MAAA,CAAkCF,MAAM,CAAA;AAC1C,IAAA,KAAK,iBAAiB;MACpB,OAAA,kCAAA,CAAAE,MAAA,CAA0CF,MAAM,CAAA;AAClD,IAAA,KAAK,YAAY;MACf,OAAA,6BAAA,CAAAE,MAAA,CAAqCF,MAAM,CAAA;AAC7C,IAAA;AACE,MAAA,OAAOC,KAAK,CAACE,UAAU,CAAC,SAAS,CAAC,GAAA,wBAAA,CAAAD,MAAA,CACLF,MAAM,CAAA,GAAA,0BAAA,CAAAE,MAAA,CACJF,MAAM,CAAE;AAC3C;AACF;AAEM,SAAUI,YAAYA,CAACH,KAAa,EAAA;EACxC,IAAMI,IAAI,GAAGJ,KAAK,CAACE,UAAU,CAAC,SAAS,CAAC,GAAGG,UAAU,GAAGC,YAAY;EAEpE,OAAOC,IAACH,IAAI,EAAA;AAACI,IAAAA,SAAS,EAAC;IAA2B;AACpD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/client/Provider.tsx"],"names":[],"mappings":"AAqHA,OAAO,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAwB5E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAM3B,MAAM,kBAAkB,CAAC;AAuD1B;;GAEG;AACH,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAghLxD,CAAC"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/client/Provider.tsx"],"names":[],"mappings":"AAuHA,OAAO,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAwB5E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAM3B,MAAM,kBAAkB,CAAC;AAuD1B;;GAEG;AACH,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA6iLxD,CAAC"}
@@ -1484,6 +1484,10 @@ const ClientProvider = ({
1484
1484
  if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
1485
1485
  return utils.withTurnkeyErrorHandling(() => client.ethSendTransaction(params), () => logout(), callbacks, "Failed to send eth transaction");
1486
1486
  }, [client, callbacks, logout]);
1487
+ const solSendTransaction = react.useCallback(async params => {
1488
+ if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
1489
+ return utils.withTurnkeyErrorHandling(() => client.solSendTransaction(params), () => logout(), callbacks, "Failed to send sol transaction");
1490
+ }, [client, callbacks, logout]);
1487
1491
  const signAndSendTransaction = react.useCallback(async params => {
1488
1492
  if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
1489
1493
  return utils.withTurnkeyErrorHandling(() => client.signAndSendTransaction(params), () => logout(), callbacks, "Failed to sign and send transaction");
@@ -3349,63 +3353,69 @@ const ClientProvider = ({
3349
3353
  successPageDuration = 2000
3350
3354
  } = params;
3351
3355
  const {
3352
- from,
3353
- to,
3354
- caip2,
3355
- value,
3356
- data,
3357
- nonce,
3358
- gasLimit,
3359
- maxFeePerGas,
3360
- maxPriorityFeePerGas,
3361
- sponsor
3356
+ caip2
3362
3357
  } = transaction;
3363
- const cleanedData = data && data !== "0x" && data !== "" ? data : undefined;
3358
+ const isSolanaTransaction = caip2.startsWith("solana:");
3364
3359
  return new Promise((resolve, reject) => {
3365
3360
  const action = async () => {
3366
- const tx = {
3367
- from,
3368
- to,
3369
- caip2,
3370
- sponsor: sponsor ?? false,
3371
- ...(value ? {
3372
- value
3373
- } : {}),
3374
- ...(cleanedData ? {
3375
- data: cleanedData
3376
- } : {}),
3377
- ...(nonce ? {
3378
- nonce
3379
- } : {}),
3380
- ...(gasLimit ? {
3381
- gasLimit
3382
- } : {}),
3383
- ...(maxFeePerGas ? {
3384
- maxFeePerGas
3385
- } : {}),
3386
- ...(maxPriorityFeePerGas ? {
3387
- maxPriorityFeePerGas
3388
- } : {})
3389
- };
3390
- const sendTransactionStatusId = await ethSendTransaction({
3361
+ const sendTransactionStatusId = isSolanaTransaction ? await solSendTransaction({
3391
3362
  organizationId,
3392
- transaction: tx,
3363
+ transaction: transaction,
3393
3364
  stampWith
3394
- });
3365
+ }) : await (async () => {
3366
+ const {
3367
+ from,
3368
+ to,
3369
+ value,
3370
+ data,
3371
+ nonce,
3372
+ gasLimit,
3373
+ maxFeePerGas,
3374
+ maxPriorityFeePerGas,
3375
+ sponsor
3376
+ } = transaction;
3377
+ const cleanedData = data && data !== "0x" && data !== "" ? data : undefined;
3378
+ const tx = {
3379
+ from,
3380
+ to,
3381
+ caip2,
3382
+ sponsor: sponsor ?? false,
3383
+ ...(value ? {
3384
+ value
3385
+ } : {}),
3386
+ ...(cleanedData ? {
3387
+ data: cleanedData
3388
+ } : {}),
3389
+ ...(nonce ? {
3390
+ nonce
3391
+ } : {}),
3392
+ ...(gasLimit ? {
3393
+ gasLimit
3394
+ } : {}),
3395
+ ...(maxFeePerGas ? {
3396
+ maxFeePerGas
3397
+ } : {}),
3398
+ ...(maxPriorityFeePerGas ? {
3399
+ maxPriorityFeePerGas
3400
+ } : {})
3401
+ };
3402
+ return ethSendTransaction({
3403
+ organizationId,
3404
+ transaction: tx,
3405
+ stampWith
3406
+ });
3407
+ })();
3395
3408
  if (!sendTransactionStatusId) {
3396
- throw new sdkTypes.TurnkeyError("Missing sendTransactionStatusId", sdkTypes.TurnkeyErrorCodes.ETH_SEND_TRANSACTION_ERROR);
3409
+ throw new sdkTypes.TurnkeyError("Missing sendTransactionStatusId", sdkTypes.TurnkeyErrorCodes.BAD_RESPONSE);
3397
3410
  }
3398
3411
  const pollResult = await pollTransactionStatus({
3399
3412
  organizationId,
3400
3413
  sendTransactionStatusId
3401
3414
  });
3402
- const txHash = pollResult?.eth?.txHash;
3403
- if (!txHash) {
3404
- throw new sdkTypes.TurnkeyError("Missing txHash in transaction result", sdkTypes.TurnkeyErrorCodes.POLL_TRANSACTION_STATUS_ERROR);
3405
- }
3406
- return {
3415
+ const txHash = pollResult?.eth?.txHash ?? pollResult?.txHash;
3416
+ return txHash ? {
3407
3417
  txHash
3408
- };
3418
+ } : {};
3409
3419
  };
3410
3420
  pushPage({
3411
3421
  key: "Send Transaction",
@@ -3422,7 +3432,7 @@ const ClientProvider = ({
3422
3432
  })
3423
3433
  });
3424
3434
  });
3425
- }, [pushPage, client]);
3435
+ }, [ethSendTransaction, getSession, pollTransactionStatus, pushPage, solSendTransaction]);
3426
3436
  const handleOnRamp = react.useCallback(async params => {
3427
3437
  const {
3428
3438
  walletAccount,
@@ -3777,6 +3787,7 @@ const ClientProvider = ({
3777
3787
  signMessage,
3778
3788
  signTransaction,
3779
3789
  ethSendTransaction,
3790
+ solSendTransaction,
3780
3791
  signAndSendTransaction,
3781
3792
  pollTransactionStatus,
3782
3793
  fetchUser,