@turnkey/react-wallet-kit 1.6.3 → 1.7.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.
- package/dist/components/send-transaction/SendTransaction.d.ts +12 -0
- package/dist/components/send-transaction/SendTransaction.d.ts.map +1 -0
- package/dist/components/send-transaction/SendTransaction.js +65 -0
- package/dist/components/send-transaction/SendTransaction.js.map +1 -0
- package/dist/components/send-transaction/SendTransaction.mjs +89 -0
- package/dist/components/send-transaction/SendTransaction.mjs.map +1 -0
- package/dist/components/send-transaction/helpers.d.ts +4 -0
- package/dist/components/send-transaction/helpers.d.ts.map +1 -0
- package/dist/components/send-transaction/helpers.js +31 -0
- package/dist/components/send-transaction/helpers.js.map +1 -0
- package/dist/components/send-transaction/helpers.mjs +28 -0
- package/dist/components/send-transaction/helpers.mjs.map +1 -0
- package/dist/providers/client/Provider.d.ts.map +1 -1
- package/dist/providers/client/Provider.js +102 -2
- package/dist/providers/client/Provider.js.map +1 -1
- package/dist/providers/client/Provider.mjs +1047 -884
- package/dist/providers/client/Provider.mjs.map +1 -1
- package/dist/providers/client/Types.d.ts +22 -1
- package/dist/providers/client/Types.d.ts.map +1 -1
- package/dist/providers/client/Types.js.map +1 -1
- package/dist/providers/client/Types.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/typedoc-entry/index.d.ts +1 -1
- package/dist/typedoc-entry/index.d.ts.map +1 -1
- package/dist/types/method-types.d.ts +9 -1
- package/dist/types/method-types.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare function SendTransactionPage({ icon, action, caip2, successPageDuration, onSuccess, onError, }: {
|
|
3
|
+
icon?: React.ReactNode;
|
|
4
|
+
action: () => Promise<{
|
|
5
|
+
txHash?: string;
|
|
6
|
+
}>;
|
|
7
|
+
caip2: string;
|
|
8
|
+
successPageDuration?: number;
|
|
9
|
+
onSuccess?: () => void;
|
|
10
|
+
onError?: (error: any) => void;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=SendTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendTransaction.d.ts","sourceRoot":"","sources":["../../../src/components/send-transaction/SendTransaction.tsx"],"names":[],"mappings":";AAOA,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,KAAK,EACL,mBAA0B,EAC1B,SAAS,EACT,OAAO,GACR,EAAE;IACD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC,2CA4DA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Hook = require('../../providers/modal/Hook.js');
|
|
5
|
+
var clsx = require('clsx');
|
|
6
|
+
var Action = require('../auth/Action.js');
|
|
7
|
+
var Success = require('../design/Success.js');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var helpers = require('./helpers.js');
|
|
10
|
+
|
|
11
|
+
function SendTransactionPage({
|
|
12
|
+
icon,
|
|
13
|
+
action,
|
|
14
|
+
caip2,
|
|
15
|
+
successPageDuration = 2000,
|
|
16
|
+
onSuccess,
|
|
17
|
+
onError
|
|
18
|
+
}) {
|
|
19
|
+
const {
|
|
20
|
+
closeModal,
|
|
21
|
+
isMobile
|
|
22
|
+
} = Hook.useModal();
|
|
23
|
+
const [completed, setCompleted] = react.useState(false);
|
|
24
|
+
const [storedTxHash, setStoredTxHash] = react.useState();
|
|
25
|
+
if (completed) {
|
|
26
|
+
return jsxRuntime.jsxs("div", {
|
|
27
|
+
className: clsx("flex flex-col items-center justify-center py-5 text-center gap-2", isMobile ? "w-full" : "w-72"),
|
|
28
|
+
children: [jsxRuntime.jsx(Success.SuccessPage, {
|
|
29
|
+
text: "Transaction Sent!",
|
|
30
|
+
duration: successPageDuration,
|
|
31
|
+
onComplete: () => {
|
|
32
|
+
onSuccess?.();
|
|
33
|
+
closeModal();
|
|
34
|
+
}
|
|
35
|
+
}), storedTxHash && jsxRuntime.jsx("a", {
|
|
36
|
+
href: helpers.getExplorerUrl(storedTxHash, caip2),
|
|
37
|
+
target: "_blank",
|
|
38
|
+
rel: "noopener noreferrer",
|
|
39
|
+
className: "text-primary-light dark:text-primary-dark underline text-sm mt-2",
|
|
40
|
+
children: "View on Explorer"
|
|
41
|
+
})]
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return jsxRuntime.jsx("div", {
|
|
45
|
+
className: clsx("flex flex-col items-center justify-center py-5 text-center", isMobile ? "w-full" : "w-72"),
|
|
46
|
+
children: jsxRuntime.jsx(Action.ActionPage, {
|
|
47
|
+
title: "Sending Transaction",
|
|
48
|
+
icon: icon,
|
|
49
|
+
action: async () => {
|
|
50
|
+
try {
|
|
51
|
+
const result = await action();
|
|
52
|
+
setStoredTxHash(result?.txHash);
|
|
53
|
+
setCompleted(true);
|
|
54
|
+
} catch (err) {
|
|
55
|
+
onError?.(err);
|
|
56
|
+
throw err;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
closeOnComplete: false
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
exports.SendTransactionPage = SendTransactionPage;
|
|
65
|
+
//# sourceMappingURL=SendTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendTransaction.js","sources":["../../../src/components/send-transaction/SendTransaction.tsx"],"sourcesContent":[null],"names":["SendTransactionPage","icon","action","caip2","successPageDuration","onSuccess","onError","closeModal","isMobile","useModal","completed","setCompleted","useState","storedTxHash","setStoredTxHash","_jsxs","className","clsx","children","_jsx","SuccessPage","text","duration","onComplete","href","getExplorerUrl","target","rel","ActionPage","title","result","txHash","err","closeOnComplete"],"mappings":";;;;;;;;;;SAOgBA,mBAAmBA,CAAC;EAClCC,IAAI;EACJC,MAAM;EACNC,KAAK;AACLC,EAAAA,mBAAmB,GAAG,IAAI;EAC1BC,SAAS;AACTC,EAAAA;AAAO,CAQR,EAAA;EACC,MAAM;IAAEC,UAAU;AAAEC,IAAAA;GAAU,GAAGC,aAAQ,EAAE;EAC3C,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGF,cAAQ,EAAsB;AAEtE,EAAA,IAAIF,SAAS,EAAE;IACb,OACEK,eAAA,CAAA,KAAA,EAAA;MACEC,SAAS,EAAEC,IAAI,CACb,kEAAkE,EAClET,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAU,MAAAA,QAAA,EAAA,CAEDC,cAAA,CAACC,mBAAW,EAAA;AACVC,QAAAA,IAAI,EAAC,mBAAmB;AACxBC,QAAAA,QAAQ,EAAElB,mBAAmB;QAC7BmB,UAAU,EAAEA,MAAK;AACflB,UAAAA,SAAS,IAAI;AACbE,UAAAA,UAAU,EAAE;AACd,QAAA;AAAC,OAAA,CACD,EAEDM,YAAY,IACXM,cAAA,CAAA,GAAA,EAAA;AACEK,QAAAA,IAAI,EAAEC,sBAAc,CAACZ,YAAY,EAAEV,KAAK,CAAC;AACzCuB,QAAAA,MAAM,EAAC,QAAQ;AACfC,QAAAA,GAAG,EAAC,qBAAqB;AACzBX,QAAAA,SAAS,EAAC,kEAAkE;AAAAE,QAAAA,QAAA,EAAA;AAAA,OAAA,CAI/E;AAAA,KAAA,CACG;AAEV,EAAA;EAEA,OACEC,cAAA,CAAA,KAAA,EAAA;IACEH,SAAS,EAAEC,IAAI,CACb,4DAA4D,EAC5DT,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAU,IAAAA,QAAA,EAEDC,cAAA,CAACS,iBAAU,EAAA;AACTC,MAAAA,KAAK,EAAC,qBAAqB;AAC3B5B,MAAAA,IAAI,EAAEA,IAAI;MACVC,MAAM,EAAE,YAAW;QACjB,IAAI;AACF,UAAA,MAAM4B,MAAM,GAAG,MAAM5B,MAAM,EAAE;AAC7BY,UAAAA,eAAe,CAACgB,MAAM,EAAEC,MAAM,CAAC;UAC/BpB,YAAY,CAAC,IAAI,CAAC;QACpB,CAAC,CAAC,OAAOqB,GAAG,EAAE;UACZ1B,OAAO,GAAG0B,GAAG,CAAC;AACd,UAAA,MAAMA,GAAG;AACX,QAAA;MACF,CAAC;AACDC,MAAAA,eAAe,EAAE;KAAK;AACtB,GAAA,CACE;AAEV;;;;"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useModal } from '../../providers/modal/Hook.mjs';
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
import { ActionPage } from '../auth/Action.mjs';
|
|
6
|
+
import { SuccessPage } from '../design/Success.mjs';
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import { getExplorerUrl } from './helpers.mjs';
|
|
9
|
+
|
|
10
|
+
function SendTransactionPage(_ref) {
|
|
11
|
+
var icon = _ref.icon,
|
|
12
|
+
_action = _ref.action,
|
|
13
|
+
caip2 = _ref.caip2,
|
|
14
|
+
_ref$successPageDurat = _ref.successPageDuration,
|
|
15
|
+
successPageDuration = _ref$successPageDurat === void 0 ? 2000 : _ref$successPageDurat,
|
|
16
|
+
onSuccess = _ref.onSuccess,
|
|
17
|
+
onError = _ref.onError;
|
|
18
|
+
var _useModal = useModal(),
|
|
19
|
+
closeModal = _useModal.closeModal,
|
|
20
|
+
isMobile = _useModal.isMobile;
|
|
21
|
+
var _useState = useState(false),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
completed = _useState2[0],
|
|
24
|
+
setCompleted = _useState2[1];
|
|
25
|
+
var _useState3 = useState(),
|
|
26
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
27
|
+
storedTxHash = _useState4[0],
|
|
28
|
+
setStoredTxHash = _useState4[1];
|
|
29
|
+
if (completed) {
|
|
30
|
+
return jsxs("div", {
|
|
31
|
+
className: clsx("flex flex-col items-center justify-center py-5 text-center gap-2", isMobile ? "w-full" : "w-72"),
|
|
32
|
+
children: [jsx(SuccessPage, {
|
|
33
|
+
text: "Transaction Sent!",
|
|
34
|
+
duration: successPageDuration,
|
|
35
|
+
onComplete: function onComplete() {
|
|
36
|
+
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
|
|
37
|
+
closeModal();
|
|
38
|
+
}
|
|
39
|
+
}), storedTxHash && jsx("a", {
|
|
40
|
+
href: getExplorerUrl(storedTxHash, caip2),
|
|
41
|
+
target: "_blank",
|
|
42
|
+
rel: "noopener noreferrer",
|
|
43
|
+
className: "text-primary-light dark:text-primary-dark underline text-sm mt-2",
|
|
44
|
+
children: "View on Explorer"
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return jsx("div", {
|
|
49
|
+
className: clsx("flex flex-col items-center justify-center py-5 text-center", isMobile ? "w-full" : "w-72"),
|
|
50
|
+
children: jsx(ActionPage, {
|
|
51
|
+
title: "Sending Transaction",
|
|
52
|
+
icon: icon,
|
|
53
|
+
action: function () {
|
|
54
|
+
var _action2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
55
|
+
var result, _t;
|
|
56
|
+
return _regenerator().w(function (_context) {
|
|
57
|
+
while (1) switch (_context.p = _context.n) {
|
|
58
|
+
case 0:
|
|
59
|
+
_context.p = 0;
|
|
60
|
+
_context.n = 1;
|
|
61
|
+
return _action();
|
|
62
|
+
case 1:
|
|
63
|
+
result = _context.v;
|
|
64
|
+
setStoredTxHash(result === null || result === void 0 ? void 0 : result.txHash);
|
|
65
|
+
setCompleted(true);
|
|
66
|
+
_context.n = 3;
|
|
67
|
+
break;
|
|
68
|
+
case 2:
|
|
69
|
+
_context.p = 2;
|
|
70
|
+
_t = _context.v;
|
|
71
|
+
onError === null || onError === void 0 ? void 0 : onError(_t);
|
|
72
|
+
throw _t;
|
|
73
|
+
case 3:
|
|
74
|
+
return _context.a(2);
|
|
75
|
+
}
|
|
76
|
+
}, _callee, null, [[0, 2]]);
|
|
77
|
+
}));
|
|
78
|
+
function action() {
|
|
79
|
+
return _action2.apply(this, arguments);
|
|
80
|
+
}
|
|
81
|
+
return action;
|
|
82
|
+
}(),
|
|
83
|
+
closeOnComplete: false
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { SendTransactionPage };
|
|
89
|
+
//# sourceMappingURL=SendTransaction.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendTransaction.mjs","sources":["../../../src/components/send-transaction/SendTransaction.tsx"],"sourcesContent":[null],"names":["SendTransactionPage","_ref","icon","action","caip2","_ref$successPageDurat","successPageDuration","onSuccess","onError","_useModal","useModal","closeModal","isMobile","_useState","useState","_useState2","_slicedToArray","completed","setCompleted","_useState3","_useState4","storedTxHash","setStoredTxHash","_jsxs","className","clsx","children","_jsx","SuccessPage","text","duration","onComplete","href","getExplorerUrl","target","rel","ActionPage","title","_action2","_asyncToGenerator","_regenerator","m","_callee","result","_t","w","_context","p","n","v","txHash","a","apply","arguments","closeOnComplete"],"mappings":"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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Svg = require('../design/Svg.js');
|
|
5
|
+
|
|
6
|
+
function getExplorerUrl(txHash, caip2) {
|
|
7
|
+
switch (caip2) {
|
|
8
|
+
case "eip155:8453":
|
|
9
|
+
return `https://basescan.org/tx/${txHash}`;
|
|
10
|
+
case "eip155:84532":
|
|
11
|
+
return `https://sepolia.basescan.org/tx/${txHash}`;
|
|
12
|
+
case "eip155:1":
|
|
13
|
+
return `https://etherscan.io/tx/${txHash}`;
|
|
14
|
+
case "eip155:11155111":
|
|
15
|
+
return `https://sepolia.etherscan.io/tx/${txHash}`;
|
|
16
|
+
case "eip155:137":
|
|
17
|
+
return `https://polygonscan.com/tx/${txHash}`;
|
|
18
|
+
default:
|
|
19
|
+
return `https://etherscan.io/tx/${txHash}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function getChainLogo(caip2) {
|
|
23
|
+
const Logo = caip2.startsWith("solana:") ? Svg.SolanaLogo : Svg.EthereumLogo;
|
|
24
|
+
return jsxRuntime.jsx(Logo, {
|
|
25
|
+
className: "h-10 w-10 rounded-full"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
exports.getChainLogo = getChainLogo;
|
|
30
|
+
exports.getExplorerUrl = getExplorerUrl;
|
|
31
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +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;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { SolanaLogo, EthereumLogo } from '../design/Svg.mjs';
|
|
3
|
+
|
|
4
|
+
function getExplorerUrl(txHash, caip2) {
|
|
5
|
+
switch (caip2) {
|
|
6
|
+
case "eip155:8453":
|
|
7
|
+
return "https://basescan.org/tx/".concat(txHash);
|
|
8
|
+
case "eip155:84532":
|
|
9
|
+
return "https://sepolia.basescan.org/tx/".concat(txHash);
|
|
10
|
+
case "eip155:1":
|
|
11
|
+
return "https://etherscan.io/tx/".concat(txHash);
|
|
12
|
+
case "eip155:11155111":
|
|
13
|
+
return "https://sepolia.etherscan.io/tx/".concat(txHash);
|
|
14
|
+
case "eip155:137":
|
|
15
|
+
return "https://polygonscan.com/tx/".concat(txHash);
|
|
16
|
+
default:
|
|
17
|
+
return "https://etherscan.io/tx/".concat(txHash);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function getChainLogo(caip2) {
|
|
21
|
+
var Logo = caip2.startsWith("solana:") ? SolanaLogo : EthereumLogo;
|
|
22
|
+
return jsx(Logo, {
|
|
23
|
+
className: "h-10 w-10 rounded-full"
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { getChainLogo, getExplorerUrl };
|
|
28
|
+
//# sourceMappingURL=helpers.mjs.map
|
|
@@ -0,0 +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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/client/Provider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/client/Provider.tsx"],"names":[],"mappings":"AAyGA,OAAO,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAwB5E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAM3B,MAAM,kBAAkB,CAAC;AA8D1B;;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,CA8xLxD,CAAC"}
|
|
@@ -32,6 +32,8 @@ var RemovePhoneNumber = require('../../components/user/RemovePhoneNumber.js');
|
|
|
32
32
|
var Verify = require('../../components/verify/Verify.js');
|
|
33
33
|
var OnRamp = require('../../components/onramp/OnRamp.js');
|
|
34
34
|
var Svg = require('../../components/design/Svg.js');
|
|
35
|
+
var SendTransaction = require('../../components/send-transaction/SendTransaction.js');
|
|
36
|
+
var helpers = require('../../components/send-transaction/helpers.js');
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
39
|
* Provides Turnkey client authentication, session management, wallet operations, and user profile management
|
|
@@ -1475,10 +1477,18 @@ const ClientProvider = ({
|
|
|
1475
1477
|
if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
|
|
1476
1478
|
return utils.withTurnkeyErrorHandling(() => client.signTransaction(params), () => logout(), callbacks, "Failed to sign transaction");
|
|
1477
1479
|
}, [client, callbacks, logout]);
|
|
1480
|
+
const ethSendTransaction = react.useCallback(async params => {
|
|
1481
|
+
if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
|
|
1482
|
+
return utils.withTurnkeyErrorHandling(() => client.ethSendTransaction(params), () => logout(), callbacks, "Failed to send eth transaction");
|
|
1483
|
+
}, [client, callbacks, logout]);
|
|
1478
1484
|
const signAndSendTransaction = react.useCallback(async params => {
|
|
1479
1485
|
if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
|
|
1480
|
-
return utils.withTurnkeyErrorHandling(() => client.signAndSendTransaction(params), () => logout(), callbacks, "Failed to sign transaction");
|
|
1486
|
+
return utils.withTurnkeyErrorHandling(() => client.signAndSendTransaction(params), () => logout(), callbacks, "Failed to sign and send transaction");
|
|
1481
1487
|
}, [client, callbacks, logout]);
|
|
1488
|
+
const pollTransactionStatus = react.useCallback(async params => {
|
|
1489
|
+
if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
|
|
1490
|
+
return utils.withTurnkeyErrorHandling(() => client.pollTransactionStatus(params), () => logout(), callbacks, "Failed to poll transaction status");
|
|
1491
|
+
}, [client, callbacks]);
|
|
1482
1492
|
const fetchOrCreateP256ApiKeyUser = react.useCallback(async params => {
|
|
1483
1493
|
if (!client) throw new sdkTypes.TurnkeyError("Client is not initialized.", sdkTypes.TurnkeyErrorCodes.CLIENT_NOT_INITIALIZED);
|
|
1484
1494
|
return utils.withTurnkeyErrorHandling(() => client.fetchOrCreateP256ApiKeyUser(params), () => logout(), callbacks, "Failed to fetch or create delegated access user");
|
|
@@ -3522,6 +3532,93 @@ const ClientProvider = ({
|
|
|
3522
3532
|
throw new sdkTypes.TurnkeyError("Failed to remove user phone number.", sdkTypes.TurnkeyErrorCodes.UPDATE_USER_PHONE_NUMBER_ERROR, error);
|
|
3523
3533
|
}
|
|
3524
3534
|
}, [getSession, pushPage]);
|
|
3535
|
+
const handleSendTransaction = react.useCallback(async params => {
|
|
3536
|
+
const session = await getSession();
|
|
3537
|
+
const organizationId = params.organizationId || session?.organizationId;
|
|
3538
|
+
if (!organizationId) {
|
|
3539
|
+
throw new sdkTypes.TurnkeyError("A session or passed in organization ID is required.", sdkTypes.TurnkeyErrorCodes.INVALID_REQUEST);
|
|
3540
|
+
}
|
|
3541
|
+
const {
|
|
3542
|
+
transaction,
|
|
3543
|
+
icon,
|
|
3544
|
+
stampWith,
|
|
3545
|
+
successPageDuration = 2000
|
|
3546
|
+
} = params;
|
|
3547
|
+
const {
|
|
3548
|
+
from,
|
|
3549
|
+
to,
|
|
3550
|
+
caip2,
|
|
3551
|
+
value,
|
|
3552
|
+
data,
|
|
3553
|
+
nonce,
|
|
3554
|
+
gasLimit,
|
|
3555
|
+
maxFeePerGas,
|
|
3556
|
+
maxPriorityFeePerGas,
|
|
3557
|
+
sponsor
|
|
3558
|
+
} = transaction;
|
|
3559
|
+
const cleanedData = data && data !== "0x" && data !== "" ? data : undefined;
|
|
3560
|
+
return new Promise((resolve, reject) => {
|
|
3561
|
+
const action = async () => {
|
|
3562
|
+
const tx = {
|
|
3563
|
+
from,
|
|
3564
|
+
to,
|
|
3565
|
+
caip2,
|
|
3566
|
+
sponsor: sponsor ?? false,
|
|
3567
|
+
...(value ? {
|
|
3568
|
+
value
|
|
3569
|
+
} : {}),
|
|
3570
|
+
...(cleanedData ? {
|
|
3571
|
+
data: cleanedData
|
|
3572
|
+
} : {}),
|
|
3573
|
+
...(nonce ? {
|
|
3574
|
+
nonce
|
|
3575
|
+
} : {}),
|
|
3576
|
+
...(gasLimit ? {
|
|
3577
|
+
gasLimit
|
|
3578
|
+
} : {}),
|
|
3579
|
+
...(maxFeePerGas ? {
|
|
3580
|
+
maxFeePerGas
|
|
3581
|
+
} : {}),
|
|
3582
|
+
...(maxPriorityFeePerGas ? {
|
|
3583
|
+
maxPriorityFeePerGas
|
|
3584
|
+
} : {})
|
|
3585
|
+
};
|
|
3586
|
+
const sendTransactionStatusId = await ethSendTransaction({
|
|
3587
|
+
organizationId,
|
|
3588
|
+
transaction: tx,
|
|
3589
|
+
stampWith
|
|
3590
|
+
});
|
|
3591
|
+
if (!sendTransactionStatusId) {
|
|
3592
|
+
throw new sdkTypes.TurnkeyError("Missing sendTransactionStatusId", sdkTypes.TurnkeyErrorCodes.ETH_SEND_TRANSACTION_ERROR);
|
|
3593
|
+
}
|
|
3594
|
+
const pollResult = await pollTransactionStatus({
|
|
3595
|
+
organizationId,
|
|
3596
|
+
sendTransactionStatusId
|
|
3597
|
+
});
|
|
3598
|
+
const txHash = pollResult?.eth?.txHash;
|
|
3599
|
+
if (!txHash) {
|
|
3600
|
+
throw new sdkTypes.TurnkeyError("Missing txHash in transaction result", sdkTypes.TurnkeyErrorCodes.POLL_TRANSACTION_STATUS_ERROR);
|
|
3601
|
+
}
|
|
3602
|
+
return {
|
|
3603
|
+
txHash
|
|
3604
|
+
};
|
|
3605
|
+
};
|
|
3606
|
+
pushPage({
|
|
3607
|
+
key: "Send Transaction",
|
|
3608
|
+
showTitle: false,
|
|
3609
|
+
preventBack: true,
|
|
3610
|
+
onClose: () => reject(new sdkTypes.TurnkeyError("User canceled the transaction.", sdkTypes.TurnkeyErrorCodes.USER_CANCELED)),
|
|
3611
|
+
content: jsxRuntime.jsx(SendTransaction.SendTransactionPage, {
|
|
3612
|
+
icon: icon ?? helpers.getChainLogo(caip2),
|
|
3613
|
+
action: action,
|
|
3614
|
+
caip2: caip2,
|
|
3615
|
+
successPageDuration: successPageDuration,
|
|
3616
|
+
onSuccess: () => resolve(),
|
|
3617
|
+
onError: err => reject(err)
|
|
3618
|
+
})
|
|
3619
|
+
});
|
|
3620
|
+
});
|
|
3621
|
+
}, [pushPage, client]);
|
|
3525
3622
|
const handleOnRamp = react.useCallback(async params => {
|
|
3526
3623
|
const {
|
|
3527
3624
|
walletAccount,
|
|
@@ -3875,7 +3972,9 @@ const ClientProvider = ({
|
|
|
3875
3972
|
refreshWallets,
|
|
3876
3973
|
signMessage,
|
|
3877
3974
|
signTransaction,
|
|
3975
|
+
ethSendTransaction,
|
|
3878
3976
|
signAndSendTransaction,
|
|
3977
|
+
pollTransactionStatus,
|
|
3879
3978
|
fetchUser,
|
|
3880
3979
|
fetchOrCreateP256ApiKeyUser,
|
|
3881
3980
|
fetchOrCreatePolicies,
|
|
@@ -3935,7 +4034,8 @@ const ClientProvider = ({
|
|
|
3935
4034
|
handleRemoveUserEmail,
|
|
3936
4035
|
handleRemoveUserPhoneNumber,
|
|
3937
4036
|
handleVerifyAppProofs,
|
|
3938
|
-
handleOnRamp
|
|
4037
|
+
handleOnRamp,
|
|
4038
|
+
handleSendTransaction
|
|
3939
4039
|
},
|
|
3940
4040
|
children: children
|
|
3941
4041
|
});
|