From ce175f3d747bbaabc7fb4c6e55d2c5bbf86bb9f6 Mon Sep 17 00:00:00 2001 From: Bruno Date: Mon, 5 Jun 2023 13:54:27 +0300 Subject: [PATCH 01/85] Rename Milkomeda Djed (#79) Co-authored-by: Zahnentferner --- env/milkomeda-c1-testnet.env | 4 ++++ env/milkomeda-c1.env | 4 ++++ src/routes/my-balance.jsx | 4 ++-- src/routes/protocol.jsx | 8 ++++---- src/routes/reservecoin.jsx | 12 ++++++------ src/routes/stablecoin.jsx | 12 ++++++------ 6 files changed, 26 insertions(+), 18 deletions(-) diff --git a/env/milkomeda-c1-testnet.env b/env/milkomeda-c1-testnet.env index 6ce0c6e4..b8bdca5a 100644 --- a/env/milkomeda-c1-testnet.env +++ b/env/milkomeda-c1-testnet.env @@ -13,4 +13,8 @@ REACT_APP_PROTOCOL_CHAIN_DESCRIPTION=Milkomeda-C1 is the EVM-compatible chain of REACT_APP_PROTOCOL_OBTAIN_NATIVE=mADA or bridge your ADA from Cardano to Milkomeda-C1. REACT_APP_OBTAIN_NATIVE_GUIDE=https://dcspark.github.io/milkomeda-documentation/cardano/for-end-users/obtaining-milkada REACT_APP_CHAIN_COIN=mADA +REACT_APP_SC_NAME=Milkomeda-C1 Djed Osiris Dollar +REACT_APP_SC_SYMBOL=MOD +REACT_APP_RC_NAME=Milkomeda-C1 Djed Osiris Reservecoin +REACT_APP_RC_SYMBOL=MOR REACT_APP_LIMIT_PER_TXN=10000 \ No newline at end of file diff --git a/env/milkomeda-c1.env b/env/milkomeda-c1.env index df5fbf97..cdc8e077 100644 --- a/env/milkomeda-c1.env +++ b/env/milkomeda-c1.env @@ -13,4 +13,8 @@ REACT_APP_PROTOCOL_CHAIN_DESCRIPTION=Milkomeda-C1 is the EVM-compatible chain of REACT_APP_PROTOCOL_OBTAIN_NATIVE=mADA or bridge your ADA from Cardano to Milkomeda-C1. REACT_APP_OBTAIN_NATIVE_GUIDE=https://dcspark.github.io/milkomeda-documentation/cardano/for-end-users/obtaining-milkada REACT_APP_CHAIN_COIN=mADA +REACT_APP_SC_NAME=Milkomeda-C1 Djed Osiris Dollar +REACT_APP_SC_SYMBOL=MOD +REACT_APP_RC_NAME=Milkomeda-C1 Djed Osiris Reservecoin +REACT_APP_RC_SYMBOL=MOR REACT_APP_LIMIT_PER_TXN=10000 \ No newline at end of file diff --git a/src/routes/my-balance.jsx b/src/routes/my-balance.jsx index 4d44c946..c7eff4ca 100644 --- a/src/routes/my-balance.jsx +++ b/src/routes/my-balance.jsx @@ -31,13 +31,13 @@ export default function MyBalance() {
diff --git a/src/routes/protocol.jsx b/src/routes/protocol.jsx index 96a84110..e7df7e6b 100644 --- a/src/routes/protocol.jsx +++ b/src/routes/protocol.jsx @@ -102,19 +102,19 @@ export default function Protocol() {
-

Djed ReserveCoin {/*Name*/}

+

ReserveCoin {/*Name*/}

A ReserveCoin represents a portion of the surplus of the underlying reserves @@ -320,11 +320,11 @@ export default function ReserveCoin() {

@@ -333,12 +333,12 @@ export default function ReserveCoin() { Buy <>& Sell {" "} - {process.env.REACT_APP_BC} Djed ReserveCoin + {process.env.REACT_APP_RC_NAME}
{ setBuyOrSell(); setValue(null); @@ -391,7 +391,7 @@ export default function ReserveCoin() { disabled={buttonDisabled} onClick={onSubmit} buyOrSell={buyOrSell} - currencyName={`${process.env.REACT_APP_BC} Djed ReserveCoin`} + currencyName={`${process.env.REACT_APP_RC_SYMBOL}`} /> ) : ( diff --git a/src/routes/stablecoin.jsx b/src/routes/stablecoin.jsx index bafdbfdc..d5764965 100644 --- a/src/routes/stablecoin.jsx +++ b/src/routes/stablecoin.jsx @@ -253,11 +253,11 @@ export default function Stablecoin() {
-

Djed StableCoin {/*Name*/}

+

StableCoin {/*Name*/}

The StableCoin of this Djed deployment is called{" "} - {process.env.REACT_APP_BC} Djed Dollar. It is pegged to the + {process.env.REACT_APP_SC_NAME}. It is pegged to the USD, similarly to various{" "} Buy <>& Sell {" "} - {process.env.REACT_APP_BC} Djed Dollar + {process.env.REACT_APP_SC_NAME}

{ setBuyOrSell(); setValue(null); @@ -376,7 +376,7 @@ export default function Stablecoin() { disabled={buttonDisabled} onClick={onSubmit} buyOrSell={buyOrSell} - currencyName={`${process.env.REACT_APP_BC} Djed Dollar`} + currencyName={`${process.env.REACT_APP_SC_NAME}`} /> ) : ( From 9e7c68fb1139ce63f5e9b87318c20f24229fd1ee Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 13 Jun 2023 19:05:25 -0500 Subject: [PATCH 02/85] fix: tx status when wrapping --- .../FlintWSCContent.jsx/FlintWSCContent.jsx | 93 ++++++++++++++++--- 1 file changed, 82 insertions(+), 11 deletions(-) diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index 7af411e2..f62e1d67 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -1,11 +1,12 @@ -import React from "react"; +import React, { useEffect } from "react"; import { useAppProvider } from "../../../context/AppProvider"; import "./_FlintWSCContent.scss"; import { Skeleton, Spin, Tabs, message } from "antd"; import BigNumber from "bignumber.js"; import { MilkomedaConstants } from "milkomeda-wsc/build/MilkomedaConstants"; -import { LoadingOutlined } from "@ant-design/icons"; + +import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; const useInterval = (callback, delay) => { const savedCallback = React.useRef(undefined); @@ -146,6 +147,7 @@ const FlintWSCContent = () => { const [originTokens, setOriginTokens] = React.useState([]); const [tokens, setTokens] = React.useState([]); const [originAddress, setOriginAddress] = React.useState(null); + const [currentSentTxs, setCurrentSentTxs] = React.useState({}); const [status, setStatus] = React.useState("idle"); @@ -153,6 +155,49 @@ const FlintWSCContent = () => { return provider?.wrap(destination, assetId, amount.toNumber()); }; + useInterval( + async () => { + if (!provider || Object.keys(currentSentTxs).length === 0) return; + + for (const txHash of Object.keys(currentSentTxs)) { + const response = await provider.getTxStatus(txHash); + + if (response === TxPendingStatus.WaitingL1Confirmation) { + message.loading({ + content: `Waiting L1 confirmation for your ${currentSentTxs[txHash]} asset...`, + key: txHash, + duration: 0 + }); + } + if (response === TxPendingStatus.WaitingBridgeConfirmation) { + message.loading({ + content: `Waiting Bridge confirmation for your ${currentSentTxs[txHash]} asset...`, + key: txHash, + duration: 0 + }); + } + if (response === TxPendingStatus.WaitingL2Confirmation) { + message.loading({ + content: `Waiting L2 confirmation for your ${currentSentTxs[txHash]} asset...`, + key: txHash, + duration: 0 + }); + } + if (response === TxPendingStatus.Confirmed) { + message.success({ + content: `Your ${currentSentTxs[txHash]} asset has been successfully moved!`, + key: txHash, + duration: 3 + }); + const newCurrentSentTxs = { ...currentSentTxs }; + delete newCurrentSentTxs[txHash]; + setCurrentSentTxs(newCurrentSentTxs); + } + } + }, + currentSentTxs.hash !== "" ? 4000 : null + ); + const areTokensAllowed = async (assetIds) => { return await provider?.areTokensAllowed(assetIds); }; @@ -180,7 +225,7 @@ const FlintWSCContent = () => { setOriginTokens(originTokens ?? []); const tokenBalances = await provider.getTokenBalances(); - setTokens(tokenBalances ?? []); + setTokens(tokenBalances ?? []); }, [provider]); useInterval(() => { @@ -242,6 +287,7 @@ const FlintWSCContent = () => { {connectionStatus.map((item, index, arr) => { return ( { isLoading={isLoading} isSuccess={isSuccess} address={originAddress} + currentSentTxs={currentSentTxs} + setCurrentSentTxs={setCurrentSentTxs} /> @@ -338,7 +386,15 @@ const FlintWSCContent = () => { export default FlintWSCContent; -const CardanoAssets = ({ tokens = [], wrap, isLoading, isSuccess, address }) => { +const CardanoAssets = ({ + tokens = [], + wrap, + isLoading, + isSuccess, + address, + currentSentTxs, + setCurrentSentTxs +}) => { const [tokenAmounts, setTokenAmounts] = React.useState(new Map()); const [amounts, setAmounts] = React.useState([]); @@ -362,18 +418,29 @@ const CardanoAssets = ({ tokens = [], wrap, isLoading, isSuccess, address }) => }; const moveToken = async (token) => { - message.loading({ content: "Moving asset...", key: "moving-asset-L2" }); + message.loading({ + content: `Starting ${token.assetName} asset moving...`, + key: "moving-asset-L2", + duration: 0 + }); try { - await wrap( + const txHash = await wrap( undefined, token.unit, new BigNumber(tokenAmounts.get(token.unit) || "0") ); - updateTokenAmount(token.unit, ""); - message.success({ - content: "Asset moved successfully", - key: "moving-asset-L2" + const transactions = { ...currentSentTxs }; + transactions[txHash] = token.assetName; + setCurrentSentTxs(transactions); + + message.destroy("moving-asset-L2"); + message.loading({ + content: `Moving your ${token.assetName} asset...`, + key: txHash, + duration: 0 }); + + updateTokenAmount(token.unit, ""); } catch (err) { console.error(err); message.error({ @@ -521,7 +588,11 @@ const WSCAssets = ({ className="button-primary-small" onClick={async () => { try { - message.loading({ content: "Moving asset...", key: "moving-asset-L1" }); + message.loading({ + content: "Moving asset...", + key: "moving-asset-L1", + duration: 0 + }); const normalizedAda = normalizeAda(destinationBalance); console.log("normalizedAda", normalizedAda); const lovelace = new BigNumber(normalizedAda).multipliedBy( From 883cc95ca4e55ffdc875f71899c673112c723e39 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 13 Jun 2023 19:11:12 -0500 Subject: [PATCH 03/85] fix: tx status when unwrapping --- .../FlintWSCContent.jsx/FlintWSCContent.jsx | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index f62e1d67..bae05c2d 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -371,6 +371,8 @@ const FlintWSCContent = () => { unwrap={unwrapWrapper} isLoading={isLoading} isSuccess={isSuccess} + currentSentTxs={currentSentTxs} + setCurrentSentTxs={setCurrentSentTxs} /> @@ -527,7 +529,9 @@ const WSCAssets = ({ areTokensAllowed, isLoading, isSuccess, - address + address, + currentSentTxs, + setCurrentSentTxs }) => { const [allowedTokensMap, setAllowedTokensMap] = React.useState({}); @@ -589,7 +593,7 @@ const WSCAssets = ({ onClick={async () => { try { message.loading({ - content: "Moving asset...", + content: `Starting ADA asset moving...`, key: "moving-asset-L1", duration: 0 }); @@ -598,10 +602,15 @@ const WSCAssets = ({ const lovelace = new BigNumber(normalizedAda).multipliedBy( new BigNumber(10).pow(6) ); - await unwrap(undefined, undefined, lovelace); - message.success({ - content: "Asset moved successfully", - key: "moving-asset-L1" + const txHash = await unwrap(undefined, undefined, lovelace); + const transactions = { ...currentSentTxs }; + transactions[txHash] = "ADA"; // token name + setCurrentSentTxs(transactions); + message.destroy("moving-asset-L1"); + message.loading({ + content: `Moving your ADA asset...`, + key: txHash, + duration: 0 }); } catch (err) { message.error({ @@ -657,26 +666,31 @@ const WSCAssets = ({ onClick={async () => { try { message.loading({ - content: "Moving asset...", - key: "moving-asset-L1" + content: `Starting ${token.assetName} asset moving...`, + key: "moving-asset-L1-asset", + duration: 0 }); - - await moveAssetsToL1( + const txHash = await moveAssetsToL1( token.contractAddress, token.name, new BigNumber(token.balance) ); + const transactions = { ...currentSentTxs }; + transactions[txHash] = token.name; // token name + setCurrentSentTxs(transactions); + message.destroy("moving-asset-L1-asset"); - message.success({ - content: "Asset moved successfully", - key: "moving-asset-L1" + message.loading({ + content: `Moving your ${token.name} asset...`, + key: txHash, + duration: 0 }); } catch (err) { message.error({ content: `Something went wrong. ${ err.message ? `Error: ${err.message}` : "" }`, - key: "moving-asset-L1" + key: "moving-asset-L1-asset" }); } }} From 6983c0a4ed63498480ae4a608aedf7d2c05d3baa Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 13 Jun 2023 19:12:02 -0500 Subject: [PATCH 04/85] update package-lock --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8854d9a2..20d7a530 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc": "^0.1.11", + "milkomeda-wsc": "^0.1.13", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16453,9 +16453,9 @@ } }, "node_modules/milkomeda-wsc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.1.11.tgz", - "integrity": "sha512-2/HEtqAa9mRiASb5SqHR0KywDJ6wUaq91E8NRyqV8y46khSqeUbLcX4ODCpIoNS299vd9pShmdYlpCBadTqUvg==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.1.13.tgz", + "integrity": "sha512-nj8+D8MV1RHHYOID7scc5LFzJ/Stz3GC0NTbA1+am49ba0SKVzNPc71pNewi573T/GPtLfwQlzTTBsiyOphDXA==", "dependencies": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -36724,9 +36724,9 @@ } }, "milkomeda-wsc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.1.11.tgz", - "integrity": "sha512-2/HEtqAa9mRiASb5SqHR0KywDJ6wUaq91E8NRyqV8y46khSqeUbLcX4ODCpIoNS299vd9pShmdYlpCBadTqUvg==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.1.13.tgz", + "integrity": "sha512-nj8+D8MV1RHHYOID7scc5LFzJ/Stz3GC0NTbA1+am49ba0SKVzNPc71pNewi573T/GPtLfwQlzTTBsiyOphDXA==", "requires": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", From fa5a832514dd6850952fad4ddefdbb60c7307dea Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 13 Jun 2023 19:13:44 -0500 Subject: [PATCH 05/85] clean up --- .../molecules/FlintWSCContent.jsx/FlintWSCContent.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index bae05c2d..8d8d306d 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import React from "react"; import { useAppProvider } from "../../../context/AppProvider"; import "./_FlintWSCContent.scss"; import { Skeleton, Spin, Tabs, message } from "antd"; From 322f3f83f34ad34b78734487f527386111f3e900 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 14 Jun 2023 16:02:38 -0500 Subject: [PATCH 06/85] clean up interval --- .../molecules/FlintWSCContent.jsx/FlintWSCContent.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index 8d8d306d..d670e54e 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -171,7 +171,7 @@ const FlintWSCContent = () => { } if (response === TxPendingStatus.WaitingBridgeConfirmation) { message.loading({ - content: `Waiting Bridge confirmation for your ${currentSentTxs[txHash]} asset...`, + content: `Waiting Bridge confirmation for your ${currentSentTxs[txHash]} asset (~3m)...`, key: txHash, duration: 0 }); @@ -195,7 +195,7 @@ const FlintWSCContent = () => { } } }, - currentSentTxs.hash !== "" ? 4000 : null + Object.keys(currentSentTxs).length === 0 ? 4000 : null ); const areTokensAllowed = async (assetIds) => { From e6f8d500a56aad7ace2fdb646c3bc68d9b5bf69e Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 14 Jun 2023 19:31:15 -0500 Subject: [PATCH 07/85] feat: add modal with stepper --- .../molecules/BuySellButton/BuySellButton.jsx | 18 +++- .../BuySellWSCButton/BuySellWSCButton.jsx | 85 +++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index 06739e0e..863d45ad 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -1,12 +1,28 @@ import React from "react"; import CustomButton from "../../atoms/CustomButton/CustomButton"; import { ArrowRightOutlined } from "@ant-design/icons"; +import { useAppProvider } from "../../../context/AppProvider"; +import BuySellWSCButton from "../BuySellWSCButton/BuySellWSCButton"; const capitalizeString = (string) => { - return string.charAt(0).toUpperCase() + string.slice(1); + return string?.charAt(0).toUpperCase() + string?.slice(1); }; const BuySellButton = ({ onClick, buyOrSell, currencyName, disabled }) => { + const { activeConnector } = useAppProvider(); + + if (activeConnector?.id?.includes("wsc")) { + return ( + } + onClick={onClick} + // disabled={disabled} + /> + ); + } + return ( { + return string?.charAt(0).toUpperCase() + string?.slice(1); +}; +const { Step } = Steps; + +const Step1Content = () => { + return
Step 1 Content
; +}; +const Step2Content = () => { + return
Step 2 Content
; +}; +const Step3Content = () => { + return
Step 3 Content
; +}; + +const BuySellWSCButton = ({ onClick, buyOrSell, currencyName, disabled }) => { + const [isModalOpen, setIsModalOpen] = React.useState(false); + const [currentStep, setCurrentStep] = React.useState(0); + + const showModal = () => { + console.log("test!"); + setIsModalOpen(true); + }; + + const handleNextStep = () => { + const nextStepIdx = currentStep + 1; + setCurrentStep(nextStepIdx); + }; + const handlePrevStep = () => { + const prevStepIdx = currentStep - 1; + setCurrentStep(prevStepIdx); + }; + + const handleCancel = () => { + setIsModalOpen(false); + }; + + return ( + <> + } + onClick={showModal} + disabled={disabled} + /> + + + Prev + , + + ]} + > + + + + + + {currentStep === 0 && } + {currentStep === 1 && } + {currentStep === 2 && } + + + ); +}; + +export default BuySellWSCButton; From 88e555bfae6f3128a79168bdcfb379e62ea58e43 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 15 Jun 2023 10:30:55 -0500 Subject: [PATCH 08/85] add wsc connector to modal --- .../molecules/BuySellButton/BuySellButton.jsx | 1 + .../BuySellWSCButton/BuySellWSCButton.jsx | 25 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index 863d45ad..965237eb 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -18,6 +18,7 @@ const BuySellButton = ({ onClick, buyOrSell, currencyName, disabled }) => { variant="primary" icon={} onClick={onClick} + activeConnector={activeConnector} // disabled={disabled} /> ); diff --git a/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx b/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx index fd229364..6df47e24 100644 --- a/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx +++ b/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useEffect } from "react"; import CustomButton from "../../atoms/CustomButton/CustomButton"; import { ArrowRightOutlined } from "@ant-design/icons"; import { Modal, Steps } from "antd"; @@ -18,10 +18,18 @@ const Step3Content = () => { return
Step 3 Content
; }; -const BuySellWSCButton = ({ onClick, buyOrSell, currencyName, disabled }) => { +const BuySellWSCButton = ({ + onClick, + buyOrSell, + currencyName, + disabled, + activeConnector +}) => { const [isModalOpen, setIsModalOpen] = React.useState(false); const [currentStep, setCurrentStep] = React.useState(0); + const [wscProvider, setWscProvider] = React.useState(null); + const showModal = () => { console.log("test!"); setIsModalOpen(true); @@ -40,6 +48,19 @@ const BuySellWSCButton = ({ onClick, buyOrSell, currencyName, disabled }) => { setIsModalOpen(false); }; + useEffect(() => { + const loadWscProvider = async () => { + try { + const provider = await activeConnector.getProvider(); + if (!provider) return; + setWscProvider(provider); + } catch (e) { + console.log(e); + } + }; + loadWscProvider(); + }, [activeConnector]); + return ( <> Date: Mon, 19 Jun 2023 20:35:15 -0500 Subject: [PATCH 09/85] feat: abstract wsc logic and add step 1 logic --- .../molecules/BuySellButton/BuySellButton.jsx | 52 +-- .../BuySellButton/BuySellButton.scss | 36 +++ .../BuySellWSCButton/BuySellWSCButton.jsx | 106 ------- src/components/wsc-ui/WSCButton/WSCButton.jsx | 295 ++++++++++++++++++ .../wsc-ui/WSCButton/WSCButton.scss | 19 ++ src/routes/reservecoin.jsx | 5 + src/routes/stablecoin.jsx | 9 +- 7 files changed, 391 insertions(+), 131 deletions(-) create mode 100644 src/components/molecules/BuySellButton/BuySellButton.scss delete mode 100644 src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx create mode 100644 src/components/wsc-ui/WSCButton/WSCButton.jsx create mode 100644 src/components/wsc-ui/WSCButton/WSCButton.scss diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index 965237eb..a6c3778d 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -1,38 +1,44 @@ import React from "react"; import CustomButton from "../../atoms/CustomButton/CustomButton"; import { ArrowRightOutlined } from "@ant-design/icons"; -import { useAppProvider } from "../../../context/AppProvider"; -import BuySellWSCButton from "../BuySellWSCButton/BuySellWSCButton"; +import WSCButton from "../../wsc-ui/WSCButton/WSCButton"; +import "./BuySellButton.scss"; const capitalizeString = (string) => { return string?.charAt(0).toUpperCase() + string?.slice(1); }; -const BuySellButton = ({ onClick, buyOrSell, currencyName, disabled }) => { - const { activeConnector } = useAppProvider(); - - if (activeConnector?.id?.includes("wsc")) { - return ( - { + return ( + <> + {/* TODO: remove later */} + } onClick={onClick} - activeConnector={activeConnector} - // disabled={disabled} + disabled={disabled} + text={`${capitalizeString(buyOrSell)} ${currencyName}`} /> - ); - } - - return ( - } - onClick={onClick} - disabled={disabled} - /> + + + {capitalizeString(buyOrSell)} {currencyName} + + {" "} + + ); }; diff --git a/src/components/molecules/BuySellButton/BuySellButton.scss b/src/components/molecules/BuySellButton/BuySellButton.scss new file mode 100644 index 00000000..fc5b4c21 --- /dev/null +++ b/src/components/molecules/BuySellButton/BuySellButton.scss @@ -0,0 +1,36 @@ +.wsc-button { + background: linear-gradient(91.41deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%); + border: 2px solid #5f606e; + transition: 0.3s; + color: #ffffff; + cursor: pointer; + width: 100%; + padding: 0.5em 1.25em; + border-radius: 8px; + height: 50px; + display: flex; + align-items: center; + justify-content: space-between; + outline: none; + .text { + margin: 0 14px; + font-weight: 600; + } + &:hover { + background: #474853; + border: 2px solid #474853; + color: #ffffff; + } + &:disabled { + border: 2px solid #5f606e; + background: transparent; + opacity: 0.8; + color: #bbbbbb; + cursor: initial; + } +} + +.step-1-content{} +.step-2-content{} +.step-3-content{} +.step-4-content{} diff --git a/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx b/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx deleted file mode 100644 index 6df47e24..00000000 --- a/src/components/molecules/BuySellWSCButton/BuySellWSCButton.jsx +++ /dev/null @@ -1,106 +0,0 @@ -import React, { useEffect } from "react"; -import CustomButton from "../../atoms/CustomButton/CustomButton"; -import { ArrowRightOutlined } from "@ant-design/icons"; -import { Modal, Steps } from "antd"; - -const capitalizeString = (string) => { - return string?.charAt(0).toUpperCase() + string?.slice(1); -}; -const { Step } = Steps; - -const Step1Content = () => { - return
Step 1 Content
; -}; -const Step2Content = () => { - return
Step 2 Content
; -}; -const Step3Content = () => { - return
Step 3 Content
; -}; - -const BuySellWSCButton = ({ - onClick, - buyOrSell, - currencyName, - disabled, - activeConnector -}) => { - const [isModalOpen, setIsModalOpen] = React.useState(false); - const [currentStep, setCurrentStep] = React.useState(0); - - const [wscProvider, setWscProvider] = React.useState(null); - - const showModal = () => { - console.log("test!"); - setIsModalOpen(true); - }; - - const handleNextStep = () => { - const nextStepIdx = currentStep + 1; - setCurrentStep(nextStepIdx); - }; - const handlePrevStep = () => { - const prevStepIdx = currentStep - 1; - setCurrentStep(prevStepIdx); - }; - - const handleCancel = () => { - setIsModalOpen(false); - }; - - useEffect(() => { - const loadWscProvider = async () => { - try { - const provider = await activeConnector.getProvider(); - if (!provider) return; - setWscProvider(provider); - } catch (e) { - console.log(e); - } - }; - loadWscProvider(); - }, [activeConnector]); - - return ( - <> - } - onClick={showModal} - disabled={disabled} - /> - - - Prev - , - - ]} - > - - - - - - {currentStep === 0 && } - {currentStep === 1 && } - {currentStep === 2 && } - - - ); -}; - -export default BuySellWSCButton; diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx new file mode 100644 index 00000000..ec03dace --- /dev/null +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -0,0 +1,295 @@ +import React, { useEffect } from "react"; +import { Modal, Steps, Icon, Spin, Select, message } from "antd"; +import { useAppProvider } from "../../../context/AppProvider"; +import "./WSCButton.scss"; +import { LoadingOutlined } from "@ant-design/icons"; +import BigNumber from "bignumber.js"; +import { ethers } from "ethers"; +import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; +import useInterval from "../../../utils/hooks/useInterval"; + +const { Step } = Steps; +const { Option } = Select; + +const formatTokenAmount = (amount, decimals) => { + if (decimals) { + const divisor = new BigNumber(10).pow(decimals); + return new BigNumber(amount).dividedBy(divisor).toString(); + } + return amount; +}; + +const statusMessages = { + init: "Staring wrapping your token...", + pending: "Wrapping your tokens...", + [TxPendingStatus.WaitingL1Confirmation]: "Waiting for L1 confirmation...", + [TxPendingStatus.WaitingBridgeConfirmation]: "Waiting for bridge confirmation...", + [TxPendingStatus.WaitingL2Confirmation]: "Waiting for L2 confirmation...", + [TxPendingStatus.Confirmed]: "Your asset has been successfully moved! Go to Next Step!", + error: "Ups something went wrong." +}; +const Step1Content = ({ + wscProvider, + amount: defaultAmountEth, + token: defaultTokenUnit = "lovelace" +}) => { + const [amount, setAmount] = React.useState(null); + const [originTokens, setOriginTokens] = React.useState([]); + const [selectedToken, setSelectedToken] = React.useState(null); + + const [txHash, setTxHash] = React.useState(null); + + const [txStatus, setTxStatus] = React.useState("idle"); + + useInterval( + async () => { + if (!wscProvider || txHash == null) return; + const response = await wscProvider.getTxStatus(txHash); + setTxStatus(response); + if (response === TxPendingStatus.Confirmed) { + setTxHash(null); + } + }, + txHash != null ? 4000 : null + ); + + const wrapToken = async () => { + console.log("wrapping it", selectedToken, amount); + setTxStatus("init"); + try { + const txHash = await wscProvider?.wrap( + undefined, + selectedToken.unit, + new BigNumber(amount ?? "0") + ); + setTxHash(txHash); + setTxStatus("pending"); + } catch (err) { + console.error(err); + setTxStatus("error"); + } + }; + + const handleTokenChange = (tokenUnit) => { + const token = originTokens.find((t) => t.unit === tokenUnit); + setSelectedToken(token); + }; + const onMaxToken = () => { + setAmount(selectedToken.quantity); + }; + + useEffect(() => { + const loadOriginTokens = async () => { + const originTokens = await wscProvider.origin_getTokenBalances(); + const token = originTokens.find((t) => t.unit === defaultTokenUnit); + console.log(defaultAmountEth, "defaultAmountEth", token); + const defaultToken = { + ...token, + quantity: defaultAmountEth ?? token.quantity + }; + setSelectedToken(defaultToken); + setAmount(defaultToken.quantity); + const formattedTokens = originTokens.map((token) => ({ + ...token, + quantity: formatTokenAmount(token.quantity, token.decimals) + })); + console.log("originTokens", originTokens); + setOriginTokens(formattedTokens ?? []); + }; + loadOriginTokens(); + }, [defaultAmountEth, defaultTokenUnit, wscProvider]); + + if (!selectedToken) return
Loading...
; + + const isAmountValid = new BigNumber(amount).lte(selectedToken.quantity); + console.log(selectedToken, "selectedToken"); + return ( +
+

Wrapping

+
+
+ setAmount(e.target.value)} /> + +
+ +
+

+ You'll be wrapping {amount} {selectedToken.assetName} +

+
+ {!selectedToken?.bridgeAllowed && "bridge doesnt allow this token"} + {!isAmountValid && "Amount exceeds your current balance"} +
+ + {txStatus} +
+ {txStatus !== TxPendingStatus.Confirmed && txStatus !== "idle" && ( + } /> + )} + {txStatus !== "idle" &&

{statusMessages[txStatus]}

} +
+
+ ); +}; +const Step2Content = ({ wscProvider }) => { + return ( +
+

Token Allowance

+
+

+ Here's a description of what's going on in this step. Lorem ipsum dolor sit + amet, consectetur adipiscing elit. Nullam +

+
+
+ ); +}; +const Step3Content = ({ wscProvider }) => { + const unwrapToken = async (destination, assetId, amount) => { + return wscProvider?.unwrap(destination, assetId, amount); + }; + + return ( +
+

Action Execution

+
+

+ Here's a description of what's going on in this step. Lorem ipsum dolor sit + amet, consectetur adipiscing elit. Nullam +

+
+
+ ); +}; +const Step4Content = ({ wscProvider }) => { + return ( +
+

Unwrapping

+
+

+ Here's a description of what's going on in this step. Lorem ipsum dolor sit + amet, consectetur adipiscing elit. Nullam +

+
+
+ ); +}; + +const WSCButton = ({ + onAction, + type, + className, + disabled, + children, + currentAmountWei +}) => { + const { activeConnector } = useAppProvider(); + + const [isModalOpen, setIsModalOpen] = React.useState(false); + const [currentStep, setCurrentStep] = React.useState(0); + + const [wscProvider, setWscProvider] = React.useState(null); + + const showModal = () => { + console.log("test!"); + setIsModalOpen(true); + }; + + const handleNextStep = () => { + const nextStepIdx = currentStep + 1; + setCurrentStep(nextStepIdx); + }; + const handlePrevStep = () => { + const prevStepIdx = currentStep - 1; + setCurrentStep(prevStepIdx); + }; + + const handleCancel = () => { + setIsModalOpen(false); + }; + + useEffect(() => { + const loadWscProvider = async () => { + try { + const provider = await activeConnector.getProvider(); + if (!provider) return; + setWscProvider(provider); + } catch (e) { + console.log(e); + } + }; + loadWscProvider(); + }, [activeConnector]); + + if (!activeConnector?.id?.includes("wsc")) { + return <>; + } + console.log(currentAmountWei, "currentAmountWei"); + + const steps = [ + { title: "Cardano - Wrapping" }, + { title: "Token Allowance" }, + { title: "Action Execution" }, + { title: "Milkomeda - Unwrapping" } + ]; + + return ( + <> + + + + Prev + , + + ]} + > + + {steps.map((item, idx) => ( + + ))} + +
+ {currentStep === 0 && ( + + )} + {currentStep === 1 && } + {currentStep === 2 && } + {currentStep === 3 && } +
+
+ + ); +}; + +export default WSCButton; diff --git a/src/components/wsc-ui/WSCButton/WSCButton.scss b/src/components/wsc-ui/WSCButton/WSCButton.scss new file mode 100644 index 00000000..62960795 --- /dev/null +++ b/src/components/wsc-ui/WSCButton/WSCButton.scss @@ -0,0 +1,19 @@ +.custom { + .ant-steps-item-container { + display: flex; + flex-direction: column; + white-space: pre-wrap; + align-items: center; + text-align: center; + gap: 10px; + } + .ant-steps-item-title{ + font-size: 0.875rem; + line-height: 1.4; + } + .steps-content { + padding: 40px 10px; + } + +} + diff --git a/src/routes/reservecoin.jsx b/src/routes/reservecoin.jsx index e5acd5e9..c17efefa 100644 --- a/src/routes/reservecoin.jsx +++ b/src/routes/reservecoin.jsx @@ -259,6 +259,10 @@ export default function ReserveCoin() { ? buyRc.bind(null, tradeData.totalBCUnscaled) : sellRc.bind(null, tradeData.amountUnscaled); + const currentAmountWei = isBuyActive + ? tradeData?.totalBCUnscaled + : tradeData?.amountUnscaled; + const onSubmit = (e) => { if (termsAccepted) { e.preventDefault(); @@ -393,6 +397,7 @@ export default function ReserveCoin() { onClick={onSubmit} buyOrSell={buyOrSell} currencyName={`${process.env.REACT_APP_RC_SYMBOL}`} + currentAmountWei={currentAmountWei} /> ) : ( diff --git a/src/routes/stablecoin.jsx b/src/routes/stablecoin.jsx index d5764965..093cdd9b 100644 --- a/src/routes/stablecoin.jsx +++ b/src/routes/stablecoin.jsx @@ -229,6 +229,10 @@ export default function Stablecoin() { }); }; + const currentAmountWei = isBuyActive + ? tradeData.totalBCUnscaled + : tradeData.amountUnscaled; + const tradeFxn = isBuyActive ? buySc.bind(null, tradeData.totalBCUnscaled) : sellSc.bind(null, tradeData.amountUnscaled); @@ -257,8 +261,8 @@ export default function Stablecoin() {

The StableCoin of this Djed deployment is called{" "} - {process.env.REACT_APP_SC_NAME}. It is pegged to the - USD, similarly to various{" "} + {process.env.REACT_APP_SC_NAME}. It is pegged to the USD, + similarly to various{" "} ) : ( From 2db9e71c79938084cf8beb1143fd13e5d6d6a9ba Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 20 Jun 2023 15:37:12 -0500 Subject: [PATCH 10/85] wip --- .../FlintWSCContent.jsx/FlintWSCContent.jsx | 2 +- src/components/wsc-ui/WSCButton/WSCButton.jsx | 71 ++++++++++++++++--- src/routes/reservecoin.jsx | 2 +- 3 files changed, 64 insertions(+), 11 deletions(-) diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index d670e54e..6a4ad669 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -660,7 +660,7 @@ const WSCAssets = ({ {shortAddress}

- {allowedTokensMap[token.contractAddress] ? ( + {allowedTokensMap?.[token.contractAddress] ? (
); }; -const Step2Content = ({ wscProvider }) => { + +const Step2Content = ({ wscProvider, selectedToken }) => { + const { data: signer } = useSigner(); + const onTokenAllowance = async () => { + if (selectedToken.unit === "lovelace") return; + + // console.log(selectedToken, "erc20Contract", wscProvider); + // const erc20Contract = new ethers.Contract( + // `0x${selectedToken.unit}`, + // erc20ABI, + // signer + // ); + // const tx = await erc20Contract.approve(wscProvider?.bridgeAddress, "10000000"); + }; return (

Token Allowance

@@ -154,14 +170,12 @@ const Step2Content = ({ wscProvider }) => { amet, consectetur adipiscing elit. Nullam

+
); }; -const Step3Content = ({ wscProvider }) => { - const unwrapToken = async (destination, assetId, amount) => { - return wscProvider?.unwrap(destination, assetId, amount); - }; +const Step3Content = ({ wscProvider, onAction }) => { return (

Action Execution

@@ -171,10 +185,41 @@ const Step3Content = ({ wscProvider }) => { amet, consectetur adipiscing elit. Nullam

+
); }; const Step4Content = ({ wscProvider }) => { + const [txHash, setTxHash] = React.useState(null); + const [destinationBalance, setDestinationBalance] = React.useState(null); + const normalizeAda = (amount) => { + const maxDecimalPlaces = 6; + const decimalIndex = amount.indexOf("."); + const truncatedDestinationBalance = + decimalIndex === -1 + ? destinationBalance + : destinationBalance.slice(0, decimalIndex + maxDecimalPlaces + 1); + + return truncatedDestinationBalance; + }; + const unwrapToken = async (destination, assetId, amount) => { + const normalizedAda = normalizeAda(destinationBalance); + console.log(normalizedAda, "normalizedAda"); + // const lovelace = new BigNumber(normalizedAda).multipliedBy(new BigNumber(10).pow(6)); + // // only ADA + // const txHash = await wscProvider?.unwrap(undefined, undefined, lovelace); + // setTxHash(txHash); + // console.log(txHash, "txHash"); + }; + + useEffect(() => { + if (!wscProvider) return; + const loadDestinationBalance = async () => { + const destinationBalance = await wscProvider.eth_getBalance(); + setDestinationBalance(destinationBalance); + }; + loadDestinationBalance(); + }, []); return (

Unwrapping

@@ -184,6 +229,7 @@ const Step4Content = ({ wscProvider }) => { amet, consectetur adipiscing elit. Nullam

+
); }; @@ -202,6 +248,7 @@ const WSCButton = ({ const [currentStep, setCurrentStep] = React.useState(0); const [wscProvider, setWscProvider] = React.useState(null); + const [selectedToken, setSelectedToken] = React.useState(null); const showModal = () => { console.log("test!"); @@ -275,6 +322,8 @@ const WSCButton = ({
{currentStep === 0 && ( )} - {currentStep === 1 && } - {currentStep === 2 && } + {currentStep === 1 && ( + + )} + {currentStep === 2 && ( + + )} {currentStep === 3 && }
diff --git a/src/routes/reservecoin.jsx b/src/routes/reservecoin.jsx index c17efefa..e33268a1 100644 --- a/src/routes/reservecoin.jsx +++ b/src/routes/reservecoin.jsx @@ -266,7 +266,7 @@ export default function ReserveCoin() { const onSubmit = (e) => { if (termsAccepted) { e.preventDefault(); - tradeFxn(); + tradeFxn(); // TODO: } }; From bb459ee4b49265014a735a2a569699db63bab6da Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 20 Jun 2023 16:00:54 -0500 Subject: [PATCH 11/85] wip --- .../molecules/BuySellButton/BuySellButton.jsx | 7 +- src/components/wsc-ui/WSCButton/WSCButton.jsx | 98 ++++++++++++------- src/routes/reservecoin.jsx | 2 + src/routes/stablecoin.jsx | 1 + 4 files changed, 72 insertions(+), 36 deletions(-) diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index a6c3778d..050ecca8 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -13,7 +13,9 @@ const BuySellButton = ({ buyOrSell, currencyName, disabled, - currentAmountWei + currentAmountWei, + onWSCAction, + direction }) => { return ( <> @@ -30,8 +32,9 @@ const BuySellButton = ({ type="button" disabled={disabled} className="wsc-button" - onAction={onClick} + onWSCAction={onWSCAction} currentAmountWei={currentAmountWei} + direction={direction} > {capitalizeString(buyOrSell)} {currencyName} diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx index 97fdafa3..4fcbf5b3 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -30,7 +30,7 @@ const statusMessages = { [TxPendingStatus.Confirmed]: "Your asset has been successfully moved! Go to Next Step!", error: "Ups something went wrong." }; -const Step1Content = ({ +const WrapContent = ({ wscProvider, amount: defaultAmountEth, token: defaultTokenUnit = "lovelace", @@ -148,7 +148,7 @@ const Step1Content = ({ ); }; -const Step2Content = ({ wscProvider, selectedToken }) => { +const ActionExecutionContent = ({ wscProvider, selectedToken }) => { const { data: signer } = useSigner(); const onTokenAllowance = async () => { if (selectedToken.unit === "lovelace") return; @@ -175,7 +175,8 @@ const Step2Content = ({ wscProvider, selectedToken }) => { ); }; -const Step3Content = ({ wscProvider, onAction }) => { +const TokenAllowanceContent = ({ wscProvider, onWSCAction }) => { + console.log(onWSCAction, "ac"); return (

Action Execution

@@ -185,11 +186,11 @@ const Step3Content = ({ wscProvider, onAction }) => { amet, consectetur adipiscing elit. Nullam

- +
); }; -const Step4Content = ({ wscProvider }) => { +const UnwrapContent = ({ wscProvider }) => { const [txHash, setTxHash] = React.useState(null); const [destinationBalance, setDestinationBalance] = React.useState(null); const normalizeAda = (amount) => { @@ -234,13 +235,18 @@ const Step4Content = ({ wscProvider }) => { ); }; +const directions = { + WRAP: "wrap", + UNWRAP: "unwrap" +}; const WSCButton = ({ - onAction, + onWSCAction, type, className, disabled, children, - currentAmountWei + currentAmountWei, + direction }) => { const { activeConnector } = useAppProvider(); @@ -286,12 +292,56 @@ const WSCButton = ({ } console.log(currentAmountWei, "currentAmountWei"); - const steps = [ - { title: "Cardano - Wrapping" }, - { title: "Token Allowance" }, - { title: "Action Execution" }, - { title: "Milkomeda - Unwrapping" } - ]; + const steps = + direction === directions.WRAP + ? [ + { + title: "Cardano - Wrapping", + content: ( + + ) + }, + { + title: "Action Execution", + content: ( + + ) + }, + { + title: "Token Allowance", + content: ( + + ) + }, + { + title: "Milkomeda - Unwrapping", + content: + } + ] + : // TODO: unwrap first + [ + { title: "Milkomeda - Unwrapping" }, + { title: "Token Allowance" }, + { title: "Action Execution" }, + { title: "Cardano - wrap" } + ]; + + const currentContent = steps[currentStep].content; return ( <> @@ -319,27 +369,7 @@ const WSCButton = ({ ))} -
- {currentStep === 0 && ( - - )} - {currentStep === 1 && ( - - )} - {currentStep === 2 && ( - - )} - {currentStep === 3 && } -
+
{currentContent}
); diff --git a/src/routes/reservecoin.jsx b/src/routes/reservecoin.jsx index e33268a1..1a59334c 100644 --- a/src/routes/reservecoin.jsx +++ b/src/routes/reservecoin.jsx @@ -398,6 +398,8 @@ export default function ReserveCoin() { buyOrSell={buyOrSell} currencyName={`${process.env.REACT_APP_RC_SYMBOL}`} currentAmountWei={currentAmountWei} + onWSCAction={tradeFxn} + direction={isBuyActive ? "wrap" : "unwrap"} /> ) : ( diff --git a/src/routes/stablecoin.jsx b/src/routes/stablecoin.jsx index 093cdd9b..20f0cb2c 100644 --- a/src/routes/stablecoin.jsx +++ b/src/routes/stablecoin.jsx @@ -379,6 +379,7 @@ export default function Stablecoin() { Date: Tue, 20 Jun 2023 16:20:17 -0500 Subject: [PATCH 12/85] fix: order --- src/components/wsc-ui/WSCButton/WSCButton.jsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx index 4fcbf5b3..007aef71 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -148,7 +148,7 @@ const WrapContent = ({ ); }; -const ActionExecutionContent = ({ wscProvider, selectedToken }) => { +const TokenAllowanceContent = ({ wscProvider, selectedToken }) => { const { data: signer } = useSigner(); const onTokenAllowance = async () => { if (selectedToken.unit === "lovelace") return; @@ -175,7 +175,7 @@ const ActionExecutionContent = ({ wscProvider, selectedToken }) => { ); }; -const TokenAllowanceContent = ({ wscProvider, onWSCAction }) => { +const ActionExecutionContent = ({ wscProvider, onWSCAction }) => { console.log(onWSCAction, "ac"); return (
@@ -310,12 +310,13 @@ const WSCButton = ({ /> ) }, + { title: "Action Execution", content: ( ) }, @@ -324,7 +325,7 @@ const WSCButton = ({ content: ( ) }, From 8a491708ba04c9b6f5d9ba43d44ce4a8745a89eb Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 20 Jun 2023 16:47:18 -0500 Subject: [PATCH 13/85] refactor: wsc provider --- src/App.js | 37 ++++---- src/components/wsc-ui/WSCButton/WSCButton.jsx | 86 +++++++------------ src/components/wsc-ui/WSCProvider.jsx | 81 +++++++++++++++++ 3 files changed, 131 insertions(+), 73 deletions(-) create mode 100644 src/components/wsc-ui/WSCProvider.jsx diff --git a/src/App.js b/src/App.js index 4478f940..808fb87b 100644 --- a/src/App.js +++ b/src/App.js @@ -9,6 +9,7 @@ import { AppProvider } from "./context/AppProvider"; import { client } from "./utils/web3/wagmi"; import { WagmiConfig } from "wagmi"; import { useEffect } from "react"; +import { WSCProvider } from "./components/wsc-ui/WSCProvider"; export default function App() { useEffect(() => { @@ -19,23 +20,25 @@ export default function App() { - - }> - } /> - } /> - } /> - } /> - } /> - -

There's nothing here!

- - } - /> -
-
+ + + }> + } /> + } /> + } /> + } /> + } /> + +

There's nothing here!

+ + } + /> +
+
+
diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx index 007aef71..5a2668f6 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { Modal, Steps, Icon, Spin, Select, message } from "antd"; -import { useAppProvider } from "../../../context/AppProvider"; + import "./WSCButton.scss"; import { LoadingOutlined } from "@ant-design/icons"; import BigNumber from "bignumber.js"; @@ -9,6 +9,7 @@ import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; import useInterval from "../../../utils/hooks/useInterval"; import { erc20ABI } from "@wagmi/core"; import { useSigner } from "wagmi"; +import { useWSCProvider } from "../WSCProvider"; const { Step } = Steps; const { Option } = Select; @@ -31,14 +32,14 @@ const statusMessages = { error: "Ups something went wrong." }; const WrapContent = ({ - wscProvider, amount: defaultAmountEth, token: defaultTokenUnit = "lovelace", selectedToken, setSelectedToken }) => { + const { wscProvider, originTokens } = useWSCProvider(); const [amount, setAmount] = React.useState(null); - const [originTokens, setOriginTokens] = React.useState([]); + const [formattedOriginTokens, setFormattedOriginTokens] = React.useState([]); const [txHash, setTxHash] = React.useState(null); @@ -57,7 +58,6 @@ const WrapContent = ({ ); const wrapToken = async () => { - console.log("wrapping it", selectedToken, amount); setTxStatus("init"); try { const txHash = await wscProvider?.wrap( @@ -83,9 +83,7 @@ const WrapContent = ({ useEffect(() => { const loadOriginTokens = async () => { - const originTokens = await wscProvider.origin_getTokenBalances(); const token = originTokens.find((t) => t.unit === defaultTokenUnit); - console.log(defaultAmountEth, "defaultAmountEth", token); const defaultToken = { ...token, quantity: defaultAmountEth ?? token.quantity @@ -96,16 +94,15 @@ const WrapContent = ({ ...token, quantity: formatTokenAmount(token.quantity, token.decimals) })); - console.log("originTokens", originTokens); - setOriginTokens(formattedTokens ?? []); + setFormattedOriginTokens(formattedTokens ?? []); }; loadOriginTokens(); - }, [defaultAmountEth, defaultTokenUnit, wscProvider]); + }, [defaultAmountEth, defaultTokenUnit, originTokens, setSelectedToken]); if (!selectedToken) return
Loading...
; const isAmountValid = new BigNumber(amount).lte(selectedToken.quantity); - console.log(selectedToken, "selectedToken"); + return (

Wrapping

@@ -119,13 +116,18 @@ const WrapContent = ({ style={{ width: 120 }} onChange={handleTokenChange} > - {originTokens.map((token) => ( - + {formattedOriginTokens.map((token) => ( + ))}

- You'll be wrapping {amount} {selectedToken.assetName} + You'll be wrapping{" "} + + {amount} {selectedToken.assetName} +

{!selectedToken?.bridgeAllowed && "bridge doesnt allow this token"} @@ -139,17 +141,21 @@ const WrapContent = ({ {txStatus}
- {txStatus !== TxPendingStatus.Confirmed && txStatus !== "idle" && ( - } /> - )} + {txStatus !== TxPendingStatus.Confirmed && + txStatus !== "idle" && + txStatus !== "error" && ( + } /> + )} {txStatus !== "idle" &&

{statusMessages[txStatus]}

}
); }; -const TokenAllowanceContent = ({ wscProvider, selectedToken }) => { +const TokenAllowanceContent = ({ selectedToken }) => { const { data: signer } = useSigner(); + const { wscProvider } = useWSCProvider(); + const onTokenAllowance = async () => { if (selectedToken.unit === "lovelace") return; @@ -176,7 +182,6 @@ const TokenAllowanceContent = ({ wscProvider, selectedToken }) => { }; const ActionExecutionContent = ({ wscProvider, onWSCAction }) => { - console.log(onWSCAction, "ac"); return (

Action Execution

@@ -190,8 +195,10 @@ const ActionExecutionContent = ({ wscProvider, onWSCAction }) => {
); }; -const UnwrapContent = ({ wscProvider }) => { +const UnwrapContent = () => { const [txHash, setTxHash] = React.useState(null); + const { wscProvider } = useWSCProvider(); + const [destinationBalance, setDestinationBalance] = React.useState(null); const normalizeAda = (amount) => { const maxDecimalPlaces = 6; @@ -205,7 +212,7 @@ const UnwrapContent = ({ wscProvider }) => { }; const unwrapToken = async (destination, assetId, amount) => { const normalizedAda = normalizeAda(destinationBalance); - console.log(normalizedAda, "normalizedAda"); + // const lovelace = new BigNumber(normalizedAda).multipliedBy(new BigNumber(10).pow(6)); // // only ADA // const txHash = await wscProvider?.unwrap(undefined, undefined, lovelace); @@ -248,16 +255,12 @@ const WSCButton = ({ currentAmountWei, direction }) => { - const { activeConnector } = useAppProvider(); - const [isModalOpen, setIsModalOpen] = React.useState(false); const [currentStep, setCurrentStep] = React.useState(0); - const [wscProvider, setWscProvider] = React.useState(null); const [selectedToken, setSelectedToken] = React.useState(null); const showModal = () => { - console.log("test!"); setIsModalOpen(true); }; @@ -274,24 +277,6 @@ const WSCButton = ({ setIsModalOpen(false); }; - useEffect(() => { - const loadWscProvider = async () => { - try { - const provider = await activeConnector.getProvider(); - if (!provider) return; - setWscProvider(provider); - } catch (e) { - console.log(e); - } - }; - loadWscProvider(); - }, [activeConnector]); - - if (!activeConnector?.id?.includes("wsc")) { - return <>; - } - console.log(currentAmountWei, "currentAmountWei"); - const steps = direction === directions.WRAP ? [ @@ -301,7 +286,6 @@ const WSCButton = ({ - ) + content: }, { title: "Token Allowance", - content: ( - - ) + content: }, { title: "Milkomeda - Unwrapping", - content: + content: } ] : // TODO: unwrap first diff --git a/src/components/wsc-ui/WSCProvider.jsx b/src/components/wsc-ui/WSCProvider.jsx new file mode 100644 index 00000000..3281c11d --- /dev/null +++ b/src/components/wsc-ui/WSCProvider.jsx @@ -0,0 +1,81 @@ +// create a react context +import React, { createContext, useContext, useEffect, useState } from "react"; +import { useAppProvider } from "../../context/AppProvider"; + +const WSCContext = createContext({}); + +export const WSCProvider = ({ children }) => { + const { activeConnector } = useAppProvider(); + const [wscProvider, setWscProvider] = React.useState(null); + + const [originTokens, setOriginTokens] = useState([]); + + const [originAddress, setOriginAddress] = useState(null); + const [pendingTxs, setPendingTxs] = useState([]); + const [address, setAddress] = useState(null); + const [destinationBalance, setDestinationBalance] = useState(null); + const [originBalance, setOriginBalance] = useState(null); + const [tokens, setTokens] = useState([]); + const [transactions, setTransactions] = useState([]); + const [algorandConnected, setAlgorandConnected] = useState(false); + const [cardanoConnected, setCardanoConnected] = useState(false); + const [network, setNetwork] = useState(null); + + useEffect(() => { + if (!activeConnector?.id?.includes("wsc")) return; + + const loadWscProvider = async () => { + try { + const provider = await activeConnector.getProvider(); + if (!provider) return; + const originTokens = await provider.origin_getTokenBalances(); + setWscProvider(provider); + setOriginTokens(originTokens); + } catch (e) { + console.log(e); + } + }; + loadWscProvider(); + }, [activeConnector, wscProvider]); + + return ( + + {children} + + ); +}; + +export const useWSCProvider = () => { + const context = useContext(WSCContext); + if (!context) { + throw new Error("useWSCProvider must be used within a WSCProvider"); + } + return context; +}; From bd003a7e9502f08251895744a278dd8e06dad2d0 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 20 Jun 2023 21:03:33 -0500 Subject: [PATCH 14/85] feat: add step 2, 3, 4 logic --- src/components/wsc-ui/WSCButton/WSCButton.jsx | 176 ++++++++++++------ src/components/wsc-ui/WSCProvider.jsx | 9 +- src/context/AppProvider.jsx | 4 +- 3 files changed, 131 insertions(+), 58 deletions(-) diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx index 5a2668f6..a8ce6f4c 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -22,7 +22,7 @@ const formatTokenAmount = (amount, decimals) => { return amount; }; -const statusMessages = { +const statusWrapFirstMessages = { init: "Staring wrapping your token...", pending: "Wrapping your tokens...", [TxPendingStatus.WaitingL1Confirmation]: "Waiting for L1 confirmation...", @@ -31,14 +31,24 @@ const statusMessages = { [TxPendingStatus.Confirmed]: "Your asset has been successfully moved! Go to Next Step!", error: "Ups something went wrong." }; +const statusUnwrapFirstMessages = { + init: "Staring unwrapping your token...", + pending: "Unwrapping your tokens...", + [TxPendingStatus.WaitingL1Confirmation]: "Waiting for L1 confirmation...", + [TxPendingStatus.WaitingBridgeConfirmation]: "Waiting for bridge confirmation...", + [TxPendingStatus.WaitingL2Confirmation]: "Waiting for L2 confirmation...", + [TxPendingStatus.Confirmed]: "Your asset has been successfully moved! Go to Next Step!", + error: "Ups something went wrong." +}; const WrapContent = ({ - amount: defaultAmountEth, + defaultAmountEth, token: defaultTokenUnit = "lovelace", selectedToken, - setSelectedToken + setSelectedToken, + amount, + setAmount }) => { const { wscProvider, originTokens } = useWSCProvider(); - const [amount, setAmount] = React.useState(null); const [formattedOriginTokens, setFormattedOriginTokens] = React.useState([]); const [txHash, setTxHash] = React.useState(null); @@ -146,27 +156,52 @@ const WrapContent = ({ txStatus !== "error" && ( } /> )} - {txStatus !== "idle" &&

{statusMessages[txStatus]}

} + {txStatus !== "idle" &&

{statusWrapFirstMessages[txStatus]}

}
); }; -const TokenAllowanceContent = ({ selectedToken }) => { +const TokenAllowanceContent = ({ contractAddress }) => { const { data: signer } = useSigner(); - const { wscProvider } = useWSCProvider(); + const { wscProvider, tokens } = useWSCProvider(); + const [approvalStatus, setApprovalStatus] = React.useState("idle"); const onTokenAllowance = async () => { - if (selectedToken.unit === "lovelace") return; - - // console.log(selectedToken, "erc20Contract", wscProvider); - // const erc20Contract = new ethers.Contract( - // `0x${selectedToken.unit}`, - // erc20ABI, - // signer - // ); - // const tx = await erc20Contract.approve(wscProvider?.bridgeAddress, "10000000"); + const selectedToken = tokens.find((t) => t.contractAddress === contractAddress); + if (!selectedToken) return; + + const convertAmountBN = ethers.utils.parseUnits( + selectedToken.balance, + selectedToken?.decimals + ); + + try { + setApprovalStatus("pending"); + const erc20Contract = new ethers.Contract( + selectedToken.contractAddress, + erc20ABI, + signer + ); + const bridgeAddress = "0x319f10d19e21188ecF58b9a146Ab0b2bfC894648"; + const approvalTx = await erc20Contract.functions.approve( + bridgeAddress, + convertAmountBN, + { gasLimit: 500000 } + ); + const approvalReceipt = await approvalTx.wait(); + console.log(approvalReceipt, "approvalReceipt"); + setApprovalStatus("success"); + } catch (err) { + setApprovalStatus("error"); + console.error(err); + } }; + + const isLoading = approvalStatus === "pending"; + const isSuccess = approvalStatus === "success"; + const isError = approvalStatus === "error"; + return (

Token Allowance

@@ -176,12 +211,22 @@ const TokenAllowanceContent = ({ selectedToken }) => { amet, consectetur adipiscing elit. Nullam

+
+ {isLoading && ( + } /> + )} + {isError &&

Try again, something went wrong

} + {isSuccess && ( +

You've successfully approved the bridge to spend your tokens. Go Next!

+ )} +
); }; -const ActionExecutionContent = ({ wscProvider, onWSCAction }) => { +const ActionExecutionContent = ({ wscProvider, onWSCAction, amount }) => { + // TODO: need to find a way to know if everything went well return (

Action Execution

@@ -195,39 +240,45 @@ const ActionExecutionContent = ({ wscProvider, onWSCAction }) => {
); }; -const UnwrapContent = () => { +const UnwrapContent = ({ + contractAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128" +}) => { + const { wscProvider, tokens } = useWSCProvider(); const [txHash, setTxHash] = React.useState(null); - const { wscProvider } = useWSCProvider(); - - const [destinationBalance, setDestinationBalance] = React.useState(null); - const normalizeAda = (amount) => { - const maxDecimalPlaces = 6; - const decimalIndex = amount.indexOf("."); - const truncatedDestinationBalance = - decimalIndex === -1 - ? destinationBalance - : destinationBalance.slice(0, decimalIndex + maxDecimalPlaces + 1); - - return truncatedDestinationBalance; - }; - const unwrapToken = async (destination, assetId, amount) => { - const normalizedAda = normalizeAda(destinationBalance); - - // const lovelace = new BigNumber(normalizedAda).multipliedBy(new BigNumber(10).pow(6)); - // // only ADA - // const txHash = await wscProvider?.unwrap(undefined, undefined, lovelace); - // setTxHash(txHash); - // console.log(txHash, "txHash"); + const [txStatus, setTxStatus] = React.useState("idle"); + + useInterval( + async () => { + if (!wscProvider || txHash == null) return; + const response = await wscProvider.getTxStatus(txHash); + setTxStatus(response); + if (response === TxPendingStatus.Confirmed) { + setTxHash(null); + } + }, + txHash != null ? 4000 : null + ); + + const unwrapToken = async () => { + const selectedToken = tokens.find((t) => t.contractAddress === contractAddress); + if (!selectedToken) return; + + setTxStatus("init"); + + try { + const txHash = await wscProvider.unwrap( + undefined, + selectedToken.contractAddress, + new BigNumber(selectedToken.balance) + ); + setTxHash(txHash); + setTxStatus("pending"); + } catch (err) { + console.error(err); + setTxStatus("error"); + } }; - useEffect(() => { - if (!wscProvider) return; - const loadDestinationBalance = async () => { - const destinationBalance = await wscProvider.eth_getBalance(); - setDestinationBalance(destinationBalance); - }; - loadDestinationBalance(); - }, []); return (

Unwrapping

@@ -238,6 +289,15 @@ const UnwrapContent = () => {

+
{txStatus}
+
+ {txStatus !== TxPendingStatus.Confirmed && + txStatus !== "idle" && + txStatus !== "error" && ( + } /> + )} + {txStatus !== "idle" &&

{statusUnwrapFirstMessages[txStatus]}

} +
); }; @@ -253,10 +313,12 @@ const WSCButton = ({ disabled, children, currentAmountWei, - direction + direction, + contractAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128" }) => { const [isModalOpen, setIsModalOpen] = React.useState(false); const [currentStep, setCurrentStep] = React.useState(0); + const [amount, setAmount] = React.useState(null); const [selectedToken, setSelectedToken] = React.useState(null); @@ -286,7 +348,9 @@ const WSCButton = ({ + content: ( + + ) }, { title: "Milkomeda - Unwrapping", - content: + content: } ] : // TODO: unwrap first @@ -316,8 +386,6 @@ const WSCButton = ({ { title: "Cardano - wrap" } ]; - const currentContent = steps[currentStep].content; - return ( <> + + + + {(isCurrentStep || isCompletedStep) && children} + + + ); +}); + +StepperStep.displayName = "StepperStep"; + +/********** StepperStepLabel **********/ + +const StepperStepLabel = ({ + isCurrentStep, + label, + description, + optional, + optionalLabel +}) => { + const { isLabelVertical } = useStepperContext(); + + const shouldRender = !!label || !!description; + + const renderOptionalLabel = !!optional && !!optionalLabel; + + return shouldRender ? ( +
+ {!!label && ( +

+ {label} + {renderOptionalLabel && ( + ({optionalLabel}) + )} +

+ )} + {!!description &&

{description}

} +
+ ) : null; +}; + +StepperStepLabel.displayName = "StepperStepLabel"; + +/********** StepperStepConnector **********/ + +const StepperStepConnector = React.memo(({ isCompletedStep, children, isLastStep }) => { + const { isVertical } = useStepperContext(); + + if (isVertical) { + return ( +
+ {!isCompletedStep &&
{children}
} +
+ ); + } + + if (isLastStep) { + return null; + } + + return ( +
+ ); +}); + +StepperStepConnector.displayName = "StepperStepConnector"; diff --git a/src/components/wsc-ui/Stepper/use-stepper.jsx b/src/components/wsc-ui/Stepper/use-stepper.jsx new file mode 100644 index 00000000..1f165495 --- /dev/null +++ b/src/components/wsc-ui/Stepper/use-stepper.jsx @@ -0,0 +1,89 @@ +import * as React from "react"; + +export function useStepper({ initialStep, steps }) { + const [activeStep, setActiveStep] = React.useState(initialStep); + + const nextStep = () => { + setActiveStep((prev) => prev + 1); + }; + + const prevStep = () => { + setActiveStep((prev) => prev - 1); + }; + + const resetSteps = () => { + setActiveStep(initialStep); + }; + + const setStep = (step) => { + setActiveStep(step); + }; + + const isDisabledStep = activeStep === 0; + + const isLastStep = activeStep === steps.length - 1; + + const isOptionalStep = steps[activeStep]?.optional; + + return { + nextStep, + prevStep, + resetSteps, + setStep, + activeStep, + isDisabledStep, + isLastStep, + isOptionalStep + }; +} + +/** + * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia + * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent + * */ +function attachMediaListener(query, callback) { + try { + query.addEventListener("change", callback); + return () => query.removeEventListener("change", callback); + } catch (e) { + query.addListener(callback); + return () => query.removeListener(callback); + } +} + +function getInitialValue(query, initialValue) { + if (typeof initialValue === "boolean") { + return initialValue; + } + + if (typeof window !== "undefined" && "matchMedia" in window) { + return window.matchMedia(query).matches; + } + + return false; +} + +export function useMediaQuery( + query, + initialValue, + { getInitialValueInEffect } = { + getInitialValueInEffect: true + } +) { + const [matches, setMatches] = React.useState( + getInitialValueInEffect ? false : getInitialValue(query, initialValue) + ); + const queryRef = React.useRef(); + + React.useEffect(() => { + if ("matchMedia" in window) { + queryRef.current = window.matchMedia(query); + setMatches(queryRef.current.matches); + return attachMediaListener(queryRef.current, (event) => setMatches(event.matches)); + } + + return undefined; + }, [query]); + + return matches; +} From 1e8c50e93a7c3cb57be434ae9e433741ed0c4d37 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 21 Jun 2023 19:51:30 -0500 Subject: [PATCH 16/85] fix: remove custom components, this will be in a separate package --- src/components/wsc-ui/Stepper/stepper.jsx | 327 ------------------ src/components/wsc-ui/Stepper/use-stepper.jsx | 89 ----- 2 files changed, 416 deletions(-) delete mode 100644 src/components/wsc-ui/Stepper/stepper.jsx delete mode 100644 src/components/wsc-ui/Stepper/use-stepper.jsx diff --git a/src/components/wsc-ui/Stepper/stepper.jsx b/src/components/wsc-ui/Stepper/stepper.jsx deleted file mode 100644 index 0e29e386..00000000 --- a/src/components/wsc-ui/Stepper/stepper.jsx +++ /dev/null @@ -1,327 +0,0 @@ -import * as React from "react"; -import { cva } from "class-variance-authority"; -import { Check, Loader2, X } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -import { useMediaQuery } from "./use-stepper"; - -/********** StepperProvider **********/ - -const StepsContext = React.createContext({ - activeStep: 0 -}); - -export const useStepperContext = () => React.useContext(StepsContext); - -export const StepperProvider = ({ value, children }) => { - const isError = value.state === "error"; - const isLoading = value.state === "loading"; - - const isVertical = value.orientation === "vertical"; - const isLabelVertical = - value.orientation !== "vertical" && value.labelOrientation === "vertical"; - - return ( - - {children} - - ); -}; - -/********** Stepper **********/ - -export const Stepper = React.forwardRef( - ( - { - activeStep = 0, - state, - responsive = true, - orientation: orientationProp = "horizontal", - onClickStep, - labelOrientation = "horizontal", - children, - errorIcon, - successIcon, - variant = "default" - }, - ref - ) => { - const childArr = React.Children.toArray(children); - - const stepCount = childArr.length; - - const renderHorizontalContent = () => { - if (activeStep <= childArr.length) { - return React.Children.map(childArr[activeStep], (node) => { - if (!React.isValidElement(node)) return; - return React.Children.map(node.props.children, (childNode) => childNode); - }); - } - return null; - }; - - const isClickable = !!onClickStep; - - const isMobile = useMediaQuery("(max-width: 43em)"); - - const orientation = isMobile && responsive ? "vertical" : orientationProp; - - return ( - -
- {React.Children.map(children, (child, i) => { - const isCompletedStep = - (React.isValidElement(child) && child.props.isCompletedStep) ?? - i < activeStep; - const isLastStep = i === stepCount - 1; - const isCurrentStep = i === activeStep; - - const stepProps = { - index: i, - isCompletedStep, - isCurrentStep, - isLastStep - }; - - if (React.isValidElement(child)) { - return React.cloneElement(child, stepProps); - } - - return null; - })} -
- {orientation === "horizontal" && renderHorizontalContent()} -
- ); - } -); - -Stepper.displayName = "Stepper"; - -/********** StepperStep **********/ - -const stepVariants = cva("flex-row flex relative gap-2", { - variants: { - isLastStep: { - true: "flex-[0_0_auto] justify-end", - false: "flex-[1_0_auto] justify-start" - }, - isVertical: { - true: "flex-col", - false: "items-center" - }, - isClickable: { - true: "cursor-pointer" - } - }, - compoundVariants: [ - { - isVertical: true, - isLastStep: true, - class: "flex-col items-start flex-[1_0_auto] w-full justify-start" - } - ] -}); - -export const StepperStep = React.forwardRef((props, ref) => { - const { - children, - description, - icon: CustomIcon, - index, - isCompletedStep, - isCurrentStep, - isLastStep, - label, - optional, - optionalLabel - } = props; - - const { - isVertical, - isError, - isLoading, - successIcon: CustomSuccessIcon, - errorIcon: CustomErrorIcon, - isLabelVertical, - onClickStep, - isClickable, - variant - } = useStepperContext(); - - const hasVisited = isCurrentStep || isCompletedStep; - - const handleClick = (index) => { - if (isClickable && onClickStep) { - onClickStep(index); - } - }; - - const Icon = React.useMemo(() => CustomIcon ?? null, [CustomIcon]); - - const Success = React.useMemo( - () => CustomSuccessIcon ?? , - [CustomSuccessIcon] - ); - - const Error = React.useMemo(() => CustomErrorIcon ?? , [CustomErrorIcon]); - - const RenderIcon = React.useMemo(() => { - if (isCompletedStep) return Success; - if (isCurrentStep) { - if (isError) return Error; - if (isLoading) return ; - } - if (Icon) return Icon; - return (index || 0) + 1; - }, [isCompletedStep, Success, isCurrentStep, Icon, index, isError, Error, isLoading]); - - return ( -
handleClick(index)} - aria-disabled={!hasVisited} - > -
- - -
- - {(isCurrentStep || isCompletedStep) && children} - -
- ); -}); - -StepperStep.displayName = "StepperStep"; - -/********** StepperStepLabel **********/ - -const StepperStepLabel = ({ - isCurrentStep, - label, - description, - optional, - optionalLabel -}) => { - const { isLabelVertical } = useStepperContext(); - - const shouldRender = !!label || !!description; - - const renderOptionalLabel = !!optional && !!optionalLabel; - - return shouldRender ? ( -
- {!!label && ( -

- {label} - {renderOptionalLabel && ( - ({optionalLabel}) - )} -

- )} - {!!description &&

{description}

} -
- ) : null; -}; - -StepperStepLabel.displayName = "StepperStepLabel"; - -/********** StepperStepConnector **********/ - -const StepperStepConnector = React.memo(({ isCompletedStep, children, isLastStep }) => { - const { isVertical } = useStepperContext(); - - if (isVertical) { - return ( -
- {!isCompletedStep &&
{children}
} -
- ); - } - - if (isLastStep) { - return null; - } - - return ( -
- ); -}); - -StepperStepConnector.displayName = "StepperStepConnector"; diff --git a/src/components/wsc-ui/Stepper/use-stepper.jsx b/src/components/wsc-ui/Stepper/use-stepper.jsx deleted file mode 100644 index 1f165495..00000000 --- a/src/components/wsc-ui/Stepper/use-stepper.jsx +++ /dev/null @@ -1,89 +0,0 @@ -import * as React from "react"; - -export function useStepper({ initialStep, steps }) { - const [activeStep, setActiveStep] = React.useState(initialStep); - - const nextStep = () => { - setActiveStep((prev) => prev + 1); - }; - - const prevStep = () => { - setActiveStep((prev) => prev - 1); - }; - - const resetSteps = () => { - setActiveStep(initialStep); - }; - - const setStep = (step) => { - setActiveStep(step); - }; - - const isDisabledStep = activeStep === 0; - - const isLastStep = activeStep === steps.length - 1; - - const isOptionalStep = steps[activeStep]?.optional; - - return { - nextStep, - prevStep, - resetSteps, - setStep, - activeStep, - isDisabledStep, - isLastStep, - isOptionalStep - }; -} - -/** - * Older versions of Safari (shipped withCatalina and before) do not support addEventListener on matchMedia - * https://stackoverflow.com/questions/56466261/matchmedia-addlistener-marked-as-deprecated-addeventlistener-equivalent - * */ -function attachMediaListener(query, callback) { - try { - query.addEventListener("change", callback); - return () => query.removeEventListener("change", callback); - } catch (e) { - query.addListener(callback); - return () => query.removeListener(callback); - } -} - -function getInitialValue(query, initialValue) { - if (typeof initialValue === "boolean") { - return initialValue; - } - - if (typeof window !== "undefined" && "matchMedia" in window) { - return window.matchMedia(query).matches; - } - - return false; -} - -export function useMediaQuery( - query, - initialValue, - { getInitialValueInEffect } = { - getInitialValueInEffect: true - } -) { - const [matches, setMatches] = React.useState( - getInitialValueInEffect ? false : getInitialValue(query, initialValue) - ); - const queryRef = React.useRef(); - - React.useEffect(() => { - if ("matchMedia" in window) { - queryRef.current = window.matchMedia(query); - setMatches(queryRef.current.matches); - return attachMediaListener(queryRef.current, (event) => setMatches(event.matches)); - } - - return undefined; - }, [query]); - - return matches; -} From eac8940aca4618486eef1e9bdb1f68a57f9295cf Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 21 Jun 2023 21:19:01 -0500 Subject: [PATCH 17/85] improve UX --- src/components/wsc-ui/WSCButton/WSCButton.jsx | 54 +++++++++++++++---- .../wsc-ui/WSCButton/WSCButton.scss | 8 --- 2 files changed, 45 insertions(+), 17 deletions(-) diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx index a8ce6f4c..1e4b0edd 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -46,7 +46,8 @@ const WrapContent = ({ selectedToken, setSelectedToken, amount, - setAmount + setAmount, + goNextStep }) => { const { wscProvider, originTokens } = useWSCProvider(); const [formattedOriginTokens, setFormattedOriginTokens] = React.useState([]); @@ -62,6 +63,9 @@ const WrapContent = ({ setTxStatus(response); if (response === TxPendingStatus.Confirmed) { setTxHash(null); + setTimeout(() => { + goNextStep(); + }, 2000); } }, txHash != null ? 4000 : null @@ -162,7 +166,7 @@ const WrapContent = ({ ); }; -const TokenAllowanceContent = ({ contractAddress }) => { +const TokenAllowanceContent = ({ contractAddress, goNextStep }) => { const { data: signer } = useSigner(); const { wscProvider, tokens } = useWSCProvider(); const [approvalStatus, setApprovalStatus] = React.useState("idle"); @@ -192,6 +196,9 @@ const TokenAllowanceContent = ({ contractAddress }) => { const approvalReceipt = await approvalTx.wait(); console.log(approvalReceipt, "approvalReceipt"); setApprovalStatus("success"); + setTimeout(() => { + goNextStep(); + }, 2000); } catch (err) { setApprovalStatus("error"); console.error(err); @@ -355,6 +362,7 @@ const WSCButton = ({ ? ethers.utils.formatEther(new BigNumber(currentAmountWei).toString()) : "0" } + goNextStep={handleNextStep} /> ) }, @@ -370,6 +378,7 @@ const WSCButton = ({ contractAddress={contractAddress} amount={amount} selectedToken={selectedToken} + goNextStep={handleNextStep} /> ) }, @@ -378,12 +387,39 @@ const WSCButton = ({ content: } ] - : // TODO: unwrap first + : // TODO: verify steps when selling and adjust logic [ - { title: "Milkomeda - Unwrapping" }, - { title: "Token Allowance" }, - { title: "Action Execution" }, - { title: "Cardano - wrap" } + { title: "Milkomeda - Unwrapping", content: }, + { + title: "Token Allowance", + content: ( + + ) + }, + { + title: "Action Execution", + content: + }, + { + title: "Cardano - wrap", + content: ( + + ) + } ]; return ( @@ -407,9 +443,9 @@ const WSCButton = ({ ]} > - + {steps.map((item, idx) => ( - + ))}
{steps[currentStep].content}
diff --git a/src/components/wsc-ui/WSCButton/WSCButton.scss b/src/components/wsc-ui/WSCButton/WSCButton.scss index 62960795..a68539f8 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.scss +++ b/src/components/wsc-ui/WSCButton/WSCButton.scss @@ -1,12 +1,4 @@ .custom { - .ant-steps-item-container { - display: flex; - flex-direction: column; - white-space: pre-wrap; - align-items: center; - text-align: center; - gap: 10px; - } .ant-steps-item-title{ font-size: 0.875rem; line-height: 1.4; From 74d239c363494f5d7ee6973e13aaa99c9941c9cb Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 23 Jun 2023 20:02:27 -0500 Subject: [PATCH 18/85] add selling flow and fix amount --- .../molecules/BuySellButton/BuySellButton.jsx | 2 +- src/components/wsc-ui/WSCButton/WSCButton.jsx | 90 ++++++++++++------- 2 files changed, 58 insertions(+), 34 deletions(-) diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index 050ecca8..a7d068a6 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -30,7 +30,7 @@ const BuySellButton = ({ /> + new BigNumber(valueWei) + .dividedBy(new BigNumber(10).pow(token.decimals)) + .dp(token.decimals); +export const convertTokensToWei = ({ value, token }) => + value.multipliedBy(new BigNumber(10).pow(token.decimals)).dp(0); + const formatTokenAmount = (amount, decimals) => { if (decimals) { const divisor = new BigNumber(10).pow(decimals); @@ -22,6 +29,14 @@ const formatTokenAmount = (amount, decimals) => { return amount; }; +// TODO: this might be need to be passed on the config provider +const cardanoAddressTReserveCoin = + "cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e"; +const cardanoAddressTStableCoin = + "27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e"; + +const reserveCoinAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128"; + const statusWrapFirstMessages = { init: "Staring wrapping your token...", pending: "Wrapping your tokens...", @@ -42,7 +57,7 @@ const statusUnwrapFirstMessages = { }; const WrapContent = ({ defaultAmountEth, - token: defaultTokenUnit = "lovelace", + defaultTokenUnit = "lovelace", selectedToken, setSelectedToken, amount, @@ -88,11 +103,11 @@ const WrapContent = ({ }; const handleTokenChange = (tokenUnit) => { - const token = originTokens.find((t) => t.unit === tokenUnit); + const token = formattedOriginTokens.find((t) => t.unit === tokenUnit); setSelectedToken(token); }; const onMaxToken = () => { - setAmount(selectedToken.quantity); + setAmount(selectedToken.quantity?.toFixed()); }; useEffect(() => { @@ -100,14 +115,17 @@ const WrapContent = ({ const token = originTokens.find((t) => t.unit === defaultTokenUnit); const defaultToken = { ...token, - quantity: defaultAmountEth ?? token.quantity + // quantity: defaultAmountEth ?? token.quantity + quantity: convertWeiToTokens({ valueWei: token.quantity, token }) }; setSelectedToken(defaultToken); - setAmount(defaultToken.quantity); - const formattedTokens = originTokens.map((token) => ({ - ...token, - quantity: formatTokenAmount(token.quantity, token.decimals) - })); + setAmount(defaultToken.quantity.toFixed()); + const formattedTokens = originTokens + .filter((token) => token.bridgeAllowed) + .map((token) => ({ + ...token, + quantity: convertWeiToTokens({ valueWei: token.quantity, token }) + })); setFormattedOriginTokens(formattedTokens ?? []); }; loadOriginTokens(); @@ -248,7 +266,7 @@ const ActionExecutionContent = ({ wscProvider, onWSCAction, amount }) => { ); }; const UnwrapContent = ({ - contractAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128" + contractAddress = reserveCoinAddress // TODO: remove hardcoded value }) => { const { wscProvider, tokens } = useWSCProvider(); const [txHash, setTxHash] = React.useState(null); @@ -321,7 +339,7 @@ const WSCButton = ({ children, currentAmountWei, direction, - contractAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128" + contractAddress = reserveCoinAddress // TODO }) => { const [isModalOpen, setIsModalOpen] = React.useState(false); const [currentStep, setCurrentStep] = React.useState(0); @@ -334,10 +352,12 @@ const WSCButton = ({ }; const handleNextStep = () => { + if (currentStep === 2) return; const nextStepIdx = currentStep + 1; setCurrentStep(nextStepIdx); }; const handlePrevStep = () => { + if (currentStep === 0) return; const prevStepIdx = currentStep - 1; setCurrentStep(prevStepIdx); }; @@ -350,9 +370,10 @@ const WSCButton = ({ direction === directions.WRAP ? [ { - title: "Cardano - Wrapping", + title: "Cardano Wrapping", content: ( ) }, { - title: "Milkomeda - Unwrapping", - content: + title: "Milkomeda Unwrapping", + content: } ] - : // TODO: verify steps when selling and adjust logic - [ - { title: "Milkomeda - Unwrapping", content: }, - { - title: "Token Allowance", - content: ( - - ) - }, - { - title: "Action Execution", - content: - }, + : [ { - title: "Cardano - wrap", + title: "Cardano Wrapping", content: ( + ) + }, + { + title: "Token Allowance", + content: ( + ) + }, + { + title: "Action Execution", + content: + }, + { + title: "Milkomeda Unwrapping", + content: } ]; From 57c3d8d8ee7d4899cc62ac09aa7203e402638618 Mon Sep 17 00:00:00 2001 From: Djordje Stojmenovic <43718866+roxor-dj@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:35:12 +0200 Subject: [PATCH 19/85] readmeUpdated (#84) Updated readme file --------- Co-authored-by: djordje-stojmenovic-lark <108146753+djordje-stojmenovic-lark@users.noreply.github.com> --- README.md | 90 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 5ffa49b6..2a6762f0 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,79 @@ -# Getting Started with Create React App +# Djed-Solidity-WebDashboard -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). +- [Documentation](#documentation) +- [What is Djed?](#what-is-djed) +- [Installation](#installation) +- [Usage](#usage) +- [How to Contribute?](#how-to-contribute) +## Documentation -## Pre-requisites +#### Djed docs +Documentation lives on [**Djed docs**](https://docs.djed.one/alliance/the-djed-alliance). -We handle environment variables in `.env` files with default values in [env/](./env/) folder, i.e. [env/](./env/) contains `*.env` files for specific environments. If the repo is freshly cloned, you can copy one of those files to the root folder as `.env`, `cp ./env/milkomeda-c1-testnet.env .env` is good enough for most cases. + +## What is [Djed](https://milkomeda-c1.djed.one/)? +Djed is a formally verified crypto-backed autonomous stablecoin protocol. + +This repository contains the complete source code for a frontend application designed to facilitate user interaction with deployments of the Djed protocol's Solidity implementation. + +The solidity implementation of Djed can be found in the following repository: [link to the Djed Solidity implementation repository](https://github.com/DjedAlliance/Djed-Solidity). + +By utilizing this frontend application, users can conveniently engage with Djed deployments on Milkomeda-C1 and explore the functionalities provided by the smart contracts. + +## Installation We use [nvm](https://github.com/nvm-sh/nvm) to handle the Node version, if you don't use `nvm`, the Node version can take from the [.nvmrc](./.nvmrc) file. + Run `npm install` to download the project dependencies. +``` +npm install +``` -## Available Scripts +### Usage In the project directory, you can run: -### `npm start` +``` +npm start +``` -Runs the app in the development mode.\ +Runs the app in the development mode. Open [http://localhost:3000](http://localhost:3000) to view it in your browser. -The page will reload when you make changes.\ + +The page will reload when you make changes. You may also see any lint errors in the console. -### `npm test` +``` +npm test +``` -Launches the test runner in the interactive watch mode.\ +Launches the test runner in the interactive watch mode. See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. -### `npm run format` +``` +npm run format +``` Formats the code to comply with the `prettier` style. -### `npm run build` +``` +npm run build +``` -Builds the app for production to the `build` folder.\ +Builds the app for production to the `build` folder. It correctly bundles React in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes.\ +The build is minified and the filenames include the hashes. Your app is ready to be deployed! See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. -### `npm run eject` +``` +npm run eject +``` **Note: this is a one-way operation. Once you `eject`, you can't go back!** @@ -52,32 +83,13 @@ Instead, it will copy all the configuration files and the transitive dependencie You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) +## Contributing -### Deployment +Contributions are always welcome! -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) +For anyone who wants to contribute, please join our [Discord channel](https://discord.gg/vXQ86XGSbQ), where you can learn more about how to contribute to further development. -### `npm run build` fails to minify +--- -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) +Thanks for reading 😊 From 83fc16fef26df998d2363f1276a4e9c751230606 Mon Sep 17 00:00:00 2001 From: Bruno Date: Mon, 3 Jul 2023 11:54:40 +0300 Subject: [PATCH 20/85] Update README.md --- README.md | 68 ++++++++++++++++++++----------------------------------- 1 file changed, 25 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 2a6762f0..d22f07d2 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,76 @@ # Djed-Solidity-WebDashboard -- [Documentation](#documentation) -- [What is Djed?](#what-is-djed) -- [Installation](#installation) -- [Usage](#usage) -- [How to Contribute?](#how-to-contribute) +Djed is a formally verified crypto-backed autonomous stablecoin protocol. To learn more, please check our **[gitbook docs](https://docs.djed.one/alliance/the-djed-alliance)**. -## Documentation +This repository contains the complete source code for a frontend application designed to facilitate user interaction with deployments of a [Solidity implementation](https://github.com/DjedAlliance/Djed-Solidity) of the Djed protocol. -#### Djed docs -Documentation lives on [**Djed docs**](https://docs.djed.one/alliance/the-djed-alliance). +Known deployments of this frontend can be used at: +* [https://milkomeda-c1.djed.one](https://milkomeda-c1.djed.one) +* [https://milkomeda-c1-testnet.djed.one](https://milkomeda-c1-testnet.djed.one) -## What is [Djed](https://milkomeda-c1.djed.one/)? -Djed is a formally verified crypto-backed autonomous stablecoin protocol. +By utilizing this frontend application, users can conveniently engage with Djed deployments and explore the functionalities provided by the smart contracts. -This repository contains the complete source code for a frontend application designed to facilitate user interaction with deployments of the Djed protocol's Solidity implementation. +To run this frontend locally, follow the [Installation](#installation) and [Usage](#usage) instructions below. -The solidity implementation of Djed can be found in the following repository: [link to the Djed Solidity implementation repository](https://github.com/DjedAlliance/Djed-Solidity). - -By utilizing this frontend application, users can conveniently engage with Djed deployments on Milkomeda-C1 and explore the functionalities provided by the smart contracts. +And, please, feel welcome to [contribute](#contributing). ## Installation -We use [nvm](https://github.com/nvm-sh/nvm) to handle the Node version, if you don't use `nvm`, the Node version can take from the [.nvmrc](./.nvmrc) file. - +We use [nvm](https://github.com/nvm-sh/nvm) to handle the Node version, if you don't use `nvm`, the Node version can be taken from the [.nvmrc](./.nvmrc) file. -Run `npm install` to download the project dependencies. +To download the project dependencies, run: ``` npm install ``` -### Usage +## Usage -In the project directory, you can run: +In the project directory, run: ``` npm start ``` -Runs the app in the development mode. +This will run the app in development mode. Open [http://localhost:3000](http://localhost:3000) to view it in your browser. - -The page will reload when you make changes. +The page will automatically reload when you make changes in the code. You may also see any lint errors in the console. + +To launch the test runner in interactive watch mode, run: + ``` npm test ``` -Launches the test runner in the interactive watch mode. -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. +See React's documentation section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +To format the code to comply with the `prettier` style, run: ``` npm run format ``` -Formats the code to comply with the `prettier` style. +To build the app for production to the `build` folder, run: ``` npm run build ``` -Builds the app for production to the `build` folder. -It correctly bundles React in production mode and optimizes the build for the best performance. - +This will correctly bundle React in production mode and optimize the build for the best performance. The build is minified and the filenames include the hashes. -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -``` -npm run eject -``` - -**Note: this is a one-way operation. Once you `eject`, you can't go back!** - -If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. +The app is ready to be deployed! -You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. +See React's documentation section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. ## Contributing Contributions are always welcome! -For anyone who wants to contribute, please join our [Discord channel](https://discord.gg/vXQ86XGSbQ), where you can learn more about how to contribute to further development. +If you would like to contribute, please join our [Discord channel](https://discord.gg/vXQ86XGSbQ) and reach out to us. --- From 4a800ee9683f825b9d87140f2f92c4ece4c30056 Mon Sep 17 00:00:00 2001 From: Mohd Asim Taifullah <83891519+aasimtaif@users.noreply.github.com> Date: Thu, 6 Jul 2023 12:52:38 +0530 Subject: [PATCH 21/85] applied prittier to all files (#85) Co-authored-by: Bruno --- .github/workflows/codepreview.yml | 7 +++---- src/routes/stablecoin.jsx | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codepreview.yml b/.github/workflows/codepreview.yml index faef6aa2..e2b14a35 100644 --- a/.github/workflows/codepreview.yml +++ b/.github/workflows/codepreview.yml @@ -2,9 +2,9 @@ name: Create preview environment on: pull_request: - branches: [ main, milkomeda-c1-testnet ] + branches: [main, milkomeda-c1-testnet] push: - branches: [ main, milkomeda-c1-testnet ] + branches: [main, milkomeda-c1-testnet] concurrency: # The preview script can't handle concurrent deploys @@ -18,7 +18,6 @@ concurrency: jobs: preview: - runs-on: ubuntu-latest steps: @@ -31,7 +30,7 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 - cache: 'npm' + cache: "npm" - name: Install dependencies run: npm ci diff --git a/src/routes/stablecoin.jsx b/src/routes/stablecoin.jsx index d5764965..30aac730 100644 --- a/src/routes/stablecoin.jsx +++ b/src/routes/stablecoin.jsx @@ -257,8 +257,8 @@ export default function Stablecoin() {

The StableCoin of this Djed deployment is called{" "} - {process.env.REACT_APP_SC_NAME}. It is pegged to the - USD, similarly to various{" "} + {process.env.REACT_APP_SC_NAME}. It is pegged to the USD, + similarly to various{" "} Date: Thu, 6 Jul 2023 13:15:37 -0500 Subject: [PATCH 22/85] integrate ui library --- .gitignore | 4 +- craco.config.js | 66 +- package-lock.json | 4319 ++++++++++------- package.json | 10 +- src/App.js | 6 +- src/App.scss | 4 + .../molecules/BuySellButton/BuySellButton.jsx | 39 +- .../FlintWSCContent.jsx/FlintWSCContent.jsx | 130 +- src/components/wsc-ui/WSCButton/WSCButton.jsx | 46 +- src/context/AppProvider.jsx | 13 +- src/routes/reservecoin.jsx | 64 +- src/utils/web3/connectors/cardano-wsc.js | 131 - src/utils/web3/wagmi.js | 46 +- 13 files changed, 2876 insertions(+), 2002 deletions(-) diff --git a/.gitignore b/.gitignore index c80be2b6..a1275538 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,9 @@ .env.development.local .env.test.local .env.production.local - +.idea npm-debug.log* yarn-debug.log* yarn-error.log* +.yalc +.yalc.lock diff --git a/craco.config.js b/craco.config.js index 23ffff4f..ad359394 100644 --- a/craco.config.js +++ b/craco.config.js @@ -1,31 +1,43 @@ -const webpack = require('webpack'); +const webpack = require("webpack"); module.exports = { - webpack: { - configure: (webpackConfig) => { - const wasmExtensionRegExp = /\.wasm$/; - webpackConfig.resolve.extensions.push('.wasm'); - webpackConfig.experiments = { - asyncWebAssembly: true, - topLevelAwait: true, - layers: true, - }; - webpackConfig.resolve.fallback = { - buffer: require.resolve('buffer/'), - stream: require.resolve('stream-browserify'), - } - webpackConfig.module.rules.forEach((rule) => { - (rule.oneOf || []).forEach((oneOf) => { - if (oneOf.type === "asset/resource") { - oneOf.exclude.push(wasmExtensionRegExp); - } - }); - }); - webpackConfig.plugins.push(new webpack.ProvidePlugin({ - Buffer: ['buffer', 'Buffer'], - })); - - return webpackConfig; + webpack: { + configure: (webpackConfig) => { + const wasmExtensionRegExp = /\.wasm$/; + webpackConfig.resolve.extensions.push(".wasm"); + webpackConfig.experiments = { + asyncWebAssembly: true, + topLevelAwait: true, + layers: true + }; + webpackConfig.resolve.alias = { + "react/jsx-runtime": require.resolve("react/jsx-runtime") + }; + webpackConfig.devServer = { + overlay: { + warnings: true, + errors: true } + }; + webpackConfig.resolve.fallback = { + buffer: require.resolve("buffer/"), + stream: require.resolve("stream-browserify") + }; + webpackConfig.module.rules.forEach((rule) => { + (rule.oneOf || []).forEach((oneOf) => { + if (oneOf.type === "asset/resource") { + oneOf.exclude.push(wasmExtensionRegExp); + } + }); + }); + + webpackConfig.plugins.push( + new webpack.ProvidePlugin({ + Buffer: ["buffer", "Buffer"] + }) + ); + + return webpackConfig; } -} \ No newline at end of file + } +}; diff --git a/package-lock.json b/package-lock.json index 20d7a530..179bbb0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,13 +14,15 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc": "^0.1.13", + "milkomeda-wsc": "0.2.1", + "milkomeda-wsc-ui": "file:.yalc/milkomeda-wsc-ui", + "milkomeda-wsc-ui-test-beta": "^0.0.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", "react-scripts": "^5.0.1", "stream-browserify": "^3.0.0", - "wagmi": "^0.12.8", + "wagmi": "0.12.15", "web-vitals": "^2.1.4", "web3": "^1.7.3" }, @@ -34,6 +36,183 @@ "sass": "^1.49.9" } }, + "../wrapped-smartcontracts/packages/milkomeda-wsc-ui": { + "name": "local-milkomeda-wsc-ui", + "version": "1.0.0", + "extraneous": true, + "license": "ISC", + "dependencies": { + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-separator": "^1.0.3", + "@rollup/plugin-node-resolve": "^13.1.3", + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "ethers": "^6.6.2", + "framer-motion": "^6.3.11", + "lucide-react": "^0.252.0", + "milkomeda-wsc": "0.2.1", + "qrcode": "^1.5.0", + "react": "17.x || 18.x", + "react-confetti": "^6.1.0", + "react-dom": "17.x || 18.x", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "resize-observer-polyfill": "^1.5.1", + "rollup": "^2.67.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.34.0", + "rollup-plugin-visualizer": "^5.5.4", + "styled-components": "^5.3.5", + "tslib": "^2.5.3", + "typescript-plugin-styled-components": "^2.0.0", + "wagmi": "0.12.15" + }, + "devDependencies": { + "@types/node": "^16.11.27", + "@types/qrcode": "^1.4.2", + "@types/react": "^18.0.6", + "@types/react-dom": "^18.0.2", + "@types/styled-components": "^5.1.25", + "typescript": "^4.9.5" + }, + "engines": { + "node": ">=12.4" + }, + "peerDependencies": { + "react": "17.x || 18.x", + "react-dom": "17.x || 18.x", + "wagmi": "0.12.15" + } + }, + ".yalc/local-milkomeda-wsc-ui": { + "version": "1.0.0", + "extraneous": true, + "license": "ISC", + "dependencies": { + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-separator": "^1.0.3", + "@rollup/plugin-node-resolve": "^13.1.3", + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "ethers": "^6.6.2", + "framer-motion": "^6.3.11", + "local-cardano-wsc-wagmi": "file:.yalc/local-cardano-wsc-wagmi", + "lucide-react": "^0.252.0", + "milkomeda-wsc": "0.2.1", + "qrcode": "^1.5.0", + "react": "17.x || 18.x", + "react-confetti": "^6.1.0", + "react-dom": "17.x || 18.x", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "resize-observer-polyfill": "^1.5.1", + "rollup": "^2.67.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.34.0", + "rollup-plugin-visualizer": "^5.5.4", + "styled-components": "^5.3.5", + "tslib": "^2.5.3", + "typescript-plugin-styled-components": "^2.0.0", + "wagmi": "0.12.15" + }, + "engines": { + "node": ">=12.4" + }, + "peerDependencies": { + "ethers": "6.6.2", + "react": "17.x || 18.x", + "react-dom": "17.x || 18.x", + "wagmi": "0.12.15" + } + }, + ".yalc/local-milkomeda-wsc-ui/.yalc/local-cardano-wsc-wagmi": { + "extraneous": true + }, + ".yalc/milkomeda-wsc-ui": { + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-separator": "^1.0.3", + "@rollup/plugin-node-resolve": "^13.1.3", + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "framer-motion": "^6.3.11", + "lucide-react": "^0.252.0", + "milkomeda-wsc": "0.2.1", + "qrcode": "^1.5.0", + "react": "17.x || 18.x", + "react-confetti": "^6.1.0", + "react-dom": "17.x || 18.x", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "resize-observer-polyfill": "^1.5.1", + "rollup": "^2.67.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.34.0", + "rollup-plugin-visualizer": "^5.5.4", + "styled-components": "^5.3.5", + "tslib": "^2.5.3", + "typescript-plugin-styled-components": "^2.0.0", + "wagmi": "0.12.15" + }, + "engines": { + "node": ">=12.4" + }, + "peerDependencies": { + "react": "17.x || 18.x", + "react-dom": "17.x || 18.x", + "wagmi": "0.12.15" + } + }, + ".yalc/milkomeda-wsc-ui/.yalc/cardano-wsc-wagmi": { + "extraneous": true + }, + ".yalc/milkomeda-wsc-ui/node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + ".yalc/milkomeda-wsc-ui/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -219,11 +398,11 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -384,11 +563,11 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -424,9 +603,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } @@ -493,17 +672,17 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "engines": { "node": ">=6.9.0" } @@ -969,11 +1148,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1888,12 +2067,12 @@ } }, "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1906,9 +2085,9 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "node_modules/@coinbase/wallet-sdk": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.6.5.tgz", - "integrity": "sha512-8F91dvvC/+CTpaNTr+FgpLMa2YxjpXpE9pdnGewMoYi41ISbiXZado5VjYo9QSZlS+myzfKvDGpTzLFFUXPfDg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.7.1.tgz", + "integrity": "sha512-LjyoDCB+7p0waQXfK+fUgcAs3Ezk6S6e+LYaoFjpJ6c9VTop3NyZF40Pi7df4z7QJohCwzuIDjz0Rhtig6Y7Pg==", "dependencies": { "@metamask/safe-event-emitter": "2.0.0", "@solana/web3.js": "^1.70.1", @@ -1916,7 +2095,7 @@ "bn.js": "^5.1.1", "buffer": "^6.0.3", "clsx": "^1.1.0", - "eth-block-tracker": "4.4.3", + "eth-block-tracker": "6.1.0", "eth-json-rpc-filters": "5.1.0", "eth-rpc-errors": "4.0.2", "json-rpc-engine": "6.1.0", @@ -1961,9 +2140,9 @@ } }, "node_modules/@coinbase/wallet-sdk/node_modules/qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { "side-channel": "^1.0.4" }, @@ -2002,6 +2181,7 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -2013,6 +2193,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2318,6 +2499,31 @@ "npm": ">=6.14.15" } }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@emurgo/cip14-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@emurgo/cip14-js/-/cip14-js-3.0.1.tgz", @@ -3854,9 +4060,9 @@ } }, "node_modules/@ledgerhq/connect-kit-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.0.2.tgz", - "integrity": "sha512-TQ21IjcZOw/scqypaVFY3jHVqI7X7Hta3qN/us6FvTol3AY06UmrhhXGww0E9xHmAbdX241ddwXEiMBSQZFr9g==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.0.tgz", + "integrity": "sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg==" }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", @@ -3864,14 +4070,14 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.0.tgz", - "integrity": "sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" }, "node_modules/@lit/reactive-element": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", - "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.2.tgz", + "integrity": "sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.0.0" } @@ -3889,6 +4095,28 @@ "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" }, + "node_modules/@metamask/utils": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-3.6.0.tgz", + "integrity": "sha512-9cIRrfkWvHblSiNDVXsjivqa9Ak0RYo/1H6tqTqTbAx+oBK2Sva0lWDHxGchOqA7bySGUJKAWSNJvH6gdHZ0gQ==", + "dependencies": { + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "semver": "^7.3.8", + "superstruct": "^1.0.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@metamask/utils/node_modules/superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@motionone/animation": { "version": "10.15.1", "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", @@ -3901,9 +4129,9 @@ } }, "node_modules/@motionone/dom": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.15.5.tgz", - "integrity": "sha512-Xc5avlgyh3xukU9tydh9+8mB8+2zAq+WlLsC3eEIp7Ax7DnXgY7Bj/iv0a4X2R9z9ZFZiaXK3BO0xMYHKbAAdA==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.16.2.tgz", + "integrity": "sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==", "dependencies": { "@motionone/animation": "^10.15.1", "@motionone/generators": "^10.15.1", @@ -3933,11 +4161,11 @@ } }, "node_modules/@motionone/svelte": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.15.5.tgz", - "integrity": "sha512-Xyxtgp7BlVnSBwcoFmXGHUVnpNktzeXsEifu2NJJWc7VGuxutDsBZxNdz80qvpLIC5MeBa1wh7GGegZzTm1msg==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.2.tgz", + "integrity": "sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==", "dependencies": { - "@motionone/dom": "^10.15.5", + "@motionone/dom": "^10.16.2", "tslib": "^2.3.1" } }, @@ -3957,11 +4185,11 @@ } }, "node_modules/@motionone/vue": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.15.5.tgz", - "integrity": "sha512-cUENrLYAolUacHvCgU+8wF9OgSlVutfWbHMLERI/bElCJ+e2YVQvG/CpGhIM5fYOOJzuvg2T2wHmLLmvJoavEw==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.2.tgz", + "integrity": "sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==", "dependencies": { - "@motionone/dom": "^10.15.5", + "@motionone/dom": "^10.16.2", "tslib": "^2.3.1" } }, @@ -3973,38 +4201,27 @@ "eslint-scope": "5.1.1" } }, - "node_modules/@noble/ed25519": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", - "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/@noble/curves": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", + "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "dependencies": { + "@noble/hashes": "1.3.1" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", + "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -4251,6 +4468,352 @@ "node": ">= 8" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.4.tgz", + "integrity": "sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.4", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.3", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.3", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", + "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", + "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", + "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", + "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -4349,18 +4912,18 @@ } }, "node_modules/@safe-global/safe-apps-sdk": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-7.10.1.tgz", - "integrity": "sha512-2imnqAbx9XrqT3psrhe/YVpj2yW840ngJIuqv0nTiWJLKcTCzM2LJ4MH7ir7H8Sp2wdG/BqNB3SvjUAks2qNjQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-7.11.0.tgz", + "integrity": "sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A==", "dependencies": { "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", "ethers": "^5.7.2" } }, "node_modules/@safe-global/safe-gateway-typescript-sdk": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.7.0.tgz", - "integrity": "sha512-3BvlUgp0oZ1Zkn7nG3wY1jvCEE4t530BjKcaa3r0qsf0whf/ez/0gmQwk7DTOGmVmvOfjj6HHikxnrUCCX+/3Q==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.7.3.tgz", + "integrity": "sha512-O6JCgXNZWG0Vv8FnOEjKfcbsP0WxGvoPJk5ufqUrsyBlHup16It6oaLnn+25nXFLBZOHI1bz8429JlqAc2t2hg==", "dependencies": { "cross-fetch": "^3.1.5" } @@ -4432,23 +4995,22 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.74.0.tgz", - "integrity": "sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg==", + "version": "1.77.3", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.77.3.tgz", + "integrity": "sha512-PHaO0BdoiQRPpieC1p31wJsBaxwIOWLh8j2ocXNKX8boCQVldt26Jqm2tZE4KlrvnCIV78owPLv1pEUgqhxZ3w==", "dependencies": { "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", "@solana/buffer-layout": "^4.0.0", "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", "bs58": "^4.0.1", - "buffer": "6.0.1", + "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", + "jayson": "^4.1.0", "node-fetch": "^2.6.7", "rpc-websockets": "^7.5.1", "superstruct": "^0.14.2" @@ -4460,9 +5022,9 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/@solana/web3.js/node_modules/buffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", - "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -5121,22 +5683,26 @@ "node_modules/@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "devOptional": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "devOptional": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "devOptional": true }, "node_modules/@tsconfig/node16": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "devOptional": true }, "node_modules/@types/aria-query": { "version": "4.2.2", @@ -5234,6 +5800,14 @@ "@types/node": "*" } }, + "node_modules/@types/debug": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", @@ -5359,10 +5933,15 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -5386,7 +5965,7 @@ "version": "15.7.4", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", - "dev": true + "devOptional": true }, "node_modules/@types/q": { "version": "1.5.5", @@ -5407,7 +5986,7 @@ "version": "17.0.40", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz", "integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==", - "dev": true, + "devOptional": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -5418,7 +5997,7 @@ "version": "17.0.13", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz", "integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==", - "dev": true, + "devOptional": true, "dependencies": { "@types/react": "*" } @@ -5448,7 +6027,7 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "devOptional": true }, "node_modules/@types/secp256k1": { "version": "4.0.3", @@ -5736,9 +6315,9 @@ } }, "node_modules/@wagmi/chains": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@wagmi/chains/-/chains-0.2.15.tgz", - "integrity": "sha512-yeNamxRmqq1/PirJqCpKHSJcetZ9ivZdJnCIvNvJifpCz1A2dLlD1+NON11saiyShH7tshS5Eaf0pm9Luna8JQ==", + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@wagmi/chains/-/chains-0.2.22.tgz", + "integrity": "sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==", "funding": [ { "type": "gitcoin", @@ -5758,10 +6337,10 @@ } } }, - "node_modules/@wagmi/connectors": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-0.3.10.tgz", - "integrity": "sha512-O9wa6N47TJtpVdBXaONxXXjiq9ahXboGbBnf6m5tb4RIirCzEY7gnsJYYd61k3TQjd9T++xKKKzDTysm37hUHg==", + "node_modules/@wagmi/core": { + "version": "0.10.13", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-0.10.13.tgz", + "integrity": "sha512-kGSSR0q7MTXvBqcgk2cOr8rJppxFtT2oeSbGJlQeLEiaakewtJvDeDJj+GRpPA7TqsuujtrZKJQAai1yk7h5HQ==", "funding": [ { "type": "gitcoin", @@ -5773,34 +6352,26 @@ } ], "dependencies": { - "@coinbase/wallet-sdk": "^3.5.4", - "@ledgerhq/connect-kit-loader": "^1.0.1", - "@safe-global/safe-apps-provider": "^0.15.2", - "@safe-global/safe-apps-sdk": "^7.9.0", - "@walletconnect/ethereum-provider": "2.5.2", - "@walletconnect/legacy-provider": "^2.0.0", - "@web3modal/standalone": "2.2.2", + "@wagmi/chains": "0.2.22", + "@wagmi/connectors": "0.3.20", "abitype": "^0.3.0", - "eventemitter3": "^4.0.7" + "eventemitter3": "^4.0.7", + "zustand": "^4.3.1" }, "peerDependencies": { - "@wagmi/core": ">=0.9.x", "ethers": ">=5.5.1 <6", "typescript": ">=4.9.4" }, "peerDependenciesMeta": { - "@wagmi/core": { - "optional": true - }, "typescript": { "optional": true } } }, - "node_modules/@wagmi/core": { - "version": "0.10.8", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-0.10.8.tgz", - "integrity": "sha512-lBhA7TM6leaYyh7QXWFtmdXX+tTe88MtZmCclBVrT71z9tnX/JxXntEB7aGiHIWFyBNjzgWjBNrBAjxYgxhaCA==", + "node_modules/@wagmi/core/node_modules/@wagmi/connectors": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-0.3.20.tgz", + "integrity": "sha512-zhyUttUDocNKoIHVfAn5oXrtIzOhUVEMIl9J64Ld+6G+i5dmObx5oqnkVUkiOTOazMWpWanQiaXiuN1qdjSc/w==", "funding": [ { "type": "gitcoin", @@ -5812,41 +6383,26 @@ } ], "dependencies": { - "@wagmi/chains": "0.2.15", - "@wagmi/connectors": "0.3.10", + "@coinbase/wallet-sdk": "^3.6.6", + "@ledgerhq/connect-kit-loader": "^1.0.1", + "@safe-global/safe-apps-provider": "^0.15.2", + "@safe-global/safe-apps-sdk": "^7.9.0", + "@walletconnect/ethereum-provider": "2.8.0", + "@walletconnect/legacy-provider": "^2.0.0", + "@walletconnect/modal": "^2.4.5", "abitype": "^0.3.0", - "eventemitter3": "^4.0.7", - "zustand": "^4.3.1" + "eventemitter3": "^4.0.7" }, "peerDependencies": { + "@wagmi/core": ">=0.9.x", "ethers": ">=5.5.1 <6", "typescript": ">=4.9.4" }, "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@wagmi/core/node_modules/zustand": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.7.tgz", - "integrity": "sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==", - "dependencies": { - "use-sync-external-store": "1.2.0" - }, - "engines": { - "node": ">=12.7.0" - }, - "peerDependencies": { - "immer": ">=9.0", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "immer": { + "@wagmi/core": { "optional": true }, - "react": { + "typescript": { "optional": true } } @@ -5964,25 +6520,25 @@ } }, "node_modules/@walletconnect/core": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.5.2.tgz", - "integrity": "sha512-R0D9NKgHBpdun65q+1L49GOIGDLaIodnyb+Dq0tXGVzvXzy2lkXOlh2e9am61ixaVrUsHt7b96b318geqsuk4Q==", - "dependencies": { - "@walletconnect/heartbeat": "1.2.0", - "@walletconnect/jsonrpc-provider": "1.0.10", - "@walletconnect/jsonrpc-utils": "^1.0.4", - "@walletconnect/jsonrpc-ws-connection": "1.0.10", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.8.0.tgz", + "integrity": "sha512-pl7x4sq1nuU0ixA9wF2ecjDecUzIauKr7ZwC29rs9qTcmDpxgJbbOdZwaSl+dJlf1bHC87adVLf5KAkwwo9PzQ==", + "dependencies": { + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-provider": "1.0.13", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "^1.0.11", "@walletconnect/keyvaluestorage": "^1.0.2", "@walletconnect/logger": "^2.0.1", "@walletconnect/relay-api": "^1.0.9", "@walletconnect/relay-auth": "^1.0.4", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/safe-json": "^1.0.2", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/utils": "2.5.2", + "@walletconnect/types": "2.8.0", + "@walletconnect/utils": "2.8.0", "events": "^3.3.0", "lodash.isequal": "4.5.0", - "pino": "7.11.0", "uint8arrays": "^3.1.0" } }, @@ -6064,25 +6620,25 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/ethereum-provider": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.5.2.tgz", - "integrity": "sha512-WEN85tsuHgvoiMK4KpsRsOgsKB0QLCctSwxTqyWDybBbXuJRJGWXkZ6Oma9VSmUR0MgPSjiGmOFgY4ybMlhEMA==", - "dependencies": { - "@walletconnect/jsonrpc-http-connection": "^1.0.4", - "@walletconnect/jsonrpc-provider": "^1.0.6", - "@walletconnect/jsonrpc-types": "^1.0.2", - "@walletconnect/jsonrpc-utils": "^1.0.4", - "@walletconnect/sign-client": "2.5.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/universal-provider": "2.5.2", - "@walletconnect/utils": "2.5.2", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.8.0.tgz", + "integrity": "sha512-nVVJtZUpoeurFjoEPYlrUHkT3YleCpEC9YAMKJyEIB3MZZInttcGxGyi0vwFQ+trCfuX8RrdKUPQ952NvxvCvw==", + "dependencies": { + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "^1.0.13", + "@walletconnect/jsonrpc-types": "^1.0.3", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/sign-client": "2.8.0", + "@walletconnect/types": "2.8.0", + "@walletconnect/universal-provider": "2.8.0", + "@walletconnect/utils": "2.8.0", "events": "^3.3.0" }, "peerDependencies": { - "@web3modal/standalone": ">=2" + "@walletconnect/modal": ">=2" }, "peerDependenciesMeta": { - "@web3modal/standalone": { + "@walletconnect/modal": { "optional": true } } @@ -6102,15 +6658,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/heartbeat": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.0.tgz", - "integrity": "sha512-0vbzTa/ARrpmMmOD+bQMxPvFYKtOLQZObgZakrYr0aODiMOO71CmPVNV2eAqXnw9rMmcP+z91OybLeIFlwTjjA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz", + "integrity": "sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==", "dependencies": { "@walletconnect/events": "^1.0.1", "@walletconnect/time": "^1.0.2", - "chai": "^4.3.7", - "mocha": "^10.2.0", - "ts-node": "^10.9.1", "tslib": "1.14.1" } }, @@ -6179,9 +6732,9 @@ } }, "node_modules/@walletconnect/jsonrpc-http-connection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.6.tgz", - "integrity": "sha512-/3zSqDi7JDN06E4qm0NmVYMitngXfh21UWwy8zeJcBeJc+Jcs094EbLsIxtziIIKTCCbT88lWuTjl1ZujxN7cw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz", + "integrity": "sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==", "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", "@walletconnect/safe-json": "^1.0.1", @@ -6195,12 +6748,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/jsonrpc-provider": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.10.tgz", - "integrity": "sha512-g0ffPSpY3P6GqGjWGHsr3yqvQUhj7q2k6pAikoXv5XTXWaJRzFvrlbFkSgxziXsBrwrMZn0qvPufvpN4mMZ5FA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz", + "integrity": "sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==", "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", "tslib": "1.14.1" } }, @@ -6210,9 +6763,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/jsonrpc-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz", - "integrity": "sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz", + "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==", "dependencies": { "keyvaluestorage-interface": "^1.0.0", "tslib": "1.14.1" @@ -6224,12 +6777,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/jsonrpc-utils": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.6.tgz", - "integrity": "sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", "dependencies": { "@walletconnect/environment": "^1.0.1", - "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/jsonrpc-types": "^1.0.3", "tslib": "1.14.1" } }, @@ -6239,12 +6792,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.10.tgz", - "integrity": "sha512-/tidvjfCXZuYugjF5fOswsNDPoMo9QRML3DFQ0dfNUarL4f5HGqu8NDGerr2n0+4MOX23GsT6Vv2POSwFbvgGw==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.12.tgz", + "integrity": "sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w==", "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/safe-json": "^1.0.2", "events": "^3.3.0", "tslib": "1.14.1", "ws": "^7.5.1" @@ -6384,6 +6937,58 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/@walletconnect/modal": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.5.9.tgz", + "integrity": "sha512-Zs2RvPwbBNRdBhb50FuJCxi3FJltt1KSpI7odjU/x9GTpTOcSOkmR66PBCy2JvNA0+ztnS1Xs0LVEr3lu7/Jzw==", + "dependencies": { + "@walletconnect/modal-core": "2.5.9", + "@walletconnect/modal-ui": "2.5.9" + } + }, + "node_modules/@walletconnect/modal-core": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.5.9.tgz", + "integrity": "sha512-isIebwF9hOknGouhS/Ob4YJ9Sa/tqNYG2v6Ua9EkCqIoLimepkG5eC53tslUWW29SLSfQ9qqBNG2+iE7yQXqgw==", + "dependencies": { + "buffer": "6.0.3", + "valtio": "1.10.6" + } + }, + "node_modules/@walletconnect/modal-core/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@walletconnect/modal-ui": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.5.9.tgz", + "integrity": "sha512-nfBaAT9Ls7RZTBBgAq+Nt/3AoUcinIJ9bcq5UHXTV3lOPu/qCKmUC/0HY3GvUK8ykabUAsjr0OAGmcqkB91qug==", + "dependencies": { + "@walletconnect/modal-core": "2.5.9", + "lit": "2.7.5", + "motion": "10.16.2", + "qrcode": "1.5.3" + } + }, "node_modules/@walletconnect/randombytes": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.3.tgz", @@ -6433,9 +7038,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/safe-json": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.1.tgz", - "integrity": "sha512-Fm7e31oSYY15NQr8SsLJheKAy5L744udZf2lJKcz6wFmPJEzf7hOF0866o/rrldRzJnjZ4H2GJ45pFudsnLW5A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", "dependencies": { "tslib": "1.14.1" } @@ -6446,20 +7051,19 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/sign-client": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.5.2.tgz", - "integrity": "sha512-eKUnGCVgYqN+6b4gm27ML/064m0c/2hTlTHy6tbUszYtEPTzb+q4fvpnWs6blaOjzc18l8NFwX3c1+MHxVdQUQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.8.0.tgz", + "integrity": "sha512-+l9qwvVeUGk0fBQsgx6yb6hdGYt8uQ3a9jR9GgsJvm8FjFh1oUzTKqFnG7XdhCBnzFnbSoLr41Xe8PbN8qoUSw==", "dependencies": { - "@walletconnect/core": "2.5.2", + "@walletconnect/core": "2.8.0", "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.0", - "@walletconnect/jsonrpc-utils": "^1.0.4", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "^2.0.1", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/utils": "2.5.2", - "events": "^3.3.0", - "pino": "7.11.0" + "@walletconnect/types": "2.8.0", + "@walletconnect/utils": "2.8.0", + "events": "^3.3.0" } }, "node_modules/@walletconnect/socket-transport": { @@ -6555,13 +7159,13 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/types": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.5.2.tgz", - "integrity": "sha512-VnV43qs4f2hwv6wGQ9ZSE+smP0z2oVy2XaVO5Szd2fmOx9bB+ov+sQzh9xeoQ+DhjNrbJhUaecW/peE6CPPSag==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.8.0.tgz", + "integrity": "sha512-FMeGK3lGXFDwcs5duoN74xL1aLrkgYqnavWE0DnFPt2i1QmSUITU9c8f88EDh8uPXANd2WIYOItm0DVCNxLGGA==", "dependencies": { "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.0", - "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-types": "1.0.3", "@walletconnect/keyvaluestorage": "^1.0.2", "@walletconnect/logger": "^2.0.1", "events": "^3.3.0" @@ -6594,51 +7198,49 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/universal-provider": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.5.2.tgz", - "integrity": "sha512-R61VL02zvcljwSC+FJVzxGswbN21tokQLG0IQL1tVq30+KfkZOt0y/UxsDNvgHNGleGgfoQZzOWsfSLgp5pcBQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.8.0.tgz", + "integrity": "sha512-BMsGiINI3rT7DRyDJM7miuWG6vDVE0PV6zMcCXIMDYYPay7zFvJxv2VHEx9an4MutrvQR76NTRyG//i1K84VOQ==", "dependencies": { - "@walletconnect/jsonrpc-http-connection": "^1.0.4", - "@walletconnect/jsonrpc-provider": "^1.0.6", + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "1.0.13", "@walletconnect/jsonrpc-types": "^1.0.2", - "@walletconnect/jsonrpc-utils": "^1.0.4", + "@walletconnect/jsonrpc-utils": "^1.0.7", "@walletconnect/logger": "^2.0.1", - "@walletconnect/sign-client": "2.5.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/utils": "2.5.2", + "@walletconnect/sign-client": "2.8.0", + "@walletconnect/types": "2.8.0", + "@walletconnect/utils": "2.8.0", "eip1193-provider": "1.0.1", - "events": "^3.3.0", - "pino": "7.11.0" + "events": "^3.3.0" } }, "node_modules/@walletconnect/utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.5.2.tgz", - "integrity": "sha512-s5bpY5q/RaXMc6LgPp+E7qPbKhrff9TjrLRjN2m9COnt9cERowpQEFrPzWmh10FatRZ7dNrudJ5I/c36nFc+hw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.8.0.tgz", + "integrity": "sha512-Q8OwMtUevIn1+64LXyTMLlhH58k3UOAjU5b3smYZ7CEEmwEGpOTfTDAWrB3v+ZDIhjyqP94+8fuvKIbcVLKLWA==", "dependencies": { "@stablelib/chacha20poly1305": "1.0.1", "@stablelib/hkdf": "1.0.1", "@stablelib/random": "^1.0.2", "@stablelib/sha256": "1.0.1", "@stablelib/x25519": "^1.0.3", - "@walletconnect/jsonrpc-utils": "^1.0.4", "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/safe-json": "^1.0.2", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.5.2", + "@walletconnect/types": "2.8.0", "@walletconnect/window-getters": "^1.0.1", "@walletconnect/window-metadata": "^1.0.1", "detect-browser": "5.3.0", - "query-string": "7.1.1", + "query-string": "7.1.3", "uint8arrays": "^3.1.0" } }, "node_modules/@walletconnect/utils/node_modules/query-string": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", - "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", "dependencies": { - "decode-uri-component": "^0.2.0", + "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" @@ -6685,58 +7287,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@web3modal/core": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-2.2.2.tgz", - "integrity": "sha512-RKbYNIEVP5Hwiva68PWXExbkTFLUTasneyRpcjoQSM4BIh78qXp1YMt0nyTvFdHmHQEGxXEMCuRG5qoE97uMHA==", - "dependencies": { - "buffer": "6.0.3", - "valtio": "1.10.3" - } - }, - "node_modules/@web3modal/core/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@web3modal/standalone": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@web3modal/standalone/-/standalone-2.2.2.tgz", - "integrity": "sha512-c05kkTFNGZqnjJ3n2C8uo+wWL6ut1jexGYAyTvbweDengdsOr8LDo0VpK5V3XSKCV2fFcPh5JE9H1aA4jpnZPg==", - "dependencies": { - "@web3modal/core": "2.2.2", - "@web3modal/ui": "2.2.2" - } - }, - "node_modules/@web3modal/ui": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-2.2.2.tgz", - "integrity": "sha512-PAuMOuk4sZ4UGjucGMZKzu6Qu56XtFsgLaqOn8ZgP2RkZmYEBGSG9mUQVzJd3XzfzAy1T91Wmqp/3TI3m0pXuQ==", - "dependencies": { - "@web3modal/core": "2.2.2", - "lit": "2.6.1", - "motion": "10.15.5", - "qrcode": "1.5.1" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -7103,9 +7653,9 @@ } }, "node_modules/algosdk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.3.0.tgz", - "integrity": "sha512-voxoY2eue2CkzwkTh6UNN5JUeVOBL9qoNX3N/+OYwS2/Xd17ACSs6tLV/6dZumEgPa40ZL8TkO4zQF/ysDpy8w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", + "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", "dependencies": { "algo-msgpack-with-bigint": "^2.1.1", "buffer": "^6.0.3", @@ -7272,7 +7822,8 @@ "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": true }, "node_modules/argparse": { "version": "1.0.10", @@ -7282,6 +7833,17 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/aria-query": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", @@ -7440,14 +8002,6 @@ "node": ">=0.8" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -7812,6 +8366,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, "node_modules/babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", @@ -8129,11 +8698,6 @@ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -8425,6 +8989,14 @@ "node": ">= 6" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -8468,23 +9040,6 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -8514,14 +9069,6 @@ "node": ">=6" } }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "engines": { - "node": "*" - } - }, "node_modules/check-types": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", @@ -9053,7 +9600,8 @@ "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "devOptional": true }, "node_modules/cross-fetch": { "version": "3.1.5", @@ -9133,6 +9681,14 @@ "postcss": "^8.4" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, "node_modules/css-declaration-sorter": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", @@ -9306,6 +9862,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -9487,7 +10053,7 @@ "version": "3.0.11", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "dev": true + "devOptional": true }, "node_modules/d": { "version": "1.0.1", @@ -9552,6 +10118,11 @@ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -9582,9 +10153,9 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "engines": { "node": ">=0.10" } @@ -9619,17 +10190,6 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/deep-equal": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", @@ -9772,6 +10332,11 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "node_modules/detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -9806,14 +10371,6 @@ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -10001,6 +10558,17 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, + "node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -10019,6 +10587,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz", "integrity": "sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dependencies": { "@json-rpc-tools/provider": "^1.5.5" } @@ -11148,16 +11717,17 @@ } }, "node_modules/eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz", + "integrity": "sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==", "dependencies": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", + "@metamask/safe-event-emitter": "^2.0.0", + "@metamask/utils": "^3.0.1", "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "pify": "^3.0.0" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/eth-block-tracker/node_modules/pify": { @@ -11582,9 +12152,9 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "node_modules/fast-redact": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", + "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==", "engines": { "node": ">=6" } @@ -11795,14 +12365,6 @@ "node": ">=8" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -12060,6 +12622,47 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "dependencies": { + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": ">=16.8 || ^17.0.0 || ^18.0.0", + "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/framer-motion/node_modules/@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "dependencies": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + }, + "node_modules/framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -12158,14 +12761,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "engines": { - "node": "*" - } - }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -12180,6 +12775,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -12604,6 +13207,19 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -13058,6 +13674,14 @@ "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -13136,6 +13760,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -13466,17 +14104,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -13721,9 +14348,9 @@ } }, "node_modules/jayson": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", - "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", "dependencies": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -13735,7 +14362,6 @@ "isomorphic-ws": "^4.0.1", "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", - "lodash": "^4.17.20", "uuid": "^8.3.2", "ws": "^7.4.5" }, @@ -16051,19 +16677,19 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.5.tgz", + "integrity": "sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==", "dependencies": { "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" + "lit-element": "^3.3.0", + "lit-html": "^2.7.0" } }, "node_modules/lit-element": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.0.tgz", - "integrity": "sha512-M3OIoblNS7LZdRxOIk8g0wyLEA/lRw/UGJ1TX+767OpkuDsRdSoxBIvewpWqCo7sMd9xt1XedUNZIr9jUO1X3g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", "dependencies": { "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", @@ -16071,9 +16697,9 @@ } }, "node_modules/lit-html": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.0.tgz", - "integrity": "sha512-/zPOl8EfeB3HHpTzINSpnWgvgQ8N07g/j272EOAIyB0Ys2RzBqTVT23i+JZuUlNbB2WHHeSsTCFi92NtWrtpqQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.4.tgz", + "integrity": "sha512-/Jw+FBpeEN+z8X6PJva5n7+0MzCVAH2yypN99qHYYkq8bI+j7I39GH+68Z/MZD6rGKDK9RpzBw7CocfmHfq6+g==", "dependencies": { "@types/trusted-types": "^2.0.2" } @@ -16145,85 +16771,6 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -16235,14 +16782,6 @@ "loose-envify": "cli.js" } }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dependencies": { - "get-func-name": "^2.0.0" - } - }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -16274,9 +16813,9 @@ } }, "node_modules/lucid-cardano": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/lucid-cardano/-/lucid-cardano-0.10.5.tgz", - "integrity": "sha512-kz1stnvf4hoL17qd2kQZtiGrWxCCHU3QHLyBBONmnHLOhqYzFagYWe8S/JTghDuCIBTl+R29e3o5YwTnNLg2SQ==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/lucid-cardano/-/lucid-cardano-0.10.6.tgz", + "integrity": "sha512-thZRR3YOHFvuSthwv5yd6C+kNXFhY50b8x5K0oaBLF9Wj7qOzBOhdV9Hoy3DvEAgFVscYCIjKo5gZ3NQZBn93A==", "dependencies": { "@peculiar/webcrypto": "^1.4.0", "node-fetch": "^3.2.3", @@ -16323,6 +16862,14 @@ } } }, + "node_modules/lucide-react": { + "version": "0.252.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.252.0.tgz", + "integrity": "sha512-98hUdm23F3YlC3UN4mzv1FAsWr81YYdxF31cYhm19c51FwOph4dn5B4NjKp45UXBiR1Xx+cKrdmSIZX0ldS8zw==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -16365,7 +16912,8 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "devOptional": true }, "node_modules/makeerror": { "version": "1.0.12", @@ -16453,9 +17001,9 @@ } }, "node_modules/milkomeda-wsc": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.1.13.tgz", - "integrity": "sha512-nj8+D8MV1RHHYOID7scc5LFzJ/Stz3GC0NTbA1+am49ba0SKVzNPc71pNewi573T/GPtLfwQlzTTBsiyOphDXA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.2.1.tgz", + "integrity": "sha512-5bRkBWx52P1pLXjik6u2cbUOn/KTo5x9B6m+JDNW92ighMVlHlrvt1WkIVHyyLkFnnxsgqc09Tj6Zoio5S9aUg==", "dependencies": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -16469,9 +17017,9 @@ } }, "node_modules/milkomeda-wsc-provider": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.2.tgz", - "integrity": "sha512-IrT6y165WD8eISEDLolkWCCs1TcqDnlWusURCQhcvpwsOwIbeLQ93dfR5rbNSmtnfQvZzNegppljwYlFsjWGow==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.3.tgz", + "integrity": "sha512-enWfxENeD+FUR0VIel+TyUGYp8xDwR+WMb6Gn9M5dtO+wMazwmYIqSlPz07ZxChugITFq9zoOQzSO902BTjEMQ==", "dependencies": { "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1", "@perawallet/connect": "^1.2.3", @@ -16480,6 +17028,91 @@ "zod": "^3.20.2" } }, + "node_modules/milkomeda-wsc-ui": { + "resolved": ".yalc/milkomeda-wsc-ui", + "link": true + }, + "node_modules/milkomeda-wsc-ui-test-beta": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.1.tgz", + "integrity": "sha512-2EUaSPF/jRn56MvZM0h9XiifNXr/S6nqRmILYBE/kvY/btF8hL8LA6iI8Ef1ONmknxWjUJ2eCXFnFvbXU4ugMw==", + "dependencies": { + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-separator": "^1.0.3", + "@rollup/plugin-node-resolve": "^13.1.3", + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "framer-motion": "^6.3.11", + "lucide-react": "^0.252.0", + "milkomeda-wsc": "0.2.1", + "qrcode": "^1.5.0", + "react": "17.x || 18.x", + "react-confetti": "^6.1.0", + "react-dom": "17.x || 18.x", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "resize-observer-polyfill": "^1.5.1", + "rollup": "^2.67.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.34.0", + "rollup-plugin-visualizer": "^5.5.4", + "styled-components": "^5.3.5", + "tslib": "^2.5.3", + "typescript-plugin-styled-components": "^2.0.0", + "wagmi": "0.12.15" + }, + "engines": { + "node": ">=12.4" + }, + "peerDependencies": { + "react": "17.x || 18.x", + "react-dom": "17.x || 18.x", + "wagmi": "0.12.15" + } + }, + "node_modules/milkomeda-wsc-ui-test-beta/node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/milkomeda-wsc-ui-test-beta/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/milkomeda-wsc/node_modules/bech32": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", @@ -16721,321 +17354,6 @@ "node": ">=4" } }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/mocha/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/mocha/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mocha/node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/mocha/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/mocha/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "engines": { - "node": ">=10" - } - }, "node_modules/mock-fs": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", @@ -17050,16 +17368,16 @@ } }, "node_modules/motion": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/motion/-/motion-10.15.5.tgz", - "integrity": "sha512-ejP6KioN4pigTGxL93APzOnvtLklParL59UQB2T3HWXQBxFcIp5/7YXFmkgiA6pNKKzjvnLhnonRBN5iSFMnNw==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", + "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", "dependencies": { "@motionone/animation": "^10.15.1", - "@motionone/dom": "^10.15.5", - "@motionone/svelte": "^10.15.5", + "@motionone/dom": "^10.16.2", + "@motionone/svelte": "^10.16.2", "@motionone/types": "^10.15.1", "@motionone/utils": "^10.15.1", - "@motionone/vue": "^10.15.5" + "@motionone/vue": "^10.16.2" } }, "node_modules/ms": { @@ -17765,14 +18083,6 @@ "node": ">=8" } }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -17847,17 +18157,6 @@ "split2": "^4.0.0" } }, - "node_modules/pino-abstract-transport/node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, "node_modules/pino-std-serializers": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", @@ -17943,6 +18242,17 @@ "node": ">=10.13.0" } }, + "node_modules/popmotion": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", + "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "dependencies": { + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + } + }, "node_modules/postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", @@ -19115,9 +19425,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/preact": { - "version": "10.13.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", - "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==", + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", + "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -19256,9 +19566,9 @@ } }, "node_modules/proxy-compare": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.0.tgz", - "integrity": "sha512-f1us0OsVAJ3tdIMXGQx2lmseYS4YXe4W+sKF5g5ww/jV+5ogMadPt+sIZ+88Ga9kvMJsrRNWzCrKPpr6pMWYbA==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", + "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==" }, "node_modules/psl": { "version": "1.8.0", @@ -19329,9 +19639,9 @@ } }, "node_modules/qrcode": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", - "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", "dependencies": { "dijkstrajs": "^1.0.1", "encode-utf8": "^1.0.3", @@ -20070,6 +20380,20 @@ "node": ">=14" } }, + "node_modules/react-confetti": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-confetti/-/react-confetti-6.1.0.tgz", + "integrity": "sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==", + "dependencies": { + "tween-functions": "^1.2.0" + }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.1 || ^18.0.0" + } + }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -20275,6 +20599,51 @@ "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-router": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz", @@ -20371,6 +20740,49 @@ } } }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-transition-state": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-transition-state/-/react-transition-state-1.1.5.tgz", + "integrity": "sha512-ITY2mZqc2dWG2eitJkYNdcSFW8aKeOlkL2A/vowRrLL8GH3J6Re/SpD/BLvQzrVOTqjsP0b5S9N10vgNNzwMUQ==", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-use-measure": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz", + "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==", + "dependencies": { + "debounce": "^1.2.1" + }, + "peerDependencies": { + "react": ">=16.13", + "react-dom": ">=16.13" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -20834,6 +21246,14 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-peer-deps-external": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz", + "integrity": "sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==", + "peerDependencies": { + "rollup": "*" + } + }, "node_modules/rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", @@ -20889,6 +21309,164 @@ "node": ">=8" } }, + "node_modules/rollup-plugin-typescript2": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.34.1.tgz", + "integrity": "sha512-P4cHLtGikESmqi1CA+tdMDUv8WbQV48mzPYt77TSTOPJpERyZ9TXdDgjSDix8Fkqce6soYz3+fa4lrC93IEkcw==", + "dependencies": { + "@rollup/pluginutils": "^4.1.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.0.0", + "semver": "^7.3.7", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "rollup": ">=1.26.3", + "typescript": ">=2.4.0" + } + }, + "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-typescript2/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz", + "integrity": "sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==", + "dependencies": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/rollup-plugin-visualizer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/rpc-websockets": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", @@ -20971,15 +21549,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "deprecated": "Renamed to @metamask/safe-event-emitter", - "dependencies": { - "events": "^3.0.0" - } - }, "node_modules/safe-json-utils": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz", @@ -21908,6 +22477,57 @@ "webpack": "^5.0.0" } }, + "node_modules/style-value-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", + "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + } + }, + "node_modules/styled-components": { + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz", + "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/styled-components/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, "node_modules/stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", @@ -22599,6 +23219,7 @@ "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "devOptional": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -22641,6 +23262,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "devOptional": true, "engines": { "node": ">=0.4.0" } @@ -22649,6 +23271,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "devOptional": true, "engines": { "node": ">=0.3.1" } @@ -22684,9 +23307,9 @@ } }, "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -22718,6 +23341,11 @@ "node": "*" } }, + "node_modules/tween-functions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", + "integrity": "sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==" + }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -22792,9 +23420,9 @@ } }, "node_modules/typescript": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.1.tgz", - "integrity": "sha512-jw7P2z/h6aPT4AENXDGjcfHTu5CSqzsbZc6YlUIebTyBAq8XaKp78x7VcSh30xwSCcsu5irZkYZUSFP1MrAMbg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true, "bin": { "tsc": "bin/tsc", @@ -22804,6 +23432,14 @@ "node": ">=4.2.0" } }, + "node_modules/typescript-plugin-styled-components": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/typescript-plugin-styled-components/-/typescript-plugin-styled-components-2.0.0.tgz", + "integrity": "sha512-Wu7F96dwuphgiACHfu63vTbRRg6tkPwLnpFJwdxM70Y0PLfeKLRnvs2Yo5MAySMwE120ODMKk9W4TtJgY1ZumA==", + "peerDependencies": { + "typescript": "^4.0" + } + }, "node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", @@ -22959,6 +23595,47 @@ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" }, + "node_modules/use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -23035,7 +23712,8 @@ "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "devOptional": true }, "node_modules/v8-to-istanbul": { "version": "8.1.1", @@ -23059,11 +23737,11 @@ } }, "node_modules/valtio": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.10.3.tgz", - "integrity": "sha512-t3Ez/+baJ+Z5tIyeaI6nCAbW/hrmcq2jditwg/X++o5IvCdiGirQKTOv1kJq0glgUo13v5oABCVGcinggBfiKw==", + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.10.6.tgz", + "integrity": "sha512-SxN1bHUmdhW6V8qsQTpCgJEwp7uHbntuH0S9cdLQtiohuevwBksbpXjwj5uDMA7bLwg1WKyq9sEpZrx3TIMrkA==", "dependencies": { - "proxy-compare": "2.5.0", + "proxy-compare": "2.5.1", "use-sync-external-store": "1.2.0" }, "engines": { @@ -23135,9 +23813,9 @@ } }, "node_modules/wagmi": { - "version": "0.12.8", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-0.12.8.tgz", - "integrity": "sha512-llLlk6rl9MOqE1HgFtDBSJlUetmAD6WR68EvvGTZYXmw1lu9vHPcfoNHAB9pq/i7S3jTDLyv+Z+NGGoyryVS6w==", + "version": "0.12.15", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-0.12.15.tgz", + "integrity": "sha512-0j5Sn+gW9vgbZP1naR6pCeTg2zvMz+G4Rv7VbSDyUe1X5m/QQVdZc9FJ+THwO5+YcNAnxsEio5pHTwGfc43GsA==", "funding": [ { "type": "gitcoin", @@ -23149,10 +23827,10 @@ } ], "dependencies": { - "@tanstack/query-sync-storage-persister": "^4.14.5", - "@tanstack/react-query": "^4.14.5", - "@tanstack/react-query-persist-client": "^4.14.5", - "@wagmi/core": "0.10.8", + "@tanstack/query-sync-storage-persister": "^4.27.1", + "@tanstack/react-query": "^4.28.0", + "@tanstack/react-query-persist-client": "^4.28.0", + "@wagmi/core": "0.10.13", "abitype": "^0.3.0", "use-sync-external-store": "^1.2.0" }, @@ -24401,11 +25079,6 @@ "workbox-core": "6.5.4" } }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -24603,43 +25276,11 @@ "node": ">=6" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "devOptional": true, "engines": { "node": ">=6" } @@ -24662,6 +25303,29 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } + }, + "node_modules/zustand": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.8.tgz", + "integrity": "sha512-4h28KCkHg5ii/wcFFJ5Fp+k1J3gJoasaIbppdgZFO4BPJnsNxL0mQXBSFgOgAdCdBj35aDTPvdAJReTMntFPGg==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "immer": ">=9.0", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } } }, "dependencies": { @@ -24802,11 +25466,11 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -24923,11 +25587,11 @@ } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { @@ -24954,9 +25618,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" }, "@babel/helper-remap-async-to-generator": { "version": "7.16.8", @@ -25005,14 +25669,14 @@ } }, "@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/helper-validator-option": { "version": "7.16.7", @@ -25310,11 +25974,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -25915,12 +26579,12 @@ } }, "@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" } }, @@ -25930,9 +26594,9 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, "@coinbase/wallet-sdk": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.6.5.tgz", - "integrity": "sha512-8F91dvvC/+CTpaNTr+FgpLMa2YxjpXpE9pdnGewMoYi41ISbiXZado5VjYo9QSZlS+myzfKvDGpTzLFFUXPfDg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.7.1.tgz", + "integrity": "sha512-LjyoDCB+7p0waQXfK+fUgcAs3Ezk6S6e+LYaoFjpJ6c9VTop3NyZF40Pi7df4z7QJohCwzuIDjz0Rhtig6Y7Pg==", "requires": { "@metamask/safe-event-emitter": "2.0.0", "@solana/web3.js": "^1.70.1", @@ -25940,7 +26604,7 @@ "bn.js": "^5.1.1", "buffer": "^6.0.3", "clsx": "^1.1.0", - "eth-block-tracker": "4.4.3", + "eth-block-tracker": "6.1.0", "eth-json-rpc-filters": "5.1.0", "eth-rpc-errors": "4.0.2", "json-rpc-engine": "6.1.0", @@ -25968,9 +26632,9 @@ } }, "qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "requires": { "side-channel": "^1.0.4" } @@ -25996,6 +26660,7 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, "requires": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -26004,6 +26669,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -26160,6 +26826,31 @@ "@dcspark/cip34-js": "^0.1.2" } }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "optional": true, + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "optional": true + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@emurgo/cip14-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@emurgo/cip14-js/-/cip14-js-3.0.1.tgz", @@ -27183,9 +27874,9 @@ } }, "@ledgerhq/connect-kit-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.0.2.tgz", - "integrity": "sha512-TQ21IjcZOw/scqypaVFY3jHVqI7X7Hta3qN/us6FvTol3AY06UmrhhXGww0E9xHmAbdX241ddwXEiMBSQZFr9g==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.0.tgz", + "integrity": "sha512-HUy12FEczoWY2FPubnsm1uOA8tkVWc0j90i47suThV3C9NL2xx69ZAIEU3Ytzs2bwLek9S1Q2S1VQJvA+3Ygkg==" }, "@leichtgewicht/ip-codec": { "version": "2.0.4", @@ -27193,14 +27884,14 @@ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "@lit-labs/ssr-dom-shim": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.0.tgz", - "integrity": "sha512-92uQ5ARf7UXYrzaFcAX3T2rTvaS9Z1//ukV+DqjACM4c8s0ZBQd7ayJU5Dh2AFLD/Ayuyz4uMmxQec8q3U4Ong==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", + "integrity": "sha512-kXOeFbfCm4fFf2A3WwVEeQj55tMZa8c8/f9AKHMobQMkzNUfUj+antR3fRPaZJawsa1aZiP/Da3ndpZrwEe4rQ==" }, "@lit/reactive-element": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.1.tgz", - "integrity": "sha512-va15kYZr7KZNNPZdxONGQzpUr+4sxVu7V/VG7a8mRfPPXUyhEYj5RzXCQmGrlP3tAh0L3HHm5AjBMFYRqlM9SA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.2.tgz", + "integrity": "sha512-rDfl+QnCYjuIGf5xI2sVJWdYIi56CTCwWa+nidKYX6oIuBYwUbT/vX4qbUDlHiZKJ/3FRNQ/tWJui44p6/stSA==", "requires": { "@lit-labs/ssr-dom-shim": "^1.0.0" } @@ -27215,6 +27906,24 @@ "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" }, + "@metamask/utils": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-3.6.0.tgz", + "integrity": "sha512-9cIRrfkWvHblSiNDVXsjivqa9Ak0RYo/1H6tqTqTbAx+oBK2Sva0lWDHxGchOqA7bySGUJKAWSNJvH6gdHZ0gQ==", + "requires": { + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "semver": "^7.3.8", + "superstruct": "^1.0.3" + }, + "dependencies": { + "superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" + } + } + }, "@motionone/animation": { "version": "10.15.1", "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz", @@ -27227,9 +27936,9 @@ } }, "@motionone/dom": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.15.5.tgz", - "integrity": "sha512-Xc5avlgyh3xukU9tydh9+8mB8+2zAq+WlLsC3eEIp7Ax7DnXgY7Bj/iv0a4X2R9z9ZFZiaXK3BO0xMYHKbAAdA==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.16.2.tgz", + "integrity": "sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==", "requires": { "@motionone/animation": "^10.15.1", "@motionone/generators": "^10.15.1", @@ -27259,11 +27968,11 @@ } }, "@motionone/svelte": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.15.5.tgz", - "integrity": "sha512-Xyxtgp7BlVnSBwcoFmXGHUVnpNktzeXsEifu2NJJWc7VGuxutDsBZxNdz80qvpLIC5MeBa1wh7GGegZzTm1msg==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.2.tgz", + "integrity": "sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==", "requires": { - "@motionone/dom": "^10.15.5", + "@motionone/dom": "^10.16.2", "tslib": "^2.3.1" } }, @@ -27283,11 +27992,11 @@ } }, "@motionone/vue": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.15.5.tgz", - "integrity": "sha512-cUENrLYAolUacHvCgU+8wF9OgSlVutfWbHMLERI/bElCJ+e2YVQvG/CpGhIM5fYOOJzuvg2T2wHmLLmvJoavEw==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.2.tgz", + "integrity": "sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==", "requires": { - "@motionone/dom": "^10.15.5", + "@motionone/dom": "^10.16.2", "tslib": "^2.3.1" } }, @@ -27299,20 +28008,18 @@ "eslint-scope": "5.1.1" } }, - "@noble/ed25519": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", - "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" + "@noble/curves": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.1.0.tgz", + "integrity": "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==", + "requires": { + "@noble/hashes": "1.3.1" + } }, "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" - }, - "@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", + "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -27467,6 +28174,173 @@ } } }, + "@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-dialog": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.4.tgz", + "integrity": "sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.4", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.3", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.3", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + } + }, + "@radix-ui/react-dismissable-layer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", + "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + } + }, + "@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-focus-scope": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", + "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + } + }, + "@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + } + }, + "@radix-ui/react-portal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", + "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + } + }, + "@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + } + }, + "@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + } + }, + "@radix-ui/react-separator": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", + "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + } + }, + "@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + } + }, + "@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + } + }, + "@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + } + }, + "@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -27541,18 +28415,18 @@ } }, "@safe-global/safe-apps-sdk": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-7.10.1.tgz", - "integrity": "sha512-2imnqAbx9XrqT3psrhe/YVpj2yW840ngJIuqv0nTiWJLKcTCzM2LJ4MH7ir7H8Sp2wdG/BqNB3SvjUAks2qNjQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-7.11.0.tgz", + "integrity": "sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A==", "requires": { "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", "ethers": "^5.7.2" } }, "@safe-global/safe-gateway-typescript-sdk": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.7.0.tgz", - "integrity": "sha512-3BvlUgp0oZ1Zkn7nG3wY1jvCEE4t530BjKcaa3r0qsf0whf/ez/0gmQwk7DTOGmVmvOfjj6HHikxnrUCCX+/3Q==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.7.3.tgz", + "integrity": "sha512-O6JCgXNZWG0Vv8FnOEjKfcbsP0WxGvoPJk5ufqUrsyBlHup16It6oaLnn+25nXFLBZOHI1bz8429JlqAc2t2hg==", "requires": { "cross-fetch": "^3.1.5" } @@ -27603,23 +28477,22 @@ } }, "@solana/web3.js": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.74.0.tgz", - "integrity": "sha512-RKZyPqizPCxmpMGfpu4fuplNZEWCrhRBjjVstv5QnAJvgln1jgOfgui+rjl1ExnqDnWKg9uaZ5jtGROH/cwabg==", + "version": "1.77.3", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.77.3.tgz", + "integrity": "sha512-PHaO0BdoiQRPpieC1p31wJsBaxwIOWLh8j2ocXNKX8boCQVldt26Jqm2tZE4KlrvnCIV78owPLv1pEUgqhxZ3w==", "requires": { "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", "@solana/buffer-layout": "^4.0.0", "agentkeepalive": "^4.2.1", "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", "borsh": "^0.7.0", "bs58": "^4.0.1", - "buffer": "6.0.1", + "buffer": "6.0.3", "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", + "jayson": "^4.1.0", "node-fetch": "^2.6.7", "rpc-websockets": "^7.5.1", "superstruct": "^0.14.2" @@ -27631,9 +28504,9 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "buffer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz", - "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -28104,22 +28977,26 @@ "@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "devOptional": true }, "@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "devOptional": true }, "@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "devOptional": true }, "@tsconfig/node16": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "devOptional": true }, "@types/aria-query": { "version": "4.2.2", @@ -28217,6 +29094,14 @@ "@types/node": "*" } }, + "@types/debug": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.8.tgz", + "integrity": "sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==", + "requires": { + "@types/ms": "*" + } + }, "@types/eslint": { "version": "8.37.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", @@ -28342,10 +29227,15 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" }, "@types/parse-json": { "version": "4.0.0", @@ -28369,7 +29259,7 @@ "version": "15.7.4", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", - "dev": true + "devOptional": true }, "@types/q": { "version": "1.5.5", @@ -28390,7 +29280,7 @@ "version": "17.0.40", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.40.tgz", "integrity": "sha512-UrXhD/JyLH+W70nNSufXqMZNuUD2cXHu6UjCllC6pmOQgBX4SGXOH8fjRka0O0Ee0HrFxapDD8Bwn81Kmiz6jQ==", - "dev": true, + "devOptional": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -28401,7 +29291,7 @@ "version": "17.0.13", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.13.tgz", "integrity": "sha512-wEP+B8hzvy6ORDv1QBhcQia4j6ea4SFIBttHYpXKPFZRviBvknq0FRh3VrIxeXUmsPkwuXVZrVGG7KUVONmXCQ==", - "dev": true, + "devOptional": true, "requires": { "@types/react": "*" } @@ -28431,7 +29321,7 @@ "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", - "dev": true + "devOptional": true }, "@types/secp256k1": { "version": "4.0.3", @@ -28620,45 +29510,37 @@ } }, "@wagmi/chains": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@wagmi/chains/-/chains-0.2.15.tgz", - "integrity": "sha512-yeNamxRmqq1/PirJqCpKHSJcetZ9ivZdJnCIvNvJifpCz1A2dLlD1+NON11saiyShH7tshS5Eaf0pm9Luna8JQ==", + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@wagmi/chains/-/chains-0.2.22.tgz", + "integrity": "sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg==", "requires": {} }, - "@wagmi/connectors": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-0.3.10.tgz", - "integrity": "sha512-O9wa6N47TJtpVdBXaONxXXjiq9ahXboGbBnf6m5tb4RIirCzEY7gnsJYYd61k3TQjd9T++xKKKzDTysm37hUHg==", - "requires": { - "@coinbase/wallet-sdk": "^3.5.4", - "@ledgerhq/connect-kit-loader": "^1.0.1", - "@safe-global/safe-apps-provider": "^0.15.2", - "@safe-global/safe-apps-sdk": "^7.9.0", - "@walletconnect/ethereum-provider": "2.5.2", - "@walletconnect/legacy-provider": "^2.0.0", - "@web3modal/standalone": "2.2.2", - "abitype": "^0.3.0", - "eventemitter3": "^4.0.7" - } - }, "@wagmi/core": { - "version": "0.10.8", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-0.10.8.tgz", - "integrity": "sha512-lBhA7TM6leaYyh7QXWFtmdXX+tTe88MtZmCclBVrT71z9tnX/JxXntEB7aGiHIWFyBNjzgWjBNrBAjxYgxhaCA==", + "version": "0.10.13", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-0.10.13.tgz", + "integrity": "sha512-kGSSR0q7MTXvBqcgk2cOr8rJppxFtT2oeSbGJlQeLEiaakewtJvDeDJj+GRpPA7TqsuujtrZKJQAai1yk7h5HQ==", "requires": { - "@wagmi/chains": "0.2.15", - "@wagmi/connectors": "0.3.10", + "@wagmi/chains": "0.2.22", + "@wagmi/connectors": "0.3.20", "abitype": "^0.3.0", "eventemitter3": "^4.0.7", "zustand": "^4.3.1" }, "dependencies": { - "zustand": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.7.tgz", - "integrity": "sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==", + "@wagmi/connectors": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-0.3.20.tgz", + "integrity": "sha512-zhyUttUDocNKoIHVfAn5oXrtIzOhUVEMIl9J64Ld+6G+i5dmObx5oqnkVUkiOTOazMWpWanQiaXiuN1qdjSc/w==", "requires": { - "use-sync-external-store": "1.2.0" + "@coinbase/wallet-sdk": "^3.6.6", + "@ledgerhq/connect-kit-loader": "^1.0.1", + "@safe-global/safe-apps-provider": "^0.15.2", + "@safe-global/safe-apps-sdk": "^7.9.0", + "@walletconnect/ethereum-provider": "2.8.0", + "@walletconnect/legacy-provider": "^2.0.0", + "@walletconnect/modal": "^2.4.5", + "abitype": "^0.3.0", + "eventemitter3": "^4.0.7" } } } @@ -28768,25 +29650,25 @@ } }, "@walletconnect/core": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.5.2.tgz", - "integrity": "sha512-R0D9NKgHBpdun65q+1L49GOIGDLaIodnyb+Dq0tXGVzvXzy2lkXOlh2e9am61ixaVrUsHt7b96b318geqsuk4Q==", - "requires": { - "@walletconnect/heartbeat": "1.2.0", - "@walletconnect/jsonrpc-provider": "1.0.10", - "@walletconnect/jsonrpc-utils": "^1.0.4", - "@walletconnect/jsonrpc-ws-connection": "1.0.10", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.8.0.tgz", + "integrity": "sha512-pl7x4sq1nuU0ixA9wF2ecjDecUzIauKr7ZwC29rs9qTcmDpxgJbbOdZwaSl+dJlf1bHC87adVLf5KAkwwo9PzQ==", + "requires": { + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-provider": "1.0.13", + "@walletconnect/jsonrpc-types": "1.0.3", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "^1.0.11", "@walletconnect/keyvaluestorage": "^1.0.2", "@walletconnect/logger": "^2.0.1", "@walletconnect/relay-api": "^1.0.9", "@walletconnect/relay-auth": "^1.0.4", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/safe-json": "^1.0.2", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/utils": "2.5.2", + "@walletconnect/types": "2.8.0", + "@walletconnect/utils": "2.8.0", "events": "^3.3.0", "lodash.isequal": "4.5.0", - "pino": "7.11.0", "uint8arrays": "^3.1.0" }, "dependencies": { @@ -28864,18 +29746,18 @@ } }, "@walletconnect/ethereum-provider": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.5.2.tgz", - "integrity": "sha512-WEN85tsuHgvoiMK4KpsRsOgsKB0QLCctSwxTqyWDybBbXuJRJGWXkZ6Oma9VSmUR0MgPSjiGmOFgY4ybMlhEMA==", - "requires": { - "@walletconnect/jsonrpc-http-connection": "^1.0.4", - "@walletconnect/jsonrpc-provider": "^1.0.6", - "@walletconnect/jsonrpc-types": "^1.0.2", - "@walletconnect/jsonrpc-utils": "^1.0.4", - "@walletconnect/sign-client": "2.5.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/universal-provider": "2.5.2", - "@walletconnect/utils": "2.5.2", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.8.0.tgz", + "integrity": "sha512-nVVJtZUpoeurFjoEPYlrUHkT3YleCpEC9YAMKJyEIB3MZZInttcGxGyi0vwFQ+trCfuX8RrdKUPQ952NvxvCvw==", + "requires": { + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "^1.0.13", + "@walletconnect/jsonrpc-types": "^1.0.3", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/sign-client": "2.8.0", + "@walletconnect/types": "2.8.0", + "@walletconnect/universal-provider": "2.8.0", + "@walletconnect/utils": "2.8.0", "events": "^3.3.0" } }, @@ -28896,15 +29778,12 @@ } }, "@walletconnect/heartbeat": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.0.tgz", - "integrity": "sha512-0vbzTa/ARrpmMmOD+bQMxPvFYKtOLQZObgZakrYr0aODiMOO71CmPVNV2eAqXnw9rMmcP+z91OybLeIFlwTjjA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz", + "integrity": "sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==", "requires": { "@walletconnect/events": "^1.0.1", "@walletconnect/time": "^1.0.2", - "chai": "^4.3.7", - "mocha": "^10.2.0", - "ts-node": "^10.9.1", "tslib": "1.14.1" }, "dependencies": { @@ -28967,9 +29846,9 @@ } }, "@walletconnect/jsonrpc-http-connection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.6.tgz", - "integrity": "sha512-/3zSqDi7JDN06E4qm0NmVYMitngXfh21UWwy8zeJcBeJc+Jcs094EbLsIxtziIIKTCCbT88lWuTjl1ZujxN7cw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.7.tgz", + "integrity": "sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==", "requires": { "@walletconnect/jsonrpc-utils": "^1.0.6", "@walletconnect/safe-json": "^1.0.1", @@ -28985,12 +29864,12 @@ } }, "@walletconnect/jsonrpc-provider": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.10.tgz", - "integrity": "sha512-g0ffPSpY3P6GqGjWGHsr3yqvQUhj7q2k6pAikoXv5XTXWaJRzFvrlbFkSgxziXsBrwrMZn0qvPufvpN4mMZ5FA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz", + "integrity": "sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==", "requires": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", "tslib": "1.14.1" }, "dependencies": { @@ -29002,9 +29881,9 @@ } }, "@walletconnect/jsonrpc-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.2.tgz", - "integrity": "sha512-CZe8tjJX73OWdHjrBHy7HtAapJ2tT0Q3TYhPBhRxi3643lwPIQWC9En45ldY14TZwgSewkbZ0FtGBZK0G7Bbyg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz", + "integrity": "sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==", "requires": { "keyvaluestorage-interface": "^1.0.0", "tslib": "1.14.1" @@ -29018,12 +29897,12 @@ } }, "@walletconnect/jsonrpc-utils": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.6.tgz", - "integrity": "sha512-snp0tfkjPiDLQp/jrBewI+9SM33GPV4+Gjgldod6XQ7rFyQ5FZjnBxUkY4xWH0+arNxzQSi6v5iDXjCjSaorpg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", "requires": { "@walletconnect/environment": "^1.0.1", - "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/jsonrpc-types": "^1.0.3", "tslib": "1.14.1" }, "dependencies": { @@ -29035,12 +29914,12 @@ } }, "@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.10.tgz", - "integrity": "sha512-/tidvjfCXZuYugjF5fOswsNDPoMo9QRML3DFQ0dfNUarL4f5HGqu8NDGerr2n0+4MOX23GsT6Vv2POSwFbvgGw==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.12.tgz", + "integrity": "sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w==", "requires": { "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/safe-json": "^1.0.2", "events": "^3.3.0", "tslib": "1.14.1", "ws": "^7.5.1" @@ -29170,6 +30049,46 @@ } } }, + "@walletconnect/modal": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.5.9.tgz", + "integrity": "sha512-Zs2RvPwbBNRdBhb50FuJCxi3FJltt1KSpI7odjU/x9GTpTOcSOkmR66PBCy2JvNA0+ztnS1Xs0LVEr3lu7/Jzw==", + "requires": { + "@walletconnect/modal-core": "2.5.9", + "@walletconnect/modal-ui": "2.5.9" + } + }, + "@walletconnect/modal-core": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.5.9.tgz", + "integrity": "sha512-isIebwF9hOknGouhS/Ob4YJ9Sa/tqNYG2v6Ua9EkCqIoLimepkG5eC53tslUWW29SLSfQ9qqBNG2+iE7yQXqgw==", + "requires": { + "buffer": "6.0.3", + "valtio": "1.10.6" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "@walletconnect/modal-ui": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.5.9.tgz", + "integrity": "sha512-nfBaAT9Ls7RZTBBgAq+Nt/3AoUcinIJ9bcq5UHXTV3lOPu/qCKmUC/0HY3GvUK8ykabUAsjr0OAGmcqkB91qug==", + "requires": { + "@walletconnect/modal-core": "2.5.9", + "lit": "2.7.5", + "motion": "10.16.2", + "qrcode": "1.5.3" + } + }, "@walletconnect/randombytes": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.3.tgz", @@ -29225,9 +30144,9 @@ } }, "@walletconnect/safe-json": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.1.tgz", - "integrity": "sha512-Fm7e31oSYY15NQr8SsLJheKAy5L744udZf2lJKcz6wFmPJEzf7hOF0866o/rrldRzJnjZ4H2GJ45pFudsnLW5A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", "requires": { "tslib": "1.14.1" }, @@ -29240,20 +30159,19 @@ } }, "@walletconnect/sign-client": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.5.2.tgz", - "integrity": "sha512-eKUnGCVgYqN+6b4gm27ML/064m0c/2hTlTHy6tbUszYtEPTzb+q4fvpnWs6blaOjzc18l8NFwX3c1+MHxVdQUQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.8.0.tgz", + "integrity": "sha512-+l9qwvVeUGk0fBQsgx6yb6hdGYt8uQ3a9jR9GgsJvm8FjFh1oUzTKqFnG7XdhCBnzFnbSoLr41Xe8PbN8qoUSw==", "requires": { - "@walletconnect/core": "2.5.2", + "@walletconnect/core": "2.8.0", "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.0", - "@walletconnect/jsonrpc-utils": "^1.0.4", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "^2.0.1", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/utils": "2.5.2", - "events": "^3.3.0", - "pino": "7.11.0" + "@walletconnect/types": "2.8.0", + "@walletconnect/utils": "2.8.0", + "events": "^3.3.0" } }, "@walletconnect/socket-transport": { @@ -29329,13 +30247,13 @@ } }, "@walletconnect/types": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.5.2.tgz", - "integrity": "sha512-VnV43qs4f2hwv6wGQ9ZSE+smP0z2oVy2XaVO5Szd2fmOx9bB+ov+sQzh9xeoQ+DhjNrbJhUaecW/peE6CPPSag==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.8.0.tgz", + "integrity": "sha512-FMeGK3lGXFDwcs5duoN74xL1aLrkgYqnavWE0DnFPt2i1QmSUITU9c8f88EDh8uPXANd2WIYOItm0DVCNxLGGA==", "requires": { "@walletconnect/events": "^1.0.1", - "@walletconnect/heartbeat": "1.2.0", - "@walletconnect/jsonrpc-types": "^1.0.2", + "@walletconnect/heartbeat": "1.2.1", + "@walletconnect/jsonrpc-types": "1.0.3", "@walletconnect/keyvaluestorage": "^1.0.2", "@walletconnect/logger": "^2.0.1", "events": "^3.3.0" @@ -29358,51 +30276,49 @@ } }, "@walletconnect/universal-provider": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.5.2.tgz", - "integrity": "sha512-R61VL02zvcljwSC+FJVzxGswbN21tokQLG0IQL1tVq30+KfkZOt0y/UxsDNvgHNGleGgfoQZzOWsfSLgp5pcBQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.8.0.tgz", + "integrity": "sha512-BMsGiINI3rT7DRyDJM7miuWG6vDVE0PV6zMcCXIMDYYPay7zFvJxv2VHEx9an4MutrvQR76NTRyG//i1K84VOQ==", "requires": { - "@walletconnect/jsonrpc-http-connection": "^1.0.4", - "@walletconnect/jsonrpc-provider": "^1.0.6", + "@walletconnect/jsonrpc-http-connection": "^1.0.7", + "@walletconnect/jsonrpc-provider": "1.0.13", "@walletconnect/jsonrpc-types": "^1.0.2", - "@walletconnect/jsonrpc-utils": "^1.0.4", + "@walletconnect/jsonrpc-utils": "^1.0.7", "@walletconnect/logger": "^2.0.1", - "@walletconnect/sign-client": "2.5.2", - "@walletconnect/types": "2.5.2", - "@walletconnect/utils": "2.5.2", + "@walletconnect/sign-client": "2.8.0", + "@walletconnect/types": "2.8.0", + "@walletconnect/utils": "2.8.0", "eip1193-provider": "1.0.1", - "events": "^3.3.0", - "pino": "7.11.0" + "events": "^3.3.0" } }, "@walletconnect/utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.5.2.tgz", - "integrity": "sha512-s5bpY5q/RaXMc6LgPp+E7qPbKhrff9TjrLRjN2m9COnt9cERowpQEFrPzWmh10FatRZ7dNrudJ5I/c36nFc+hw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.8.0.tgz", + "integrity": "sha512-Q8OwMtUevIn1+64LXyTMLlhH58k3UOAjU5b3smYZ7CEEmwEGpOTfTDAWrB3v+ZDIhjyqP94+8fuvKIbcVLKLWA==", "requires": { "@stablelib/chacha20poly1305": "1.0.1", "@stablelib/hkdf": "1.0.1", "@stablelib/random": "^1.0.2", "@stablelib/sha256": "1.0.1", "@stablelib/x25519": "^1.0.3", - "@walletconnect/jsonrpc-utils": "^1.0.4", "@walletconnect/relay-api": "^1.0.9", - "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/safe-json": "^1.0.2", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.5.2", + "@walletconnect/types": "2.8.0", "@walletconnect/window-getters": "^1.0.1", "@walletconnect/window-metadata": "^1.0.1", "detect-browser": "5.3.0", - "query-string": "7.1.1", + "query-string": "7.1.3", "uint8arrays": "^3.1.0" }, "dependencies": { "query-string": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", - "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", "requires": { - "decode-uri-component": "^0.2.0", + "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" @@ -29446,46 +30362,6 @@ } } }, - "@web3modal/core": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@web3modal/core/-/core-2.2.2.tgz", - "integrity": "sha512-RKbYNIEVP5Hwiva68PWXExbkTFLUTasneyRpcjoQSM4BIh78qXp1YMt0nyTvFdHmHQEGxXEMCuRG5qoE97uMHA==", - "requires": { - "buffer": "6.0.3", - "valtio": "1.10.3" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "@web3modal/standalone": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@web3modal/standalone/-/standalone-2.2.2.tgz", - "integrity": "sha512-c05kkTFNGZqnjJ3n2C8uo+wWL6ut1jexGYAyTvbweDengdsOr8LDo0VpK5V3XSKCV2fFcPh5JE9H1aA4jpnZPg==", - "requires": { - "@web3modal/core": "2.2.2", - "@web3modal/ui": "2.2.2" - } - }, - "@web3modal/ui": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@web3modal/ui/-/ui-2.2.2.tgz", - "integrity": "sha512-PAuMOuk4sZ4UGjucGMZKzu6Qu56XtFsgLaqOn8ZgP2RkZmYEBGSG9mUQVzJd3XzfzAy1T91Wmqp/3TI3m0pXuQ==", - "requires": { - "@web3modal/core": "2.2.2", - "lit": "2.6.1", - "motion": "10.15.5", - "qrcode": "1.5.1" - } - }, "@webassemblyjs/ast": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", @@ -29783,9 +30659,9 @@ "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" }, "algosdk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.3.0.tgz", - "integrity": "sha512-voxoY2eue2CkzwkTh6UNN5JUeVOBL9qoNX3N/+OYwS2/Xd17ACSs6tLV/6dZumEgPa40ZL8TkO4zQF/ysDpy8w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", + "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", "requires": { "algo-msgpack-with-bigint": "^2.1.1", "buffer": "^6.0.3", @@ -29908,7 +30784,8 @@ "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": true }, "argparse": { "version": "1.0.10", @@ -29918,6 +30795,14 @@ "sprintf-js": "~1.0.2" } }, + "aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "requires": { + "tslib": "^2.0.0" + } + }, "aria-query": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", @@ -30046,11 +30931,6 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -30313,6 +31193,18 @@ "@babel/helper-define-polyfill-provider": "^0.3.1" } }, + "babel-plugin-styled-components": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", + "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "lodash": "^4.17.21", + "picomatch": "^2.3.1" + } + }, "babel-plugin-transform-react-remove-prop-types": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", @@ -30586,11 +31478,6 @@ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -30807,6 +31694,11 @@ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, + "camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -30833,20 +31725,6 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -30867,11 +31745,6 @@ "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==" }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" - }, "check-types": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", @@ -31284,7 +32157,8 @@ "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "devOptional": true }, "cross-fetch": { "version": "3.1.5", @@ -31346,6 +32220,11 @@ "postcss-selector-parser": "^6.0.9" } }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" + }, "css-declaration-sorter": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", @@ -31448,6 +32327,16 @@ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, + "css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -31578,7 +32467,7 @@ "version": "3.0.11", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", - "dev": true + "devOptional": true }, "d": { "version": "1.0.1", @@ -31627,6 +32516,11 @@ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -31646,9 +32540,9 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" }, "decompress-response": { "version": "6.0.0", @@ -31670,14 +32564,6 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "requires": { - "type-detect": "^4.0.0" - } - }, "deep-equal": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", @@ -31784,6 +32670,11 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, "detect-port-alt": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", @@ -31813,11 +32704,6 @@ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, "diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -31968,6 +32854,17 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, + "duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -32811,16 +33708,14 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eth-block-tracker": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", - "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-6.1.0.tgz", + "integrity": "sha512-K9SY8+/xMBi4M5HHTDdxnpEqEEGjbNpzHFqvxyjMZej8InV/B+CkFRKM6W+uvrFJ7m8Zd1E0qUkseU3vdIDFYQ==", "requires": { - "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/runtime": "^7.5.5", - "eth-query": "^2.1.0", + "@metamask/safe-event-emitter": "^2.0.0", + "@metamask/utils": "^3.0.1", "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0", - "safe-event-emitter": "^1.0.1" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -33187,9 +34082,9 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fast-redact": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", + "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==" }, "fast-safe-stringify": { "version": "2.1.1", @@ -33348,11 +34243,6 @@ "path-exists": "^4.0.0" } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -33521,6 +34411,43 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" }, + "framer-motion": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz", + "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==", + "requires": { + "@emotion/is-prop-valid": "^0.8.2", + "@motionone/dom": "10.12.0", + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "popmotion": "11.0.3", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + }, + "dependencies": { + "@motionone/dom": { + "version": "10.12.0", + "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz", + "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==", + "requires": { + "@motionone/animation": "^10.12.0", + "@motionone/generators": "^10.12.0", + "@motionone/types": "^10.12.0", + "@motionone/utils": "^10.12.0", + "hey-listen": "^1.0.8", + "tslib": "^2.3.1" + } + } + } + }, + "framesync": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz", + "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==", + "requires": { + "tslib": "^2.1.0" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -33591,11 +34518,6 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" - }, "get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -33607,6 +34529,11 @@ "has-symbols": "^1.0.3" } }, + "get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -33911,6 +34838,21 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, "hoopy": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", @@ -34244,6 +35186,14 @@ "side-channel": "^1.0.4" } }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -34298,6 +35248,14 @@ "has-tostringtag": "^1.0.0" } }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "requires": { + "builtin-modules": "^3.3.0" + } + }, "is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -34501,11 +35459,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - }, "is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -34688,9 +35641,9 @@ } }, "jayson": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", - "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", "requires": { "@types/connect": "^3.4.33", "@types/node": "^12.12.54", @@ -34702,7 +35655,6 @@ "isomorphic-ws": "^4.0.1", "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", - "lodash": "^4.17.20", "uuid": "^8.3.2", "ws": "^7.4.5" }, @@ -36415,19 +37367,19 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "lit": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/lit/-/lit-2.6.1.tgz", - "integrity": "sha512-DT87LD64f8acR7uVp7kZfhLRrHkfC/N4BVzAtnw9Yg8087mbBJ//qedwdwX0kzDbxgPccWRW6mFwGbRQIxy0pw==", + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.7.5.tgz", + "integrity": "sha512-i/cH7Ye6nBDUASMnfwcictBnsTN91+aBjXoTHF2xARghXScKxpD4F4WYI+VLXg9lqbMinDfvoI7VnZXjyHgdfQ==", "requires": { "@lit/reactive-element": "^1.6.0", - "lit-element": "^3.2.0", - "lit-html": "^2.6.0" + "lit-element": "^3.3.0", + "lit-html": "^2.7.0" } }, "lit-element": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.0.tgz", - "integrity": "sha512-M3OIoblNS7LZdRxOIk8g0wyLEA/lRw/UGJ1TX+767OpkuDsRdSoxBIvewpWqCo7sMd9xt1XedUNZIr9jUO1X3g==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.2.tgz", + "integrity": "sha512-xXAeVWKGr4/njq0rGC9dethMnYCq5hpKYrgQZYTzawt9YQhMiXfD+T1RgrdY3NamOxwq2aXlb0vOI6e29CKgVQ==", "requires": { "@lit-labs/ssr-dom-shim": "^1.1.0", "@lit/reactive-element": "^1.3.0", @@ -36435,9 +37387,9 @@ } }, "lit-html": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.0.tgz", - "integrity": "sha512-/zPOl8EfeB3HHpTzINSpnWgvgQ8N07g/j272EOAIyB0Ys2RzBqTVT23i+JZuUlNbB2WHHeSsTCFi92NtWrtpqQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.7.4.tgz", + "integrity": "sha512-/Jw+FBpeEN+z8X6PJva5n7+0MzCVAH2yypN99qHYYkq8bI+j7I39GH+68Z/MZD6rGKDK9RpzBw7CocfmHfq6+g==", "requires": { "@types/trusted-types": "^2.0.2" } @@ -36500,60 +37452,6 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -36562,14 +37460,6 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "requires": { - "get-func-name": "^2.0.0" - } - }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -36592,9 +37482,9 @@ } }, "lucid-cardano": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/lucid-cardano/-/lucid-cardano-0.10.5.tgz", - "integrity": "sha512-kz1stnvf4hoL17qd2kQZtiGrWxCCHU3QHLyBBONmnHLOhqYzFagYWe8S/JTghDuCIBTl+R29e3o5YwTnNLg2SQ==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/lucid-cardano/-/lucid-cardano-0.10.6.tgz", + "integrity": "sha512-thZRR3YOHFvuSthwv5yd6C+kNXFhY50b8x5K0oaBLF9Wj7qOzBOhdV9Hoy3DvEAgFVscYCIjKo5gZ3NQZBn93A==", "requires": { "@peculiar/webcrypto": "^1.4.0", "node-fetch": "^3.2.3", @@ -36619,6 +37509,12 @@ } } }, + "lucide-react": { + "version": "0.252.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.252.0.tgz", + "integrity": "sha512-98hUdm23F3YlC3UN4mzv1FAsWr81YYdxF31cYhm19c51FwOph4dn5B4NjKp45UXBiR1Xx+cKrdmSIZX0ldS8zw==", + "requires": {} + }, "lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", @@ -36651,7 +37547,8 @@ "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "devOptional": true }, "makeerror": { "version": "1.0.12", @@ -36724,9 +37621,9 @@ } }, "milkomeda-wsc": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.1.13.tgz", - "integrity": "sha512-nj8+D8MV1RHHYOID7scc5LFzJ/Stz3GC0NTbA1+am49ba0SKVzNPc71pNewi573T/GPtLfwQlzTTBsiyOphDXA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.2.1.tgz", + "integrity": "sha512-5bRkBWx52P1pLXjik6u2cbUOn/KTo5x9B6m+JDNW92ighMVlHlrvt1WkIVHyyLkFnnxsgqc09Tj6Zoio5S9aUg==", "requires": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -36756,9 +37653,9 @@ } }, "milkomeda-wsc-provider": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.2.tgz", - "integrity": "sha512-IrT6y165WD8eISEDLolkWCCs1TcqDnlWusURCQhcvpwsOwIbeLQ93dfR5rbNSmtnfQvZzNegppljwYlFsjWGow==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.3.tgz", + "integrity": "sha512-enWfxENeD+FUR0VIel+TyUGYp8xDwR+WMb6Gn9M5dtO+wMazwmYIqSlPz07ZxChugITFq9zoOQzSO902BTjEMQ==", "requires": { "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1", "@perawallet/connect": "^1.2.3", @@ -36767,6 +37664,114 @@ "zod": "^3.20.2" } }, + "milkomeda-wsc-ui": { + "version": "file:.yalc/milkomeda-wsc-ui", + "requires": { + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-separator": "^1.0.3", + "@rollup/plugin-node-resolve": "^13.1.3", + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "framer-motion": "^6.3.11", + "lucide-react": "^0.252.0", + "milkomeda-wsc": "0.2.1", + "qrcode": "^1.5.0", + "react": "17.x || 18.x", + "react-confetti": "^6.1.0", + "react-dom": "17.x || 18.x", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "resize-observer-polyfill": "^1.5.1", + "rollup": "^2.67.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.34.0", + "rollup-plugin-visualizer": "^5.5.4", + "styled-components": "^5.3.5", + "tslib": "^2.5.3", + "typescript-plugin-styled-components": "^2.0.0", + "wagmi": "0.12.15" + }, + "dependencies": { + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "milkomeda-wsc-ui-test-beta": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.1.tgz", + "integrity": "sha512-2EUaSPF/jRn56MvZM0h9XiifNXr/S6nqRmILYBE/kvY/btF8hL8LA6iI8Ef1ONmknxWjUJ2eCXFnFvbXU4ugMw==", + "requires": { + "@radix-ui/react-dialog": "^1.0.4", + "@radix-ui/react-separator": "^1.0.3", + "@rollup/plugin-node-resolve": "^13.1.3", + "buffer": "^6.0.3", + "detect-browser": "^5.3.0", + "framer-motion": "^6.3.11", + "lucide-react": "^0.252.0", + "milkomeda-wsc": "0.2.1", + "qrcode": "^1.5.0", + "react": "17.x || 18.x", + "react-confetti": "^6.1.0", + "react-dom": "17.x || 18.x", + "react-transition-state": "^1.1.4", + "react-use-measure": "^2.1.1", + "resize-observer-polyfill": "^1.5.1", + "rollup": "^2.67.1", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.34.0", + "rollup-plugin-visualizer": "^5.5.4", + "styled-components": "^5.3.5", + "tslib": "^2.5.3", + "typescript-plugin-styled-components": "^2.0.0", + "wagmi": "0.12.15" + }, + "dependencies": { + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -36926,229 +37931,6 @@ "mkdirp": "*" } }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - } - } - }, "mock-fs": { "version": "4.14.0", "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", @@ -37160,16 +37942,16 @@ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, "motion": { - "version": "10.15.5", - "resolved": "https://registry.npmjs.org/motion/-/motion-10.15.5.tgz", - "integrity": "sha512-ejP6KioN4pigTGxL93APzOnvtLklParL59UQB2T3HWXQBxFcIp5/7YXFmkgiA6pNKKzjvnLhnonRBN5iSFMnNw==", + "version": "10.16.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", + "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==", "requires": { "@motionone/animation": "^10.15.1", - "@motionone/dom": "^10.15.5", - "@motionone/svelte": "^10.15.5", + "@motionone/dom": "^10.16.2", + "@motionone/svelte": "^10.16.2", "@motionone/types": "^10.15.1", "@motionone/utils": "^10.15.1", - "@motionone/vue": "^10.15.5" + "@motionone/vue": "^10.16.2" } }, "ms": { @@ -37692,11 +38474,6 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, "pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -37754,19 +38531,6 @@ "requires": { "duplexify": "^4.1.2", "split2": "^4.0.0" - }, - "dependencies": { - "duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - } } }, "pino-std-serializers": { @@ -37832,6 +38596,17 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" }, + "popmotion": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz", + "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==", + "requires": { + "framesync": "6.0.1", + "hey-listen": "^1.0.8", + "style-value-types": "5.0.0", + "tslib": "^2.1.0" + } + }, "postcss": { "version": "8.4.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", @@ -38489,9 +39264,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "preact": { - "version": "10.13.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", - "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==" + "version": "10.15.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz", + "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==" }, "prelude-ls": { "version": "1.2.1", @@ -38594,9 +39369,9 @@ } }, "proxy-compare": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.0.tgz", - "integrity": "sha512-f1us0OsVAJ3tdIMXGQx2lmseYS4YXe4W+sKF5g5ww/jV+5ogMadPt+sIZ+88Ga9kvMJsrRNWzCrKPpr6pMWYbA==" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz", + "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==" }, "psl": { "version": "1.8.0", @@ -38657,9 +39432,9 @@ } }, "qrcode": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.1.tgz", - "integrity": "sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", "requires": { "dijkstrajs": "^1.0.1", "encode-utf8": "^1.0.3", @@ -39176,6 +39951,14 @@ "whatwg-fetch": "^3.6.2" } }, + "react-confetti": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-confetti/-/react-confetti-6.1.0.tgz", + "integrity": "sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==", + "requires": { + "tween-functions": "^1.2.0" + } + }, "react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", @@ -39320,6 +40103,27 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, + "react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "requires": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + } + }, + "react-remove-scroll-bar": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", + "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "requires": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + } + }, "react-router": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz", @@ -39392,6 +40196,30 @@ "workbox-webpack-plugin": "^6.4.1" } }, + "react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "requires": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + } + }, + "react-transition-state": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-transition-state/-/react-transition-state-1.1.5.tgz", + "integrity": "sha512-ITY2mZqc2dWG2eitJkYNdcSFW8aKeOlkL2A/vowRrLL8GH3J6Re/SpD/BLvQzrVOTqjsP0b5S9N10vgNNzwMUQ==", + "requires": {} + }, + "react-use-measure": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz", + "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==", + "requires": { + "debounce": "^1.2.1" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -39741,6 +40569,12 @@ "fsevents": "~2.3.2" } }, + "rollup-plugin-peer-deps-external": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz", + "integrity": "sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==", + "requires": {} + }, "rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", @@ -39785,6 +40619,117 @@ } } }, + "rollup-plugin-typescript2": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.34.1.tgz", + "integrity": "sha512-P4cHLtGikESmqi1CA+tdMDUv8WbQV48mzPYt77TSTOPJpERyZ9TXdDgjSDix8Fkqce6soYz3+fa4lrC93IEkcw==", + "requires": { + "@rollup/pluginutils": "^4.1.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.0.0", + "semver": "^7.3.7", + "tslib": "^2.4.0" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + } + } + }, + "rollup-plugin-visualizer": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz", + "integrity": "sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==", + "requires": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } + } + }, "rpc-websockets": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", @@ -39834,14 +40779,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safe-event-emitter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", - "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", - "requires": { - "events": "^3.0.0" - } - }, "safe-json-utils": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/safe-json-utils/-/safe-json-utils-1.1.1.tgz", @@ -40544,6 +41481,47 @@ "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", "requires": {} }, + "style-value-types": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz", + "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==", + "requires": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + } + }, + "styled-components": { + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz", + "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^1.1.0", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "dependencies": { + "@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + } + } + }, "stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", @@ -41073,6 +42051,7 @@ "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "devOptional": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -41092,12 +42071,14 @@ "acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "devOptional": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "devOptional": true } } }, @@ -41128,9 +42109,9 @@ } }, "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" }, "tsutils": { "version": "3.21.0", @@ -41155,6 +42136,11 @@ "safe-buffer": "^5.0.1" } }, + "tween-functions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", + "integrity": "sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==" + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -41211,11 +42197,17 @@ } }, "typescript": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.1.tgz", - "integrity": "sha512-jw7P2z/h6aPT4AENXDGjcfHTu5CSqzsbZc6YlUIebTyBAq8XaKp78x7VcSh30xwSCcsu5irZkYZUSFP1MrAMbg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "peer": true }, + "typescript-plugin-styled-components": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/typescript-plugin-styled-components/-/typescript-plugin-styled-components-2.0.0.tgz", + "integrity": "sha512-Wu7F96dwuphgiACHfu63vTbRRg6tkPwLnpFJwdxM70Y0PLfeKLRnvs2Yo5MAySMwE120ODMKk9W4TtJgY1ZumA==", + "requires": {} + }, "uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", @@ -41323,6 +42315,23 @@ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==" }, + "use-callback-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", + "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "requires": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + } + }, "use-sync-external-store": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", @@ -41387,7 +42396,8 @@ "v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "devOptional": true }, "v8-to-istanbul": { "version": "8.1.1", @@ -41407,11 +42417,11 @@ } }, "valtio": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.10.3.tgz", - "integrity": "sha512-t3Ez/+baJ+Z5tIyeaI6nCAbW/hrmcq2jditwg/X++o5IvCdiGirQKTOv1kJq0glgUo13v5oABCVGcinggBfiKw==", + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.10.6.tgz", + "integrity": "sha512-SxN1bHUmdhW6V8qsQTpCgJEwp7uHbntuH0S9cdLQtiohuevwBksbpXjwj5uDMA7bLwg1WKyq9sEpZrx3TIMrkA==", "requires": { - "proxy-compare": "2.5.0", + "proxy-compare": "2.5.1", "use-sync-external-store": "1.2.0" } }, @@ -41464,14 +42474,14 @@ } }, "wagmi": { - "version": "0.12.8", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-0.12.8.tgz", - "integrity": "sha512-llLlk6rl9MOqE1HgFtDBSJlUetmAD6WR68EvvGTZYXmw1lu9vHPcfoNHAB9pq/i7S3jTDLyv+Z+NGGoyryVS6w==", - "requires": { - "@tanstack/query-sync-storage-persister": "^4.14.5", - "@tanstack/react-query": "^4.14.5", - "@tanstack/react-query-persist-client": "^4.14.5", - "@wagmi/core": "0.10.8", + "version": "0.12.15", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-0.12.15.tgz", + "integrity": "sha512-0j5Sn+gW9vgbZP1naR6pCeTg2zvMz+G4Rv7VbSDyUe1X5m/QQVdZc9FJ+THwO5+YcNAnxsEio5pHTwGfc43GsA==", + "requires": { + "@tanstack/query-sync-storage-persister": "^4.27.1", + "@tanstack/react-query": "^4.28.0", + "@tanstack/react-query-persist-client": "^4.28.0", + "@wagmi/core": "0.10.13", "abitype": "^0.3.0", "use-sync-external-store": "^1.2.0" }, @@ -42475,11 +43485,6 @@ "workbox-core": "6.5.4" } }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -42637,33 +43642,11 @@ } } }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - } - } - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "devOptional": true }, "yocto-queue": { "version": "0.1.0", @@ -42674,6 +43657,14 @@ "version": "3.21.4", "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==" + }, + "zustand": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.8.tgz", + "integrity": "sha512-4h28KCkHg5ii/wcFFJ5Fp+k1J3gJoasaIbppdgZFO4BPJnsNxL0mQXBSFgOgAdCdBj35aDTPvdAJReTMntFPGg==", + "requires": { + "use-sync-external-store": "1.2.0" + } } } } diff --git a/package.json b/package.json index ace9278a..7ef3706b 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,15 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc": "^0.1.13", + "milkomeda-wsc": "0.2.1", + "milkomeda-wsc-ui": "file:.yalc/milkomeda-wsc-ui", + "milkomeda-wsc-ui-test-beta": "^0.0.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", "react-scripts": "^5.0.1", "stream-browserify": "^3.0.0", - "wagmi": "^0.12.8", + "wagmi": "0.12.15", "web-vitals": "^2.1.4", "web3": "^1.7.3" }, @@ -50,7 +52,7 @@ "prettier": "^2.6.2", "sass": "^1.49.9" }, - "overrides": { - "typescript": "3.2.1" + "resolutions": { + "ethers": "^5.7.2" } } diff --git a/src/App.js b/src/App.js index 808fb87b..08ed626f 100644 --- a/src/App.js +++ b/src/App.js @@ -9,7 +9,7 @@ import { AppProvider } from "./context/AppProvider"; import { client } from "./utils/web3/wagmi"; import { WagmiConfig } from "wagmi"; import { useEffect } from "react"; -import { WSCProvider } from "./components/wsc-ui/WSCProvider"; +import { ConnectWSCProvider } from "milkomeda-wsc-ui"; export default function App() { useEffect(() => { @@ -20,7 +20,7 @@ export default function App() { - + }> } /> @@ -38,7 +38,7 @@ export default function App() { /> - + diff --git a/src/App.scss b/src/App.scss index 8a379a5e..0c8d9bfb 100644 --- a/src/App.scss +++ b/src/App.scss @@ -4,6 +4,10 @@ body { font-family: "Montserrat", sans-serif; } +iframe { + display: none !important; +} + .logo { display: flex; align-items: center; diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index a7d068a6..e670da9e 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -1,22 +1,41 @@ import React from "react"; import CustomButton from "../../atoms/CustomButton/CustomButton"; import { ArrowRightOutlined } from "@ant-design/icons"; -import WSCButton from "../../wsc-ui/WSCButton/WSCButton"; import "./BuySellButton.scss"; +import { useWSCTransactionConfig, ConnectWSCButton } from "milkomeda-wsc-ui"; const capitalizeString = (string) => { return string?.charAt(0).toUpperCase() + string?.slice(1); }; +// TODO: this might be need to be passed on the config provider +const cardanoAddressTReserveCoin = + "cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e"; +const cardanoAddressTStableCoin = + "27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e"; + +const reserveCoinAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128"; const BuySellButton = ({ onClick, buyOrSell, currencyName, disabled, - currentAmountWei, + currentAmount, onWSCAction, - direction + stepTxDirection }) => { + useWSCTransactionConfig({ + defaultCardanoToken: { + unit: stepTxDirection === "buy" ? "lovelace" : cardanoAddressTReserveCoin, //default lovelace + amount: +currentAmount + }, + cardanoTokenAddress: cardanoAddressTReserveCoin, + evmTokenAddress: reserveCoinAddress, + wscActionCallback: onWSCAction, + stepTxDirection, + titleModal: stepTxDirection === "buy" ? "Buy with WSC" : "Sell with WSC" + }); + return ( <> {/* TODO: remove later */} @@ -28,19 +47,7 @@ const BuySellButton = ({ disabled={disabled} text={`${capitalizeString(buyOrSell)} ${currencyName}`} /> - - - {capitalizeString(buyOrSell)} {currencyName} - - {" "} - + ); }; diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index 6a4ad669..2fcf376c 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -1,12 +1,8 @@ import React from "react"; -import { useAppProvider } from "../../../context/AppProvider"; import "./_FlintWSCContent.scss"; -import { Skeleton, Spin, Tabs, message } from "antd"; +import { Skeleton, Tabs, message } from "antd"; import BigNumber from "bignumber.js"; - -import { MilkomedaConstants } from "milkomeda-wsc/build/MilkomedaConstants"; - -import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; +import { useWSCProvider } from "milkomeda-wsc-ui"; const useInterval = (callback, delay) => { const savedCallback = React.useRef(undefined); @@ -137,53 +133,53 @@ const Step = ({ title, status, caption, isLast }) => { const network = "Cardano C1 Devnet"; const FlintWSCContent = () => { - const { activeConnector } = useAppProvider(); - const [provider, setProvider] = React.useState(null); - - const [pendingTxs, setPendingTxs] = React.useState([]); - const [address, setAddress] = React.useState(null); - const [destinationBalance, setDestinationBalance] = React.useState(null); - const [originBalance, setOriginBalance] = React.useState(null); - const [originTokens, setOriginTokens] = React.useState([]); - const [tokens, setTokens] = React.useState([]); - const [originAddress, setOriginAddress] = React.useState(null); - const [currentSentTxs, setCurrentSentTxs] = React.useState({}); + const { + wscProvider, + pendingTxs, + + address, + destinationBalance, + originBalance, + originTokens, + tokens, + originAddress + } = useWSCProvider(); - const [status, setStatus] = React.useState("idle"); + const [currentSentTxs, setCurrentSentTxs] = React.useState({}); const wrapWrapper = async (destination, assetId, amount) => { - return provider?.wrap(destination, assetId, amount.toNumber()); + return wscProvider?.wrap(destination, assetId, amount.toNumber()); }; useInterval( async () => { - if (!provider || Object.keys(currentSentTxs).length === 0) return; + if (!wscProvider || Object.keys(currentSentTxs).length === 0) return; for (const txHash of Object.keys(currentSentTxs)) { - const response = await provider.getTxStatus(txHash); + const response = await wscProvider.getTxStatus(txHash); - if (response === TxPendingStatus.WaitingL1Confirmation) { + if (response === "WaitingL1Confirmation") { message.loading({ content: `Waiting L1 confirmation for your ${currentSentTxs[txHash]} asset...`, key: txHash, duration: 0 }); } - if (response === TxPendingStatus.WaitingBridgeConfirmation) { + if (response === "WaitingBridgeConfirmation") { message.loading({ content: `Waiting Bridge confirmation for your ${currentSentTxs[txHash]} asset (~3m)...`, key: txHash, duration: 0 }); } - if (response === TxPendingStatus.WaitingL2Confirmation) { + if (response === "WaitingL2Confirmation") { message.loading({ content: `Waiting L2 confirmation for your ${currentSentTxs[txHash]} asset...`, key: txHash, duration: 0 }); } - if (response === TxPendingStatus.Confirmed) { + if (response === "Confirmed") { message.success({ content: `Your ${currentSentTxs[txHash]} asset has been successfully moved!`, key: txHash, @@ -195,70 +191,23 @@ const FlintWSCContent = () => { } } }, - Object.keys(currentSentTxs).length === 0 ? 4000 : null + Object.keys(currentSentTxs).length !== 0 ? 4000 : null ); const areTokensAllowed = async (assetIds) => { - return await provider?.areTokensAllowed(assetIds); + return await wscProvider?.areTokensAllowed(assetIds); }; const unwrapWrapper = async (destination, assetId, amount) => { - return provider?.unwrap(destination, assetId, amount); + return wscProvider?.unwrap(destination, assetId, amount); }; const moveAssetsToL1 = async (tokenId, tokenName, amount) => { - await provider?.unwrap(undefined, tokenId, amount); + await wscProvider?.unwrap(undefined, tokenId, amount); }; - const updateWalletData = React.useCallback(async () => { - if (!provider) return; - const destinationBalance = await provider.eth_getBalance(); - setDestinationBalance(destinationBalance); - - const originBalance = await provider.origin_getNativeBalance(); - setOriginBalance(originBalance); - - const pendingTxs = await provider.getPendingTransactions(); - setPendingTxs(pendingTxs ?? []); - - const originTokens = await provider.origin_getTokenBalances(); - setOriginTokens(originTokens ?? []); - - const tokenBalances = await provider.getTokenBalances(); - setTokens(tokenBalances ?? []); - }, [provider]); - - useInterval(() => { - updateWalletData(); - }, 5000); - - React.useEffect(() => { - const init = async () => { - setStatus("pending"); - try { - const provider = await activeConnector.getProvider(); - if (!provider) return; - const address = await provider.eth_getAccount(); - const tokenBalances = await provider.getTokenBalances(); - const originAddress = await provider.origin_getAddress(); - setOriginAddress(originAddress); - - setTokens(tokenBalances ?? []); - await updateWalletData(); - setProvider(provider); - setAddress(address); - setStatus("success"); - } catch (error) { - setStatus("rejected"); - console.error(error); - } - }; - init(); - }, [activeConnector, updateWalletData]); - - const isLoading = status === "pending" || status === "idle"; - const isError = status === "rejected"; - const isSuccess = status === "success"; + const isLoading = wscProvider == null; + const isSuccess = wscProvider != null; const connectionStatus = React.useMemo(() => { const isOriginBalanceNotZero = originBalance != null && originBalance !== 0; @@ -376,12 +325,12 @@ const FlintWSCContent = () => { /> - {isError && ( -

- )} + {/*{isError && (*/} + {/*
*/} + {/*

Something went wrong

*/} + {/*

Please try again later

*/} + {/*
*/} + {/*)}*/}
); }; @@ -425,6 +374,7 @@ const CardanoAssets = ({ key: "moving-asset-L2", duration: 0 }); + console.log(new BigNumber(tokenAmounts.get(token.unit) || "0").toFixed()); try { const txHash = await wrap( undefined, @@ -579,9 +529,9 @@ const WSCAssets = ({
Contract Address @@ -651,9 +601,9 @@ const WSCAssets = ({
Contract Address diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx index 5e3f783b..90e89c24 100644 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ b/src/components/wsc-ui/WSCButton/WSCButton.jsx @@ -5,7 +5,7 @@ import "./WSCButton.scss"; import { LoadingOutlined } from "@ant-design/icons"; import BigNumber from "bignumber.js"; import { ethers } from "ethers"; -import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; +// import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; import useInterval from "../../../utils/hooks/useInterval"; import { erc20ABI } from "@wagmi/core"; import { useSigner } from "wagmi"; @@ -40,19 +40,19 @@ const reserveCoinAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128"; const statusWrapFirstMessages = { init: "Staring wrapping your token...", pending: "Wrapping your tokens...", - [TxPendingStatus.WaitingL1Confirmation]: "Waiting for L1 confirmation...", - [TxPendingStatus.WaitingBridgeConfirmation]: "Waiting for bridge confirmation...", - [TxPendingStatus.WaitingL2Confirmation]: "Waiting for L2 confirmation...", - [TxPendingStatus.Confirmed]: "Your asset has been successfully moved! Go to Next Step!", + WaitingL1Confirmation: "Waiting for L1 confirmation...", + WaitingBridgeConfirmation: "Waiting for bridge confirmation...", + WaitingL2Confirmation: "Waiting for L2 confirmation...", + Confirmed: "Your asset has been successfully moved! Go to Next Step!", error: "Ups something went wrong." }; const statusUnwrapFirstMessages = { init: "Staring unwrapping your token...", pending: "Unwrapping your tokens...", - [TxPendingStatus.WaitingL1Confirmation]: "Waiting for L1 confirmation...", - [TxPendingStatus.WaitingBridgeConfirmation]: "Waiting for bridge confirmation...", - [TxPendingStatus.WaitingL2Confirmation]: "Waiting for L2 confirmation...", - [TxPendingStatus.Confirmed]: "Your asset has been successfully moved! Go to Next Step!", + WaitingL1Confirmation: "Waiting for L1 confirmation...", + WaitingBridgeConfirmation: "Waiting for bridge confirmation...", + WaitingL2Confirmation: "Waiting for L2 confirmation...", + Confirmed: "Your asset has been successfully moved! Go to Next Step!", error: "Ups something went wrong." }; const WrapContent = ({ @@ -76,7 +76,7 @@ const WrapContent = ({ if (!wscProvider || txHash == null) return; const response = await wscProvider.getTxStatus(txHash); setTxStatus(response); - if (response === TxPendingStatus.Confirmed) { + if (response === "Confirmed") { setTxHash(null); setTimeout(() => { goNextStep(); @@ -173,11 +173,9 @@ const WrapContent = ({ {txStatus}
- {txStatus !== TxPendingStatus.Confirmed && - txStatus !== "idle" && - txStatus !== "error" && ( - } /> - )} + {txStatus !== "Confirmed" && txStatus !== "idle" && txStatus !== "error" && ( + } /> + )} {txStatus !== "idle" &&

{statusWrapFirstMessages[txStatus]}

}
@@ -277,7 +275,7 @@ const UnwrapContent = ({ if (!wscProvider || txHash == null) return; const response = await wscProvider.getTxStatus(txHash); setTxStatus(response); - if (response === TxPendingStatus.Confirmed) { + if (response === "Confirmed") { setTxHash(null); } }, @@ -316,11 +314,9 @@ const UnwrapContent = ({
{txStatus}
- {txStatus !== TxPendingStatus.Confirmed && - txStatus !== "idle" && - txStatus !== "error" && ( - } /> - )} + {txStatus !== "Confirmed" && txStatus !== "idle" && txStatus !== "error" && ( + } /> + )} {txStatus !== "idle" &&

{statusUnwrapFirstMessages[txStatus]}

}
@@ -366,6 +362,14 @@ const WSCButton = ({ setIsModalOpen(false); }; + console.log( + amount, + "->", + currentAmountWei + ? ethers.utils.formatEther(new BigNumber(currentAmountWei).toString()) + : "0" + ); + const steps = direction === directions.WRAP ? [ diff --git a/src/context/AppProvider.jsx b/src/context/AppProvider.jsx index 10e85462..639d0b5a 100644 --- a/src/context/AppProvider.jsx +++ b/src/context/AppProvider.jsx @@ -27,8 +27,6 @@ import { BigNumber } from "ethers"; import { flintWalletConnector, - flintWSCConnector, - eternlWSCConnector, metamaskConnector, supportedChain } from "../utils/web3/wagmi"; @@ -38,7 +36,7 @@ const AppContext = createContext(); const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); export const AppProvider = ({ children }) => { - const { connect } = useConnect(); + const { connect, connectors } = useConnect(); const { connector: activeConnector, isConnected: isWalletConnected, @@ -142,8 +140,12 @@ export const AppProvider = ({ children }) => { }); }; const connectToEternlWSC = () => { + const etrnalWSCConnector = connectors.find( + (connector) => connector.id === "etrnal-wsc" + ); + if (!etrnalWSCConnector) return; connect({ - connector: eternlWSCConnector + connector: etrnalWSCConnector }); }; const connectFlintWallet = () => { @@ -153,6 +155,9 @@ export const AppProvider = ({ children }) => { }); }; const connectToFlintWSC = async () => { + const flintWSCConnector = connectors.find( + (connector) => connector.id === "flint-wsc" + ); connect({ connector: flintWSCConnector }); diff --git a/src/routes/reservecoin.jsx b/src/routes/reservecoin.jsx index 1a59334c..fb36fd07 100644 --- a/src/routes/reservecoin.jsx +++ b/src/routes/reservecoin.jsx @@ -255,13 +255,65 @@ export default function ReserveCoin() { }); }; + const buyRcPromise = (total) => { + return new Promise((resolve, reject) => { + promiseTx(isWalletConnected, buyRcTx(djedContract, account, total), signer) + .then(({ hash }) => { + verifyTx(web3, hash) + .then((res) => { + if (res) { + resolve(); + } else { + reject(new Error("The transaction reverted.")); + } + }) + .catch((err) => { + console.error("Error:", err.message); + reject(err); + }); + }) + .catch((err) => { + console.error("Error:", err.message); + reject(err); + }); + }); + }; + + const sellRcPromise = (amount) => { + return new Promise((resolve, reject) => { + promiseTx(isWalletConnected, sellRcTx(djedContract, account, amount), signer) + .then(({ hash }) => { + verifyTx(web3, hash) + .then((res) => { + if (res) { + resolve(); + } else { + reject(new Error("The transaction reverted.")); + } + }) + .catch((err) => { + console.error("Error:", err.message); + reject(err); + }); + }) + .catch((err) => { + console.error("Error:", err.message); + reject(err); + }); + }); + }; + const tradeFxn = isBuyActive ? buyRc.bind(null, tradeData.totalBCUnscaled) : sellRc.bind(null, tradeData.amountUnscaled); - const currentAmountWei = isBuyActive - ? tradeData?.totalBCUnscaled - : tradeData?.amountUnscaled; + const tradeFxnPromise = isBuyActive + ? buyRcPromise.bind(null, tradeData.totalBCUnscaled) + : sellRcPromise.bind(null, tradeData.amountUnscaled); + + const currentAmount = isBuyActive + ? tradeData.totalBCUnscaled + : tradeData.amountUnscaled; const onSubmit = (e) => { if (termsAccepted) { @@ -397,9 +449,9 @@ export default function ReserveCoin() { onClick={onSubmit} buyOrSell={buyOrSell} currencyName={`${process.env.REACT_APP_RC_SYMBOL}`} - currentAmountWei={currentAmountWei} - onWSCAction={tradeFxn} - direction={isBuyActive ? "wrap" : "unwrap"} + currentAmount={currentAmount} + onWSCAction={tradeFxnPromise} + stepTxDirection={isBuyActive ? "buy" : "sell"} /> ) : ( diff --git a/src/utils/web3/connectors/cardano-wsc.js b/src/utils/web3/connectors/cardano-wsc.js index 81fa2a42..e69de29b 100644 --- a/src/utils/web3/connectors/cardano-wsc.js +++ b/src/utils/web3/connectors/cardano-wsc.js @@ -1,131 +0,0 @@ -import { WSCLib } from "milkomeda-wsc"; -import { MilkomedaNetworkName } from "milkomeda-wsc"; -import { Connector, ConnectorNotFoundError } from "wagmi"; -import { normalizeChainId } from "@wagmi/core"; -import { getAddress } from "ethers/lib/utils"; - -/** - * Connector for [Cardano WSC] - */ -export class CardanoWSCConnector extends Connector { - id; - #provider; - #sdk; - #previousProvider; - shimDisconnectKey = `${this.id}.shimDisconnect`; - - constructor({ chains, options: options_ }) { - const options = { - shimDisconnect: false, - id: options_.name + "-wsc", - ...options_ - }; - super({ chains, options }); - this.id = options.id; - this.#previousProvider = window?.ethereum; - this.#sdk = new WSCLib(MilkomedaNetworkName.C1Devnet, options_.name, { - oracleUrl: process.env.REACT_APP_WSC_ORACLE, - blockfrostKey: "preprodliMqEQ9cvQgAFuV7b6dhA4lkjTX1eBLb", - jsonRpcProviderUrl: null - }); - } - - async connect() { - const provider = await this.getProvider(); - if (!provider) throw new ConnectorNotFoundError(); - - if (provider.on) { - provider.on("accountsChanged", this.onAccountsChanged); - provider.on("chainChanged", this.onChainChanged); - provider.on("disconnect", this.onDisconnect); - } - - this.emit("message", { type: "connecting" }); - - const account = await this.getAccount(); - const id = await this.getChainId(); - - // Add shim to storage signalling wallet is connected - if (this.options.shimDisconnect) this.storage?.setItem(this.shimDisconnectKey, true); - - return { - account, - chain: { id, unsupported: this.isChainUnsupported(id) } - }; - } - - async disconnect() { - const provider = await this.getProvider(); - // switch back to previous provider - window.ethereum = this.#previousProvider; - - if (!provider?.removeListener) return; - provider.removeListener("accountsChanged", this.onAccountsChanged); - provider.removeListener("chainChanged", this.onChainChanged); - provider.removeListener("disconnect", this.onDisconnect); - - // Remove shim signalling wallet is disconnected - if (this.options.shimDisconnect) this.storage?.removeItem(this.shimDisconnectKey); - } - - async getAccount() { - const provider = await this.getProvider(); - if (!provider) throw new ConnectorNotFoundError(); - const account = await this.#provider.eth_getAccount(); - return account; - } - - async getChainId() { - const provider = await this.getProvider(); - if (!provider) throw new ConnectorNotFoundError(); - return normalizeChainId(200101); // TODO: didn't find the network id from provider - } - - async getProvider() { - if (!this.#provider) { - const wsc = await this.#sdk.inject(); - if (!wsc) throw new Error("Could not load WSC information"); - this.#provider = wsc; - } - return this.#provider; - } - - async getSigner() { - const provider = await this.getProvider(); - return (await provider.getEthersProvider()).getSigner(); - } - - async isAuthorized() { - try { - if ( - this.options.shimDisconnect && - // If shim does not exist in storage, wallet is disconnected - !this.storage?.getItem(this.shimDisconnectKey) - ) - return false; - - const account = await this.getAccount(); - return !!account; - } catch { - return false; - } - } - - onAccountsChanged = (accounts) => { - if (accounts.length === 0) this.emit("disconnect"); - else - this.emit("change", { - account: getAddress(accounts[0]) - }); - }; - - onChainChanged = (chainId) => { - const id = normalizeChainId(chainId); - const unsupported = this.isChainUnsupported(id); - this.emit("change", { chain: { id, unsupported } }); - }; - - onDisconnect() { - this.emit("disconnect"); - } -} diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index a0cb1156..e13f1ef1 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -3,24 +3,14 @@ import { configureChains, createClient, createStorage } from "wagmi"; import { jsonRpcProvider } from "wagmi/providers/jsonRpc"; import { MetaMaskConnector } from "wagmi/connectors/metaMask"; import { FlintWalletConnector } from "./connectors/flint"; -import { CardanoWSCConnector } from "./connectors/cardano-wsc"; +// import { CardanoWSCConnector } from "./connectors/cardano-wsc"; +import { getDefaultConfig } from "milkomeda-wsc-ui"; const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); export const supportedChain = supportedChains.find((chain) => chain.id === CHAIN_ID) ?? supportedChains[0]; -const { provider, webSocketProvider } = configureChains( - [supportedChain], - [ - jsonRpcProvider({ - rpc: () => ({ - http: process.env.REACT_APP_BLOCKCHAIN_URI ?? "" - }) - }) - ] -); - export const metamaskConnector = new MetaMaskConnector({ chains: [supportedChain] }); @@ -28,27 +18,13 @@ export const metamaskConnector = new MetaMaskConnector({ export const flintWalletConnector = new FlintWalletConnector({ chains: [supportedChain] }); -export const flintWSCConnector = new CardanoWSCConnector({ - chains: [supportedChain], - options: { - name: "flint" - } -}); - -export const eternlWSCConnector = new CardanoWSCConnector({ - chains: [supportedChain], - options: { - name: "eternl" - } -}); - -export const client = createClient({ - autoConnect: true, - storage: createStorage({ - storage: window.localStorage, - key: "djed.stablecoin" - }), - provider, - webSocketProvider -}); +export const client = createClient( + getDefaultConfig({ + chains: [supportedChain], + storage: createStorage({ + storage: window.localStorage, + key: "djed.stablecoin" + }) + }) +); From 9d2cca45e9c4d91643d1f334901e64886b7394f1 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 6 Jul 2023 16:33:36 -0500 Subject: [PATCH 23/85] test: npm library --- craco.config.js | 10 +--------- package-lock.json | 20 +++++++++++-------- package.json | 2 +- src/App.js | 2 +- .../molecules/BuySellButton/BuySellButton.jsx | 2 +- .../FlintWSCContent.jsx/FlintWSCContent.jsx | 2 +- src/utils/web3/wagmi.js | 2 +- 7 files changed, 18 insertions(+), 22 deletions(-) diff --git a/craco.config.js b/craco.config.js index ad359394..922f18ea 100644 --- a/craco.config.js +++ b/craco.config.js @@ -10,15 +10,7 @@ module.exports = { topLevelAwait: true, layers: true }; - webpackConfig.resolve.alias = { - "react/jsx-runtime": require.resolve("react/jsx-runtime") - }; - webpackConfig.devServer = { - overlay: { - warnings: true, - errors: true - } - }; + webpackConfig.resolve.fallback = { buffer: require.resolve("buffer/"), stream: require.resolve("stream-browserify") diff --git a/package-lock.json b/package-lock.json index 179bbb0c..75042180 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "ethers": "^5.7.2", "milkomeda-wsc": "0.2.1", "milkomeda-wsc-ui": "file:.yalc/milkomeda-wsc-ui", - "milkomeda-wsc-ui-test-beta": "^0.0.1", + "milkomeda-wsc-ui-test-beta": "^0.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -131,12 +131,13 @@ "extraneous": true }, ".yalc/milkomeda-wsc-ui": { - "version": "1.0.0", + "version": "0.0.2", "license": "ISC", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", "@rollup/plugin-node-resolve": "^13.1.3", + "acorn-jsx": "^5.3.2", "buffer": "^6.0.3", "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", @@ -17033,13 +17034,14 @@ "link": true }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.1.tgz", - "integrity": "sha512-2EUaSPF/jRn56MvZM0h9XiifNXr/S6nqRmILYBE/kvY/btF8hL8LA6iI8Ef1ONmknxWjUJ2eCXFnFvbXU4ugMw==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.2.tgz", + "integrity": "sha512-r31zluwGQiU/ITd2oZIS6LURTr8TCStxft1obCHZVbg0lg0PJT28GXqwgu63pAnBp2+2hvNYBPXvrVAeyJsGBg==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", "@rollup/plugin-node-resolve": "^13.1.3", + "acorn-jsx": "^5.3.2", "buffer": "^6.0.3", "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", @@ -37670,6 +37672,7 @@ "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", "@rollup/plugin-node-resolve": "^13.1.3", + "acorn-jsx": "^5.3.2", "buffer": "^6.0.3", "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", @@ -37718,13 +37721,14 @@ } }, "milkomeda-wsc-ui-test-beta": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.1.tgz", - "integrity": "sha512-2EUaSPF/jRn56MvZM0h9XiifNXr/S6nqRmILYBE/kvY/btF8hL8LA6iI8Ef1ONmknxWjUJ2eCXFnFvbXU4ugMw==", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.2.tgz", + "integrity": "sha512-r31zluwGQiU/ITd2oZIS6LURTr8TCStxft1obCHZVbg0lg0PJT28GXqwgu63pAnBp2+2hvNYBPXvrVAeyJsGBg==", "requires": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", "@rollup/plugin-node-resolve": "^13.1.3", + "acorn-jsx": "^5.3.2", "buffer": "^6.0.3", "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", diff --git a/package.json b/package.json index 7ef3706b..8aa2a4a0 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "ethers": "^5.7.2", "milkomeda-wsc": "0.2.1", "milkomeda-wsc-ui": "file:.yalc/milkomeda-wsc-ui", - "milkomeda-wsc-ui-test-beta": "^0.0.1", + "milkomeda-wsc-ui-test-beta": "^0.0.3", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", diff --git a/src/App.js b/src/App.js index 08ed626f..d894d9e3 100644 --- a/src/App.js +++ b/src/App.js @@ -9,7 +9,7 @@ import { AppProvider } from "./context/AppProvider"; import { client } from "./utils/web3/wagmi"; import { WagmiConfig } from "wagmi"; import { useEffect } from "react"; -import { ConnectWSCProvider } from "milkomeda-wsc-ui"; +import { ConnectWSCProvider } from "milkomeda-wsc-ui-test-beta"; export default function App() { useEffect(() => { diff --git a/src/components/molecules/BuySellButton/BuySellButton.jsx b/src/components/molecules/BuySellButton/BuySellButton.jsx index e670da9e..b226589f 100644 --- a/src/components/molecules/BuySellButton/BuySellButton.jsx +++ b/src/components/molecules/BuySellButton/BuySellButton.jsx @@ -2,7 +2,7 @@ import React from "react"; import CustomButton from "../../atoms/CustomButton/CustomButton"; import { ArrowRightOutlined } from "@ant-design/icons"; import "./BuySellButton.scss"; -import { useWSCTransactionConfig, ConnectWSCButton } from "milkomeda-wsc-ui"; +import { useWSCTransactionConfig, ConnectWSCButton } from "milkomeda-wsc-ui-test-beta"; const capitalizeString = (string) => { return string?.charAt(0).toUpperCase() + string?.slice(1); diff --git a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx index 2fcf376c..badfb570 100644 --- a/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx +++ b/src/components/molecules/FlintWSCContent.jsx/FlintWSCContent.jsx @@ -2,7 +2,7 @@ import React from "react"; import "./_FlintWSCContent.scss"; import { Skeleton, Tabs, message } from "antd"; import BigNumber from "bignumber.js"; -import { useWSCProvider } from "milkomeda-wsc-ui"; +import { useWSCProvider } from "milkomeda-wsc-ui-test-beta"; const useInterval = (callback, delay) => { const savedCallback = React.useRef(undefined); diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index e13f1ef1..1c8a395d 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -4,7 +4,7 @@ import { jsonRpcProvider } from "wagmi/providers/jsonRpc"; import { MetaMaskConnector } from "wagmi/connectors/metaMask"; import { FlintWalletConnector } from "./connectors/flint"; // import { CardanoWSCConnector } from "./connectors/cardano-wsc"; -import { getDefaultConfig } from "milkomeda-wsc-ui"; +import { getDefaultConfig } from "milkomeda-wsc-ui-test-beta"; const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); From d435f636c2e76747c317c6f6267e2e9e86cf76fc Mon Sep 17 00:00:00 2001 From: paulclindo Date: Sat, 8 Jul 2023 00:44:45 -0500 Subject: [PATCH 24/85] fixes --- package-lock.json | 141 +----------------- src/App.js | 2 +- .../atoms/CustomButton/CustomButton.jsx | 2 +- .../molecules/BuySellButton/BuySellButton.jsx | 49 +----- .../FlintWSCContent.jsx/FlintWSCContent.jsx | 2 +- .../MetamaskConnectButton.jsx | 1 - src/routes/reservecoin.jsx | 65 ++++++-- src/utils/web3/wagmi.js | 5 +- 8 files changed, 64 insertions(+), 203 deletions(-) diff --git a/package-lock.json b/package-lock.json index 75042180..c02e29bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,6 @@ "ethers": "^5.7.2", "milkomeda-wsc": "0.2.1", "milkomeda-wsc-ui": "file:.yalc/milkomeda-wsc-ui", - "milkomeda-wsc-ui-test-beta": "^0.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -131,7 +130,7 @@ "extraneous": true }, ".yalc/milkomeda-wsc-ui": { - "version": "0.0.2", + "version": "0.0.3", "license": "ISC", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", @@ -17033,88 +17032,6 @@ "resolved": ".yalc/milkomeda-wsc-ui", "link": true }, - "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.2.tgz", - "integrity": "sha512-r31zluwGQiU/ITd2oZIS6LURTr8TCStxft1obCHZVbg0lg0PJT28GXqwgu63pAnBp2+2hvNYBPXvrVAeyJsGBg==", - "dependencies": { - "@radix-ui/react-dialog": "^1.0.4", - "@radix-ui/react-separator": "^1.0.3", - "@rollup/plugin-node-resolve": "^13.1.3", - "acorn-jsx": "^5.3.2", - "buffer": "^6.0.3", - "detect-browser": "^5.3.0", - "framer-motion": "^6.3.11", - "lucide-react": "^0.252.0", - "milkomeda-wsc": "0.2.1", - "qrcode": "^1.5.0", - "react": "17.x || 18.x", - "react-confetti": "^6.1.0", - "react-dom": "17.x || 18.x", - "react-transition-state": "^1.1.4", - "react-use-measure": "^2.1.1", - "resize-observer-polyfill": "^1.5.1", - "rollup": "^2.67.1", - "rollup-plugin-peer-deps-external": "^2.2.4", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.34.0", - "rollup-plugin-visualizer": "^5.5.4", - "styled-components": "^5.3.5", - "tslib": "^2.5.3", - "typescript-plugin-styled-components": "^2.0.0", - "wagmi": "0.12.15" - }, - "engines": { - "node": ">=12.4" - }, - "peerDependencies": { - "react": "17.x || 18.x", - "react-dom": "17.x || 18.x", - "wagmi": "0.12.15" - } - }, - "node_modules/milkomeda-wsc-ui-test-beta/node_modules/@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^2.42.0" - } - }, - "node_modules/milkomeda-wsc-ui-test-beta/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/milkomeda-wsc/node_modules/bech32": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", @@ -37720,62 +37637,6 @@ } } }, - "milkomeda-wsc-ui-test-beta": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.2.tgz", - "integrity": "sha512-r31zluwGQiU/ITd2oZIS6LURTr8TCStxft1obCHZVbg0lg0PJT28GXqwgu63pAnBp2+2hvNYBPXvrVAeyJsGBg==", - "requires": { - "@radix-ui/react-dialog": "^1.0.4", - "@radix-ui/react-separator": "^1.0.3", - "@rollup/plugin-node-resolve": "^13.1.3", - "acorn-jsx": "^5.3.2", - "buffer": "^6.0.3", - "detect-browser": "^5.3.0", - "framer-motion": "^6.3.11", - "lucide-react": "^0.252.0", - "milkomeda-wsc": "0.2.1", - "qrcode": "^1.5.0", - "react": "17.x || 18.x", - "react-confetti": "^6.1.0", - "react-dom": "17.x || 18.x", - "react-transition-state": "^1.1.4", - "react-use-measure": "^2.1.1", - "resize-observer-polyfill": "^1.5.1", - "rollup": "^2.67.1", - "rollup-plugin-peer-deps-external": "^2.2.4", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.34.0", - "rollup-plugin-visualizer": "^5.5.4", - "styled-components": "^5.3.5", - "tslib": "^2.5.3", - "typescript-plugin-styled-components": "^2.0.0", - "wagmi": "0.12.15" - }, - "dependencies": { - "@rollup/plugin-node-resolve": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", - "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "deepmerge": "^4.2.2", - "is-builtin-module": "^3.1.0", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", diff --git a/src/App.js b/src/App.js index d894d9e3..08ed626f 100644 --- a/src/App.js +++ b/src/App.js @@ -9,7 +9,7 @@ import { AppProvider } from "./context/AppProvider"; import { client } from "./utils/web3/wagmi"; import { WagmiConfig } from "wagmi"; import { useEffect } from "react"; -import { ConnectWSCProvider } from "milkomeda-wsc-ui-test-beta"; +import { ConnectWSCProvider } from "milkomeda-wsc-ui"; export default function App() { useEffect(() => { diff --git a/src/components/atoms/CustomButton/CustomButton.jsx b/src/components/atoms/CustomButton/CustomButton.jsx index a8869ca5..af71a9be 100644 --- a/src/components/atoms/CustomButton/CustomButton.jsx +++ b/src/components/atoms/CustomButton/CustomButton.jsx @@ -5,7 +5,7 @@ const CustomButton = ({ text, variant, type, icon, iconWallet, onClick, disabled const classname = `CustomButton ${variant}`; return ( - - - - )} - - ))} - - - ); -}; - -const WSCAssets = ({ - destinationBalance, - network, - tokens, - unwrap, - moveAssetsToL1, - areTokensAllowed, - isLoading, - isSuccess, - address, - currentSentTxs, - setCurrentSentTxs -}) => { - const [allowedTokensMap, setAllowedTokensMap] = React.useState({}); - - React.useEffect(() => { - const assetIds = tokens.map((token) => token.contractAddress); - areTokensAllowed(assetIds).then(setAllowedTokensMap); - }, [tokens, areTokensAllowed]); - - const normalizeAda = (amount) => { - const maxDecimalPlaces = 6; - const decimalIndex = amount.indexOf("."); - return decimalIndex === -1 - ? destinationBalance - : destinationBalance.slice(0, decimalIndex + maxDecimalPlaces + 1); - }; - - return ( -
-

Assets in Your Wrapped Smart Contract Wallet

- {address ? ( -

- Connected WSC Address {address} -

- ) : null} - -
    - {isLoading && ( - <> - - - - - - )} - {isSuccess && destinationBalance && ( -
  • -
    - Token - ADA -
    -
    - Amount: - {destinationBalance} -
    -
    - Contract Address - - 0x319f...4648 - -
    - -
  • - )} - {isSuccess && - tokens?.map((token, index) => { - const balance = new BigNumber(token.balance); - const decimals = new BigNumber(token.decimals); - const adjustedBalance = balance.dividedBy(new BigNumber(10).pow(decimals)); - const shortAddress = `${token.contractAddress.slice( - 0, - 6 - )}...${token.contractAddress.slice(-4)}`; - - return ( -
  • -
    - Token - - {token.name} ({token.symbol.toUpperCase()}) - -
    -
    - Amount: - {adjustedBalance.toString()} -
    -
    - Contract Address - - {shortAddress} - -
    - {allowedTokensMap?.[token.contractAddress] ? ( - - ) : ( - "Not Allowed in Bridge" - )} -
  • - ); - })} -
-
- ); -}; - -export const WSCWalletLink = () => { - return ( - - Go to WSC Wallet Page - - - - - - - ); -}; - -export const WSCAbout = () => { - const title = "What are Wrapped Smart Contracts?"; - const content = - "Wrapped Smart Contracts are a new concept aimed at facilitating interaction with smart contracts on sidechains or Layer 2 (L2) solutions without the need for users to directly migrate to these new ecosystems.

The Layer 1 (L1) blockchain acts as a robust coordination layer, allowing users to execute smart contracts on sidechains or L2 while remaining on the L1 blockchain. This provides a user-friendly experience, as users can interact with various systems without changing wallets or needing a deep understanding of the underlying processes."; - const secondTitle = "How it works"; - const secondContent = - "Every single step requires user interaction in the form of a transaction."; - const bulletContent = [ - "User Action: The user initiates an action on a dApp while on the main blockchain. This request is translated into specific parameters for a proxy smart contract.", - "Proxy Deployment and Execution: A proxy smart contract, reflecting the user's intent, is deployed on the sidechain. The proxy contract then interacts with the appropriate smart contract on the sidechain to execute the desired action.", - "Result Processing: The outcome from the sidechain smart contract execution is relayed back to the user on the main blockchain. The user's state is updated, and they see the results of their action on the dApp, all while staying on the main blockchain." - ]; - const link = "http://example.com/my-article-link"; - const secondLink = "http://example.com/my-article-link"; - - return ( -
-

{title}

-

-

- Read more -
-

{secondTitle}

-

-

    - {bulletContent.map((item, index) => ( -
  • {item}
  • - ))} -
-
- Read more -
-
- ); -}; diff --git a/src/components/molecules/FlintWSCContent.jsx/_FlintWSCContent.scss b/src/components/molecules/FlintWSCContent.jsx/_FlintWSCContent.scss deleted file mode 100644 index b9f82797..00000000 --- a/src/components/molecules/FlintWSCContent.jsx/_FlintWSCContent.scss +++ /dev/null @@ -1,212 +0,0 @@ -@import "../../../scss/general_styling"; - -.content { - color: white; - max-width: 500px; - @media (max-width: 768px) { - display: none; - } - - .header { - display: flex; - align-items: flex-start; - justify-content: center; - gap: 30px; - padding: 30px 10px; - border-bottom: 1px solid #383534; - margin-bottom:20px; - } - - .spinner { - display: flex; - gap: 10px; - flex-direction: column; - align-items: center; - svg { - color: #d07d2c; - } - - } - h2, p, .ant-tabs-content-holder { - color:white; - } - h2 { - font-size: 1.125rem; - font-weight: 600; - margin-bottom: 16px; - text-align: center; - } - .ant-tabs { - min-width: 300px; - overflow: auto; - } - .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn, - .ant-tabs-tab:hover { - color: #d07d2c; - } - .ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn { - border-bottom: 2px solid #d07d2c; - } - .error { - text-align: center; - h2 { - margin-bottom: 10px - } - } - ul { - display: flex; - flex-direction: column; - list-style: none; - padding: 0; - gap: 12px; - max-height: 500px; - overflow: auto; - & .not-found { - text-align: center; - } - & .ant-skeleton-avatar { - width: 100%; - height: 60px; - border-radius: 10px; - } - &::-webkit-scrollbar { - width: 10px; /* width of the scrollbar */ - } - &::-webkit-scrollbar-thumb { - background: #888; - border-radius: 5px; - } - /* Handle on hover */ - &::-webkit-scrollbar-thumb:hover { - background: #555; /* color of the scrollbar handle on hover */ - } - /* Track */ - &::-webkit-scrollbar-track { - background: #100901; /* color of the scrollbar track */ - } - /* Track on hover */ - &::-webkit-scrollbar-track:hover { - background: #ddd; /* color of the scrollbar track on hover */ - } - } - li { - display: flex; - flex-direction: column; - gap: 6px; - padding: 10px 12px; - border: 1px solid #383534; - - & .value{ - word-break: break-all; - } - - & > div { - display: flex; - align-items: center; - gap: 10px; - &.actions { - display: flex; - flex-direction: column; - gap: 8px; - input { - border: 1px solid #383534; - background: white; - width: 100%; - padding:10px; - color: #100901; - } - } - &>span:first-child{ - font-weight: bold - } - } - } - button { - border: none; - border-radius: 10px; - color: #ffffff; - background: #d07d2c; - width: 100% !important; - padding: 7px; - cursor: pointer; - transition: background 0.3s ease-in-out; - &:hover { - background: #e38d33; - - } - } - .address{ - display: flex; - flex-direction: column; - gap: 8px; - align-items:center; - font-size: 1rem; - font-weight: 600; - & > span { - font-weight: 400; - word-break: break-all; - color: #bbbbc9; - } - } -} -.external-link { - text-align: center; - display: flex; - align-items: center; - justify-content: center; - gap: 8px; - margin-bottom: 20px; -} - -.connection-item { - margin-top: 20px; -} - -.step { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - gap: 8px; - min-width: 80px; - - - &-label{ - font-size: 1rem; - font-weight: 600; - text-align: center; - } - &-caption{ - font-size: 0.75rem; - text-align: center; - white-space: nowrap; - } - &-icon{ - width: 32px; - height: 32px; - padding: 4px; - background: #41455c; - border-radius: 50%; - color: #41455c; - - &.success { - background: #d07d2c; - color: #fff - } - &.ready { - background: #d07d2c; - color: #fff; - width: 32px; - height: 32px; - outline: 2px solid #d07d2c; - outline-offset: 3px; - - } - svg { - width: 100%; - height: 100%; - } - - - } -} diff --git a/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx b/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx index af3d94aa..82023fb4 100644 --- a/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx +++ b/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx @@ -8,7 +8,6 @@ import { useNavigate } from "react-router-dom"; import "./_MetamaskStatusButton.scss"; import { useDisconnect } from "wagmi"; import { Button, Popover } from "antd"; -import FlintWSCContent, { WSCWalletLink } from "../FlintWSCContent.jsx/FlintWSCContent"; import { WSCInterface } from "milkomeda-wsc-ui-test-beta"; const WalletConnectButton = () => { @@ -30,16 +29,40 @@ const WalletConnectButton = () => { return (
- {/*TODO: adapt UI on mobile*/} - trigger.parentElement} content={ isWalletConnected ? ( <> - {activeConnector?.id?.includes("wsc") && } + {activeConnector?.id?.includes("wsc") && ( +
+ +
+ )} diff --git a/src/components/molecules/MetamaskStatusButton/_MetamaskStatusButton.scss b/src/components/molecules/MetamaskStatusButton/_MetamaskStatusButton.scss index cb40d0d1..2d71565b 100644 --- a/src/components/molecules/MetamaskStatusButton/_MetamaskStatusButton.scss +++ b/src/components/molecules/MetamaskStatusButton/_MetamaskStatusButton.scss @@ -38,3 +38,9 @@ text-align: center; } } +.only-desktop{ + display: block; + @media (max-width: 768px) { + display: none; + } +} From d97b12f9d79d84e0a1a953faf0f19932a0bd3c8e Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 25 Jul 2023 20:09:43 -0500 Subject: [PATCH 54/85] update UI lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8eb1940c..8f2669ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.0.45", + "milkomeda-wsc-ui-test-beta": "0.0.46", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16732,9 +16732,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.0.45", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.45.tgz", - "integrity": "sha512-IROevEiI1BudI1N1r65qt8LiXfIoAAzdPoFmjex0cRJ5VOSGUL4zpHzyLbcHaK2UqM+YGcp+VVrVr1OgRSd5KQ==", + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.46.tgz", + "integrity": "sha512-xvhaKm6nf4RmRmYJfH7WIRLz9QerkNRBhPAPKjZVZZs1dMzUVPxkIFisDKVySE1MXDQ+607RL6/IvWjWGoMS1Q==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index f8944743..b24361b8 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.0.45", + "milkomeda-wsc-ui-test-beta": "0.0.46", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From dc92f2ed1e0ee9258948d7e7a461a55f5af65772 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 15 Aug 2023 23:52:07 -0500 Subject: [PATCH 55/85] update UI lib to support customization and mainnet network --- package-lock.json | 42 ++++++++++++++++++++--------------------- package.json | 2 +- src/App.js | 6 +++++- src/utils/web3/wagmi.js | 6 ++++-- 4 files changed, 31 insertions(+), 25 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f2669ad..e1cb0b3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.0.46", + "milkomeda-wsc-ui-test-beta": "0.4.3", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16521,9 +16521,9 @@ } }, "node_modules/lucid-cardano": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/lucid-cardano/-/lucid-cardano-0.10.6.tgz", - "integrity": "sha512-thZRR3YOHFvuSthwv5yd6C+kNXFhY50b8x5K0oaBLF9Wj7qOzBOhdV9Hoy3DvEAgFVscYCIjKo5gZ3NQZBn93A==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/lucid-cardano/-/lucid-cardano-0.10.7.tgz", + "integrity": "sha512-hxJRMWj8VH+SGFqsVMG6T3LSRuxzwFbWOQ5DTGQQUyR/20FL7bjiVL+2ivMJF52tAbFKcwqpRD4fddR7LbqcAw==", "dependencies": { "@peculiar/webcrypto": "^1.4.0", "node-fetch": "^3.2.3", @@ -16534,9 +16534,9 @@ } }, "node_modules/lucid-cardano/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -16704,9 +16704,9 @@ } }, "node_modules/milkomeda-wsc": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.2.6.tgz", - "integrity": "sha512-1GpMTLP76L2B1ALx3djrPv+1sI/QaTYuT61HLzNM58/PRg4VCobLDV6y7UPgek+lnLZfdwSMIKAPvHTsxNbrRQ==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.2.8.tgz", + "integrity": "sha512-CakYF5Tab4QmG/RWXJxko/+22f8MO/uvvkHzdzpPQh7vA6gGhSZVrNX2SABicT3I1y+EBuM7DI6NyvHw+UWvYQ==", "dependencies": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -16732,9 +16732,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.0.46.tgz", - "integrity": "sha512-xvhaKm6nf4RmRmYJfH7WIRLz9QerkNRBhPAPKjZVZZs1dMzUVPxkIFisDKVySE1MXDQ+607RL6/IvWjWGoMS1Q==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.4.3.tgz", + "integrity": "sha512-RE1KouTzNUTIvf7EgmKxU6UQDdjZ4w1d2fVigFxfbqVVvC3VzZqUlt26jSlk99HTnuJfVvgvVrj1CSzpF7tvOA==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", @@ -16745,7 +16745,7 @@ "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", "lucide-react": "^0.252.0", - "milkomeda-wsc": "0.2.6", + "milkomeda-wsc": "0.2.8", "qrcode": "^1.5.0", "react": "17.x || 18.x", "react-confetti": "^6.1.0", @@ -19323,11 +19323,11 @@ } }, "node_modules/pvtsutils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", - "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.3.tgz", + "integrity": "sha512-6sAOMlXyrJ+8tRN5IAaYfuYZRp1C2uJ0SyDynEFxL+VY8kCRib9Lpj/+KPaNFpaQWr/iRik5nrzz6iaNlxgEGA==", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.6.1" } }, "node_modules/pvutils": { @@ -22967,9 +22967,9 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" }, "node_modules/tsutils": { "version": "3.21.0", diff --git a/package.json b/package.json index b24361b8..e69271ce 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.0.46", + "milkomeda-wsc-ui-test-beta": "0.4.3", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", diff --git a/src/App.js b/src/App.js index d894d9e3..6ec1624e 100644 --- a/src/App.js +++ b/src/App.js @@ -11,6 +11,10 @@ import { WagmiConfig } from "wagmi"; import { useEffect } from "react"; import { ConnectWSCProvider } from "milkomeda-wsc-ui-test-beta"; +const wscCustomTheme = { + "--wsc-body-background": "#100901", + "--wsc-body-color-muted": "rgb(255 255 255 / 60%)" +}; export default function App() { useEffect(() => { document.title = `Djed on ${process.env.REACT_APP_BC}`; @@ -20,7 +24,7 @@ export default function App() { - + }> } /> diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index 15c663fe..81a6c2e0 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -2,8 +2,7 @@ import { supportedChains } from "./networks"; import { createClient, createStorage } from "wagmi"; import { MetaMaskConnector } from "wagmi/connectors/metaMask"; import { FlintWalletConnector } from "./connectors/flint"; -// import { CardanoWSCConnector } from "./connectors/cardano-wsc"; -import { getDefaultConfig } from "milkomeda-wsc-ui-test-beta"; +import { getDefaultConfig, MilkomedaNetworkName } from "milkomeda-wsc-ui-test-beta"; const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); @@ -20,7 +19,10 @@ export const flintWalletConnector = new FlintWalletConnector({ export const client = createClient( getDefaultConfig({ + oracleUrl: "https://wsc-server-devnet.c1.milkomeda.com", + blockfrostId: "preprodliMqEQ9cvQgAFuV7b6dhA4lkjTX1eBLb", chains: [supportedChain], + network: MilkomedaNetworkName.C1Devnet, autoConnect: false, storage: createStorage({ storage: window.localStorage, From 8871ba803c53329bd05f5ca6d28a7d583d05731f Mon Sep 17 00:00:00 2001 From: paulclindo Date: Mon, 21 Aug 2023 12:30:39 -0500 Subject: [PATCH 56/85] fix: clean up --- env/milkomeda-c1-testnet.env | 7 +- env/milkomeda-c1.env | 8 +- .../molecules/BuySellCoin/BuySellCoin.jsx | 30 +- src/components/wsc-ui/WSCButton/WSCButton.jsx | 477 ------------------ .../wsc-ui/WSCButton/WSCButton.scss | 11 - src/components/wsc-ui/WSCProvider.jsx | 86 ---- src/context/AppProvider.jsx | 2 +- src/routes/reservecoin.jsx | 12 +- src/routes/stablecoin.jsx | 12 +- src/utils/web3/wagmi.js | 7 +- 10 files changed, 47 insertions(+), 605 deletions(-) delete mode 100644 src/components/wsc-ui/WSCButton/WSCButton.jsx delete mode 100644 src/components/wsc-ui/WSCButton/WSCButton.scss delete mode 100644 src/components/wsc-ui/WSCProvider.jsx diff --git a/env/milkomeda-c1-testnet.env b/env/milkomeda-c1-testnet.env index 8ec9df11..119481d0 100644 --- a/env/milkomeda-c1-testnet.env +++ b/env/milkomeda-c1-testnet.env @@ -17,5 +17,10 @@ REACT_APP_SC_NAME=Milkomeda-C1 Djed Osiris Dollar REACT_APP_SC_SYMBOL=MOD REACT_APP_RC_NAME=Milkomeda-C1 Djed Osiris Reservecoin REACT_APP_RC_SYMBOL=MOR -REACT_APP_WSC_ORACLE=https://wsc-server-devnet.c1.milkomeda.com REACT_APP_LIMIT_PER_TXN=10000 +REACT_APP_WSC_ORACLE_URL=https://wsc-server-devnet.c1.milkomeda.com +REACT_APP_WSC_BLOCKFROST_ID= +REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e +REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 +REACT_APP_CARDANO_STABLECOIN_ADDRESS=27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e +REACT_APP_EVM_STABLECOIN_ADDRESS=0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9 diff --git a/env/milkomeda-c1.env b/env/milkomeda-c1.env index cdc8e077..3fc32c41 100644 --- a/env/milkomeda-c1.env +++ b/env/milkomeda-c1.env @@ -17,4 +17,10 @@ REACT_APP_SC_NAME=Milkomeda-C1 Djed Osiris Dollar REACT_APP_SC_SYMBOL=MOD REACT_APP_RC_NAME=Milkomeda-C1 Djed Osiris Reservecoin REACT_APP_RC_SYMBOL=MOR -REACT_APP_LIMIT_PER_TXN=10000 \ No newline at end of file +REACT_APP_LIMIT_PER_TXN=10000 +REACT_APP_WSC_ORACLE_URL=https://wsc-oracle-c1-mainnet.milkomeda.com +REACT_APP_WSC_BLOCKFROST_ID= +REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e +REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 +REACT_APP_CARDANO_STABLECOIN_ADDRESS=27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e +REACT_APP_EVM_STABLECOIN_ADDRESS=0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9 diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index eda459d6..6398beae 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -5,21 +5,20 @@ import "./_BuySellCoin.scss"; import { useAppProvider } from "../../../context/AppProvider"; import { TRANSACTION_VALIDITY } from "../../../utils/constants"; import { useWSCProvider } from "milkomeda-wsc-ui-test-beta"; -import { stringToBigNumber } from "../../../utils/helpers"; import { ethers } from "ethers"; -const cardanoReservecoinAddress = - "cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e"; - -const cardanoStablecoinAddress = - "27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e"; - export const useSellCardanoToken = () => { const { wscProvider, originTokens, isWSCConnected } = useWSCProvider(); + const cardanoReservecoinAddress = process.env.REACT_APP_CARDANO_RESERVECOIN_ADDRESS; + const cardanoStablecoinAddress = process.env.REACT_APP_CARDANO_STABLECOIN_ADDRESS; const cardanoReservecoinAsset = React.useMemo( () => originTokens.find((token) => token.unit === cardanoReservecoinAddress), [originTokens] ); + const cardanoStablecoinAsset = React.useMemo( + () => originTokens.find((token) => token.unit === cardanoStablecoinAddress), + [originTokens] + ); const adaToken = React.useMemo( () => originTokens.find((token) => token.unit === "lovelace"), [originTokens] @@ -29,6 +28,7 @@ export const useSellCardanoToken = () => { wscProvider, isWSCConnected, cardanoReservecoinAsset, + cardanoStablecoinAsset, destinationBalanceADA: adaToken ?? { quantity: "0", decimals: 6, @@ -54,8 +54,12 @@ const BuySellCoin = ({ }) => { const FEE_UI = process.env.REACT_APP_FEE_UI; const { isWalletConnected, isWrongChain } = useAppProvider(); - const { isWSCConnected, cardanoReservecoinAsset, destinationBalanceADA } = - useSellCardanoToken(); + const { + isWSCConnected, + cardanoReservecoinAsset, + cardanoStablecoinAsset, + destinationBalanceADA + } = useSellCardanoToken(); const inputValid = validity === TRANSACTION_VALIDITY.OK; const inputBarNotMarked = !inputValue || !isWalletConnected || isWrongChain || inputValid; @@ -112,6 +116,14 @@ const BuySellCoin = ({ {cardanoReservecoinAsset.assetName}

) : null} + {isWSCConnected && cardanoStablecoinAsset ? ( +

+ + Your current balance is{" "} + {ethers.utils.formatUnits(cardanoStablecoinAsset.quantity, 0)}{" "} + {cardanoStablecoinAsset.assetName} +

+ ) : null} {isWSCConnected && destinationBalanceADA ? (

diff --git a/src/components/wsc-ui/WSCButton/WSCButton.jsx b/src/components/wsc-ui/WSCButton/WSCButton.jsx deleted file mode 100644 index ec5dba00..00000000 --- a/src/components/wsc-ui/WSCButton/WSCButton.jsx +++ /dev/null @@ -1,477 +0,0 @@ -import React, { useEffect } from "react"; -import { Modal, Steps, Icon, Spin, Select, message } from "antd"; - -import "./WSCButton.scss"; -import { LoadingOutlined } from "@ant-design/icons"; -import BigNumber from "bignumber.js"; -import { ethers } from "ethers"; -// import { TxPendingStatus } from "milkomeda-wsc/build/WSCLibTypes"; -import useInterval from "../../../utils/hooks/useInterval"; -import { erc20ABI } from "@wagmi/core"; -import { useSigner } from "wagmi"; -import { useWSCProvider } from "../WSCProvider"; - -const { Step } = Steps; -const { Option } = Select; - -export const convertWeiToTokens = ({ valueWei, token }) => - new BigNumber(valueWei) - .dividedBy(new BigNumber(10).pow(token.decimals)) - .dp(token.decimals); -export const convertTokensToWei = ({ value, token }) => - value.multipliedBy(new BigNumber(10).pow(token.decimals)).dp(0); - -const formatTokenAmount = (amount, decimals) => { - if (decimals) { - const divisor = new BigNumber(10).pow(decimals); - return new BigNumber(amount).dividedBy(divisor).toString(); - } - return amount; -}; - -// TODO: this might be need to be passed on the config provider -const cardanoAddressTReserveCoin = - "cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e"; -const cardanoAddressTStableCoin = - "27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e"; - -const reserveCoinAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128"; - -const statusWrapFirstMessages = { - init: "Staring wrapping your token...", - pending: "Wrapping your tokens...", - WaitingL1Confirmation: "Waiting for L1 confirmation...", - WaitingBridgeConfirmation: "Waiting for bridge confirmation...", - WaitingL2Confirmation: "Waiting for L2 confirmation...", - Confirmed: "Your asset has been successfully moved! Go to Next Step!", - error: "Ups something went wrong." -}; -const statusUnwrapFirstMessages = { - init: "Staring unwrapping your token...", - pending: "Unwrapping your tokens...", - WaitingL1Confirmation: "Waiting for L1 confirmation...", - WaitingBridgeConfirmation: "Waiting for bridge confirmation...", - WaitingL2Confirmation: "Waiting for L2 confirmation...", - Confirmed: "Your asset has been successfully moved! Go to Next Step!", - error: "Ups something went wrong." -}; -const WrapContent = ({ - defaultAmountEth, - defaultTokenUnit = "lovelace", - selectedToken, - setSelectedToken, - amount, - setAmount, - goNextStep -}) => { - const { wscProvider, originTokens } = useWSCProvider(); - const [formattedOriginTokens, setFormattedOriginTokens] = React.useState([]); - - const [txHash, setTxHash] = React.useState(null); - - const [txStatus, setTxStatus] = React.useState("idle"); - - useInterval( - async () => { - if (!wscProvider || txHash == null) return; - const response = await wscProvider.getTxStatus(txHash); - setTxStatus(response); - if (response === "Confirmed") { - setTxHash(null); - setTimeout(() => { - goNextStep(); - }, 2000); - } - }, - txHash != null ? 4000 : null - ); - - const wrapToken = async () => { - setTxStatus("init"); - try { - const txHash = await wscProvider?.wrap( - undefined, - selectedToken.unit, - new BigNumber(amount ?? "0") - ); - setTxHash(txHash); - setTxStatus("pending"); - } catch (err) { - console.error(err); - setTxStatus("error"); - } - }; - - const handleTokenChange = (tokenUnit) => { - const token = formattedOriginTokens.find((t) => t.unit === tokenUnit); - setSelectedToken(token); - }; - const onMaxToken = () => { - setAmount(selectedToken.quantity?.toFixed()); - }; - - useEffect(() => { - const loadOriginTokens = async () => { - const token = originTokens.find((t) => t.unit === defaultTokenUnit); - const defaultToken = { - ...token, - // quantity: defaultAmountEth ?? token.quantity - quantity: convertWeiToTokens({ valueWei: token.quantity, token }) - }; - setSelectedToken(defaultToken); - setAmount(defaultToken.quantity.toFixed()); - const formattedTokens = originTokens - .filter((token) => token.bridgeAllowed) - .map((token) => ({ - ...token, - quantity: convertWeiToTokens({ valueWei: token.quantity, token }) - })); - setFormattedOriginTokens(formattedTokens ?? []); - }; - loadOriginTokens(); - }, [defaultAmountEth, defaultTokenUnit, originTokens, setSelectedToken]); - - if (!selectedToken) return

Loading...
; - - const isAmountValid = new BigNumber(amount).lte(selectedToken.quantity); - - return ( -
-

Wrapping

-
-
- setAmount(e.target.value)} /> - -
- -
-

- You'll be wrapping{" "} - - {amount} {selectedToken.assetName} - -

-
- {!selectedToken?.bridgeAllowed && "bridge doesnt allow this token"} - {!isAmountValid && "Amount exceeds your current balance"} -
- - {txStatus} -
- {txStatus !== "Confirmed" && txStatus !== "idle" && txStatus !== "error" && ( - } /> - )} - {txStatus !== "idle" &&

{statusWrapFirstMessages[txStatus]}

} -
-
- ); -}; - -const TokenAllowanceContent = ({ contractAddress, goNextStep }) => { - const { data: signer } = useSigner(); - const { wscProvider, tokens } = useWSCProvider(); - const [approvalStatus, setApprovalStatus] = React.useState("idle"); - - const onTokenAllowance = async () => { - const selectedToken = tokens.find((t) => t.contractAddress === contractAddress); - if (!selectedToken) return; - - const convertAmountBN = ethers.utils.parseUnits( - selectedToken.balance, - selectedToken?.decimals - ); - - try { - setApprovalStatus("pending"); - const erc20Contract = new ethers.Contract( - selectedToken.contractAddress, - erc20ABI, - signer - ); - const bridgeAddress = "0x319f10d19e21188ecF58b9a146Ab0b2bfC894648"; - const approvalTx = await erc20Contract.functions.approve( - bridgeAddress, - convertAmountBN, - { gasLimit: 500000 } - ); - const approvalReceipt = await approvalTx.wait(); - console.log(approvalReceipt, "approvalReceipt"); - setApprovalStatus("success"); - setTimeout(() => { - goNextStep(); - }, 2000); - } catch (err) { - setApprovalStatus("error"); - console.error(err); - } - }; - - const isLoading = approvalStatus === "pending"; - const isSuccess = approvalStatus === "success"; - const isError = approvalStatus === "error"; - - return ( -
-

Token Allowance

-
-

- Here's a description of what's going on in this step. Lorem ipsum dolor sit - amet, consectetur adipiscing elit. Nullam -

-
-
- {isLoading && ( - } /> - )} - {isError &&

Try again, something went wrong

} - {isSuccess && ( -

You've successfully approved the bridge to spend your tokens. Go Next!

- )} -
- -
- ); -}; - -const ActionExecutionContent = ({ wscProvider, onWSCAction, amount }) => { - // TODO: need to find a way to know if everything went well - return ( -
-

Action Execution

-
-

- Here's a description of what's going on in this step. Lorem ipsum dolor sit - amet, consectetur adipiscing elit. Nullam -

-
- -
- ); -}; -const UnwrapContent = ({ - contractAddress = reserveCoinAddress // TODO: remove hardcoded value -}) => { - const { wscProvider, tokens } = useWSCProvider(); - const [txHash, setTxHash] = React.useState(null); - const [txStatus, setTxStatus] = React.useState("idle"); - - useInterval( - async () => { - if (!wscProvider || txHash == null) return; - const response = await wscProvider.getTxStatus(txHash); - setTxStatus(response); - if (response === "Confirmed") { - setTxHash(null); - } - }, - txHash != null ? 4000 : null - ); - - const unwrapToken = async () => { - const selectedToken = tokens.find((t) => t.contractAddress === contractAddress); - if (!selectedToken) return; - - setTxStatus("init"); - - try { - const txHash = await wscProvider.unwrap( - undefined, - selectedToken.contractAddress, - new BigNumber(selectedToken.balance) - ); - setTxHash(txHash); - setTxStatus("pending"); - } catch (err) { - console.error(err); - setTxStatus("error"); - } - }; - - return ( -
-

Unwrapping

-
-

- Here's a description of what's going on in this step. Lorem ipsum dolor sit - amet, consectetur adipiscing elit. Nullam -

-
- -
{txStatus}
-
- {txStatus !== "Confirmed" && txStatus !== "idle" && txStatus !== "error" && ( - } /> - )} - {txStatus !== "idle" &&

{statusUnwrapFirstMessages[txStatus]}

} -
-
- ); -}; - -const directions = { - WRAP: "wrap", - UNWRAP: "unwrap" -}; -const WSCButton = ({ - onWSCAction, - type, - className, - disabled, - children, - currentAmountWei, - direction, - contractAddress = reserveCoinAddress // TODO -}) => { - const [isModalOpen, setIsModalOpen] = React.useState(false); - const [currentStep, setCurrentStep] = React.useState(0); - const [amount, setAmount] = React.useState(null); - - const [selectedToken, setSelectedToken] = React.useState(null); - - const showModal = () => { - setIsModalOpen(true); - }; - - const handleNextStep = () => { - if (currentStep === 2) return; - const nextStepIdx = currentStep + 1; - setCurrentStep(nextStepIdx); - }; - const handlePrevStep = () => { - if (currentStep === 0) return; - const prevStepIdx = currentStep - 1; - setCurrentStep(prevStepIdx); - }; - - const handleCancel = () => { - setIsModalOpen(false); - }; - - const steps = - direction === directions.WRAP - ? [ - { - title: "Cardano Wrapping", - content: ( - - ) - }, - - { - title: "Action Execution", - content: - }, - { - title: "Token Allowance", - content: ( - - ) - }, - { - title: "Milkomeda Unwrapping", - content: - } - ] - : [ - { - title: "Cardano Wrapping", - content: ( - - ) - }, - { - title: "Token Allowance", - content: ( - - ) - }, - { - title: "Action Execution", - content: - }, - { - title: "Milkomeda Unwrapping", - content: - } - ]; - - return ( - <> - - - - Prev - , - - ]} - > - - {steps.map((item, idx) => ( - - ))} - -
{steps[currentStep].content}
-
- - ); -}; - -export default WSCButton; diff --git a/src/components/wsc-ui/WSCButton/WSCButton.scss b/src/components/wsc-ui/WSCButton/WSCButton.scss deleted file mode 100644 index a68539f8..00000000 --- a/src/components/wsc-ui/WSCButton/WSCButton.scss +++ /dev/null @@ -1,11 +0,0 @@ -.custom { - .ant-steps-item-title{ - font-size: 0.875rem; - line-height: 1.4; - } - .steps-content { - padding: 40px 10px; - } - -} - diff --git a/src/components/wsc-ui/WSCProvider.jsx b/src/components/wsc-ui/WSCProvider.jsx deleted file mode 100644 index 317df118..00000000 --- a/src/components/wsc-ui/WSCProvider.jsx +++ /dev/null @@ -1,86 +0,0 @@ -// create a react context -import React, { createContext, useContext, useEffect, useState } from "react"; -import { useAppProvider } from "../../context/AppProvider"; - -const WSCContext = createContext({}); - -export const WSCProvider = ({ children }) => { - const { activeConnector } = useAppProvider(); - const [wscProvider, setWscProvider] = React.useState(null); - - const [originTokens, setOriginTokens] = useState([]); - const [tokens, setTokens] = useState([]); - const [destinationBalance, setDestinationBalance] = useState(null); - - const [originAddress, setOriginAddress] = useState(null); - const [pendingTxs, setPendingTxs] = useState([]); - const [address, setAddress] = useState(null); - const [originBalance, setOriginBalance] = useState(null); - const [transactions, setTransactions] = useState([]); - const [algorandConnected, setAlgorandConnected] = useState(false); - const [cardanoConnected, setCardanoConnected] = useState(false); - const [network, setNetwork] = useState(null); - - useEffect(() => { - if (!activeConnector?.id?.includes("wsc")) return; - - const loadWscProvider = async () => { - try { - const provider = await activeConnector.getProvider(); - if (!provider) return; - const originTokens = await provider.origin_getTokenBalances(); - const tokenBalances = await provider.getTokenBalances(); - const destinationBalance = await provider.eth_getBalance(); - console.log("destinationBalance", destinationBalance); - setWscProvider(provider); - setOriginTokens(originTokens); - setTokens(tokenBalances ?? []); - setDestinationBalance(destinationBalance); - } catch (e) { - console.log(e); - } - }; - loadWscProvider(); - }, [activeConnector, wscProvider]); - - return ( - - {children} - - ); -}; - -export const useWSCProvider = () => { - const context = useContext(WSCContext); - if (!context) { - throw new Error("useWSCProvider must be used within a WSCProvider"); - } - return context; -}; diff --git a/src/context/AppProvider.jsx b/src/context/AppProvider.jsx index 639d0b5a..ec08b0dd 100644 --- a/src/context/AppProvider.jsx +++ b/src/context/AppProvider.jsx @@ -33,7 +33,7 @@ import { import { useConnect, useAccount, useNetwork, useSigner } from "wagmi"; const AppContext = createContext(); -const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); +export const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); export const AppProvider = ({ children }) => { const { connect, connectors } = useConnect(); diff --git a/src/routes/reservecoin.jsx b/src/routes/reservecoin.jsx index 90e8d3e4..5ccbc519 100644 --- a/src/routes/reservecoin.jsx +++ b/src/routes/reservecoin.jsx @@ -467,10 +467,6 @@ export default function ReserveCoin() { ); } -const cardanoAddressTReserveCoin = - "cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e"; -const reserveCoinEVMAddress = "0x66c34c454f8089820c44e0785ee9635c425c9128"; - const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) => { const { address: account } = useAccount(); @@ -480,11 +476,11 @@ const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) = amount: currentAmount }, defaultUnwrapToken: { - unit: reserveCoinEVMAddress, + unit: process.env.REACT_APP_EVM_RESERVECOIN_ADDRESS, amount: unwrapAmount // amountUnscaled }, titleModal: "Buy RC with WSC", - evmTokenAddress: reserveCoinEVMAddress, + evmTokenAddress: process.env.REACT_APP_EVM_RESERVECOIN_ADDRESS, evmContractRequest: { address: DJED_ADDRESS, abi: djedArtifact.abi, @@ -498,7 +494,7 @@ const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) = const sellOptions = { defaultWrapToken: { - unit: cardanoAddressTReserveCoin, + unit: process.env.REACT_APP_CARDANO_RESERVECOIN_ADDRESS, amount: currentAmount }, defaultUnwrapToken: { @@ -506,7 +502,7 @@ const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) = amount: unwrapAmount // totalBCUnscaled }, titleModal: "Sell RC with WSC", - evmTokenAddress: reserveCoinEVMAddress, + evmTokenAddress: process.env.REACT_APP_EVM_RESERVECOIN_ADDRESS, evmContractRequest: { address: DJED_ADDRESS, abi: djedArtifact.abi, diff --git a/src/routes/stablecoin.jsx b/src/routes/stablecoin.jsx index a41dcf29..4b2322c4 100644 --- a/src/routes/stablecoin.jsx +++ b/src/routes/stablecoin.jsx @@ -450,10 +450,6 @@ export default function Stablecoin() { ); } -const cardanoAddressTStableCoin = - "27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e"; -const stableCoinEVMAddress = "0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9"; - const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) => { const { address: account } = useAccount(); @@ -463,11 +459,11 @@ const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) = amount: currentAmount // amountUnscaled }, defaultUnwrapToken: { - unit: stableCoinEVMAddress, + unit: process.env.REACT_APP_EVM_STABLECOIN_ADDRESS, amount: unwrapAmount // amountUnscaled }, titleModal: "Buy SC with WSC", - evmTokenAddress: stableCoinEVMAddress, + evmTokenAddress: process.env.REACT_APP_EVM_STABLECOIN_ADDRESS, evmContractRequest: { address: DJED_ADDRESS, abi: djedArtifact.abi, @@ -481,7 +477,7 @@ const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) = const sellOptions = { defaultWrapToken: { - unit: cardanoAddressTStableCoin, + unit: process.env.REACT_APP_CARDANO_STABLECOIN_ADDRESS, amount: currentAmount }, defaultUnwrapToken: { @@ -489,7 +485,7 @@ const WSCButton = ({ disabled, currentAmount, unwrapAmount, stepTxDirection }) = amount: unwrapAmount // totalBCUnscaled }, titleModal: "Sell SC with WSC", - evmTokenAddress: stableCoinEVMAddress, + evmTokenAddress: process.env.REACT_APP_EVM_STABLECOIN_ADDRESS, evmContractRequest: { address: DJED_ADDRESS, abi: djedArtifact.abi, diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index 81a6c2e0..23bb766e 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -19,10 +19,11 @@ export const flintWalletConnector = new FlintWalletConnector({ export const client = createClient( getDefaultConfig({ - oracleUrl: "https://wsc-server-devnet.c1.milkomeda.com", - blockfrostId: "preprodliMqEQ9cvQgAFuV7b6dhA4lkjTX1eBLb", + oracleUrl: process.env.REACT_APP_WSC_ORACLE_URL, + blockfrostId: process.env.REACT_APP_WSC_BLOCKFROST_ID, chains: [supportedChain], - network: MilkomedaNetworkName.C1Devnet, + network: + CHAIN_ID === 2001 ? MilkomedaNetworkName.C1Mainnet : MilkomedaNetworkName.C1Devnet, autoConnect: false, storage: createStorage({ storage: window.localStorage, From 31c9f7c8a94b62cf13ab6f99b2b4c7b834224087 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Mon, 21 Aug 2023 12:34:13 -0500 Subject: [PATCH 57/85] upgrade ui lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e1cb0b3a..b401d223 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.4.3", + "milkomeda-wsc-ui-test-beta": "0.4.4", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16732,9 +16732,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.4.3.tgz", - "integrity": "sha512-RE1KouTzNUTIvf7EgmKxU6UQDdjZ4w1d2fVigFxfbqVVvC3VzZqUlt26jSlk99HTnuJfVvgvVrj1CSzpF7tvOA==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.4.4.tgz", + "integrity": "sha512-ThbTbMXSF08qiGsRdg2C1BABrJJbZRpeXl0+z6nlDJOYSO0q2J6D6E6p513qTwhvnW6qypI/lt5SqN5ScFvaDA==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index e69271ce..99f95c9c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.4.3", + "milkomeda-wsc-ui-test-beta": "0.4.4", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 4ec25f8f258cd9140de8580949835122c32311cb Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 24 Aug 2023 11:35:07 -0500 Subject: [PATCH 58/85] upgrade ui lib --- package-lock.json | 44 ++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index b401d223..551a1e51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.4.4", + "milkomeda-wsc-ui-test-beta": "0.4.6", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -7786,13 +7786,13 @@ } }, "node_modules/algosdk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.4.0.tgz", - "integrity": "sha512-sENe6IyUqvhQprfS/7gJAkPC5sX2LI5uc+gXaKNgzKp72UEyXYSoN3h4MZkOlCrOcTSWTJW7605tYgg8nFkflw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.5.0.tgz", + "integrity": "sha512-MlbPjjx4utq5sETOE0okF7/Lz0fgoBtRJRvSbRu3GnoybLTq/n6To2ojDAjJMqi+qMDyUBE9fWu+8jdSvozavA==", "dependencies": { "algo-msgpack-with-bigint": "^2.1.1", "buffer": "^6.0.3", - "cross-fetch": "^3.1.5", + "cross-fetch": "^4.0.0", "hi-base32": "^0.5.1", "js-sha256": "^0.9.0", "js-sha3": "^0.8.0", @@ -7805,6 +7805,14 @@ "node": ">=16.0.0" } }, + "node_modules/algosdk/node_modules/cross-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", + "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -16704,9 +16712,9 @@ } }, "node_modules/milkomeda-wsc": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.2.8.tgz", - "integrity": "sha512-CakYF5Tab4QmG/RWXJxko/+22f8MO/uvvkHzdzpPQh7vA6gGhSZVrNX2SABicT3I1y+EBuM7DI6NyvHw+UWvYQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.3.0.tgz", + "integrity": "sha512-IUByY8QEbb7EZrGXfc7yjRE8Afp7DYvu+Hd2zLxYhv76rGOF67rpfXTpfg8OTDLTc5X4JOVcDfSkt8ly1ZwRIw==", "dependencies": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -16720,9 +16728,9 @@ } }, "node_modules/milkomeda-wsc-provider": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.3.tgz", - "integrity": "sha512-enWfxENeD+FUR0VIel+TyUGYp8xDwR+WMb6Gn9M5dtO+wMazwmYIqSlPz07ZxChugITFq9zoOQzSO902BTjEMQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.4.tgz", + "integrity": "sha512-wXxDUpPyJx3qiuyT5F7dgHqD3qlTLcxevY0plqqT+Oe9JpIjflXl6z4myl5XuNhDr4lAA3efuPmJ+aERqAI14A==", "dependencies": { "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1", "@perawallet/connect": "^1.2.3", @@ -16732,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.4.4.tgz", - "integrity": "sha512-ThbTbMXSF08qiGsRdg2C1BABrJJbZRpeXl0+z6nlDJOYSO0q2J6D6E6p513qTwhvnW6qypI/lt5SqN5ScFvaDA==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.4.6.tgz", + "integrity": "sha512-nWbRXRYARMBNJnImdfKPnz3IkDiTqIMiwBQu6gOpSl1jVNgbMO4dvLUMPeiTkXQLOwuZc1SruChdCI0Bn4P03Q==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", @@ -16745,7 +16753,7 @@ "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", "lucide-react": "^0.252.0", - "milkomeda-wsc": "0.2.8", + "milkomeda-wsc": "0.3.0", "qrcode": "^1.5.0", "react": "17.x || 18.x", "react-confetti": "^6.1.0", @@ -19323,9 +19331,9 @@ } }, "node_modules/pvtsutils": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.3.tgz", - "integrity": "sha512-6sAOMlXyrJ+8tRN5IAaYfuYZRp1C2uJ0SyDynEFxL+VY8kCRib9Lpj/+KPaNFpaQWr/iRik5nrzz6iaNlxgEGA==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", "dependencies": { "tslib": "^2.6.1" } diff --git a/package.json b/package.json index 99f95c9c..9077f04f 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.4.4", + "milkomeda-wsc-ui-test-beta": "0.4.6", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 9ab9dc2676af506ae1fe2fdafe67e54d41cd367e Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 29 Aug 2023 11:26:44 -0500 Subject: [PATCH 59/85] fix: milkomeda network name --- env/milkomeda-c1-testnet.env | 1 + env/milkomeda-c1.env | 1 + src/utils/web3/wagmi.js | 3 +-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/env/milkomeda-c1-testnet.env b/env/milkomeda-c1-testnet.env index 119481d0..51d57fb5 100644 --- a/env/milkomeda-c1-testnet.env +++ b/env/milkomeda-c1-testnet.env @@ -20,6 +20,7 @@ REACT_APP_RC_SYMBOL=MOR REACT_APP_LIMIT_PER_TXN=10000 REACT_APP_WSC_ORACLE_URL=https://wsc-server-devnet.c1.milkomeda.com REACT_APP_WSC_BLOCKFROST_ID= +REACT_APP_WSC_MILKOMEDA_NETWORK_NAME=Cardano C1 Devnet REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 REACT_APP_CARDANO_STABLECOIN_ADDRESS=27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e diff --git a/env/milkomeda-c1.env b/env/milkomeda-c1.env index 3fc32c41..e2a2cb14 100644 --- a/env/milkomeda-c1.env +++ b/env/milkomeda-c1.env @@ -20,6 +20,7 @@ REACT_APP_RC_SYMBOL=MOR REACT_APP_LIMIT_PER_TXN=10000 REACT_APP_WSC_ORACLE_URL=https://wsc-oracle-c1-mainnet.milkomeda.com REACT_APP_WSC_BLOCKFROST_ID= +REACT_APP_WSC_MILKOMEDA_NETWORK_NAME=Cardano C1 Mainnet REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 REACT_APP_CARDANO_STABLECOIN_ADDRESS=27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index 23bb766e..1c7db96d 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -22,8 +22,7 @@ export const client = createClient( oracleUrl: process.env.REACT_APP_WSC_ORACLE_URL, blockfrostId: process.env.REACT_APP_WSC_BLOCKFROST_ID, chains: [supportedChain], - network: - CHAIN_ID === 2001 ? MilkomedaNetworkName.C1Mainnet : MilkomedaNetworkName.C1Devnet, + network: process.env.REACT_APP_WSC_MILKOMEDA_NETWORK_NAME, autoConnect: false, storage: createStorage({ storage: window.localStorage, From 48b2e09cf372a45f858ee92993f108d945d369d3 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 29 Aug 2023 13:37:03 -0500 Subject: [PATCH 60/85] fix --- env/milkomeda-c1.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env/milkomeda-c1.env b/env/milkomeda-c1.env index e2a2cb14..88c35858 100644 --- a/env/milkomeda-c1.env +++ b/env/milkomeda-c1.env @@ -19,7 +19,7 @@ REACT_APP_RC_NAME=Milkomeda-C1 Djed Osiris Reservecoin REACT_APP_RC_SYMBOL=MOR REACT_APP_LIMIT_PER_TXN=10000 REACT_APP_WSC_ORACLE_URL=https://wsc-oracle-c1-mainnet.milkomeda.com -REACT_APP_WSC_BLOCKFROST_ID= +#REACT_APP_WSC_BLOCKFROST_ID= REACT_APP_WSC_MILKOMEDA_NETWORK_NAME=Cardano C1 Mainnet REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 From fc3be288355cb48c3478554f68cf064abc39c416 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 29 Aug 2023 13:39:46 -0500 Subject: [PATCH 61/85] fix --- env/milkomeda-c1-testnet.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env/milkomeda-c1-testnet.env b/env/milkomeda-c1-testnet.env index 51d57fb5..e3fe27f4 100644 --- a/env/milkomeda-c1-testnet.env +++ b/env/milkomeda-c1-testnet.env @@ -19,7 +19,7 @@ REACT_APP_RC_NAME=Milkomeda-C1 Djed Osiris Reservecoin REACT_APP_RC_SYMBOL=MOR REACT_APP_LIMIT_PER_TXN=10000 REACT_APP_WSC_ORACLE_URL=https://wsc-server-devnet.c1.milkomeda.com -REACT_APP_WSC_BLOCKFROST_ID= +#REACT_APP_WSC_BLOCKFROST_ID= REACT_APP_WSC_MILKOMEDA_NETWORK_NAME=Cardano C1 Devnet REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 From fb874bd33e1f909056bc98d8d6dfbbc1ee8f4b41 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Mon, 4 Sep 2023 12:23:08 -0500 Subject: [PATCH 62/85] update tokens info --- env/milkomeda-c1.env | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/env/milkomeda-c1.env b/env/milkomeda-c1.env index 88c35858..d46da429 100644 --- a/env/milkomeda-c1.env +++ b/env/milkomeda-c1.env @@ -21,7 +21,8 @@ REACT_APP_LIMIT_PER_TXN=10000 REACT_APP_WSC_ORACLE_URL=https://wsc-oracle-c1-mainnet.milkomeda.com #REACT_APP_WSC_BLOCKFROST_ID= REACT_APP_WSC_MILKOMEDA_NETWORK_NAME=Cardano C1 Mainnet -REACT_APP_CARDANO_RESERVECOIN_ADDRESS=cc53696f7d40c96f2bca9e2e8fe31905d8207c4106f326f417ec36727452657365727665436f696e -REACT_APP_EVM_RESERVECOIN_ADDRESS=0x66c34c454f8089820c44e0785ee9635c425c9128 -REACT_APP_CARDANO_STABLECOIN_ADDRESS=27f2e501c0fa1f9b7b79ae0f7faeb5ecbe4897d984406602a1afd8a874537461626c65436f696e -REACT_APP_EVM_STABLECOIN_ADDRESS=0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9 +REACT_APP_CARDANO_RESERVECOIN_ADDRESS=f073e7396802cadc7f9e644f251d3bce11ad44f938d11d875098ddd04d4f52 +REACT_APP_EVM_RESERVECOIN_ADDRESS=0xd90f0f3332d8fccd5f74f0830f05cfca46c31ddf +REACT_APP_CARDANO_STABLECOIN_ADDRESS=f4da952809ee5db368fc8ff6de939ac55543b97524614bac98a393964d4f44 +REACT_APP_EVM_STABLECOIN_ADDRESS=0xbfb54440448e6b702fa2a1d7033cd5fb0d9c5a27 + From a373f908131060c5211fd9f3414bedddf51381d8 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 7 Sep 2023 00:10:12 -0500 Subject: [PATCH 63/85] update lib and fix wsc custom theming --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- src/App.js | 27 ++++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 551a1e51..63ae5bd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.4.6", + "milkomeda-wsc-ui-test-beta": "0.5.5", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16559,9 +16559,9 @@ } }, "node_modules/lucid-cardano/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.0.tgz", + "integrity": "sha512-WR0RJE9Ehsio6U4TuM+LmunEsjQ5ncHlw4sn9ihD6RoJKZrVyH9FWV3dmnwu8B2aNib1OvG2X6adUCyFpQyWcg==", "engines": { "node": ">=10.0.0" }, @@ -16712,9 +16712,9 @@ } }, "node_modules/milkomeda-wsc": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.3.0.tgz", - "integrity": "sha512-IUByY8QEbb7EZrGXfc7yjRE8Afp7DYvu+Hd2zLxYhv76rGOF67rpfXTpfg8OTDLTc5X4JOVcDfSkt8ly1ZwRIw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.3.1.tgz", + "integrity": "sha512-gPV8OyjCVW9Qb35HjJM11XH7Z25CQAa3yc+K4WCXfQPWoYLaZFfrMAOcNmQyrKHqpVNsU5oWA5DK1YL8k9vALQ==", "dependencies": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -16724,13 +16724,13 @@ "buffer": "^6.0.3", "ethers": "^5.7.2", "lucid-cardano": "^0.10.5", - "milkomeda-wsc-provider": "^0.1.0" + "milkomeda-wsc-provider": "^0.1.5" } }, "node_modules/milkomeda-wsc-provider": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.4.tgz", - "integrity": "sha512-wXxDUpPyJx3qiuyT5F7dgHqD3qlTLcxevY0plqqT+Oe9JpIjflXl6z4myl5XuNhDr4lAA3efuPmJ+aERqAI14A==", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-provider/-/milkomeda-wsc-provider-0.1.5.tgz", + "integrity": "sha512-oFkIA1QFBkDpEgRN33KqrgXrwoENLfqOffKB/4FDD7kNuSdzGLd4a4ycAK2N55ftIL43qTOygXpXiPnNanaghg==", "dependencies": { "@dcspark/cardano-multiplatform-lib-browser": "^3.1.1", "@perawallet/connect": "^1.2.3", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.4.6.tgz", - "integrity": "sha512-nWbRXRYARMBNJnImdfKPnz3IkDiTqIMiwBQu6gOpSl1jVNgbMO4dvLUMPeiTkXQLOwuZc1SruChdCI0Bn4P03Q==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.5.5.tgz", + "integrity": "sha512-saI57rZOXKDs5xJr81K4RiHlWlaLTJul9o25HLWJsO0h3IC/zS7IqW5dyNCS9PPofockspu/k/J85zZtAwHung==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", @@ -16753,7 +16753,7 @@ "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", "lucide-react": "^0.252.0", - "milkomeda-wsc": "0.3.0", + "milkomeda-wsc": "0.3.1", "qrcode": "^1.5.0", "react": "17.x || 18.x", "react-confetti": "^6.1.0", diff --git a/package.json b/package.json index 9077f04f..7c91e2c4 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.4.6", + "milkomeda-wsc-ui-test-beta": "0.5.5", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", diff --git a/src/App.js b/src/App.js index 6ec1624e..3d74060c 100644 --- a/src/App.js +++ b/src/App.js @@ -13,7 +13,32 @@ import { ConnectWSCProvider } from "milkomeda-wsc-ui-test-beta"; const wscCustomTheme = { "--wsc-body-background": "#100901", - "--wsc-body-color-muted": "rgb(255 255 255 / 60%)" + "--wsc-body-color-muted": "rgb(255 255 255 / 60%)", + "--wsc-body-color": "white", + "--wsc-body-divider": "#3f3d40", + "--wsc-stepper-separator": "#3f3d40", + "--wsc-overlay-backdrop-filter": "blur(6px)", + + // primary buttons + "--wsc-primary-button-color": "white", + "--wsc-primary-button-background": "#41455c", + "--wsc-primary-button-box-shadow": "none", + "--wsc-primary-button-hover-background": "#2c2f3e", + // secondary button + "--wsc-secondary-button-color": "white", + "--wsc-secondary-button-background": "transparent", + "--wsc-secondary-button-box-shadow": "inset 0 0 0 1px #41455c", + "--wsc-secondary-button-hover-background": "rgba(0,0,0,0.4)", + // connect main button + "--wsc-connectbutton-background": "#41455c", + "--wsc-connectbutton-text": "#fff", + "--wsc-connectbutton-hover-background": "#2c2f3e", + "--wsc-connectbutton-active-box-shadow": "none", + "--wsc-connectbutton-box-shadow": "none", + "--wsc-connectbutton-color": "#fff", + "--wsc-connectbutton-hover-color": "#fff", + "--wsc-connectbutton-active-background": "#2c2f3e", + "--wsc-connectbutton-active-color": "white" }; export default function App() { useEffect(() => { From f28f74195adf082b634b189206ea00779e415899 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 7 Sep 2023 00:10:20 -0500 Subject: [PATCH 64/85] fix eslint --- src/components/molecules/BuySellCoin/BuySellCoin.jsx | 4 ++-- src/utils/web3/wagmi.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index 6398beae..ac79ef22 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -13,11 +13,11 @@ export const useSellCardanoToken = () => { const cardanoStablecoinAddress = process.env.REACT_APP_CARDANO_STABLECOIN_ADDRESS; const cardanoReservecoinAsset = React.useMemo( () => originTokens.find((token) => token.unit === cardanoReservecoinAddress), - [originTokens] + [cardanoReservecoinAddress, originTokens] ); const cardanoStablecoinAsset = React.useMemo( () => originTokens.find((token) => token.unit === cardanoStablecoinAddress), - [originTokens] + [cardanoStablecoinAddress, originTokens] ); const adaToken = React.useMemo( () => originTokens.find((token) => token.unit === "lovelace"), diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index 1c7db96d..78460d70 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -2,7 +2,7 @@ import { supportedChains } from "./networks"; import { createClient, createStorage } from "wagmi"; import { MetaMaskConnector } from "wagmi/connectors/metaMask"; import { FlintWalletConnector } from "./connectors/flint"; -import { getDefaultConfig, MilkomedaNetworkName } from "milkomeda-wsc-ui-test-beta"; +import { getDefaultConfig } from "milkomeda-wsc-ui-test-beta"; const CHAIN_ID = Number(process.env.REACT_APP_CHAIN_ID); From 3f9422c0c277f37ad2ed373098fe6c785bf0cd60 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 8 Sep 2023 02:03:31 -0500 Subject: [PATCH 65/85] upgrade lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 63ae5bd8..14f82125 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.5.5", + "milkomeda-wsc-ui-test-beta": "1.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-0.5.5.tgz", - "integrity": "sha512-saI57rZOXKDs5xJr81K4RiHlWlaLTJul9o25HLWJsO0h3IC/zS7IqW5dyNCS9PPofockspu/k/J85zZtAwHung==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.0.tgz", + "integrity": "sha512-G5cUawsN3WswNN0sLjRq0u8stJH5QAV/1Z4S6p7lqBroGrxW9bKjBDOF5Ztg1hM8db+3UULyCW1ifcwL5F6BiQ==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index 7c91e2c4..b2f8654d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "0.5.5", + "milkomeda-wsc-ui-test-beta": "1.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 07be5f4cdf609837f6159676130fef91bd369f98 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 8 Sep 2023 02:20:13 -0500 Subject: [PATCH 66/85] fixes --- src/App.js | 1 + .../molecules/BuySellCoin/BuySellCoin.jsx | 67 +------------------ 2 files changed, 4 insertions(+), 64 deletions(-) diff --git a/src/App.js b/src/App.js index 3d74060c..b8410946 100644 --- a/src/App.js +++ b/src/App.js @@ -18,6 +18,7 @@ const wscCustomTheme = { "--wsc-body-divider": "#3f3d40", "--wsc-stepper-separator": "#3f3d40", "--wsc-overlay-backdrop-filter": "blur(6px)", + "--wsc-alert-background": "#212433", // primary buttons "--wsc-primary-button-color": "white", diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index ac79ef22..f94ed18d 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -5,37 +5,6 @@ import "./_BuySellCoin.scss"; import { useAppProvider } from "../../../context/AppProvider"; import { TRANSACTION_VALIDITY } from "../../../utils/constants"; import { useWSCProvider } from "milkomeda-wsc-ui-test-beta"; -import { ethers } from "ethers"; - -export const useSellCardanoToken = () => { - const { wscProvider, originTokens, isWSCConnected } = useWSCProvider(); - const cardanoReservecoinAddress = process.env.REACT_APP_CARDANO_RESERVECOIN_ADDRESS; - const cardanoStablecoinAddress = process.env.REACT_APP_CARDANO_STABLECOIN_ADDRESS; - const cardanoReservecoinAsset = React.useMemo( - () => originTokens.find((token) => token.unit === cardanoReservecoinAddress), - [cardanoReservecoinAddress, originTokens] - ); - const cardanoStablecoinAsset = React.useMemo( - () => originTokens.find((token) => token.unit === cardanoStablecoinAddress), - [cardanoStablecoinAddress, originTokens] - ); - const adaToken = React.useMemo( - () => originTokens.find((token) => token.unit === "lovelace"), - [originTokens] - ); - - return { - wscProvider, - isWSCConnected, - cardanoReservecoinAsset, - cardanoStablecoinAsset, - destinationBalanceADA: adaToken ?? { - quantity: "0", - decimals: 6, - assetName: "ADA" - } - }; -}; const BuySellCoin = ({ coinName, @@ -54,12 +23,8 @@ const BuySellCoin = ({ }) => { const FEE_UI = process.env.REACT_APP_FEE_UI; const { isWalletConnected, isWrongChain } = useAppProvider(); - const { - isWSCConnected, - cardanoReservecoinAsset, - cardanoStablecoinAsset, - destinationBalanceADA - } = useSellCardanoToken(); + const { isWSCConnected } = useWSCProvider(); + const inputValid = validity === TRANSACTION_VALIDITY.OK; const inputBarNotMarked = !inputValue || !isWalletConnected || isWrongChain || inputValid; @@ -108,33 +73,7 @@ const BuySellCoin = ({ {process.env.REACT_APP_BC} and refresh the page.

) : null} - {isWSCConnected && cardanoReservecoinAsset ? ( -

- - Your current balance is{" "} - {ethers.utils.formatUnits(cardanoReservecoinAsset.quantity, 0)}{" "} - {cardanoReservecoinAsset.assetName} -

- ) : null} - {isWSCConnected && cardanoStablecoinAsset ? ( -

- - Your current balance is{" "} - {ethers.utils.formatUnits(cardanoStablecoinAsset.quantity, 0)}{" "} - {cardanoStablecoinAsset.assetName} -

- ) : null} - {isWSCConnected && destinationBalanceADA ? ( -

- - Your current balance is{" "} - {ethers.utils.formatUnits( - destinationBalanceADA.quantity, - destinationBalanceADA.decimals - )}{" "} - {destinationBalanceADA.assetName} -

- ) : null} +
{/*

From 34e26b79d06ed9e4dc7a0dc72537bc5a0372a46c Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 8 Sep 2023 22:00:45 -0500 Subject: [PATCH 67/85] upgrade lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14f82125..d98ba9f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.0", + "milkomeda-wsc-ui-test-beta": "1.0.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.0.tgz", - "integrity": "sha512-G5cUawsN3WswNN0sLjRq0u8stJH5QAV/1Z4S6p7lqBroGrxW9bKjBDOF5Ztg1hM8db+3UULyCW1ifcwL5F6BiQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.1.tgz", + "integrity": "sha512-JDWf/pBgPSSphmAYjiOqsYKQY/ZxEnu7ffMsXnnZ3yRHs+5LQzSRPdh9ovUGcHdC9owah5Y59S4QHDmMbfTD/w==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index b2f8654d..045f1464 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.0", + "milkomeda-wsc-ui-test-beta": "1.0.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From cd9de12e8fdf52b0761fa4d8165cbd8ea1fd231b Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 28 Sep 2023 00:56:45 -0500 Subject: [PATCH 68/85] add more cardano wallets --- .../WalletConnectButton.jsx | 18 ++++++++++ src/context/AppProvider.jsx | 33 ++++++++++++++++++- src/utils/web3/wagmi.js | 3 +- 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx b/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx index 82023fb4..84fcb266 100644 --- a/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx +++ b/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx @@ -15,15 +15,21 @@ const WalletConnectButton = () => { isFlintWalletInstalled, isEternlWalletInstalled, isMetamaskWalletInstalled, + isNufiWalletInstalled, + isNamiWalletInstalled, isWalletConnected, account, connectMetamask, connectFlintWallet, connectToFlintWSC, connectToEternlWSC, + connectToNamiWSC, + connectToNufiWSC, redirectToMetamask, redirectToFlint, redirectToEternl, + redirectToNami, + redirectToNufi, activeConnector } = useAppProvider(); @@ -92,6 +98,18 @@ const WalletConnectButton = () => { iconWallet={} variant="primary" /> + } + variant="primary" + /> + } + variant="primary" + /> ) } diff --git a/src/context/AppProvider.jsx b/src/context/AppProvider.jsx index ec08b0dd..e89edca1 100644 --- a/src/context/AppProvider.jsx +++ b/src/context/AppProvider.jsx @@ -112,6 +112,12 @@ export const AppProvider = ({ children }) => { const redirectToEternl = () => { window.open("https://eternl.io/", "_blank"); }; + const redirectToNami = () => { + window.open("https://namiwallet.io/", "_blank"); + }; + const redirectToNufi = () => { + window.open("https://nu.fi/", "_blank"); + }; const setUpAccountSpecificValues = async () => { if (coinContracts == null) return; @@ -141,13 +147,30 @@ export const AppProvider = ({ children }) => { }; const connectToEternlWSC = () => { const etrnalWSCConnector = connectors.find( - (connector) => connector.id === "etrnal-wsc" + (connector) => connector.id === "eternl-wsc" ); if (!etrnalWSCConnector) return; connect({ connector: etrnalWSCConnector }); }; + + const connectToNamiWSC = () => { + const namiWSCConnector = connectors.find((connector) => connector.id === "nami-wsc"); + if (!namiWSCConnector) return; + connect({ + connector: namiWSCConnector + }); + }; + + const connectToNufiWSC = () => { + const nufiWSCConnector = connectors.find((connector) => connector.id === "nufi-wsc"); + if (!nufiWSCConnector) return; + connect({ + connector: nufiWSCConnector + }); + }; + const connectFlintWallet = () => { // flint doesn't support switchNetwork at the time being connect({ @@ -269,15 +292,23 @@ export const AppProvider = ({ children }) => { typeof window !== "undefined" ? window?.evmproviders?.flint?.isFlint : false, isEternlWalletInstalled: typeof window !== "undefined" ? window?.cardano?.eternl : false, + isNamiWalletInstalled: + typeof window !== "undefined" ? window?.cardano?.nami : false, + isNufiWalletInstalled: + typeof window !== "undefined" ? window?.cardano?.nufi : false, isWalletConnected, isWrongChain: isWalletConnected && chain?.id !== CHAIN_ID, connectMetamask, connectFlintWallet, + connectToNamiWSC, + connectToNufiWSC, connectToEternlWSC, connectToFlintWSC, redirectToMetamask, redirectToFlint, redirectToEternl, + redirectToNami, + redirectToNufi, activeConnector, account, signer, diff --git a/src/utils/web3/wagmi.js b/src/utils/web3/wagmi.js index 78460d70..b3f9bc0c 100644 --- a/src/utils/web3/wagmi.js +++ b/src/utils/web3/wagmi.js @@ -27,6 +27,7 @@ export const client = createClient( storage: createStorage({ storage: window.localStorage, key: "djed.stablecoin" - }) + }), + cardanoWalletNames: ["flint", "eternl", "nami", "nufi"] }) ); From 00f17e4661303e4fd4f0294b04c7169c6f27e249 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 28 Sep 2023 00:57:22 -0500 Subject: [PATCH 69/85] update lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d98ba9f6..ccf8bda9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.1", + "milkomeda-wsc-ui-test-beta": "1.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.1.tgz", - "integrity": "sha512-JDWf/pBgPSSphmAYjiOqsYKQY/ZxEnu7ffMsXnnZ3yRHs+5LQzSRPdh9ovUGcHdC9owah5Y59S4QHDmMbfTD/w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.2.tgz", + "integrity": "sha512-/1jHMvRysxXGBP9T2X0bY3yBYny1Ua+LAl1UHUbNKbqkHADUCFXCNAG2dTn+Xzjp4xHHzi5ilxhaTvtqrLshgQ==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index 045f1464..fff86c99 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.1", + "milkomeda-wsc-ui-test-beta": "1.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 0dbbbde9f04c1810d86dcdc053819e1fd5258437 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 5 Oct 2023 18:50:44 -0500 Subject: [PATCH 70/85] update milkomeda lib --- package-lock.json | 36 ++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index ccf8bda9..cf0b72aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.2", + "milkomeda-wsc-ui-test-beta": "1.0.3", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -4457,9 +4457,9 @@ "integrity": "sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==" }, "node_modules/@perawallet/connect": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@perawallet/connect/-/connect-1.3.1.tgz", - "integrity": "sha512-392Hi/Oqgb05AvBFCJLcoideZ9zEboqIGBjMllG/qn+TMjKyJi1bwdqHTL7sOvzeOjq1ULJJ/0NN0y5+wdIcOQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@perawallet/connect/-/connect-1.3.3.tgz", + "integrity": "sha512-m2PL3CX8TUH3Y65T22yv4+9mes7hxjsie8AbZHRFe8uR5LLgWk1kyQHM8/KSsM52v7YUcG8G1IlsFgzsW+36xA==", "dependencies": { "@evanhahn/lottie-web-light": "5.8.1", "@walletconnect/client": "^1.8.0", @@ -7786,9 +7786,9 @@ } }, "node_modules/algosdk": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.5.0.tgz", - "integrity": "sha512-MlbPjjx4utq5sETOE0okF7/Lz0fgoBtRJRvSbRu3GnoybLTq/n6To2ojDAjJMqi+qMDyUBE9fWu+8jdSvozavA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.6.0.tgz", + "integrity": "sha512-xYSb2xPG4nLPlJvqjA4ebR0s++YrjZK1+UfaEV84u2HkIwuRhEUmryDPcAuLIfTp3eyY99v/FduOK02K2Hnu8Q==", "dependencies": { "algo-msgpack-with-bigint": "^2.1.1", "buffer": "^6.0.3", @@ -7802,7 +7802,7 @@ "vlq": "^2.0.4" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/algosdk/node_modules/cross-fetch": { @@ -16559,9 +16559,9 @@ } }, "node_modules/lucid-cardano/node_modules/ws": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.0.tgz", - "integrity": "sha512-WR0RJE9Ehsio6U4TuM+LmunEsjQ5ncHlw4sn9ihD6RoJKZrVyH9FWV3dmnwu8B2aNib1OvG2X6adUCyFpQyWcg==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "engines": { "node": ">=10.0.0" }, @@ -16712,9 +16712,9 @@ } }, "node_modules/milkomeda-wsc": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.3.1.tgz", - "integrity": "sha512-gPV8OyjCVW9Qb35HjJM11XH7Z25CQAa3yc+K4WCXfQPWoYLaZFfrMAOcNmQyrKHqpVNsU5oWA5DK1YL8k9vALQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/milkomeda-wsc/-/milkomeda-wsc-0.3.2.tgz", + "integrity": "sha512-wNTZBZ1xNH/DpizlNEO+k9ZebyHgp2ALLi5VUQ317bg63WRySTWdmugf5ewse0TphQHTPBUNdsErEu2YmKhycA==", "dependencies": { "@dcspark/milkomeda-js-sdk": "^0.5.3", "@emurgo/cip14-js": "^3.0.1", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.2.tgz", - "integrity": "sha512-/1jHMvRysxXGBP9T2X0bY3yBYny1Ua+LAl1UHUbNKbqkHADUCFXCNAG2dTn+Xzjp4xHHzi5ilxhaTvtqrLshgQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.3.tgz", + "integrity": "sha512-s+I21w6+3gVuzrRmyA6qLCmXU7xm8Wj14q4NPzu2LvIpgFDO2JHMR9PZu7stJa0PgZoA+6LNTLSlxPapIs7o+A==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", @@ -16753,7 +16753,7 @@ "detect-browser": "^5.3.0", "framer-motion": "^6.3.11", "lucide-react": "^0.252.0", - "milkomeda-wsc": "0.3.1", + "milkomeda-wsc": "0.3.2", "qrcode": "^1.5.0", "react": "17.x || 18.x", "react-confetti": "^6.1.0", diff --git a/package.json b/package.json index fff86c99..d7d606f1 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.2", + "milkomeda-wsc-ui-test-beta": "1.0.3", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 60b8d574c1d33b768f2f8bd495defe73abbf166b Mon Sep 17 00:00:00 2001 From: paulclindo Date: Thu, 5 Oct 2023 18:50:53 -0500 Subject: [PATCH 71/85] remove popup --- .../WalletConnectButton.jsx | 38 +------------------ 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx b/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx index 84fcb266..c68993af 100644 --- a/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx +++ b/src/components/molecules/MetamaskStatusButton/WalletConnectButton.jsx @@ -8,7 +8,6 @@ import { useNavigate } from "react-router-dom"; import "./_MetamaskStatusButton.scss"; import { useDisconnect } from "wagmi"; import { Button, Popover } from "antd"; -import { WSCInterface } from "milkomeda-wsc-ui-test-beta"; const WalletConnectButton = () => { const { @@ -29,8 +28,7 @@ const WalletConnectButton = () => { redirectToFlint, redirectToEternl, redirectToNami, - redirectToNufi, - activeConnector + redirectToNufi } = useAppProvider(); return ( @@ -39,39 +37,7 @@ const WalletConnectButton = () => { getPopupContainer={(trigger) => trigger.parentElement} content={ isWalletConnected ? ( - <> - {activeConnector?.id?.includes("wsc") && ( -

- -
- )} - - - + ) : ( <> Date: Tue, 10 Oct 2023 01:20:29 -0500 Subject: [PATCH 72/85] bump milkomeda-wsc-ui lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf0b72aa..99f3daeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.3", + "milkomeda-wsc-ui-test-beta": "1.0.5", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.3.tgz", - "integrity": "sha512-s+I21w6+3gVuzrRmyA6qLCmXU7xm8Wj14q4NPzu2LvIpgFDO2JHMR9PZu7stJa0PgZoA+6LNTLSlxPapIs7o+A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.5.tgz", + "integrity": "sha512-BBGXvkOaqaRGDr9UP9MM80C64WQVoZnwd9/KSbVCCIk9HybKa3i6QJGAwQ1o1pf+/gzJDB7cVmlnQBNyYmSJmw==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index d7d606f1..850b3c49 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.3", + "milkomeda-wsc-ui-test-beta": "1.0.5", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 397e644763202fe09da8b238b59d58177fbb3c30 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 11 Oct 2023 02:00:47 -0500 Subject: [PATCH 73/85] fix validation --- src/components/molecules/BuySellCoin/BuySellCoin.jsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index f94ed18d..5abd12ca 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -25,7 +25,7 @@ const BuySellCoin = ({ const { isWalletConnected, isWrongChain } = useAppProvider(); const { isWSCConnected } = useWSCProvider(); - const inputValid = validity === TRANSACTION_VALIDITY.OK; + const inputValid = isWSCConnected ? true : validity === TRANSACTION_VALIDITY.OK; const inputBarNotMarked = !inputValue || !isWalletConnected || isWrongChain || inputValid; @@ -50,7 +50,14 @@ const BuySellCoin = ({ }} />
- {!isWSCConnected && ( + {isWSCConnected ? ( + <> +

+ + You will transfer {totalAmount ?? "-"} ADA from your Cardano wallet. +

+ + ) : ( <>

From 8d73c4513bc76f230c945d1695dc110f9f0b81dc Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 11 Oct 2023 16:53:55 -0500 Subject: [PATCH 74/85] update lib with fixes --- package-lock.json | 14 ++++++++++---- package.json | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99f3daeb..3c487dae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.5", + "milkomeda-wsc-ui-test-beta": "1.0.6", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.5.tgz", - "integrity": "sha512-BBGXvkOaqaRGDr9UP9MM80C64WQVoZnwd9/KSbVCCIk9HybKa3i6QJGAwQ1o1pf+/gzJDB7cVmlnQBNyYmSJmw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.6.tgz", + "integrity": "sha512-JgSHedM9Ui5tx6xJPCfn1iUpy5t9JxoK0M68FcD6r8r0+HFZ8plSIH+ekyRcySulukcAMBKhed0DLgtrVUTJxA==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", @@ -16767,6 +16767,7 @@ "rollup-plugin-typescript2": "^0.34.0", "rollup-plugin-visualizer": "^5.5.4", "styled-components": "^5.3.5", + "tiny-invariant": "^1.3.1", "tslib": "^2.5.3", "typescript-plugin-styled-components": "^2.0.0", "wagmi": "0.12.15" @@ -22812,6 +22813,11 @@ "node": ">=0.10.0" } }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", diff --git a/package.json b/package.json index 850b3c49..4a55ded6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.5", + "milkomeda-wsc-ui-test-beta": "1.0.6", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From d9d9e17f9560fff0843ddfd53688b42166b6fe1b Mon Sep 17 00:00:00 2001 From: paulclindo Date: Wed, 11 Oct 2023 17:36:11 -0500 Subject: [PATCH 75/85] display balance on cardano --- .../molecules/BuySellCoin/BuySellCoin.jsx | 87 ++++++++++++++----- 1 file changed, 63 insertions(+), 24 deletions(-) diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index 5abd12ca..477b8991 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -4,7 +4,12 @@ import { Input } from "antd"; import "./_BuySellCoin.scss"; import { useAppProvider } from "../../../context/AppProvider"; import { TRANSACTION_VALIDITY } from "../../../utils/constants"; -import { useWSCProvider } from "milkomeda-wsc-ui-test-beta"; +import { + useWSCProvider, + useGetOriginTokens, + useGetOriginBalance +} from "milkomeda-wsc-ui-test-beta"; +import { ethers } from "ethers"; const BuySellCoin = ({ coinName, @@ -24,11 +29,65 @@ const BuySellCoin = ({ const FEE_UI = process.env.REACT_APP_FEE_UI; const { isWalletConnected, isWrongChain } = useAppProvider(); const { isWSCConnected } = useWSCProvider(); + const { originTokens } = useGetOriginTokens(); + const { originBalance } = useGetOriginBalance(); const inputValid = isWSCConnected ? true : validity === TRANSACTION_VALIDITY.OK; const inputBarNotMarked = !inputValue || !isWalletConnected || isWrongChain || inputValid; + const selectedCardanoAddress = + coinName === process.env.REACT_APP_SC_SYMBOL + ? process.env.REACT_APP_CARDANO_STABLECOIN_ADDRESS + : process.env.REACT_APP_CARDANO_RESERVECOIN_ADDRESS; + + const selectedToken = originTokens.find( + (t) => t.unit.toLowerCase() === selectedCardanoAddress.toLowerCase() + ) ?? { + unit: "", + quantity: "0", + // decimals: number | null, + assetName: "-" + }; + + const renderInformation = () => { + const isBuying = buyOrSell === "Buy"; + if (!isWSCConnected) { + return ( + <> +

+ + {isWalletConnected + ? `Your current balance is ${scaledCoinBalance} ${coinName}.` + : `Please connect your wallet to see your ${coinName} balance.`} +

+

+ + {isWalletConnected + ? `Your current balance is ${scaledBaseBalance} mADA.` + : `Please connect your wallet to see your mADA balance.`} +

+ + ); + } + return ( +

+ + {isBuying ? ( + <>Your current balance is {originBalance} ADA on Cardano wallet + ) : ( + <> + Your current balance is{" "} + {ethers.utils + .formatUnits(selectedToken.quantity, selectedToken.decimals) + .toString() ?? "-"}{" "} + {selectedToken.assetName} on Cardano wallet + + )} +

+ ); + }; + return (

@@ -50,29 +109,7 @@ const BuySellCoin = ({ }} />

- {isWSCConnected ? ( - <> -

- - You will transfer {totalAmount ?? "-"} ADA from your Cardano wallet. -

- - ) : ( - <> -

- - {isWalletConnected - ? `Your current balance is ${scaledCoinBalance} ${coinName}.` - : `Please connect your wallet to see your ${coinName} balance.`} -

-

- - {isWalletConnected - ? `Your current balance is ${scaledBaseBalance} mADA.` - : `Please connect your wallet to see your mADA balance.`} -

- - )} + {renderInformation()} {isWrongChain ? (

@@ -105,3 +142,5 @@ const BuySellCoin = ({ }; export default BuySellCoin; + +const BuySellInfoWsc = () => {}; From 79013eff2d36b2193406386cdc9a65035b3ac722 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 13 Oct 2023 09:57:08 -0500 Subject: [PATCH 76/85] fix eslint --- src/components/molecules/BuySellCoin/BuySellCoin.jsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index 477b8991..187f156c 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -46,7 +46,6 @@ const BuySellCoin = ({ ) ?? { unit: "", quantity: "0", - // decimals: number | null, assetName: "-" }; @@ -142,5 +141,3 @@ const BuySellCoin = ({ }; export default BuySellCoin; - -const BuySellInfoWsc = () => {}; From 2a40fe6e51261e3f77aacfbb5dfe6bf637a853f4 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 13 Oct 2023 10:14:28 -0500 Subject: [PATCH 77/85] update lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c487dae..0f4bf916 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.6", + "milkomeda-wsc-ui-test-beta": "1.0.8", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.6.tgz", - "integrity": "sha512-JgSHedM9Ui5tx6xJPCfn1iUpy5t9JxoK0M68FcD6r8r0+HFZ8plSIH+ekyRcySulukcAMBKhed0DLgtrVUTJxA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.8.tgz", + "integrity": "sha512-/wzHpqJG67faocVUYKafjW6rIDcmwwFrVPy8JXGWKgwS4/dfuFKUWnS4FdGcQHsAzf0Yx97ooXDcZSFJoqtINw==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index 4a55ded6..3aa2c680 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.6", + "milkomeda-wsc-ui-test-beta": "1.0.8", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From a551c54874ba2b3ab21529eec07cea1cf2164a76 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Mon, 16 Oct 2023 16:39:35 -0500 Subject: [PATCH 78/85] add alert --- .../molecules/BuySellCoin/BuySellCoin.jsx | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index 187f156c..ee5f5fed 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -10,6 +10,7 @@ import { useGetOriginBalance } from "milkomeda-wsc-ui-test-beta"; import { ethers } from "ethers"; +import BigNumber from "bignumber.js"; const BuySellCoin = ({ coinName, @@ -69,21 +70,37 @@ const BuySellCoin = ({ ); } + + const isValidAmountWSC = (() => { + if (!isWSCConnected) return true; + if (!inputValue) return true; + if (!isBuying) return true; + return new BigNumber(totalAmount).lte(originBalance); + })(); + return ( -

- - {isBuying ? ( - <>Your current balance is {originBalance} ADA on Cardano wallet - ) : ( - <> - Your current balance is{" "} - {ethers.utils - .formatUnits(selectedToken.quantity, selectedToken.decimals) - .toString() ?? "-"}{" "} - {selectedToken.assetName} on Cardano wallet - - )} -

+ <> +

+ + {isBuying ? ( + <>Your current balance is {originBalance} ADA on Cardano wallet + ) : ( + <> + Your current balance is{" "} + {ethers.utils + .formatUnits(selectedToken.quantity, selectedToken.decimals) + .toString() ?? "-"}{" "} + {selectedToken.assetName} on Cardano wallet + + )} +

+ {!isValidAmountWSC ? ( +

+ + You don't have enough ADA to complete the transaction +

+ ) : null} + ); }; From 9069803f740c8d58ec6b851f65df3e92411d851e Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 24 Oct 2023 01:50:46 -0500 Subject: [PATCH 79/85] fix: decimals --- src/components/molecules/BuySellCoin/BuySellCoin.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/molecules/BuySellCoin/BuySellCoin.jsx b/src/components/molecules/BuySellCoin/BuySellCoin.jsx index ee5f5fed..b1fb4dab 100644 --- a/src/components/molecules/BuySellCoin/BuySellCoin.jsx +++ b/src/components/molecules/BuySellCoin/BuySellCoin.jsx @@ -88,7 +88,7 @@ const BuySellCoin = ({ <> Your current balance is{" "} {ethers.utils - .formatUnits(selectedToken.quantity, selectedToken.decimals) + .formatUnits(selectedToken.quantity, selectedToken.decimals || 6) .toString() ?? "-"}{" "} {selectedToken.assetName} on Cardano wallet From cab19e229b7701064a27dc7c0755599a5ee7b37a Mon Sep 17 00:00:00 2001 From: paulclindo Date: Tue, 24 Oct 2023 01:50:52 -0500 Subject: [PATCH 80/85] fixes on lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f4bf916..8051b381 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.8", + "milkomeda-wsc-ui-test-beta": "1.0.10", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.8.tgz", - "integrity": "sha512-/wzHpqJG67faocVUYKafjW6rIDcmwwFrVPy8JXGWKgwS4/dfuFKUWnS4FdGcQHsAzf0Yx97ooXDcZSFJoqtINw==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.10.tgz", + "integrity": "sha512-3I8XMVlgwhAS115sUmjO8S4BPoic2uyh+9FyeDl2FAbxiIFwaHN57xSsM8AerKam/qilPycT8jBFdNA6nTG1TA==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index 3aa2c680..520d7562 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.8", + "milkomeda-wsc-ui-test-beta": "1.0.10", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 6d99dc6469165b17772c926d96ed045eb8c9ab3d Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 27 Oct 2023 01:07:31 -0500 Subject: [PATCH 81/85] add wsc interface popup --- src/routes/_MyBalance.scss | 7 +++++++ src/routes/my-balance.jsx | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/routes/_MyBalance.scss b/src/routes/_MyBalance.scss index 0cc45c2c..050656d5 100644 --- a/src/routes/_MyBalance.scss +++ b/src/routes/_MyBalance.scss @@ -48,3 +48,10 @@ } } } +.wsc-interface { + margin-top: 60px; + & > div > div { + width: 100%; + background-color: rgba(0, 0, 0, 0.5) !important; + } +} diff --git a/src/routes/my-balance.jsx b/src/routes/my-balance.jsx index c7eff4ca..3979ceae 100644 --- a/src/routes/my-balance.jsx +++ b/src/routes/my-balance.jsx @@ -10,9 +10,11 @@ import { getRcUsdEquivalent, getScAdaEquivalent } from "../utils/helpers"; +import { WSCInterface, useWSCProvider } from "milkomeda-wsc-ui-test-beta"; export default function MyBalance() { const { coinsDetails, accountDetails } = useAppProvider(); + const { isWSCConnected } = useWSCProvider(); const scFloat = parseFloat(accountDetails?.scaledBalanceSc.replaceAll(",", "")); const scConverted = getScAdaEquivalent(coinsDetails, scFloat); @@ -52,6 +54,11 @@ export default function MyBalance() { {/*
*/} + {isWSCConnected && ( +
+ +
+ )}
); From 9bccd98a2d5e795b81b1317c521619d0314df6ec Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 27 Oct 2023 01:22:05 -0500 Subject: [PATCH 82/85] ui fixes --- src/routes/_MyBalance.scss | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/routes/_MyBalance.scss b/src/routes/_MyBalance.scss index 050656d5..dc5bffc7 100644 --- a/src/routes/_MyBalance.scss +++ b/src/routes/_MyBalance.scss @@ -51,7 +51,12 @@ .wsc-interface { margin-top: 60px; & > div > div { - width: 100%; background-color: rgba(0, 0, 0, 0.5) !important; + width: 100%; + max-width: 600px; + border-radius: 0; + overflow: auto; + min-height: unset !important; + max-height: unset !important; } } From 7e9a6f5aa14bd66bc7e5106e858713b77fbfbb4a Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 27 Oct 2023 19:14:54 -0500 Subject: [PATCH 83/85] fix: balance page --- src/routes/_MyBalance.scss | 2 +- src/routes/my-balance.jsx | 46 ++++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/routes/_MyBalance.scss b/src/routes/_MyBalance.scss index dc5bffc7..4bd8bdad 100644 --- a/src/routes/_MyBalance.scss +++ b/src/routes/_MyBalance.scss @@ -49,7 +49,7 @@ } } .wsc-interface { - margin-top: 60px; + margin-top: 20px; & > div > div { background-color: rgba(0, 0, 0, 0.5) !important; width: 100%; diff --git a/src/routes/my-balance.jsx b/src/routes/my-balance.jsx index 3979ceae..f2186063 100644 --- a/src/routes/my-balance.jsx +++ b/src/routes/my-balance.jsx @@ -28,29 +28,31 @@ export default function MyBalance() { return (
-
-

Balance

-
- - - + {!isWSCConnected && ( +
+

Balance

+
+ + + +
-
+ )} {/*
*/} From 489fbc10b3ac4373b1bbdce409983f52b4cc42cf Mon Sep 17 00:00:00 2001 From: paulclindo Date: Fri, 27 Oct 2023 19:37:54 -0500 Subject: [PATCH 84/85] update lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8051b381..419beae1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.10", + "milkomeda-wsc-ui-test-beta": "1.0.12", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.10.tgz", - "integrity": "sha512-3I8XMVlgwhAS115sUmjO8S4BPoic2uyh+9FyeDl2FAbxiIFwaHN57xSsM8AerKam/qilPycT8jBFdNA6nTG1TA==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.12.tgz", + "integrity": "sha512-ls4rAsq3cNteu0T70N7rjKQFKaWEE4/Vo2m+Jyx80VQbbeZajUFpS/3+ejbts3uWz8JgygAJDZ60BEqSQIPocg==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index 520d7562..40e110eb 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.10", + "milkomeda-wsc-ui-test-beta": "1.0.12", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", From 4007adcfa1d7bff5dcf38ed3e6bbc7cc751ce2c3 Mon Sep 17 00:00:00 2001 From: paulclindo Date: Sun, 5 Nov 2023 20:46:55 -0500 Subject: [PATCH 85/85] update lib --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 419beae1..dc72bc89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.12", + "milkomeda-wsc-ui-test-beta": "1.0.15", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2", @@ -16740,9 +16740,9 @@ } }, "node_modules/milkomeda-wsc-ui-test-beta": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.12.tgz", - "integrity": "sha512-ls4rAsq3cNteu0T70N7rjKQFKaWEE4/Vo2m+Jyx80VQbbeZajUFpS/3+ejbts3uWz8JgygAJDZ60BEqSQIPocg==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/milkomeda-wsc-ui-test-beta/-/milkomeda-wsc-ui-test-beta-1.0.15.tgz", + "integrity": "sha512-Xis2su+PZcDJTfb7Dfw/kxWnJ55/T1Oezv3BYHzpJIH4ouitcuEUd4gb5LRBIlswZ2ul34mPiUomX39U676rxw==", "dependencies": { "@radix-ui/react-dialog": "^1.0.4", "@radix-ui/react-separator": "^1.0.3", diff --git a/package.json b/package.json index 40e110eb..627ca61e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "assert": "^2.0.0", "bignumber.js": "^9.1.1", "ethers": "^5.7.2", - "milkomeda-wsc-ui-test-beta": "1.0.12", + "milkomeda-wsc-ui-test-beta": "1.0.15", "react": "^17.0.2", "react-dom": "^17.0.2", "react-router-dom": "^6.2.2",