diff --git a/djed-sdk/.gitignore b/djed-sdk/.gitignore
deleted file mode 100644
index 14e1648..0000000
--- a/djed-sdk/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# Dependencies
-/node_modules
-
-# macOS specific files
-.DS_Store
-
diff --git a/djed-sdk/.npmignore b/djed-sdk/.npmignore
deleted file mode 100644
index 93d2224..0000000
--- a/djed-sdk/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# source code
-src
-
diff --git a/djed-sdk/dist/esm/index.js b/djed-sdk/dist/esm/index.js
deleted file mode 100644
index f030428..0000000
--- a/djed-sdk/dist/esm/index.js
+++ /dev/null
@@ -1,2269 +0,0 @@
-import Web3 from 'web3';
-
-const getWeb3 = (BLOCKCHAIN_URI) =>
- new Promise((resolve, reject) => {
- if (window.ethereum) {
- try {
- const web3 = new Web3(BLOCKCHAIN_URI);
- resolve(web3);
- } catch (error) {
- reject(error);
- }
- } else {
- reject("Please install Metamask");
- }
- });
-
-function web3Promise$1(contract, method, ...args) {
- return contract.methods[method](...args).call();
-}
-// Function to build a transaction
-// Set gas limit to 500,000 by default
-function buildTx(from_, to_, value_, data_, setGasLimit = true) {
- const tx = {
- to: to_,
- from: from_,
- value: "0x" + BigInt(value_).toString(16), // Use BigInt instead of BN
- data: data_,
- };
- if (setGasLimit) {
- tx.gasLimit = 500_000;
- }
- return tx;
-}
-function convertInt(promise) {
- return promise.then((value) => parseInt(value));
-}
-
-function reverseString(s) {
- return s.split("").reverse().join("");
-}
-
-function intersperseCommas(s) {
- let newString = s.replace(/(.{3})/g, "$1,");
- if (s.length % 3 === 0) {
- return newString.slice(0, newString.length - 1);
- } else {
- return newString;
- }
-}
-
-function decimalScaling(unscaledString, decimals, show = 6) {
- if (decimals <= 0) {
- return unscaledString + "0".repeat(-decimals);
- }
-
- let prefix;
- let suffix;
-
- if (unscaledString.length <= decimals) {
- prefix = "0";
- suffix = "0".repeat(decimals - unscaledString.length) + unscaledString;
- } else {
- prefix = unscaledString.slice(0, -decimals);
- suffix = unscaledString.slice(-decimals);
- }
-
- suffix = suffix.slice(0, show);
- suffix = intersperseCommas(suffix);
-
- if (show <= decimals) {
- // Remove commas after the decimal point
- suffix = suffix.replace(/,/g, "");
- }
-
- prefix = reverseString(intersperseCommas(reverseString(prefix)));
-
- return prefix + "." + suffix;
-}
-
-function decimalUnscaling(scaledString, decimals) {
- scaledString = scaledString.replaceAll(",", "");
- let pos = scaledString.indexOf(".");
- if (pos < 0) {
- return scaledString + "0".repeat(decimals);
- }
-
- let s =
- scaledString.slice(0, pos) +
- scaledString.slice(pos + 1, pos + 1 + decimals);
- if (scaledString.length - pos - 1 < decimals) {
- s += "0".repeat(decimals - (scaledString.length - pos - 1));
- }
- return s;
-}
-
-function scaledPromise(promise, scaling) {
- return promise.then((value) => decimalScaling(value.toString(10), scaling));
-}
-
-function scaledUnscaledPromise(promise, scaling) {
- return promise.then((value) => [
- decimalScaling(value.toString(10), scaling),
- value,
- ]);
-}
-
-function percentageScale(value, scaling, showSymbol = false) {
- const calculatedValue = decimalScaling(value.toString(10), scaling - 2, 2);
- if (showSymbol) {
- return calculatedValue + "%";
- }
- return calculatedValue;
-}
-
-function percentScaledPromise(promise, scaling) {
- return promise.then((value) => percentageScale(value, scaling, true));
-}
-// currency conversions:
-function calculateBcUsdEquivalent(coinsDetails, amountFloat) {
- const adaPerUsd = parseFloat(
- coinsDetails?.scaledScExchangeRate.replaceAll(",", "")
- );
- const eqPrice = (1e6 * amountFloat) / adaPerUsd;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
-}
-
-function getBcUsdEquivalent(coinsDetails, amountFloat) {
- return "$" + calculateBcUsdEquivalent(coinsDetails, amountFloat);
-}
-
-function calculateRcUsdEquivalent(coinsDetails, amountFloat) {
- const adaPerRc = parseFloat(coinsDetails?.scaledSellPriceRc);
- const adaPerUsd = parseFloat(
- coinsDetails?.scaledScExchangeRate.replaceAll(",", "")
- );
- const eqPrice = (1e6 * amountFloat * adaPerRc) / adaPerUsd;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
-}
-function getRcUsdEquivalent(coinsDetails, amountFloat) {
- return "$" + calculateRcUsdEquivalent(coinsDetails, amountFloat);
-}
-
-function getScAdaEquivalent(coinsDetails, amountFloat) {
- const adaPerSc = parseFloat(coinsDetails?.scaledPriceSc.replaceAll(",", ""));
- const eqPrice = 1e6 * amountFloat * adaPerSc;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
-}
-
-const BC_DECIMALS = 18;
-const SCALING_DECIMALS = 24;
-const TRANSACTION_USD_LIMIT = 10000;
-const FEE_UI=0.01;
-const REFRESH_PERIOD = 4000;
-const CONFIRMATION_WAIT_PERIOD = REFRESH_PERIOD + 1000;
-
-const scalingFactor = decimalUnscaling("1", SCALING_DECIMALS);
-const FEE_UI_UNSCALED = decimalUnscaling(
- (FEE_UI / 100).toString(),
- SCALING_DECIMALS
-);
-const tradeDataPriceCore = (djed, method, decimals, amountScaled) => {
- const amountUnscaled = decimalUnscaling(amountScaled, decimals);
- return scaledUnscaledPromise(web3Promise$1(djed, method, 0), BC_DECIMALS).then(
- (price) => {
- const [priceScaled, priceUnscaled] = price;
- const totalUnscaled = convertToBC(
- amountUnscaled,
- priceUnscaled,
- decimals
- ).toString();
-
- const totalScaled = decimalScaling(totalUnscaled, BC_DECIMALS);
-
- return {
- amountScaled,
- amountUnscaled,
- totalScaled,
- totalUnscaled,
- priceUnscaled,
- priceScaled,
- };
- }
- );
-};
-
-/**
- * Function that converts coin amount to BC
- * @param {*} amount unscaled coin amount to be converted to BC
- * @param {*} price unscaled coin price
- * @param {*} decimals coin decimals
- * @returns unscaled BC amount
- */
-const convertToBC = (amount, price, decimals) => {
- const decimalScalingFactor = BigInt(Math.pow(10, decimals));
- return (BigInt(amount) * BigInt(price)) / decimalScalingFactor;
-};
-
-/**
- * Calculate if the transaction will reach the maximum reserve ratio
- * @param scPrice - Unscaled stablecoin price
- * @param reserveBc - Unscaled reserve of base coin with appended potential transaction amount.
- * Example: If user wants to buy 1RC, the reserveBc param will be calculated as sum of current reserve of BC and desired RC amount converted in BC
- * @param totalScSupply - Unscaled total stablecoin supply
- * @param reserveRatioMax - Unscaled maximum reserve ratio
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @param thresholdSupplySC - Unscaled threshold SC supply
- * @returns
- */
-const calculateIsRatioBelowMax = ({
- scPrice,
- reserveBc,
- totalScSupply,
- reserveRatioMax,
- scDecimalScalingFactor,
- thresholdSupplySC,
-}) => {
- const scalingFactorBigInt = BigInt(scalingFactor);
-
- return (
- BigInt(reserveBc) * scalingFactorBigInt * BigInt(scDecimalScalingFactor) <
- BigInt(totalScSupply) * BigInt(scPrice) * BigInt(reserveRatioMax) ||
- BigInt(totalScSupply) <= BigInt(thresholdSupplySC)
- );
-};
-
-/**
- * Calculate if the transaction will reach the minimum reserve ratio
- * @param scPrice - Unscaled stablecoin price
- * @param reserveBc - Unscaled reserve of base coin with calculated potential transaction amount.
- * Example: If user wants to buy 1SC, the reserveBc param will be calculated as sum of current reserve of BC and desired SC amount converted in BC
- * @param totalScSupply - Unscaled total stablecoin supply
- * @param reserveRatioMin - Unscaled minimum reserve ratio
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @returns
- */
-const calculateIsRatioAboveMin = ({
- scPrice,
- reserveBc,
- totalScSupply,
- reserveRatioMin,
- scDecimalScalingFactor,
-}) => {
- const scalingFactorBigInt = BigInt(scalingFactor);
-
- return (
- BigInt(reserveBc) * scalingFactorBigInt * BigInt(scDecimalScalingFactor) >
- BigInt(totalScSupply) * BigInt(scPrice) * BigInt(reserveRatioMin)
- );
-};
-
-/**
- *
- * @param {*} amountUSD
- * @param {*} totalSCSupply
- * @param {*} thresholdSCSupply
- * @returns
- */
-const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) =>
- amountUSD > TRANSACTION_USD_LIMIT &&
- BigInt(totalSCSupply) >= BigInt(thresholdSCSupply);
-
-const promiseTx = (isWalletConnected, tx, signer) => {
- if (!isWalletConnected) {
- return Promise.reject(new Error("Metamask not connected!"));
- }
- if (!signer) {
- return Promise.reject(new Error("Couldn't get Signer"));
- }
- return signer.sendTransaction(tx);
-};
-
-const verifyTx = (web3, hash) => {
- return new Promise((res) => {
- setTimeout(() => {
- web3.eth
- .getTransactionReceipt(hash)
- .then((receipt) => res(receipt.status));
- }, CONFIRMATION_WAIT_PERIOD);
- });
-};
-
-/**
- * Function that deducts all platform fees from the BC amount
- * @param {*} value The amount of BC from which fees should be deducted
- * @param {*} fee The platform fee
- * @param {*} treasuryFee The treasury fee
- * @returns BC value with all fees calculated
- */
-const calculateTxFees = (value, fee, treasuryFee, feeUI) => {
- const f = (BigInt(value) * BigInt(fee)) / BigInt(scalingFactor);
- const f_ui =
- (BigInt(value) * BigInt(feeUI || FEE_UI_UNSCALED)) / BigInt(scalingFactor);
- const f_t = (BigInt(value) * BigInt(treasuryFee)) / BigInt(scalingFactor);
-
- return { f, f_ui, f_t };
-};
-
-/**
- * Function that deducts all platform fees from the BC amount
- * @param {*} value The amount of BC from which fees should be deducted
- * @param {*} fee The platform fee
- * @param {*} treasuryFee The treasury fee
- * @returns BC value with all fees calculated
- */
-const deductFees = (value, fee, treasuryFee) => {
- const { f, f_ui, f_t } = calculateTxFees(value, fee, treasuryFee);
- return BigInt(value) - f - f_ui - f_t;
-};
-
-/**
- * Function that appends all platform fees to the BC amount
- * @param {*} amountBC The unscaled amount of BC (e.g. for 1BC, value should be 1 * 10^BC_DECIMALS)
- * @param {*} treasuryFee Treasury fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @param {*} fee Fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @param {*} fee_UI UI fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @returns Unscaled BC amount with calculated fees
- */
-const appendFees = (amountBC, treasuryFee, fee, fee_UI) => {
- const totalFees = BigInt(treasuryFee) + BigInt(fee) + BigInt(fee_UI);
- const substractedFees = BigInt(scalingFactor) - totalFees;
- const appendedFeesAmount =
- (BigInt(amountBC) * BigInt(scalingFactor)) / substractedFees;
-
- return appendedFeesAmount.toString();
-};
-
-/**
- * Function that returns treasury and platform fees
- * @param {*} djed Djed contract
- * @returns Treasury and platform fee
- */
-const getFees = async (djed) => {
- try {
- const [treasuryFee, fee] = await Promise.all([
- web3Promise$1(djed, "treasuryFee"),
- web3Promise$1(djed, "fee"),
- ]);
- return {
- treasuryFee,
- fee,
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-/**
- * Function that calculates fees and how much BC (totalBCAmount) user should pay to receive desired amount of reserve coin
- * @param {*} djed DjedContract
- * @param {*} rcDecimals Reserve coin decimals
- * @param {*} amountScaled Reserve coin amount that user wants to buy
- * @returns
- */
-const tradeDataPriceBuyRc = async (djed, rcDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "rcBuyingPrice",
- rcDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
-
- const totalBCUnscaled = appendFees(
- data.totalUnscaled,
- treasuryFee,
- fee,
- FEE_UI_UNSCALED
- );
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCUnscaled, BC_DECIMALS),
- totalBCUnscaled,
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-const tradeDataPriceSellRc = async (djed, rcDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "rcTargetPrice",
- rcDecimals,
- amountScaled
- );
-
- const { treasuryFee, fee } = await getFees(djed);
- const value = convertToBC(
- data.amountUnscaled,
- data.priceUnscaled,
- rcDecimals
- ).toString();
-
- const totalBCAmount = deductFees(value, fee, treasuryFee);
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCAmount.toString(), BC_DECIMALS),
- totalBCUnscaled: totalBCAmount.toString(),
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-const buyRcTx = (djed, account, value, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .buyReserveCoins(account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, value, data);
-};
-
-const sellRcTx = (djed, account, amount, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .sellReserveCoins(amount, account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, 0, data);
-};
-
-/**
- * Function that calculates fees and how much BC (totalBCAmount) user should pay to receive desired amount of stable coin
- * @param {*} djed DjedContract
- * @param {*} scDecimals Stable coin decimals
- * @param {*} amountScaled Stable coin amount that user wants to buy
- * @returns
- */
-const tradeDataPriceBuySc = async (djed, scDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "scPrice",
- scDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
- const totalBCUnscaled = appendFees(
- data.totalUnscaled,
- treasuryFee,
- fee,
- FEE_UI_UNSCALED
- );
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCUnscaled, BC_DECIMALS),
- totalBCUnscaled,
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-/**
- * Function that calculates fees and how much BC (totalBCAmount) user will receive if he sells desired amount of stable coin
- * @param {*} djed DjedContract
- * @param {*} scDecimals Stable coin decimals
- * @param {*} amountScaled Stable coin amount that user wants to sell
- * @returns
- */
-const tradeDataPriceSellSc = async (djed, scDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "scPrice",
- scDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
- const value = convertToBC(
- data.amountUnscaled,
- data.priceUnscaled,
- scDecimals
- ).toString();
-
- const totalBCAmount = deductFees(value, fee, treasuryFee);
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCAmount.toString(), BC_DECIMALS),
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-// Function to allow User 1 (payer) to pay and User 2 (receiver) to receive stablecoins
-const buyScTx = (djed, payer, receiver, value, UI, DJED_ADDRESS) => {
- // `receiver` will get the stablecoins
- const data = djed.methods.buyStableCoins(receiver, FEE_UI_UNSCALED, UI).encodeABI();
-
- // `payer` is sending the funds
- return buildTx(payer, DJED_ADDRESS, value, data);
-};
-
-const sellScTx = (djed, account, amount, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .sellStableCoins(amount, account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, 0, data);
-};
-
-/**
- * This function should calculate the future stable coin price that we can expect after some transaction.
- * @param {string} amountBC The unscaled amount of BC (e.g. for 1BC, value should be 1 * 10^BC_DECIMALS)
- * @param {string} amountSC The unscaled amount of StableCoin (e.g. for 1SC, value should be 1 * 10^SC_DECIMALS)
- * @param djedContract - Instance of Djed contract
- * @param stableCoinContract - Instance of Stablecoin contract
- * @param oracleContract - Instance of Oracle contract
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @returns future stablecoin price
- */
-const calculateFutureScPrice = async ({
- amountBC,
- amountSC,
- djedContract,
- oracleContract,
- stableCoinContract,
- scDecimalScalingFactor,
-}) => {
- try {
- const [scTargetPrice, scSupply, ratio] = await Promise.all([
- web3Promise(oracleContract, "readData"),
- web3Promise(stableCoinContract, "totalSupply"),
- web3Promise(djedContract, "R", 0),
- ]);
-
- const futureScSupply = BigInt(scSupply) + BigInt(amountSC);
- const futureRatio = BigInt(ratio) + BigInt(amountBC);
-
- if (futureScSupply === 0n) {
- return scTargetPrice;
- } else {
- const futurePrice =
- (futureRatio * BigInt(scDecimalScalingFactor)) / futureScSupply;
- return BigInt(scTargetPrice) < futurePrice
- ? scTargetPrice
- : futurePrice.toString();
- }
- } catch (error) {
- console.log("calculateFutureScPrice error ", error);
- }
-};
-
-var contractName$2 = "Djed";
-var abi$2 = [
- {
- inputs: [
- {
- internalType: "address",
- name: "oracleAddress",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "_scalingFactor",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "_treasury",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "_initialTreasuryFee",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_treasuryRevenueTarget",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_reserveRatioMin",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_reserveRatioMax",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_fee",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_thresholdSupplySC",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_rcMinPrice",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_txLimit",
- type: "uint256"
- }
- ],
- stateMutability: "payable",
- type: "constructor"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "buyer",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "BoughtReserveCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "buyer",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "BoughtStableCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "seller",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "SoldBothCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "seller",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "SoldReserveCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "seller",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "SoldStableCoins",
- type: "event"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "E",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "L",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "R",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "fee_ui",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "buyReserveCoins",
- outputs: [
- ],
- stateMutability: "payable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "feeUI",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "buyStableCoins",
- outputs: [
- ],
- stateMutability: "payable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "fee",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "initialTreasuryFee",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "oracle",
- outputs: [
- {
- internalType: "contract IFreeOracle",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "ratio",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "rcBuyingPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "rcDecimalScalingFactor",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "rcMinPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "rcTargetPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "reserveCoin",
- outputs: [
- {
- internalType: "contract Coin",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "reserveRatioMax",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "reserveRatioMin",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "scDecimalScalingFactor",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "scPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "scalingFactor",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "fee_ui",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "sellBothCoins",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "fee_ui",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "sellReserveCoins",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "feeUI",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "sellStableCoins",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "stableCoin",
- outputs: [
- {
- internalType: "contract Coin",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "thresholdSupplySC",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasury",
- outputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasuryFee",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasuryRevenue",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasuryRevenueTarget",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "txLimit",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- }
-];
-var djedArtifact = {
- contractName: contractName$2,
- abi: abi$2
-};
-
-var contractName$1 = "Coin";
-var abi$1 = [
- {
- inputs: [
- {
- internalType: "string",
- name: "name",
- type: "string"
- },
- {
- internalType: "string",
- name: "symbol",
- type: "string"
- }
- ],
- stateMutability: "nonpayable",
- type: "constructor"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "owner",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "value",
- type: "uint256"
- }
- ],
- name: "Approval",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "from",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "value",
- type: "uint256"
- }
- ],
- name: "Transfer",
- type: "event"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "owner",
- type: "address"
- },
- {
- internalType: "address",
- name: "spender",
- type: "address"
- }
- ],
- name: "allowance",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "approve",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "account",
- type: "address"
- }
- ],
- name: "balanceOf",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "subtractedValue",
- type: "uint256"
- }
- ],
- name: "decreaseAllowance",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "addedValue",
- type: "uint256"
- }
- ],
- name: "increaseAllowance",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "name",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "symbol",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "totalSupply",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "transfer",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "from",
- type: "address"
- },
- {
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "transferFrom",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "decimals",
- outputs: [
- {
- internalType: "uint8",
- name: "",
- type: "uint8"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "mint",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "from",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "burn",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- }
-];
-var coinArtifact = {
- contractName: contractName$1,
- abi: abi$1
-};
-
-//setting up djed
-const getDjedContract = (web3, DJED_ADDRESS) => {
- const djed = new web3.eth.Contract(djedArtifact.abi, DJED_ADDRESS);
- return djed;
-};
-
-const getCoinContracts = async (djedContract, web3) => {
- const [stableCoinAddress, reserveCoinAddress] = await Promise.all([
- web3Promise$1(djedContract, "stableCoin"),
- web3Promise$1(djedContract, "reserveCoin"),
- ]);
- const stableCoin = new web3.eth.Contract(coinArtifact.abi, stableCoinAddress);
- const reserveCoin = new web3.eth.Contract(
- coinArtifact.abi,
- reserveCoinAddress
- );
- return { stableCoin, reserveCoin };
-};
-const getDecimals = async (stableCoin, reserveCoin) => {
- const [scDecimals, rcDecimals] = await Promise.all([
- convertInt(web3Promise$1(stableCoin, "decimals")),
- convertInt(web3Promise$1(reserveCoin, "decimals")),
- ]);
- return { scDecimals, rcDecimals };
-};
-
-const getCoinDetails = async (
- stableCoin,
- reserveCoin,
- djed,
- scDecimals,
- rcDecimals
-) => {
- try {
- const [
- [scaledNumberSc, unscaledNumberSc],
- [scaledPriceSc, unscaledPriceSc],
- [scaledNumberRc, unscaledNumberRc],
- [scaledReserveBc, unscaledReserveBc],
- scaledBuyPriceRc,
- scaledScExchangeRate,
- ] = await Promise.all([
- scaledUnscaledPromise(web3Promise$1(stableCoin, "totalSupply"), scDecimals),
- scaledUnscaledPromise(web3Promise$1(djed, "scPrice", 0), BC_DECIMALS),
- scaledUnscaledPromise(
- web3Promise$1(reserveCoin, "totalSupply"),
- rcDecimals
- ),
- scaledUnscaledPromise(web3Promise$1(djed, "R", 0), BC_DECIMALS),
- scaledPromise(web3Promise$1(djed, "rcBuyingPrice", 0), BC_DECIMALS),
- scaledPromise(web3Promise$1(djed, "scPrice", 0), BC_DECIMALS),
- ]);
-
- // Define default empty value
- const emptyValue = decimalScaling("0".toString(10), BC_DECIMALS);
- let scaledSellPriceRc = emptyValue;
- let unscaledSellPriceRc = emptyValue;
- let percentReserveRatio = emptyValue;
-
- // Check total reserve coin supply to calculate sell price
- if (BigInt(unscaledNumberRc) !== 0n) {
- [scaledSellPriceRc, unscaledSellPriceRc] = await scaledUnscaledPromise(
- web3Promise$1(djed, "rcTargetPrice", 0),
- BC_DECIMALS
- );
- }
-
- // Check total stable coin supply to calculate reserve ratio
- if (BigInt(unscaledNumberSc) !== 0n) {
- percentReserveRatio = await percentScaledPromise(
- web3Promise$1(djed, "ratio"),
- SCALING_DECIMALS
- );
- }
-
- // Return the results
- return {
- scaledNumberSc,
- unscaledNumberSc,
- scaledPriceSc,
- unscaledPriceSc,
- scaledNumberRc,
- unscaledNumberRc,
- scaledReserveBc,
- unscaledReserveBc,
- percentReserveRatio,
- scaledBuyPriceRc,
- scaledSellPriceRc,
- unscaledSellPriceRc,
- scaledScExchangeRate,
- };
- } catch (error) {
- console.error("Error fetching coin details:", error);
- throw new Error("Failed to fetch coin details");
- }
-};
-
-const getSystemParams = async (djed) => {
- const [
- reserveRatioMinUnscaled,
- reserveRatioMaxUnscaled,
- feeUnscaled,
- treasuryFee,
- thresholdSupplySC,
- ] = await Promise.all([
- web3Promise$1(djed, "reserveRatioMin"),
- web3Promise$1(djed, "reserveRatioMax"),
- web3Promise$1(djed, "fee"),
- percentScaledPromise(web3Promise$1(djed, "treasuryFee"), SCALING_DECIMALS),
- web3Promise$1(djed, "thresholdSupplySC"),
- ]);
-
- return {
- reserveRatioMin: percentageScale(
- reserveRatioMinUnscaled,
- SCALING_DECIMALS,
- true
- ),
- reserveRatioMax: percentageScale(
- reserveRatioMaxUnscaled,
- SCALING_DECIMALS,
- true
- ),
- reserveRatioMinUnscaled,
- reserveRatioMaxUnscaled,
- fee: percentageScale(feeUnscaled, SCALING_DECIMALS, true),
- feeUnscaled,
- treasuryFee,
- thresholdSupplySC,
- };
-};
-
-const getAccountDetails = async (
- web3,
- account,
- stableCoin,
- reserveCoin,
- scDecimals,
- rcDecimals
-) => {
- const [
- [scaledBalanceSc, unscaledBalanceSc],
- [scaledBalanceRc, unscaledBalanceRc],
- [scaledBalanceBc, unscaledBalanceBc],
- ] = await Promise.all([
- scaledUnscaledPromise(
- web3Promise$1(stableCoin, "balanceOf", account),
- scDecimals
- ),
- scaledUnscaledPromise(
- web3Promise$1(reserveCoin, "balanceOf", account),
- rcDecimals
- ),
- scaledUnscaledPromise(web3.eth.getBalance(account), BC_DECIMALS),
- ]);
-
- return {
- scaledBalanceSc,
- unscaledBalanceSc,
- scaledBalanceRc,
- unscaledBalanceRc,
- scaledBalanceBc,
- unscaledBalanceBc,
- };
-};
-
-var contractName = "Oracle";
-var abi = [
- {
- inputs: [
- {
- internalType: "address",
- name: "_owner",
- type: "address"
- },
- {
- internalType: "string",
- name: "_description",
- type: "string"
- },
- {
- internalType: "string",
- name: "_termsOfService",
- type: "string"
- }
- ],
- stateMutability: "nonpayable",
- type: "constructor"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "uint256",
- name: "data",
- type: "uint256"
- }
- ],
- name: "DataWritten",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "opposer",
- type: "address"
- }
- ],
- name: "OppositionAdded",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "opposer",
- type: "address"
- }
- ],
- name: "OppositionRemoved",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "OwnerAdded",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "OwnerRemoved",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "supporter",
- type: "address"
- }
- ],
- name: "SupportAdded",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "supporter",
- type: "address"
- }
- ],
- name: "SupportRemoved",
- type: "event"
- },
- {
- inputs: [
- ],
- name: "acceptTermsOfService",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "acceptedTermsOfService",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "add",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "description",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "numOwners",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "oppose",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "opposers",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- name: "opposing",
- outputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "oppositionCounter",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "owner",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "readData",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "remove",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "support",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "supportCounter",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "supporters",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- name: "supporting",
- outputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "termsOfService",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "unoppose",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "unsupport",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_data",
- type: "uint256"
- }
- ],
- name: "writeData",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- }
-];
-var oracleArtifact = {
- contractName: contractName,
- abi: abi
-};
-
-const getOracleAddress = async (djedContract) => {
- return await web3Promise$1(djedContract, "oracle");
-};
-
-const getOracleContract = (web3, oracleAddress, msgSender) => {
- const oracle = new web3.eth.Contract(oracleArtifact.abi, oracleAddress, {
- from: msgSender
- });
- return oracle;
-};
-
-export { FEE_UI_UNSCALED, appendFees, buyRcTx, buyScTx, calculateBcUsdEquivalent, calculateFutureScPrice, calculateIsRatioAboveMin, calculateIsRatioBelowMax, calculateRcUsdEquivalent, calculateTxFees, convertToBC, deductFees, getAccountDetails, getBcUsdEquivalent, getCoinContracts, getCoinDetails, getDecimals, getDjedContract, getFees, getOracleAddress, getOracleContract, getRcUsdEquivalent, getScAdaEquivalent, getSystemParams, getWeb3, isTxLimitReached, promiseTx, scalingFactor, sellRcTx, sellScTx, tradeDataPriceBuyRc, tradeDataPriceBuySc, tradeDataPriceCore, tradeDataPriceSellRc, tradeDataPriceSellSc, verifyTx };
diff --git a/djed-sdk/dist/umd/index.js b/djed-sdk/dist/umd/index.js
deleted file mode 100644
index 24bf322..0000000
--- a/djed-sdk/dist/umd/index.js
+++ /dev/null
@@ -1,2310 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('web3')) :
- typeof define === 'function' && define.amd ? define(['exports', 'web3'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.DjedSdk = {}, global.Web3));
-})(this, (function (exports, Web3) { 'use strict';
-
- const getWeb3 = (BLOCKCHAIN_URI) =>
- new Promise((resolve, reject) => {
- if (window.ethereum) {
- try {
- const web3 = new Web3(BLOCKCHAIN_URI);
- resolve(web3);
- } catch (error) {
- reject(error);
- }
- } else {
- reject("Please install Metamask");
- }
- });
-
- function web3Promise$1(contract, method, ...args) {
- return contract.methods[method](...args).call();
- }
- // Function to build a transaction
- // Set gas limit to 500,000 by default
- function buildTx(from_, to_, value_, data_, setGasLimit = true) {
- const tx = {
- to: to_,
- from: from_,
- value: "0x" + BigInt(value_).toString(16), // Use BigInt instead of BN
- data: data_,
- };
- if (setGasLimit) {
- tx.gasLimit = 500_000;
- }
- return tx;
- }
- function convertInt(promise) {
- return promise.then((value) => parseInt(value));
- }
-
- function reverseString(s) {
- return s.split("").reverse().join("");
- }
-
- function intersperseCommas(s) {
- let newString = s.replace(/(.{3})/g, "$1,");
- if (s.length % 3 === 0) {
- return newString.slice(0, newString.length - 1);
- } else {
- return newString;
- }
- }
-
- function decimalScaling(unscaledString, decimals, show = 6) {
- if (decimals <= 0) {
- return unscaledString + "0".repeat(-decimals);
- }
-
- let prefix;
- let suffix;
-
- if (unscaledString.length <= decimals) {
- prefix = "0";
- suffix = "0".repeat(decimals - unscaledString.length) + unscaledString;
- } else {
- prefix = unscaledString.slice(0, -decimals);
- suffix = unscaledString.slice(-decimals);
- }
-
- suffix = suffix.slice(0, show);
- suffix = intersperseCommas(suffix);
-
- if (show <= decimals) {
- // Remove commas after the decimal point
- suffix = suffix.replace(/,/g, "");
- }
-
- prefix = reverseString(intersperseCommas(reverseString(prefix)));
-
- return prefix + "." + suffix;
- }
-
- function decimalUnscaling(scaledString, decimals) {
- scaledString = scaledString.replaceAll(",", "");
- let pos = scaledString.indexOf(".");
- if (pos < 0) {
- return scaledString + "0".repeat(decimals);
- }
-
- let s =
- scaledString.slice(0, pos) +
- scaledString.slice(pos + 1, pos + 1 + decimals);
- if (scaledString.length - pos - 1 < decimals) {
- s += "0".repeat(decimals - (scaledString.length - pos - 1));
- }
- return s;
- }
-
- function scaledPromise(promise, scaling) {
- return promise.then((value) => decimalScaling(value.toString(10), scaling));
- }
-
- function scaledUnscaledPromise(promise, scaling) {
- return promise.then((value) => [
- decimalScaling(value.toString(10), scaling),
- value,
- ]);
- }
-
- function percentageScale(value, scaling, showSymbol = false) {
- const calculatedValue = decimalScaling(value.toString(10), scaling - 2, 2);
- if (showSymbol) {
- return calculatedValue + "%";
- }
- return calculatedValue;
- }
-
- function percentScaledPromise(promise, scaling) {
- return promise.then((value) => percentageScale(value, scaling, true));
- }
- // currency conversions:
- function calculateBcUsdEquivalent(coinsDetails, amountFloat) {
- const adaPerUsd = parseFloat(
- coinsDetails?.scaledScExchangeRate.replaceAll(",", "")
- );
- const eqPrice = (1e6 * amountFloat) / adaPerUsd;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
- }
-
- function getBcUsdEquivalent(coinsDetails, amountFloat) {
- return "$" + calculateBcUsdEquivalent(coinsDetails, amountFloat);
- }
-
- function calculateRcUsdEquivalent(coinsDetails, amountFloat) {
- const adaPerRc = parseFloat(coinsDetails?.scaledSellPriceRc);
- const adaPerUsd = parseFloat(
- coinsDetails?.scaledScExchangeRate.replaceAll(",", "")
- );
- const eqPrice = (1e6 * amountFloat * adaPerRc) / adaPerUsd;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
- }
- function getRcUsdEquivalent(coinsDetails, amountFloat) {
- return "$" + calculateRcUsdEquivalent(coinsDetails, amountFloat);
- }
-
- function getScAdaEquivalent(coinsDetails, amountFloat) {
- const adaPerSc = parseFloat(coinsDetails?.scaledPriceSc.replaceAll(",", ""));
- const eqPrice = 1e6 * amountFloat * adaPerSc;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
- }
-
- const BC_DECIMALS = 18;
- const SCALING_DECIMALS = 24;
- const TRANSACTION_USD_LIMIT = 10000;
- const FEE_UI=0.01;
- const REFRESH_PERIOD = 4000;
- const CONFIRMATION_WAIT_PERIOD = REFRESH_PERIOD + 1000;
-
- const scalingFactor = decimalUnscaling("1", SCALING_DECIMALS);
- const FEE_UI_UNSCALED = decimalUnscaling(
- (FEE_UI / 100).toString(),
- SCALING_DECIMALS
- );
- const tradeDataPriceCore = (djed, method, decimals, amountScaled) => {
- const amountUnscaled = decimalUnscaling(amountScaled, decimals);
- return scaledUnscaledPromise(web3Promise$1(djed, method, 0), BC_DECIMALS).then(
- (price) => {
- const [priceScaled, priceUnscaled] = price;
- const totalUnscaled = convertToBC(
- amountUnscaled,
- priceUnscaled,
- decimals
- ).toString();
-
- const totalScaled = decimalScaling(totalUnscaled, BC_DECIMALS);
-
- return {
- amountScaled,
- amountUnscaled,
- totalScaled,
- totalUnscaled,
- priceUnscaled,
- priceScaled,
- };
- }
- );
- };
-
- /**
- * Function that converts coin amount to BC
- * @param {*} amount unscaled coin amount to be converted to BC
- * @param {*} price unscaled coin price
- * @param {*} decimals coin decimals
- * @returns unscaled BC amount
- */
- const convertToBC = (amount, price, decimals) => {
- const decimalScalingFactor = BigInt(Math.pow(10, decimals));
- return (BigInt(amount) * BigInt(price)) / decimalScalingFactor;
- };
-
- /**
- * Calculate if the transaction will reach the maximum reserve ratio
- * @param scPrice - Unscaled stablecoin price
- * @param reserveBc - Unscaled reserve of base coin with appended potential transaction amount.
- * Example: If user wants to buy 1RC, the reserveBc param will be calculated as sum of current reserve of BC and desired RC amount converted in BC
- * @param totalScSupply - Unscaled total stablecoin supply
- * @param reserveRatioMax - Unscaled maximum reserve ratio
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @param thresholdSupplySC - Unscaled threshold SC supply
- * @returns
- */
- const calculateIsRatioBelowMax = ({
- scPrice,
- reserveBc,
- totalScSupply,
- reserveRatioMax,
- scDecimalScalingFactor,
- thresholdSupplySC,
- }) => {
- const scalingFactorBigInt = BigInt(scalingFactor);
-
- return (
- BigInt(reserveBc) * scalingFactorBigInt * BigInt(scDecimalScalingFactor) <
- BigInt(totalScSupply) * BigInt(scPrice) * BigInt(reserveRatioMax) ||
- BigInt(totalScSupply) <= BigInt(thresholdSupplySC)
- );
- };
-
- /**
- * Calculate if the transaction will reach the minimum reserve ratio
- * @param scPrice - Unscaled stablecoin price
- * @param reserveBc - Unscaled reserve of base coin with calculated potential transaction amount.
- * Example: If user wants to buy 1SC, the reserveBc param will be calculated as sum of current reserve of BC and desired SC amount converted in BC
- * @param totalScSupply - Unscaled total stablecoin supply
- * @param reserveRatioMin - Unscaled minimum reserve ratio
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @returns
- */
- const calculateIsRatioAboveMin = ({
- scPrice,
- reserveBc,
- totalScSupply,
- reserveRatioMin,
- scDecimalScalingFactor,
- }) => {
- const scalingFactorBigInt = BigInt(scalingFactor);
-
- return (
- BigInt(reserveBc) * scalingFactorBigInt * BigInt(scDecimalScalingFactor) >
- BigInt(totalScSupply) * BigInt(scPrice) * BigInt(reserveRatioMin)
- );
- };
-
- /**
- *
- * @param {*} amountUSD
- * @param {*} totalSCSupply
- * @param {*} thresholdSCSupply
- * @returns
- */
- const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) =>
- amountUSD > TRANSACTION_USD_LIMIT &&
- BigInt(totalSCSupply) >= BigInt(thresholdSCSupply);
-
- const promiseTx = (isWalletConnected, tx, signer) => {
- if (!isWalletConnected) {
- return Promise.reject(new Error("Metamask not connected!"));
- }
- if (!signer) {
- return Promise.reject(new Error("Couldn't get Signer"));
- }
- return signer.sendTransaction(tx);
- };
-
- const verifyTx = (web3, hash) => {
- return new Promise((res) => {
- setTimeout(() => {
- web3.eth
- .getTransactionReceipt(hash)
- .then((receipt) => res(receipt.status));
- }, CONFIRMATION_WAIT_PERIOD);
- });
- };
-
- /**
- * Function that deducts all platform fees from the BC amount
- * @param {*} value The amount of BC from which fees should be deducted
- * @param {*} fee The platform fee
- * @param {*} treasuryFee The treasury fee
- * @returns BC value with all fees calculated
- */
- const calculateTxFees = (value, fee, treasuryFee, feeUI) => {
- const f = (BigInt(value) * BigInt(fee)) / BigInt(scalingFactor);
- const f_ui =
- (BigInt(value) * BigInt(feeUI || FEE_UI_UNSCALED)) / BigInt(scalingFactor);
- const f_t = (BigInt(value) * BigInt(treasuryFee)) / BigInt(scalingFactor);
-
- return { f, f_ui, f_t };
- };
-
- /**
- * Function that deducts all platform fees from the BC amount
- * @param {*} value The amount of BC from which fees should be deducted
- * @param {*} fee The platform fee
- * @param {*} treasuryFee The treasury fee
- * @returns BC value with all fees calculated
- */
- const deductFees = (value, fee, treasuryFee) => {
- const { f, f_ui, f_t } = calculateTxFees(value, fee, treasuryFee);
- return BigInt(value) - f - f_ui - f_t;
- };
-
- /**
- * Function that appends all platform fees to the BC amount
- * @param {*} amountBC The unscaled amount of BC (e.g. for 1BC, value should be 1 * 10^BC_DECIMALS)
- * @param {*} treasuryFee Treasury fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @param {*} fee Fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @param {*} fee_UI UI fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @returns Unscaled BC amount with calculated fees
- */
- const appendFees = (amountBC, treasuryFee, fee, fee_UI) => {
- const totalFees = BigInt(treasuryFee) + BigInt(fee) + BigInt(fee_UI);
- const substractedFees = BigInt(scalingFactor) - totalFees;
- const appendedFeesAmount =
- (BigInt(amountBC) * BigInt(scalingFactor)) / substractedFees;
-
- return appendedFeesAmount.toString();
- };
-
- /**
- * Function that returns treasury and platform fees
- * @param {*} djed Djed contract
- * @returns Treasury and platform fee
- */
- const getFees = async (djed) => {
- try {
- const [treasuryFee, fee] = await Promise.all([
- web3Promise$1(djed, "treasuryFee"),
- web3Promise$1(djed, "fee"),
- ]);
- return {
- treasuryFee,
- fee,
- };
- } catch (error) {
- console.log("error", error);
- }
- };
-
- /**
- * Function that calculates fees and how much BC (totalBCAmount) user should pay to receive desired amount of reserve coin
- * @param {*} djed DjedContract
- * @param {*} rcDecimals Reserve coin decimals
- * @param {*} amountScaled Reserve coin amount that user wants to buy
- * @returns
- */
- const tradeDataPriceBuyRc = async (djed, rcDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "rcBuyingPrice",
- rcDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
-
- const totalBCUnscaled = appendFees(
- data.totalUnscaled,
- treasuryFee,
- fee,
- FEE_UI_UNSCALED
- );
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCUnscaled, BC_DECIMALS),
- totalBCUnscaled,
- };
- } catch (error) {
- console.log("error", error);
- }
- };
-
- const tradeDataPriceSellRc = async (djed, rcDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "rcTargetPrice",
- rcDecimals,
- amountScaled
- );
-
- const { treasuryFee, fee } = await getFees(djed);
- const value = convertToBC(
- data.amountUnscaled,
- data.priceUnscaled,
- rcDecimals
- ).toString();
-
- const totalBCAmount = deductFees(value, fee, treasuryFee);
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCAmount.toString(), BC_DECIMALS),
- totalBCUnscaled: totalBCAmount.toString(),
- };
- } catch (error) {
- console.log("error", error);
- }
- };
-
- const buyRcTx = (djed, account, value, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .buyReserveCoins(account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, value, data);
- };
-
- const sellRcTx = (djed, account, amount, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .sellReserveCoins(amount, account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, 0, data);
- };
-
- /**
- * Function that calculates fees and how much BC (totalBCAmount) user should pay to receive desired amount of stable coin
- * @param {*} djed DjedContract
- * @param {*} scDecimals Stable coin decimals
- * @param {*} amountScaled Stable coin amount that user wants to buy
- * @returns
- */
- const tradeDataPriceBuySc = async (djed, scDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "scPrice",
- scDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
- const totalBCUnscaled = appendFees(
- data.totalUnscaled,
- treasuryFee,
- fee,
- FEE_UI_UNSCALED
- );
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCUnscaled, BC_DECIMALS),
- totalBCUnscaled,
- };
- } catch (error) {
- console.log("error", error);
- }
- };
-
- /**
- * Function that calculates fees and how much BC (totalBCAmount) user will receive if he sells desired amount of stable coin
- * @param {*} djed DjedContract
- * @param {*} scDecimals Stable coin decimals
- * @param {*} amountScaled Stable coin amount that user wants to sell
- * @returns
- */
- const tradeDataPriceSellSc = async (djed, scDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "scPrice",
- scDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
- const value = convertToBC(
- data.amountUnscaled,
- data.priceUnscaled,
- scDecimals
- ).toString();
-
- const totalBCAmount = deductFees(value, fee, treasuryFee);
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCAmount.toString(), BC_DECIMALS),
- };
- } catch (error) {
- console.log("error", error);
- }
- };
-
- // Function to allow User 1 (payer) to pay and User 2 (receiver) to receive stablecoins
- const buyScTx = (djed, payer, receiver, value, UI, DJED_ADDRESS) => {
- // `receiver` will get the stablecoins
- const data = djed.methods.buyStableCoins(receiver, FEE_UI_UNSCALED, UI).encodeABI();
-
- // `payer` is sending the funds
- return buildTx(payer, DJED_ADDRESS, value, data);
- };
-
- const sellScTx = (djed, account, amount, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .sellStableCoins(amount, account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, 0, data);
- };
-
- /**
- * This function should calculate the future stable coin price that we can expect after some transaction.
- * @param {string} amountBC The unscaled amount of BC (e.g. for 1BC, value should be 1 * 10^BC_DECIMALS)
- * @param {string} amountSC The unscaled amount of StableCoin (e.g. for 1SC, value should be 1 * 10^SC_DECIMALS)
- * @param djedContract - Instance of Djed contract
- * @param stableCoinContract - Instance of Stablecoin contract
- * @param oracleContract - Instance of Oracle contract
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @returns future stablecoin price
- */
- const calculateFutureScPrice = async ({
- amountBC,
- amountSC,
- djedContract,
- oracleContract,
- stableCoinContract,
- scDecimalScalingFactor,
- }) => {
- try {
- const [scTargetPrice, scSupply, ratio] = await Promise.all([
- web3Promise(oracleContract, "readData"),
- web3Promise(stableCoinContract, "totalSupply"),
- web3Promise(djedContract, "R", 0),
- ]);
-
- const futureScSupply = BigInt(scSupply) + BigInt(amountSC);
- const futureRatio = BigInt(ratio) + BigInt(amountBC);
-
- if (futureScSupply === 0n) {
- return scTargetPrice;
- } else {
- const futurePrice =
- (futureRatio * BigInt(scDecimalScalingFactor)) / futureScSupply;
- return BigInt(scTargetPrice) < futurePrice
- ? scTargetPrice
- : futurePrice.toString();
- }
- } catch (error) {
- console.log("calculateFutureScPrice error ", error);
- }
- };
-
- var contractName$2 = "Djed";
- var abi$2 = [
- {
- inputs: [
- {
- internalType: "address",
- name: "oracleAddress",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "_scalingFactor",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "_treasury",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "_initialTreasuryFee",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_treasuryRevenueTarget",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_reserveRatioMin",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_reserveRatioMax",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_fee",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_thresholdSupplySC",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_rcMinPrice",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "_txLimit",
- type: "uint256"
- }
- ],
- stateMutability: "payable",
- type: "constructor"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "buyer",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "BoughtReserveCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "buyer",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "BoughtStableCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "seller",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "SoldBothCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "seller",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "SoldReserveCoins",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "seller",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "amountBC",
- type: "uint256"
- }
- ],
- name: "SoldStableCoins",
- type: "event"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "E",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "L",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "R",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "fee_ui",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "buyReserveCoins",
- outputs: [
- ],
- stateMutability: "payable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "feeUI",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "buyStableCoins",
- outputs: [
- ],
- stateMutability: "payable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "fee",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "initialTreasuryFee",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "oracle",
- outputs: [
- {
- internalType: "contract IFreeOracle",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "ratio",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "rcBuyingPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "rcDecimalScalingFactor",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "rcMinPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "rcTargetPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "reserveCoin",
- outputs: [
- {
- internalType: "contract Coin",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "reserveRatioMax",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "reserveRatioMin",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "scDecimalScalingFactor",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_currentPaymentAmount",
- type: "uint256"
- }
- ],
- name: "scPrice",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "scalingFactor",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "fee_ui",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "sellBothCoins",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "amountRC",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "fee_ui",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "sellReserveCoins",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "amountSC",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "receiver",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "feeUI",
- type: "uint256"
- },
- {
- internalType: "address",
- name: "ui",
- type: "address"
- }
- ],
- name: "sellStableCoins",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "stableCoin",
- outputs: [
- {
- internalType: "contract Coin",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "thresholdSupplySC",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasury",
- outputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasuryFee",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasuryRevenue",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "treasuryRevenueTarget",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "txLimit",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- }
- ];
- var djedArtifact = {
- contractName: contractName$2,
- abi: abi$2
- };
-
- var contractName$1 = "Coin";
- var abi$1 = [
- {
- inputs: [
- {
- internalType: "string",
- name: "name",
- type: "string"
- },
- {
- internalType: "string",
- name: "symbol",
- type: "string"
- }
- ],
- stateMutability: "nonpayable",
- type: "constructor"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "owner",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "value",
- type: "uint256"
- }
- ],
- name: "Approval",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: true,
- internalType: "address",
- name: "from",
- type: "address"
- },
- {
- indexed: true,
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- indexed: false,
- internalType: "uint256",
- name: "value",
- type: "uint256"
- }
- ],
- name: "Transfer",
- type: "event"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "owner",
- type: "address"
- },
- {
- internalType: "address",
- name: "spender",
- type: "address"
- }
- ],
- name: "allowance",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "approve",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "account",
- type: "address"
- }
- ],
- name: "balanceOf",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "subtractedValue",
- type: "uint256"
- }
- ],
- name: "decreaseAllowance",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "spender",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "addedValue",
- type: "uint256"
- }
- ],
- name: "increaseAllowance",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "name",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "symbol",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "totalSupply",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "transfer",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "from",
- type: "address"
- },
- {
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "transferFrom",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "decimals",
- outputs: [
- {
- internalType: "uint8",
- name: "",
- type: "uint8"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "to",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "mint",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "from",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "amount",
- type: "uint256"
- }
- ],
- name: "burn",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- }
- ];
- var coinArtifact = {
- contractName: contractName$1,
- abi: abi$1
- };
-
- //setting up djed
- const getDjedContract = (web3, DJED_ADDRESS) => {
- const djed = new web3.eth.Contract(djedArtifact.abi, DJED_ADDRESS);
- return djed;
- };
-
- const getCoinContracts = async (djedContract, web3) => {
- const [stableCoinAddress, reserveCoinAddress] = await Promise.all([
- web3Promise$1(djedContract, "stableCoin"),
- web3Promise$1(djedContract, "reserveCoin"),
- ]);
- const stableCoin = new web3.eth.Contract(coinArtifact.abi, stableCoinAddress);
- const reserveCoin = new web3.eth.Contract(
- coinArtifact.abi,
- reserveCoinAddress
- );
- return { stableCoin, reserveCoin };
- };
- const getDecimals = async (stableCoin, reserveCoin) => {
- const [scDecimals, rcDecimals] = await Promise.all([
- convertInt(web3Promise$1(stableCoin, "decimals")),
- convertInt(web3Promise$1(reserveCoin, "decimals")),
- ]);
- return { scDecimals, rcDecimals };
- };
-
- const getCoinDetails = async (
- stableCoin,
- reserveCoin,
- djed,
- scDecimals,
- rcDecimals
- ) => {
- try {
- const [
- [scaledNumberSc, unscaledNumberSc],
- [scaledPriceSc, unscaledPriceSc],
- [scaledNumberRc, unscaledNumberRc],
- [scaledReserveBc, unscaledReserveBc],
- scaledBuyPriceRc,
- scaledScExchangeRate,
- ] = await Promise.all([
- scaledUnscaledPromise(web3Promise$1(stableCoin, "totalSupply"), scDecimals),
- scaledUnscaledPromise(web3Promise$1(djed, "scPrice", 0), BC_DECIMALS),
- scaledUnscaledPromise(
- web3Promise$1(reserveCoin, "totalSupply"),
- rcDecimals
- ),
- scaledUnscaledPromise(web3Promise$1(djed, "R", 0), BC_DECIMALS),
- scaledPromise(web3Promise$1(djed, "rcBuyingPrice", 0), BC_DECIMALS),
- scaledPromise(web3Promise$1(djed, "scPrice", 0), BC_DECIMALS),
- ]);
-
- // Define default empty value
- const emptyValue = decimalScaling("0".toString(10), BC_DECIMALS);
- let scaledSellPriceRc = emptyValue;
- let unscaledSellPriceRc = emptyValue;
- let percentReserveRatio = emptyValue;
-
- // Check total reserve coin supply to calculate sell price
- if (BigInt(unscaledNumberRc) !== 0n) {
- [scaledSellPriceRc, unscaledSellPriceRc] = await scaledUnscaledPromise(
- web3Promise$1(djed, "rcTargetPrice", 0),
- BC_DECIMALS
- );
- }
-
- // Check total stable coin supply to calculate reserve ratio
- if (BigInt(unscaledNumberSc) !== 0n) {
- percentReserveRatio = await percentScaledPromise(
- web3Promise$1(djed, "ratio"),
- SCALING_DECIMALS
- );
- }
-
- // Return the results
- return {
- scaledNumberSc,
- unscaledNumberSc,
- scaledPriceSc,
- unscaledPriceSc,
- scaledNumberRc,
- unscaledNumberRc,
- scaledReserveBc,
- unscaledReserveBc,
- percentReserveRatio,
- scaledBuyPriceRc,
- scaledSellPriceRc,
- unscaledSellPriceRc,
- scaledScExchangeRate,
- };
- } catch (error) {
- console.error("Error fetching coin details:", error);
- throw new Error("Failed to fetch coin details");
- }
- };
-
- const getSystemParams = async (djed) => {
- const [
- reserveRatioMinUnscaled,
- reserveRatioMaxUnscaled,
- feeUnscaled,
- treasuryFee,
- thresholdSupplySC,
- ] = await Promise.all([
- web3Promise$1(djed, "reserveRatioMin"),
- web3Promise$1(djed, "reserveRatioMax"),
- web3Promise$1(djed, "fee"),
- percentScaledPromise(web3Promise$1(djed, "treasuryFee"), SCALING_DECIMALS),
- web3Promise$1(djed, "thresholdSupplySC"),
- ]);
-
- return {
- reserveRatioMin: percentageScale(
- reserveRatioMinUnscaled,
- SCALING_DECIMALS,
- true
- ),
- reserveRatioMax: percentageScale(
- reserveRatioMaxUnscaled,
- SCALING_DECIMALS,
- true
- ),
- reserveRatioMinUnscaled,
- reserveRatioMaxUnscaled,
- fee: percentageScale(feeUnscaled, SCALING_DECIMALS, true),
- feeUnscaled,
- treasuryFee,
- thresholdSupplySC,
- };
- };
-
- const getAccountDetails = async (
- web3,
- account,
- stableCoin,
- reserveCoin,
- scDecimals,
- rcDecimals
- ) => {
- const [
- [scaledBalanceSc, unscaledBalanceSc],
- [scaledBalanceRc, unscaledBalanceRc],
- [scaledBalanceBc, unscaledBalanceBc],
- ] = await Promise.all([
- scaledUnscaledPromise(
- web3Promise$1(stableCoin, "balanceOf", account),
- scDecimals
- ),
- scaledUnscaledPromise(
- web3Promise$1(reserveCoin, "balanceOf", account),
- rcDecimals
- ),
- scaledUnscaledPromise(web3.eth.getBalance(account), BC_DECIMALS),
- ]);
-
- return {
- scaledBalanceSc,
- unscaledBalanceSc,
- scaledBalanceRc,
- unscaledBalanceRc,
- scaledBalanceBc,
- unscaledBalanceBc,
- };
- };
-
- var contractName = "Oracle";
- var abi = [
- {
- inputs: [
- {
- internalType: "address",
- name: "_owner",
- type: "address"
- },
- {
- internalType: "string",
- name: "_description",
- type: "string"
- },
- {
- internalType: "string",
- name: "_termsOfService",
- type: "string"
- }
- ],
- stateMutability: "nonpayable",
- type: "constructor"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "uint256",
- name: "data",
- type: "uint256"
- }
- ],
- name: "DataWritten",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "opposer",
- type: "address"
- }
- ],
- name: "OppositionAdded",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "opposer",
- type: "address"
- }
- ],
- name: "OppositionRemoved",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "OwnerAdded",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "OwnerRemoved",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "supporter",
- type: "address"
- }
- ],
- name: "SupportAdded",
- type: "event"
- },
- {
- anonymous: false,
- inputs: [
- {
- indexed: false,
- internalType: "address",
- name: "a",
- type: "address"
- },
- {
- indexed: false,
- internalType: "address",
- name: "supporter",
- type: "address"
- }
- ],
- name: "SupportRemoved",
- type: "event"
- },
- {
- inputs: [
- ],
- name: "acceptTermsOfService",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "acceptedTermsOfService",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "add",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "description",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "numOwners",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "oppose",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "opposers",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- name: "opposing",
- outputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "oppositionCounter",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "owner",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "readData",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "remove",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "support",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "supportCounter",
- outputs: [
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- name: "supporters",
- outputs: [
- {
- internalType: "bool",
- name: "",
- type: "bool"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- },
- {
- internalType: "uint256",
- name: "",
- type: "uint256"
- }
- ],
- name: "supporting",
- outputs: [
- {
- internalType: "address",
- name: "",
- type: "address"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- ],
- name: "termsOfService",
- outputs: [
- {
- internalType: "string",
- name: "",
- type: "string"
- }
- ],
- stateMutability: "view",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "unoppose",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "address",
- name: "a",
- type: "address"
- }
- ],
- name: "unsupport",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- },
- {
- inputs: [
- {
- internalType: "uint256",
- name: "_data",
- type: "uint256"
- }
- ],
- name: "writeData",
- outputs: [
- ],
- stateMutability: "nonpayable",
- type: "function"
- }
- ];
- var oracleArtifact = {
- contractName: contractName,
- abi: abi
- };
-
- const getOracleAddress = async (djedContract) => {
- return await web3Promise$1(djedContract, "oracle");
- };
-
- const getOracleContract = (web3, oracleAddress, msgSender) => {
- const oracle = new web3.eth.Contract(oracleArtifact.abi, oracleAddress, {
- from: msgSender
- });
- return oracle;
- };
-
- exports.FEE_UI_UNSCALED = FEE_UI_UNSCALED;
- exports.appendFees = appendFees;
- exports.buyRcTx = buyRcTx;
- exports.buyScTx = buyScTx;
- exports.calculateBcUsdEquivalent = calculateBcUsdEquivalent;
- exports.calculateFutureScPrice = calculateFutureScPrice;
- exports.calculateIsRatioAboveMin = calculateIsRatioAboveMin;
- exports.calculateIsRatioBelowMax = calculateIsRatioBelowMax;
- exports.calculateRcUsdEquivalent = calculateRcUsdEquivalent;
- exports.calculateTxFees = calculateTxFees;
- exports.convertToBC = convertToBC;
- exports.deductFees = deductFees;
- exports.getAccountDetails = getAccountDetails;
- exports.getBcUsdEquivalent = getBcUsdEquivalent;
- exports.getCoinContracts = getCoinContracts;
- exports.getCoinDetails = getCoinDetails;
- exports.getDecimals = getDecimals;
- exports.getDjedContract = getDjedContract;
- exports.getFees = getFees;
- exports.getOracleAddress = getOracleAddress;
- exports.getOracleContract = getOracleContract;
- exports.getRcUsdEquivalent = getRcUsdEquivalent;
- exports.getScAdaEquivalent = getScAdaEquivalent;
- exports.getSystemParams = getSystemParams;
- exports.getWeb3 = getWeb3;
- exports.isTxLimitReached = isTxLimitReached;
- exports.promiseTx = promiseTx;
- exports.scalingFactor = scalingFactor;
- exports.sellRcTx = sellRcTx;
- exports.sellScTx = sellScTx;
- exports.tradeDataPriceBuyRc = tradeDataPriceBuyRc;
- exports.tradeDataPriceBuySc = tradeDataPriceBuySc;
- exports.tradeDataPriceCore = tradeDataPriceCore;
- exports.tradeDataPriceSellRc = tradeDataPriceSellRc;
- exports.tradeDataPriceSellSc = tradeDataPriceSellSc;
- exports.verifyTx = verifyTx;
-
-}));
diff --git a/djed-sdk/package-lock.json b/djed-sdk/package-lock.json
deleted file mode 100644
index 96958d5..0000000
--- a/djed-sdk/package-lock.json
+++ /dev/null
@@ -1,5290 +0,0 @@
-{
- "name": "djed-sdk",
- "version": "1.0.2",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "djed-sdk",
- "version": "1.0.2",
- "license": "ISC",
- "devDependencies": {
- "@rollup/plugin-commonjs": "^26.0.1",
- "@rollup/plugin-json": "^6.1.0",
- "@rollup/plugin-node-resolve": "^15.2.3",
- "@rollup/plugin-replace": "^5.0.7",
- "@rollup/plugin-sucrase": "^5.0.2",
- "rollup": "^4.18.0",
- "web3": "^1.7.3"
- }
- },
- "node_modules/@ethereumjs/common": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz",
- "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==",
- "dev": true,
- "dependencies": {
- "crc-32": "^1.2.0",
- "ethereumjs-util": "^7.1.5"
- }
- },
- "node_modules/@ethereumjs/rlp": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz",
- "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==",
- "dev": true,
- "bin": {
- "rlp": "bin/rlp"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@ethereumjs/tx": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz",
- "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==",
- "dev": true,
- "dependencies": {
- "@ethereumjs/common": "^2.6.4",
- "ethereumjs-util": "^7.1.5"
- }
- },
- "node_modules/@ethereumjs/util": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz",
- "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==",
- "dev": true,
- "dependencies": {
- "@ethereumjs/rlp": "^4.0.1",
- "ethereum-cryptography": "^2.0.0",
- "micro-ftch": "^0.3.1"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@ethersproject/abi": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
- "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/hash": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/abstract-provider": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
- "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/networks": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/transactions": "^5.7.0",
- "@ethersproject/web": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/abstract-signer": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
- "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/abstract-provider": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/address": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
- "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/rlp": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/base64": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
- "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/bignumber": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
- "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "bn.js": "^5.2.1"
- }
- },
- "node_modules/@ethersproject/bignumber/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/@ethersproject/bytes": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
- "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/constants": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
- "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bignumber": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/hash": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
- "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/abstract-signer": "^5.7.0",
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/base64": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/keccak256": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
- "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "js-sha3": "0.8.0"
- }
- },
- "node_modules/@ethersproject/logger": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
- "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ]
- },
- "node_modules/@ethersproject/networks": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
- "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/properties": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
- "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/rlp": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
- "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/signing-key": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
- "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "bn.js": "^5.2.1",
- "elliptic": "6.5.4",
- "hash.js": "1.1.7"
- }
- },
- "node_modules/@ethersproject/signing-key/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/@ethersproject/signing-key/node_modules/elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/@ethersproject/strings": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
- "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/transactions": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
- "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/rlp": "^5.7.0",
- "@ethersproject/signing-key": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/web": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
- "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/base64": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@noble/curves": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz",
- "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==",
- "dev": true,
- "dependencies": {
- "@noble/hashes": "1.4.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@noble/hashes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
- "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
- "dev": true,
- "engines": {
- "node": ">= 16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@rollup/plugin-commonjs": {
- "version": "26.0.1",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz",
- "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "commondir": "^1.0.1",
- "estree-walker": "^2.0.2",
- "glob": "^10.4.1",
- "is-reference": "1.2.1",
- "magic-string": "^0.30.3"
- },
- "engines": {
- "node": ">=16.0.0 || 14 >= 14.17"
- },
- "peerDependencies": {
- "rollup": "^2.68.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-json": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
- "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.1.0"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-node-resolve": {
- "version": "15.2.3",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
- "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "@types/resolve": "1.20.2",
- "deepmerge": "^4.2.2",
- "is-builtin-module": "^3.2.1",
- "is-module": "^1.0.0",
- "resolve": "^1.22.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.78.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-replace": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz",
- "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "magic-string": "^0.30.3"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-sucrase": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-sucrase/-/plugin-sucrase-5.0.2.tgz",
- "integrity": "sha512-4MhIVH9Dy2Hwose1/x5QMs0XF7yn9jDd/yozHqzdIrMWIolgFpGnrnVhQkqTaK1RALY/fpyrEKmwH/04vr1THA==",
- "dev": true,
- "dependencies": {
- "@rollup/pluginutils": "^5.0.1",
- "sucrase": "^3.27.0"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^2.53.1||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
- "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
- "dev": true,
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^2.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
- },
- "peerDependenciesMeta": {
- "rollup": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
- "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
- "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
- "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
- "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
- "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
- "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
- "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
- "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
- "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
- "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
- "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
- "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
- "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
- "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
- "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
- "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@scure/base": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
- "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==",
- "dev": true,
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@scure/bip32": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz",
- "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==",
- "dev": true,
- "dependencies": {
- "@noble/curves": "~1.4.0",
- "@noble/hashes": "~1.4.0",
- "@scure/base": "~1.1.6"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@scure/bip39": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz",
- "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==",
- "dev": true,
- "dependencies": {
- "@noble/hashes": "~1.4.0",
- "@scure/base": "~1.1.6"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "dev": true,
- "dependencies": {
- "defer-to-connect": "^2.0.1"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/@types/bn.js": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz",
- "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/cacheable-request": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
- "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
- "dev": true,
- "dependencies": {
- "@types/http-cache-semantics": "*",
- "@types/keyv": "^3.1.4",
- "@types/node": "*",
- "@types/responselike": "^1.0.0"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dev": true
- },
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
- "dev": true
- },
- "node_modules/@types/keyv": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
- "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "12.20.55",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
- "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==",
- "dev": true
- },
- "node_modules/@types/pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/resolve": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
- "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
- "dev": true
- },
- "node_modules/@types/responselike": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
- "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/secp256k1": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
- "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/abortcontroller-polyfill": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
- "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==",
- "dev": true
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dev": true,
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "node_modules/asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
- "dependencies": {
- "safer-buffer": "~2.1.0"
- }
- },
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
- "dev": true
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "dev": true,
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/aws4": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
- "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
- "dev": true
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/base-x": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz",
- "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dev": true,
- "dependencies": {
- "tweetnacl": "^0.14.3"
- }
- },
- "node_modules/bignumber.js": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
- "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/blakejs": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
- "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==",
- "dev": true
- },
- "node_modules/bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
- },
- "node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "dev": true
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "dev": true,
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "dev": true,
- "dependencies": {
- "base-x": "^3.0.2"
- }
- },
- "node_modules/bs58check": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
- "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "dev": true,
- "dependencies": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "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.1.13"
- }
- },
- "node_modules/buffer-to-arraybuffer": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
- "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==",
- "dev": true
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "dev": true
- },
- "node_modules/bufferutil": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
- "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=6.14.2"
- }
- },
- "node_modules/builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacheable-lookup": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz",
- "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==",
- "dev": true,
- "engines": {
- "node": ">=10.6.0"
- }
- },
- "node_modules/cacheable-request": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
- "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
- "dev": true,
- "dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
- "dev": true
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "node_modules/cids": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
- "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "class-is": "^1.1.0",
- "multibase": "~0.6.0",
- "multicodec": "^1.0.0",
- "multihashes": "~0.4.15"
- },
- "engines": {
- "node": ">=4.0.0",
- "npm": ">=3.0.0"
- }
- },
- "node_modules/cids/node_modules/multicodec": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
- "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dev": true,
- "dependencies": {
- "buffer": "^5.6.0",
- "varint": "^5.0.0"
- }
- },
- "node_modules/cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/class-is": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
- "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==",
- "dev": true
- },
- "node_modules/clone-response": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
- "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
- "dev": true,
- "dependencies": {
- "mimic-response": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "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==",
- "dev": true
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-hash": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
- "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
- "dev": true,
- "dependencies": {
- "cids": "^0.7.1",
- "multicodec": "^0.5.5",
- "multihashes": "^0.4.15"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
- "dev": true
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dev": true,
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/crc-32": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
- "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
- "dev": true,
- "bin": {
- "crc32": "bin/crc32.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "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==",
- "dev": true,
- "dependencies": {
- "node-fetch": "^2.6.12"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/d": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
- "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
- "dev": true,
- "dependencies": {
- "es5-ext": "^0.10.64",
- "type": "^2.7.2"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decode-uri-component": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
- "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "dev": true,
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decompress-response/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/dom-walk": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
- "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
- "dev": true
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dev": true,
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
- },
- "node_modules/elliptic": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz",
- "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dev": true,
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es5-ext": {
- "version": "0.10.64",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
- "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.3",
- "esniff": "^2.0.1",
- "next-tick": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
- "dev": true,
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
- "dev": true
- },
- "node_modules/es6-symbol": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
- "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
- "dev": true,
- "dependencies": {
- "d": "^1.0.2",
- "ext": "^1.7.0"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
- },
- "node_modules/esniff": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
- "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
- "dev": true,
- "dependencies": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.62",
- "event-emitter": "^0.3.5",
- "type": "^2.7.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "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==",
- "dev": true
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eth-ens-namehash": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
- "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
- "dev": true,
- "dependencies": {
- "idna-uts46-hx": "^2.3.1",
- "js-sha3": "^0.5.7"
- }
- },
- "node_modules/eth-ens-namehash/node_modules/js-sha3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
- "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==",
- "dev": true
- },
- "node_modules/eth-lib": {
- "version": "0.1.29",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
- "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "nano-json-stream-parser": "^0.1.2",
- "servify": "^0.1.12",
- "ws": "^3.0.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "node_modules/ethereum-bloom-filters": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz",
- "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==",
- "dev": true,
- "dependencies": {
- "@noble/hashes": "^1.4.0"
- }
- },
- "node_modules/ethereum-cryptography": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz",
- "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==",
- "dev": true,
- "dependencies": {
- "@noble/curves": "1.4.2",
- "@noble/hashes": "1.4.0",
- "@scure/bip32": "1.4.0",
- "@scure/bip39": "1.3.0"
- }
- },
- "node_modules/ethereumjs-util": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
- "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
- "dev": true,
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/ethereumjs-util/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dev": true,
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/ethjs-unit": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
- "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
- "dev": true,
- "dependencies": {
- "bn.js": "4.11.6",
- "number-to-bn": "1.7.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
- "node_modules/ethjs-unit/node_modules/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==",
- "dev": true
- },
- "node_modules/event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
- "dev": true,
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
- "dev": true
- },
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dev": true,
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/express": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
- "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
- "dev": true,
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/ext": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
- "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
- "dev": true,
- "dependencies": {
- "type": "^2.7.2"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ]
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "dev": true,
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/foreground-child": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/form-data-encoder": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz",
- "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==",
- "dev": true
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs-extra": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
- "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "node_modules/fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
- "dev": true,
- "dependencies": {
- "minipass": "^2.6.0"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dev": true,
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0"
- }
- },
- "node_modules/glob": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz",
- "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dev": true,
- "dependencies": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dev": true,
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/got": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
- "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/is": "^4.6.0",
- "@szmarczak/http-timer": "^5.0.1",
- "@types/cacheable-request": "^6.0.2",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^6.0.4",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "1.7.1",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "dev": true
- },
- "node_modules/har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dev": true,
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dev": true,
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
- "dev": true
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-https": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
- "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==",
- "dev": true
- },
- "node_modules/http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dev": true,
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- }
- },
- "node_modules/http2-wrapper": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
- "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
- "dev": true,
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.2.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/idna-uts46-hx": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
- "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
- "dev": true,
- "dependencies": {
- "punycode": "2.1.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/idna-uts46-hx/node_modules/punycode": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
- "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "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==",
- "dev": true,
- "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",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
- "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
- "dev": true,
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
- "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
- "dev": true
- },
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-hex-prefixed": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
- "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
- "dev": true,
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
- "node_modules/is-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
- "dev": true
- },
- "node_modules/is-reference": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
- "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
- "dev": true,
- "dependencies": {
- "@types/estree": "*"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
- "dev": true,
- "dependencies": {
- "which-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
- "dev": true
- },
- "node_modules/jackspeak": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
- "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/js-sha3": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
- "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
- "dev": true
- },
- "node_modules/jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
- "dev": true
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "dev": true
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dev": true
- },
- "node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dev": true,
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/keccak": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
- "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dev": true,
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lru-cache": {
- "version": "10.2.2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
- "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
- "dev": true,
- "engines": {
- "node": "14 || >=16.14"
- }
- },
- "node_modules/magic-string": {
- "version": "0.30.10",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
- "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- }
- },
- "node_modules/md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "dev": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micro-ftch": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz",
- "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==",
- "dev": true
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
- "dev": true,
- "dependencies": {
- "dom-walk": "^0.1.0"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "dev": true
- },
- "node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dev": true,
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
- "dev": true,
- "dependencies": {
- "minipass": "^2.9.0"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node_modules/mkdirp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
- "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
- "dev": true,
- "bin": {
- "mkdirp": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/mkdirp-promise": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
- "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==",
- "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.",
- "dev": true,
- "dependencies": {
- "mkdirp": "*"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mock-fs": {
- "version": "4.14.0",
- "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
- "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==",
- "dev": true
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/multibase": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz",
- "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dev": true,
- "dependencies": {
- "base-x": "^3.0.8",
- "buffer": "^5.5.0"
- }
- },
- "node_modules/multicodec": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
- "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dev": true,
- "dependencies": {
- "varint": "^5.0.0"
- }
- },
- "node_modules/multihashes": {
- "version": "0.4.21",
- "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
- "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "multibase": "^0.7.0",
- "varint": "^5.0.0"
- }
- },
- "node_modules/multihashes/node_modules/multibase": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
- "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dev": true,
- "dependencies": {
- "base-x": "^3.0.8",
- "buffer": "^5.5.0"
- }
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nano-json-stream-parser": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
- "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==",
- "dev": true
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
- "dev": true
- },
- "node_modules/node-addon-api": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
- "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
- "dev": true
- },
- "node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-gyp-build": {
- "version": "4.8.2",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz",
- "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==",
- "dev": true,
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
- "node_modules/normalize-url": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
- "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/number-to-bn": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
- "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
- "dev": true,
- "dependencies": {
- "bn.js": "4.11.6",
- "strip-hex-prefix": "1.0.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
- "node_modules/number-to-bn/node_modules/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==",
- "dev": true
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/oboe": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
- "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==",
- "dev": true,
- "dependencies": {
- "http-https": "^1.0.0"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dev": true,
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "dev": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
- "dev": true
- },
- "node_modules/parse-headers": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
- "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==",
- "dev": true
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
- "dev": true
- },
- "node_modules/pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "dev": true,
- "dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/possible-typed-array-names": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
- "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dev": true,
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
- "dev": true
- },
- "node_modules/pump": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
- "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
- "dev": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/query-string": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
- "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
- "dev": true,
- "dependencies": {
- "decode-uri-component": "^0.2.0",
- "object-assign": "^4.1.0",
- "strict-uri-encode": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dev": true,
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
- "dev": true
- },
- "node_modules/responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "dev": true,
- "dependencies": {
- "lowercase-keys": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/responselike/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "dev": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "node_modules/rlp": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
- "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
- "dev": true,
- "dependencies": {
- "bn.js": "^5.2.0"
- },
- "bin": {
- "rlp": "bin/rlp"
- }
- },
- "node_modules/rlp/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/rollup": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz",
- "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
- "dev": true,
- "dependencies": {
- "@types/estree": "1.0.5"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.18.0",
- "@rollup/rollup-android-arm64": "4.18.0",
- "@rollup/rollup-darwin-arm64": "4.18.0",
- "@rollup/rollup-darwin-x64": "4.18.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
- "@rollup/rollup-linux-arm64-gnu": "4.18.0",
- "@rollup/rollup-linux-arm64-musl": "4.18.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
- "@rollup/rollup-linux-s390x-gnu": "4.18.0",
- "@rollup/rollup-linux-x64-gnu": "4.18.0",
- "@rollup/rollup-linux-x64-musl": "4.18.0",
- "@rollup/rollup-win32-arm64-msvc": "4.18.0",
- "@rollup/rollup-win32-ia32-msvc": "4.18.0",
- "@rollup/rollup-win32-x64-msvc": "4.18.0",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
- },
- "node_modules/scrypt-js": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
- "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
- "dev": true
- },
- "node_modules/secp256k1": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.4.tgz",
- "integrity": "sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "elliptic": "^6.5.7",
- "node-addon-api": "^5.0.0",
- "node-gyp-build": "^4.2.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/secp256k1/node_modules/node-addon-api": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
- "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
- "dev": true
- },
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "dev": true,
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/send/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==",
- "dev": true
- },
- "node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "dev": true,
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/servify": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
- "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
- "dev": true,
- "dependencies": {
- "body-parser": "^1.16.0",
- "cors": "^2.8.1",
- "express": "^4.14.0",
- "request": "^2.79.0",
- "xhr": "^2.3.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dev": true,
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "node_modules/sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/simple-get": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
- "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
- "dev": true,
- "dependencies": {
- "decompress-response": "^3.3.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "node_modules/simple-get/node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
- "dev": true,
- "dependencies": {
- "mimic-response": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/sshpk": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
- "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
- "dev": true,
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-hex-prefix": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
- "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
- "dev": true,
- "dependencies": {
- "is-hex-prefixed": "1.0.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/swarm-js": {
- "version": "0.1.42",
- "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz",
- "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==",
- "dev": true,
- "dependencies": {
- "bluebird": "^3.5.0",
- "buffer": "^5.0.5",
- "eth-lib": "^0.1.26",
- "fs-extra": "^4.0.2",
- "got": "^11.8.5",
- "mime-types": "^2.1.16",
- "mkdirp-promise": "^5.0.1",
- "mock-fs": "^4.1.0",
- "setimmediate": "^1.0.5",
- "tar": "^4.0.2",
- "xhr-request": "^1.0.1"
- }
- },
- "node_modules/swarm-js/node_modules/@szmarczak/http-timer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
- "dev": true,
- "dependencies": {
- "defer-to-connect": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/swarm-js/node_modules/cacheable-lookup": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
- "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
- "dev": true,
- "engines": {
- "node": ">=10.6.0"
- }
- },
- "node_modules/swarm-js/node_modules/got": {
- "version": "11.8.6",
- "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
- "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
- "dev": true,
- "dependencies": {
- "@sindresorhus/is": "^4.0.0",
- "@szmarczak/http-timer": "^4.0.5",
- "@types/cacheable-request": "^6.0.1",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^5.0.3",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "http2-wrapper": "^1.0.0-beta.5.2",
- "lowercase-keys": "^2.0.0",
- "p-cancelable": "^2.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=10.19.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/swarm-js/node_modules/http2-wrapper": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
- "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
- "dev": true,
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.0.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/swarm-js/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/swarm-js/node_modules/p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tar": {
- "version": "4.4.19",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
- "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
- "dev": true,
- "dependencies": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
- },
- "engines": {
- "node": ">=4.5"
- }
- },
- "node_modules/tar/node_modules/minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node_modules/tar/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
- "dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "dev": true
- },
- "node_modules/type": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
- "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==",
- "dev": true
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
- "node_modules/ultron": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
- "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
- "dev": true
- },
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url-set-query": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
- "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==",
- "dev": true
- },
- "node_modules/utf-8-validate": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
- "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=6.14.2"
- }
- },
- "node_modules/utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
- "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==",
- "dev": true
- },
- "node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/varint": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
- "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==",
- "dev": true
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "node_modules/web3": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz",
- "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "web3-bzz": "1.10.4",
- "web3-core": "1.10.4",
- "web3-eth": "1.10.4",
- "web3-eth-personal": "1.10.4",
- "web3-net": "1.10.4",
- "web3-shh": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-bzz": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz",
- "integrity": "sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "@types/node": "^12.12.6",
- "got": "12.1.0",
- "swarm-js": "^0.1.40"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz",
- "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==",
- "dev": true,
- "dependencies": {
- "@types/bn.js": "^5.1.1",
- "@types/node": "^12.12.6",
- "bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-requestmanager": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-helpers": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz",
- "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==",
- "dev": true,
- "dependencies": {
- "web3-eth-iban": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-method": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.4.tgz",
- "integrity": "sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==",
- "dev": true,
- "dependencies": {
- "@ethersproject/transactions": "^5.6.2",
- "web3-core-helpers": "1.10.4",
- "web3-core-promievent": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-promievent": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz",
- "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==",
- "dev": true,
- "dependencies": {
- "eventemitter3": "4.0.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-requestmanager": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz",
- "integrity": "sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==",
- "dev": true,
- "dependencies": {
- "util": "^0.12.5",
- "web3-core-helpers": "1.10.4",
- "web3-providers-http": "1.10.4",
- "web3-providers-ipc": "1.10.4",
- "web3-providers-ws": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-subscriptions": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz",
- "integrity": "sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==",
- "dev": true,
- "dependencies": {
- "eventemitter3": "4.0.4",
- "web3-core-helpers": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz",
- "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==",
- "dev": true,
- "dependencies": {
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-eth-abi": "1.10.4",
- "web3-eth-accounts": "1.10.4",
- "web3-eth-contract": "1.10.4",
- "web3-eth-ens": "1.10.4",
- "web3-eth-iban": "1.10.4",
- "web3-eth-personal": "1.10.4",
- "web3-net": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-abi": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz",
- "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==",
- "dev": true,
- "dependencies": {
- "@ethersproject/abi": "^5.6.3",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-accounts": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz",
- "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==",
- "dev": true,
- "dependencies": {
- "@ethereumjs/common": "2.6.5",
- "@ethereumjs/tx": "3.5.2",
- "@ethereumjs/util": "^8.1.0",
- "eth-lib": "0.2.8",
- "scrypt-js": "^3.0.1",
- "uuid": "^9.0.0",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-accounts/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "node_modules/web3-eth-accounts/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "dev": true,
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/web3-eth-contract": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz",
- "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==",
- "dev": true,
- "dependencies": {
- "@types/bn.js": "^5.1.1",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-promievent": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-eth-abi": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-ens": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz",
- "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==",
- "dev": true,
- "dependencies": {
- "content-hash": "^2.5.2",
- "eth-ens-namehash": "2.0.8",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-promievent": "1.10.4",
- "web3-eth-abi": "1.10.4",
- "web3-eth-contract": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-iban": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz",
- "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==",
- "dev": true,
- "dependencies": {
- "bn.js": "^5.2.1",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-iban/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/web3-eth-personal": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz",
- "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==",
- "dev": true,
- "dependencies": {
- "@types/node": "^12.12.6",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-net": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-net": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz",
- "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==",
- "dev": true,
- "dependencies": {
- "web3-core": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-http": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.4.tgz",
- "integrity": "sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==",
- "dev": true,
- "dependencies": {
- "abortcontroller-polyfill": "^1.7.5",
- "cross-fetch": "^4.0.0",
- "es6-promise": "^4.2.8",
- "web3-core-helpers": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-ipc": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.4.tgz",
- "integrity": "sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==",
- "dev": true,
- "dependencies": {
- "oboe": "2.1.5",
- "web3-core-helpers": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-ws": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.4.tgz",
- "integrity": "sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==",
- "dev": true,
- "dependencies": {
- "eventemitter3": "4.0.4",
- "web3-core-helpers": "1.10.4",
- "websocket": "^1.0.32"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-shh": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.4.tgz",
- "integrity": "sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "web3-core": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-net": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-utils": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz",
- "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==",
- "dev": true,
- "dependencies": {
- "@ethereumjs/util": "^8.1.0",
- "bn.js": "^5.2.1",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereum-cryptography": "^2.1.2",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-utils/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/websocket": {
- "version": "1.0.35",
- "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz",
- "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==",
- "dev": true,
- "dependencies": {
- "bufferutil": "^4.0.1",
- "debug": "^2.2.0",
- "es5-ext": "^0.10.63",
- "typedarray-to-buffer": "^3.1.5",
- "utf-8-validate": "^5.0.2",
- "yaeti": "^0.0.6"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
- "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
- "dev": true,
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "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==",
- "dev": true,
- "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/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "dev": true
- },
- "node_modules/ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "dev": true,
- "dependencies": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
- },
- "node_modules/ws/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/xhr": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
- "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
- "dev": true,
- "dependencies": {
- "global": "~4.4.0",
- "is-function": "^1.0.1",
- "parse-headers": "^2.0.0",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/xhr-request": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
- "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
- "dev": true,
- "dependencies": {
- "buffer-to-arraybuffer": "^0.0.5",
- "object-assign": "^4.1.1",
- "query-string": "^5.0.1",
- "simple-get": "^2.7.0",
- "timed-out": "^4.0.1",
- "url-set-query": "^1.0.0",
- "xhr": "^2.0.4"
- }
- },
- "node_modules/xhr-request-promise": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz",
- "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==",
- "dev": true,
- "dependencies": {
- "xhr-request": "^1.1.0"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/yaeti": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
- "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==",
- "dev": true,
- "engines": {
- "node": ">=0.10.32"
- }
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- }
- }
-}
diff --git a/djed-sdk/package.json b/djed-sdk/package.json
deleted file mode 100644
index e6bcdfa..0000000
--- a/djed-sdk/package.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": "djed-sdk",
- "version": "1.0.2",
- "description": "",
- "main": "dist/umd/index.js",
- "module": "dist/esm/index.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "keywords": [],
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "@rollup/plugin-commonjs": "^26.0.1",
- "@rollup/plugin-json": "^6.1.0",
- "@rollup/plugin-node-resolve": "^15.2.3",
- "@rollup/plugin-replace": "^5.0.7",
- "@rollup/plugin-sucrase": "^5.0.2",
- "rollup": "^4.18.0",
- "web3": "^1.7.3"
- }
-}
diff --git a/djed-sdk/rollup.config.mjs b/djed-sdk/rollup.config.mjs
deleted file mode 100644
index f562dde..0000000
--- a/djed-sdk/rollup.config.mjs
+++ /dev/null
@@ -1,33 +0,0 @@
-import resolve from '@rollup/plugin-node-resolve';
-import commonjs from '@rollup/plugin-commonjs';
-import json from '@rollup/plugin-json';
-
-export default {
- input: 'src/index.js',
- output: [
- {
- format: 'es',
- file: 'dist/esm/index.js'
- },
- {
- format: 'umd',
- name: 'DjedSdk',
- file: 'dist/umd/index.js',
- globals: {
- web3: 'Web3',
- ethers: 'ethers'
- }
- },
- ],
- external: ['web3', 'ethers'],
- plugins: [
- resolve({
- extensions: ['.js', '.jsx']
- }),
- commonjs({
- include: 'node_modules/**'
- }),
-
- json()
- ]
-};
diff --git a/djed-sdk/src/artifacts/CoinABI.json b/djed-sdk/src/artifacts/CoinABI.json
deleted file mode 100644
index 7472267..0000000
--- a/djed-sdk/src/artifacts/CoinABI.json
+++ /dev/null
@@ -1,327 +0,0 @@
-{
- "contractName": "Coin",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "string",
- "name": "name",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "symbol",
- "type": "string"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "subtractedValue",
- "type": "uint256"
- }
- ],
- "name": "decreaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "addedValue",
- "type": "uint256"
- }
- ],
- "name": "increaseAllowance",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "name",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "symbol",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "decimals",
- "outputs": [
- {
- "internalType": "uint8",
- "name": "",
- "type": "uint8"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "mint",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "burn",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
-}
\ No newline at end of file
diff --git a/djed-sdk/src/artifacts/DjedABI.json b/djed-sdk/src/artifacts/DjedABI.json
deleted file mode 100644
index ed248b8..0000000
--- a/djed-sdk/src/artifacts/DjedABI.json
+++ /dev/null
@@ -1,704 +0,0 @@
-{
- "contractName": "Djed",
-"abi": [
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "oracleAddress",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_scalingFactor",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "_treasury",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "_initialTreasuryFee",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_treasuryRevenueTarget",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_reserveRatioMin",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_reserveRatioMax",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_fee",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_thresholdSupplySC",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_rcMinPrice",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "_txLimit",
- "type": "uint256"
- }
- ],
- "stateMutability": "payable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "buyer",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountRC",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountBC",
- "type": "uint256"
- }
- ],
- "name": "BoughtReserveCoins",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "buyer",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountSC",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountBC",
- "type": "uint256"
- }
- ],
- "name": "BoughtStableCoins",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountSC",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountRC",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountBC",
- "type": "uint256"
- }
- ],
- "name": "SoldBothCoins",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountRC",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountBC",
- "type": "uint256"
- }
- ],
- "name": "SoldReserveCoins",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "seller",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountSC",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amountBC",
- "type": "uint256"
- }
- ],
- "name": "SoldStableCoins",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_currentPaymentAmount",
- "type": "uint256"
- }
- ],
- "name": "E",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "L",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_currentPaymentAmount",
- "type": "uint256"
- }
- ],
- "name": "R",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "fee_ui",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "ui",
- "type": "address"
- }
- ],
- "name": "buyReserveCoins",
- "outputs": [],
- "stateMutability": "payable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "feeUI",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "ui",
- "type": "address"
- }
- ],
- "name": "buyStableCoins",
- "outputs": [],
- "stateMutability": "payable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "fee",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "initialTreasuryFee",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "oracle",
- "outputs": [
- {
- "internalType": "contract IFreeOracle",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "ratio",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_currentPaymentAmount",
- "type": "uint256"
- }
- ],
- "name": "rcBuyingPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "rcDecimalScalingFactor",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "rcMinPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_currentPaymentAmount",
- "type": "uint256"
- }
- ],
- "name": "rcTargetPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "reserveCoin",
- "outputs": [
- {
- "internalType": "contract Coin",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "reserveRatioMax",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "reserveRatioMin",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "scDecimalScalingFactor",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_currentPaymentAmount",
- "type": "uint256"
- }
- ],
- "name": "scPrice",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "scalingFactor",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amountSC",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "amountRC",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "fee_ui",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "ui",
- "type": "address"
- }
- ],
- "name": "sellBothCoins",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amountRC",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "fee_ui",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "ui",
- "type": "address"
- }
- ],
- "name": "sellReserveCoins",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amountSC",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "receiver",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "feeUI",
- "type": "uint256"
- },
- {
- "internalType": "address",
- "name": "ui",
- "type": "address"
- }
- ],
- "name": "sellStableCoins",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "stableCoin",
- "outputs": [
- {
- "internalType": "contract Coin",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "thresholdSupplySC",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasury",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasuryFee",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasuryRevenue",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "treasuryRevenueTarget",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "txLimit",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- }
- ]
-}
\ No newline at end of file
diff --git a/djed-sdk/src/artifacts/OracleABI.json b/djed-sdk/src/artifacts/OracleABI.json
deleted file mode 100644
index 99d5ac2..0000000
--- a/djed-sdk/src/artifacts/OracleABI.json
+++ /dev/null
@@ -1,463 +0,0 @@
-{
- "contractName": "Oracle",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "_owner",
- "type": "address"
- },
- {
- "internalType": "string",
- "name": "_description",
- "type": "string"
- },
- {
- "internalType": "string",
- "name": "_termsOfService",
- "type": "string"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "data",
- "type": "uint256"
- }
- ],
- "name": "DataWritten",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "a",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "opposer",
- "type": "address"
- }
- ],
- "name": "OppositionAdded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "a",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "opposer",
- "type": "address"
- }
- ],
- "name": "OppositionRemoved",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "OwnerAdded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "OwnerRemoved",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "a",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "supporter",
- "type": "address"
- }
- ],
- "name": "SupportAdded",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": false,
- "internalType": "address",
- "name": "a",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "address",
- "name": "supporter",
- "type": "address"
- }
- ],
- "name": "SupportRemoved",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "acceptTermsOfService",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "acceptedTermsOfService",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "add",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "description",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "numOwners",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "oppose",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "opposers",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "opposing",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "oppositionCounter",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "owner",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "readData",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "remove",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "support",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "supportCounter",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "name": "supporters",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "name": "supporting",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "termsOfService",
- "outputs": [
- {
- "internalType": "string",
- "name": "",
- "type": "string"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "unoppose",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "a",
- "type": "address"
- }
- ],
- "name": "unsupport",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "_data",
- "type": "uint256"
- }
- ],
- "name": "writeData",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ]
-}
\ No newline at end of file
diff --git a/djed-sdk/src/constants.js b/djed-sdk/src/constants.js
deleted file mode 100644
index 2b676f5..0000000
--- a/djed-sdk/src/constants.js
+++ /dev/null
@@ -1,23 +0,0 @@
-export const BC_DECIMALS = 18;
-export const SCALING_DECIMALS = 24;
-export const TRANSACTION_USD_LIMIT = 10000;
-export const FEE_UI=0.01;
-export const REFRESH_PERIOD = 4000;
-export const CONFIRMATION_WAIT_PERIOD = REFRESH_PERIOD + 1000;
-
-export const TRANSACTION_VALIDITY = {
- OK: "Transaction is valid.",
- WALLET_NOT_CONNECTED: "Wallet not connected",
- WRONG_NETWORK: "Wallet connected to the wrong network",
- NONNUMERIC_INPUT: "Amount has to be a number",
- NEGATIVE_INPUT: "Amount cannot be negative",
- ZERO_INPUT: "Amount cannot be zero",
- INSUFFICIENT_BC: "Insufficient balance",
- INSUFFICIENT_SC: "Insufficient StableCoin balance",
- INSUFFICIENT_RC: "Insufficient ReserveCoin balance",
- RESERVE_RATIO_LOW: "Reserve ratio would drop below the minimum",
- RESERVE_RATIO_HIGH: "Reserve ratio would rise above the maximum",
- TRANSACTION_LIMIT_REACHED: "Transaction limit reached"
- };
-
-
diff --git a/djed-sdk/src/djed/djed.js b/djed-sdk/src/djed/djed.js
deleted file mode 100644
index 443c313..0000000
--- a/djed-sdk/src/djed/djed.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import djedArtifact from "../artifacts/DjedABI.json";
-import coinArtifact from "../artifacts/CoinABI.json";
-import { convertInt, web3Promise } from "../helpers";
-
-//setting up djed
-export const getDjedContract = (web3, DJED_ADDRESS) => {
- const djed = new web3.eth.Contract(djedArtifact.abi, DJED_ADDRESS);
- return djed;
-};
-
-export const getCoinContracts = async (djedContract, web3) => {
- const [stableCoinAddress, reserveCoinAddress] = await Promise.all([
- web3Promise(djedContract, "stableCoin"),
- web3Promise(djedContract, "reserveCoin"),
- ]);
- const stableCoin = new web3.eth.Contract(coinArtifact.abi, stableCoinAddress);
- const reserveCoin = new web3.eth.Contract(
- coinArtifact.abi,
- reserveCoinAddress
- );
- return { stableCoin, reserveCoin };
-};
-export const getDecimals = async (stableCoin, reserveCoin) => {
- const [scDecimals, rcDecimals] = await Promise.all([
- convertInt(web3Promise(stableCoin, "decimals")),
- convertInt(web3Promise(reserveCoin, "decimals")),
- ]);
- return { scDecimals, rcDecimals };
-};
diff --git a/djed-sdk/src/djed/index.js b/djed-sdk/src/djed/index.js
deleted file mode 100644
index f9686a0..0000000
--- a/djed-sdk/src/djed/index.js
+++ /dev/null
@@ -1,34 +0,0 @@
-export {
- tradeDataPriceBuyRc,
- tradeDataPriceSellRc,
- buyRcTx,
- sellRcTx,
-} from "./reserveCoin";
-
-export {
- tradeDataPriceBuySc,
- tradeDataPriceSellSc,
- buyScTx,
- sellScTx,
- calculateFutureScPrice,
-} from "./stableCoin";
-
-export {
- scalingFactor,
- FEE_UI_UNSCALED,
- convertToBC,
- tradeDataPriceCore,
- calculateIsRatioBelowMax,
- calculateIsRatioAboveMin,
- isTxLimitReached,
- promiseTx,
- verifyTx,
- calculateTxFees,
- deductFees,
- appendFees,
- getFees,
-} from "./tradeUtils";
-
-export { getDjedContract, getCoinContracts, getDecimals } from "./djed";
-
-export { getCoinDetails, getSystemParams, getAccountDetails } from "./system";
diff --git a/djed-sdk/src/djed/reserveCoin.js b/djed-sdk/src/djed/reserveCoin.js
deleted file mode 100644
index da2a6bc..0000000
--- a/djed-sdk/src/djed/reserveCoin.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import { BC_DECIMALS, TRANSACTION_VALIDITY } from "../constants";
-import { decimalScaling, buildTx } from "../helpers";
-import {
- getFees,
- appendFees,
- convertToBC,
- deductFees,
- FEE_UI_UNSCALED,
- tradeDataPriceCore,
-} from "./tradeUtils";
-
-/**
- * Function that calculates fees and how much BC (totalBCAmount) user should pay to receive desired amount of reserve coin
- * @param {*} djed DjedContract
- * @param {*} rcDecimals Reserve coin decimals
- * @param {*} amountScaled Reserve coin amount that user wants to buy
- * @returns
- */
-export const tradeDataPriceBuyRc = async (djed, rcDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "rcBuyingPrice",
- rcDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
-
- const totalBCUnscaled = appendFees(
- data.totalUnscaled,
- treasuryFee,
- fee,
- FEE_UI_UNSCALED
- );
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCUnscaled, BC_DECIMALS),
- totalBCUnscaled,
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-export const tradeDataPriceSellRc = async (djed, rcDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "rcTargetPrice",
- rcDecimals,
- amountScaled
- );
-
- const { treasuryFee, fee } = await getFees(djed);
- const value = convertToBC(
- data.amountUnscaled,
- data.priceUnscaled,
- rcDecimals
- ).toString();
-
- const totalBCAmount = deductFees(value, fee, treasuryFee);
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCAmount.toString(), BC_DECIMALS),
- totalBCUnscaled: totalBCAmount.toString(),
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-export const buyRcTx = (djed, account, value, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .buyReserveCoins(account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, value, data);
-};
-
-export const sellRcTx = (djed, account, amount, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .sellReserveCoins(amount, account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, 0, data);
-};
diff --git a/djed-sdk/src/djed/stableCoin.js b/djed-sdk/src/djed/stableCoin.js
deleted file mode 100644
index f845772..0000000
--- a/djed-sdk/src/djed/stableCoin.js
+++ /dev/null
@@ -1,134 +0,0 @@
-import { BC_DECIMALS, TRANSACTION_VALIDITY } from "../constants";
-import { decimalScaling, buildTx } from "../helpers";
-import {
- tradeDataPriceCore,
- getFees,
- appendFees,
- convertToBC,
- deductFees,
- FEE_UI_UNSCALED,
-} from "./tradeUtils";
-
-/**
- * Function that calculates fees and how much BC (totalBCAmount) user should pay to receive desired amount of stable coin
- * @param {*} djed DjedContract
- * @param {*} scDecimals Stable coin decimals
- * @param {*} amountScaled Stable coin amount that user wants to buy
- * @returns
- */
-export const tradeDataPriceBuySc = async (djed, scDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "scPrice",
- scDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
- const totalBCUnscaled = appendFees(
- data.totalUnscaled,
- treasuryFee,
- fee,
- FEE_UI_UNSCALED
- );
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCUnscaled, BC_DECIMALS),
- totalBCUnscaled,
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-/**
- * Function that calculates fees and how much BC (totalBCAmount) user will receive if he sells desired amount of stable coin
- * @param {*} djed DjedContract
- * @param {*} scDecimals Stable coin decimals
- * @param {*} amountScaled Stable coin amount that user wants to sell
- * @returns
- */
-export const tradeDataPriceSellSc = async (djed, scDecimals, amountScaled) => {
- try {
- const data = await tradeDataPriceCore(
- djed,
- "scPrice",
- scDecimals,
- amountScaled
- );
- const { treasuryFee, fee } = await getFees(djed);
- const value = convertToBC(
- data.amountUnscaled,
- data.priceUnscaled,
- scDecimals
- ).toString();
-
- const totalBCAmount = deductFees(value, fee, treasuryFee);
-
- return {
- ...data,
- totalBCScaled: decimalScaling(totalBCAmount.toString(), BC_DECIMALS),
- };
- } catch (error) {
- console.log("error", error);
- }
-};
-
-// Function to allow User 1 (payer) to pay and User 2 (receiver) to receive stablecoins
-export const buyScTx = (djed, payer, receiver, value, UI, DJED_ADDRESS) => {
- // `receiver` will get the stablecoins
- const data = djed.methods.buyStableCoins(receiver, FEE_UI_UNSCALED, UI).encodeABI();
-
- // `payer` is sending the funds
- return buildTx(payer, DJED_ADDRESS, value, data);
-};
-
-export const sellScTx = (djed, account, amount, UI, DJED_ADDRESS) => {
- const data = djed.methods
- .sellStableCoins(amount, account, FEE_UI_UNSCALED, UI)
- .encodeABI();
- return buildTx(account, DJED_ADDRESS, 0, data);
-};
-
-/**
- * This function should calculate the future stable coin price that we can expect after some transaction.
- * @param {string} amountBC The unscaled amount of BC (e.g. for 1BC, value should be 1 * 10^BC_DECIMALS)
- * @param {string} amountSC The unscaled amount of StableCoin (e.g. for 1SC, value should be 1 * 10^SC_DECIMALS)
- * @param djedContract - Instance of Djed contract
- * @param stableCoinContract - Instance of Stablecoin contract
- * @param oracleContract - Instance of Oracle contract
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @returns future stablecoin price
- */
-export const calculateFutureScPrice = async ({
- amountBC,
- amountSC,
- djedContract,
- oracleContract,
- stableCoinContract,
- scDecimalScalingFactor,
-}) => {
- try {
- const [scTargetPrice, scSupply, ratio] = await Promise.all([
- web3Promise(oracleContract, "readData"),
- web3Promise(stableCoinContract, "totalSupply"),
- web3Promise(djedContract, "R", 0),
- ]);
-
- const futureScSupply = BigInt(scSupply) + BigInt(amountSC);
- const futureRatio = BigInt(ratio) + BigInt(amountBC);
-
- if (futureScSupply === 0n) {
- return scTargetPrice;
- } else {
- const futurePrice =
- (futureRatio * BigInt(scDecimalScalingFactor)) / futureScSupply;
- return BigInt(scTargetPrice) < futurePrice
- ? scTargetPrice
- : futurePrice.toString();
- }
- } catch (error) {
- console.log("calculateFutureScPrice error ", error);
- }
-};
diff --git a/djed-sdk/src/djed/system.js b/djed-sdk/src/djed/system.js
deleted file mode 100644
index 90d33e2..0000000
--- a/djed-sdk/src/djed/system.js
+++ /dev/null
@@ -1,149 +0,0 @@
-import { BC_DECIMALS, SCALING_DECIMALS } from "../constants";
-import {
- scaledUnscaledPromise,
- web3Promise,
- scaledPromise,
- percentScaledPromise,
- decimalScaling,
- percentageScale,
-} from "../helpers";
-
-export const getCoinDetails = async (
- stableCoin,
- reserveCoin,
- djed,
- scDecimals,
- rcDecimals
-) => {
- try {
- const [
- [scaledNumberSc, unscaledNumberSc],
- [scaledPriceSc, unscaledPriceSc],
- [scaledNumberRc, unscaledNumberRc],
- [scaledReserveBc, unscaledReserveBc],
- scaledBuyPriceRc,
- scaledScExchangeRate,
- ] = await Promise.all([
- scaledUnscaledPromise(web3Promise(stableCoin, "totalSupply"), scDecimals),
- scaledUnscaledPromise(web3Promise(djed, "scPrice", 0), BC_DECIMALS),
- scaledUnscaledPromise(
- web3Promise(reserveCoin, "totalSupply"),
- rcDecimals
- ),
- scaledUnscaledPromise(web3Promise(djed, "R", 0), BC_DECIMALS),
- scaledPromise(web3Promise(djed, "rcBuyingPrice", 0), BC_DECIMALS),
- scaledPromise(web3Promise(djed, "scPrice", 0), BC_DECIMALS),
- ]);
-
- // Define default empty value
- const emptyValue = decimalScaling("0".toString(10), BC_DECIMALS);
- let scaledSellPriceRc = emptyValue;
- let unscaledSellPriceRc = emptyValue;
- let percentReserveRatio = emptyValue;
-
- // Check total reserve coin supply to calculate sell price
- if (BigInt(unscaledNumberRc) !== 0n) {
- [scaledSellPriceRc, unscaledSellPriceRc] = await scaledUnscaledPromise(
- web3Promise(djed, "rcTargetPrice", 0),
- BC_DECIMALS
- );
- }
-
- // Check total stable coin supply to calculate reserve ratio
- if (BigInt(unscaledNumberSc) !== 0n) {
- percentReserveRatio = await percentScaledPromise(
- web3Promise(djed, "ratio"),
- SCALING_DECIMALS
- );
- }
-
- // Return the results
- return {
- scaledNumberSc,
- unscaledNumberSc,
- scaledPriceSc,
- unscaledPriceSc,
- scaledNumberRc,
- unscaledNumberRc,
- scaledReserveBc,
- unscaledReserveBc,
- percentReserveRatio,
- scaledBuyPriceRc,
- scaledSellPriceRc,
- unscaledSellPriceRc,
- scaledScExchangeRate,
- };
- } catch (error) {
- console.error("Error fetching coin details:", error);
- throw new Error("Failed to fetch coin details");
- }
-};
-
-export const getSystemParams = async (djed) => {
- const [
- reserveRatioMinUnscaled,
- reserveRatioMaxUnscaled,
- feeUnscaled,
- treasuryFee,
- thresholdSupplySC,
- ] = await Promise.all([
- web3Promise(djed, "reserveRatioMin"),
- web3Promise(djed, "reserveRatioMax"),
- web3Promise(djed, "fee"),
- percentScaledPromise(web3Promise(djed, "treasuryFee"), SCALING_DECIMALS),
- web3Promise(djed, "thresholdSupplySC"),
- ]);
-
- return {
- reserveRatioMin: percentageScale(
- reserveRatioMinUnscaled,
- SCALING_DECIMALS,
- true
- ),
- reserveRatioMax: percentageScale(
- reserveRatioMaxUnscaled,
- SCALING_DECIMALS,
- true
- ),
- reserveRatioMinUnscaled,
- reserveRatioMaxUnscaled,
- fee: percentageScale(feeUnscaled, SCALING_DECIMALS, true),
- feeUnscaled,
- treasuryFee,
- thresholdSupplySC,
- };
-};
-
-export const getAccountDetails = async (
- web3,
- account,
- stableCoin,
- reserveCoin,
- scDecimals,
- rcDecimals
-) => {
- const [
- [scaledBalanceSc, unscaledBalanceSc],
- [scaledBalanceRc, unscaledBalanceRc],
- [scaledBalanceBc, unscaledBalanceBc],
- ] = await Promise.all([
- scaledUnscaledPromise(
- web3Promise(stableCoin, "balanceOf", account),
- scDecimals
- ),
- scaledUnscaledPromise(
- web3Promise(reserveCoin, "balanceOf", account),
- rcDecimals
- ),
- scaledUnscaledPromise(web3.eth.getBalance(account), BC_DECIMALS),
- ]);
-
- return {
- scaledBalanceSc,
- unscaledBalanceSc,
- scaledBalanceRc,
- unscaledBalanceRc,
- scaledBalanceBc,
- unscaledBalanceBc,
- };
-};
diff --git a/djed-sdk/src/djed/tradeUtils.js b/djed-sdk/src/djed/tradeUtils.js
deleted file mode 100644
index 456f1f1..0000000
--- a/djed-sdk/src/djed/tradeUtils.js
+++ /dev/null
@@ -1,204 +0,0 @@
-import {
- TRANSACTION_USD_LIMIT,
- BC_DECIMALS,
- SCALING_DECIMALS,
- FEE_UI,
- CONFIRMATION_WAIT_PERIOD,
-} from "../constants";
-import {
- decimalUnscaling,
- decimalScaling,
- scaledUnscaledPromise,
- web3Promise,
-} from "../helpers";
-
-export const scalingFactor = decimalUnscaling("1", SCALING_DECIMALS);
-export const FEE_UI_UNSCALED = decimalUnscaling(
- (FEE_UI / 100).toString(),
- SCALING_DECIMALS
-);
-export const tradeDataPriceCore = (djed, method, decimals, amountScaled) => {
- const amountUnscaled = decimalUnscaling(amountScaled, decimals);
- return scaledUnscaledPromise(web3Promise(djed, method, 0), BC_DECIMALS).then(
- (price) => {
- const [priceScaled, priceUnscaled] = price;
- const totalUnscaled = convertToBC(
- amountUnscaled,
- priceUnscaled,
- decimals
- ).toString();
-
- const totalScaled = decimalScaling(totalUnscaled, BC_DECIMALS);
-
- return {
- amountScaled,
- amountUnscaled,
- totalScaled,
- totalUnscaled,
- priceUnscaled,
- priceScaled,
- };
- }
- );
-};
-
-/**
- * Function that converts coin amount to BC
- * @param {*} amount unscaled coin amount to be converted to BC
- * @param {*} price unscaled coin price
- * @param {*} decimals coin decimals
- * @returns unscaled BC amount
- */
-export const convertToBC = (amount, price, decimals) => {
- const decimalScalingFactor = BigInt(Math.pow(10, decimals));
- return (BigInt(amount) * BigInt(price)) / decimalScalingFactor;
-};
-
-/**
- * Calculate if the transaction will reach the maximum reserve ratio
- * @param scPrice - Unscaled stablecoin price
- * @param reserveBc - Unscaled reserve of base coin with appended potential transaction amount.
- * Example: If user wants to buy 1RC, the reserveBc param will be calculated as sum of current reserve of BC and desired RC amount converted in BC
- * @param totalScSupply - Unscaled total stablecoin supply
- * @param reserveRatioMax - Unscaled maximum reserve ratio
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @param thresholdSupplySC - Unscaled threshold SC supply
- * @returns
- */
-export const calculateIsRatioBelowMax = ({
- scPrice,
- reserveBc,
- totalScSupply,
- reserveRatioMax,
- scDecimalScalingFactor,
- thresholdSupplySC,
-}) => {
- const scalingFactorBigInt = BigInt(scalingFactor);
-
- return (
- BigInt(reserveBc) * scalingFactorBigInt * BigInt(scDecimalScalingFactor) <
- BigInt(totalScSupply) * BigInt(scPrice) * BigInt(reserveRatioMax) ||
- BigInt(totalScSupply) <= BigInt(thresholdSupplySC)
- );
-};
-
-/**
- * Calculate if the transaction will reach the minimum reserve ratio
- * @param scPrice - Unscaled stablecoin price
- * @param reserveBc - Unscaled reserve of base coin with calculated potential transaction amount.
- * Example: If user wants to buy 1SC, the reserveBc param will be calculated as sum of current reserve of BC and desired SC amount converted in BC
- * @param totalScSupply - Unscaled total stablecoin supply
- * @param reserveRatioMin - Unscaled minimum reserve ratio
- * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6
- * @returns
- */
-export const calculateIsRatioAboveMin = ({
- scPrice,
- reserveBc,
- totalScSupply,
- reserveRatioMin,
- scDecimalScalingFactor,
-}) => {
- const scalingFactorBigInt = BigInt(scalingFactor);
-
- return (
- BigInt(reserveBc) * scalingFactorBigInt * BigInt(scDecimalScalingFactor) >
- BigInt(totalScSupply) * BigInt(scPrice) * BigInt(reserveRatioMin)
- );
-};
-
-/**
- *
- * @param {*} amountUSD
- * @param {*} totalSCSupply
- * @param {*} thresholdSCSupply
- * @returns
- */
-export const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) =>
- amountUSD > TRANSACTION_USD_LIMIT &&
- BigInt(totalSCSupply) >= BigInt(thresholdSCSupply);
-
-export const promiseTx = (isWalletConnected, tx, signer) => {
- if (!isWalletConnected) {
- return Promise.reject(new Error("Metamask not connected!"));
- }
- if (!signer) {
- return Promise.reject(new Error("Couldn't get Signer"));
- }
- return signer.sendTransaction(tx);
-};
-
-export const verifyTx = (web3, hash) => {
- return new Promise((res) => {
- setTimeout(() => {
- web3.eth
- .getTransactionReceipt(hash)
- .then((receipt) => res(receipt.status));
- }, CONFIRMATION_WAIT_PERIOD);
- });
-};
-
-/**
- * Function that deducts all platform fees from the BC amount
- * @param {*} value The amount of BC from which fees should be deducted
- * @param {*} fee The platform fee
- * @param {*} treasuryFee The treasury fee
- * @returns BC value with all fees calculated
- */
-export const calculateTxFees = (value, fee, treasuryFee, feeUI) => {
- const f = (BigInt(value) * BigInt(fee)) / BigInt(scalingFactor);
- const f_ui =
- (BigInt(value) * BigInt(feeUI || FEE_UI_UNSCALED)) / BigInt(scalingFactor);
- const f_t = (BigInt(value) * BigInt(treasuryFee)) / BigInt(scalingFactor);
-
- return { f, f_ui, f_t };
-};
-
-/**
- * Function that deducts all platform fees from the BC amount
- * @param {*} value The amount of BC from which fees should be deducted
- * @param {*} fee The platform fee
- * @param {*} treasuryFee The treasury fee
- * @returns BC value with all fees calculated
- */
-export const deductFees = (value, fee, treasuryFee) => {
- const { f, f_ui, f_t } = calculateTxFees(value, fee, treasuryFee);
- return BigInt(value) - f - f_ui - f_t;
-};
-
-/**
- * Function that appends all platform fees to the BC amount
- * @param {*} amountBC The unscaled amount of BC (e.g. for 1BC, value should be 1 * 10^BC_DECIMALS)
- * @param {*} treasuryFee Treasury fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @param {*} fee Fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @param {*} fee_UI UI fee unscaled (e.g. If the fee is 1%, than 1/100 * scalingFactor)
- * @returns Unscaled BC amount with calculated fees
- */
-export const appendFees = (amountBC, treasuryFee, fee, fee_UI) => {
- const totalFees = BigInt(treasuryFee) + BigInt(fee) + BigInt(fee_UI);
- const substractedFees = BigInt(scalingFactor) - totalFees;
- const appendedFeesAmount =
- (BigInt(amountBC) * BigInt(scalingFactor)) / substractedFees;
-
- return appendedFeesAmount.toString();
-};
-
-/**
- * Function that returns treasury and platform fees
- * @param {*} djed Djed contract
- * @returns Treasury and platform fee
- */
-export const getFees = async (djed) => {
- try {
- const [treasuryFee, fee] = await Promise.all([
- web3Promise(djed, "treasuryFee"),
- web3Promise(djed, "fee"),
- ]);
- return {
- treasuryFee,
- fee,
- };
- } catch (error) {
- console.log("error", error);
- }
-};
diff --git a/djed-sdk/src/helpers.js b/djed-sdk/src/helpers.js
deleted file mode 100644
index 6738053..0000000
--- a/djed-sdk/src/helpers.js
+++ /dev/null
@@ -1,131 +0,0 @@
-export function web3Promise(contract, method, ...args) {
- return contract.methods[method](...args).call();
-}
-// Function to build a transaction
-// Set gas limit to 500,000 by default
-export function buildTx(from_, to_, value_, data_, setGasLimit = true) {
- const tx = {
- to: to_,
- from: from_,
- value: "0x" + BigInt(value_).toString(16), // Use BigInt instead of BN
- data: data_,
- };
- if (setGasLimit) {
- tx.gasLimit = 500_000;
- }
- return tx;
-}
-export function convertInt(promise) {
- return promise.then((value) => parseInt(value));
-}
-
-export function reverseString(s) {
- return s.split("").reverse().join("");
-}
-
-function intersperseCommas(s) {
- let newString = s.replace(/(.{3})/g, "$1,");
- if (s.length % 3 === 0) {
- return newString.slice(0, newString.length - 1);
- } else {
- return newString;
- }
-}
-
-export function decimalScaling(unscaledString, decimals, show = 6) {
- if (decimals <= 0) {
- return unscaledString + "0".repeat(-decimals);
- }
-
- let prefix;
- let suffix;
-
- if (unscaledString.length <= decimals) {
- prefix = "0";
- suffix = "0".repeat(decimals - unscaledString.length) + unscaledString;
- } else {
- prefix = unscaledString.slice(0, -decimals);
- suffix = unscaledString.slice(-decimals);
- }
-
- suffix = suffix.slice(0, show);
- suffix = intersperseCommas(suffix);
-
- if (show <= decimals) {
- // Remove commas after the decimal point
- suffix = suffix.replace(/,/g, "");
- }
-
- prefix = reverseString(intersperseCommas(reverseString(prefix)));
-
- return prefix + "." + suffix;
-}
-
-export function decimalUnscaling(scaledString, decimals) {
- scaledString = scaledString.replaceAll(",", "");
- let pos = scaledString.indexOf(".");
- if (pos < 0) {
- return scaledString + "0".repeat(decimals);
- }
-
- let s =
- scaledString.slice(0, pos) +
- scaledString.slice(pos + 1, pos + 1 + decimals);
- if (scaledString.length - pos - 1 < decimals) {
- s += "0".repeat(decimals - (scaledString.length - pos - 1));
- }
- return s;
-}
-
-export function scaledPromise(promise, scaling) {
- return promise.then((value) => decimalScaling(value.toString(10), scaling));
-}
-
-export function scaledUnscaledPromise(promise, scaling) {
- return promise.then((value) => [
- decimalScaling(value.toString(10), scaling),
- value,
- ]);
-}
-
-export function percentageScale(value, scaling, showSymbol = false) {
- const calculatedValue = decimalScaling(value.toString(10), scaling - 2, 2);
- if (showSymbol) {
- return calculatedValue + "%";
- }
- return calculatedValue;
-}
-
-export function percentScaledPromise(promise, scaling) {
- return promise.then((value) => percentageScale(value, scaling, true));
-}
-// currency conversions:
-export function calculateBcUsdEquivalent(coinsDetails, amountFloat) {
- const adaPerUsd = parseFloat(
- coinsDetails?.scaledScExchangeRate.replaceAll(",", "")
- );
- const eqPrice = (1e6 * amountFloat) / adaPerUsd;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
-}
-
-export function getBcUsdEquivalent(coinsDetails, amountFloat) {
- return "$" + calculateBcUsdEquivalent(coinsDetails, amountFloat);
-}
-
-export function calculateRcUsdEquivalent(coinsDetails, amountFloat) {
- const adaPerRc = parseFloat(coinsDetails?.scaledSellPriceRc);
- const adaPerUsd = parseFloat(
- coinsDetails?.scaledScExchangeRate.replaceAll(",", "")
- );
- const eqPrice = (1e6 * amountFloat * adaPerRc) / adaPerUsd;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
-}
-export function getRcUsdEquivalent(coinsDetails, amountFloat) {
- return "$" + calculateRcUsdEquivalent(coinsDetails, amountFloat);
-}
-
-export function getScAdaEquivalent(coinsDetails, amountFloat) {
- const adaPerSc = parseFloat(coinsDetails?.scaledPriceSc.replaceAll(",", ""));
- const eqPrice = 1e6 * amountFloat * adaPerSc;
- return decimalScaling(eqPrice.toFixed(0).toString(10), 6);
-}
diff --git a/djed-sdk/src/index.js b/djed-sdk/src/index.js
deleted file mode 100644
index 9c2cbc2..0000000
--- a/djed-sdk/src/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-export { getWeb3 } from "./web3";
-export {
- calculateBcUsdEquivalent,
- calculateRcUsdEquivalent,
- getBcUsdEquivalent,
- getRcUsdEquivalent,
- getScAdaEquivalent,
-} from "./helpers";
-
-export * from "./djed/index";
-export * from "./oracle";
diff --git a/djed-sdk/src/oracle/index.js b/djed-sdk/src/oracle/index.js
deleted file mode 100644
index a956ec5..0000000
--- a/djed-sdk/src/oracle/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export { getOracleAddress, getOracleContract } from "./oracle";
\ No newline at end of file
diff --git a/djed-sdk/src/oracle/oracle.js b/djed-sdk/src/oracle/oracle.js
deleted file mode 100644
index 54644e0..0000000
--- a/djed-sdk/src/oracle/oracle.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { convertInt,web3Promise } from "../helpers";
-import oracleArtifact from "../artifacts/OracleABI.json";
-
-export const getOracleAddress = async (djedContract) => {
- return await web3Promise(djedContract, "oracle");
-};
-
-export const getOracleContract = (web3, oracleAddress, msgSender) => {
- const oracle = new web3.eth.Contract(oracleArtifact.abi, oracleAddress, {
- from: msgSender
- });
- return oracle;
-};
diff --git a/djed-sdk/src/web3.js b/djed-sdk/src/web3.js
deleted file mode 100644
index 4aa8cd6..0000000
--- a/djed-sdk/src/web3.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import Web3 from "web3";
-
-export const getWeb3 = (BLOCKCHAIN_URI) =>
- new Promise((resolve, reject) => {
- if (window.ethereum) {
- try {
- const web3 = new Web3(BLOCKCHAIN_URI);
- resolve(web3);
- } catch (error) {
- reject(error);
- }
- } else {
- reject("Please install Metamask");
- }
- });
diff --git a/stablepay-sdk/dist/esm/index.js b/stablepay-sdk/dist/esm/index.js
index 907d446..b13570b 100644
--- a/stablepay-sdk/dist/esm/index.js
+++ b/stablepay-sdk/dist/esm/index.js
@@ -1 +1 @@
-import{getWeb3 as e,getDjedContract as t,getCoinContracts as n,getDecimals as r,getOracleAddress as a,getOracleContract as o,tradeDataPriceBuySc as i,buyScTx as s}from"djed-sdk";import c,{useContext as l,createContext as d,useState as m,useEffect as u,useRef as h,useCallback as w}from"react";import{defineChain as k,createWalletClient as g,custom as C,createPublicClient as p,http as b,parseEther as f,parseUnits as v,encodeFunctionData as E}from"viem";import{sepolia as y}from"viem/chains";const _={sepolia:{uri:"https://ethereum-sepolia.publicnode.com/",chainId:11155111,djedAddress:"0x624FcD0a1F9B5820c950FefD48087531d38387f4",tokens:{stablecoin:{symbol:"SOD",address:"0x6b930182787F346F18666D167e8d32166dC5eFBD",decimals:18,isDirectTransfer:!0},native:{symbol:"ETH",decimals:18,isNative:!0}},feeUI:0},"milkomeda-mainnet":{uri:"https://rpc-mainnet-cardano-evm.c1.milkomeda.com",chainId:2001,djedAddress:"0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76",tokens:{stablecoin:{symbol:"MOD",address:"0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9",decimals:18,isDirectTransfer:!0},native:{symbol:"mADA",decimals:18,isNative:!0}},feeUI:0},"ethereum-classic":{uri:"https://etc.rivet.link",chainId:61,djedAddress:"0xCc3664d7021FD36B1Fe2b136e2324710c8442cCf",tokens:{stablecoin:{symbol:"ECSD",address:"0x5A7Ca94F6E969C94bef4CE5e2f90ed9d4891918A",decimals:18,isDirectTransfer:!0},native:{symbol:"ETC",decimals:18,isNative:!0}},feeUI:0}};class N{constructor(e,t){this.networkUri=e,this.djedAddress=t}async init(){if(!this.networkUri||!this.djedAddress)throw new Error("Network URI and DJED address are required");try{this.web3=await e(this.networkUri),this.djedContract=t(this.web3,this.djedAddress);try{const{stableCoin:e,reserveCoin:t}=await n(this.djedContract,this.web3),{scDecimals:i,rcDecimals:s}=await r(e,t);this.stableCoin=e,this.reserveCoin=t,this.scDecimals=i,this.rcDecimals=s,this.oracleContract=await a(this.djedContract).then((e=>o(this.web3,e,this.djedContract._address))),this.oracleAddress=this.oracleContract._address}catch(e){if(console.error("[Transaction] Error fetching contract details:",e),e.message&&e.message.includes("execution reverted")){const e=e=>e.includes("milkomeda")?{name:"Milkomeda",chainId:"2001"}:e.includes("mordor")?{name:"Mordor Testnet",chainId:"63"}:e.includes("sepolia")?{name:"Sepolia",chainId:"11155111"}:e.includes("etc.rivet.link")?{name:"Ethereum Classic",chainId:"61"}:{name:"the selected network",chainId:"unknown"},{name:t,chainId:n}=e(this.networkUri);throw new Error(`Failed to interact with Djed contract at ${this.djedAddress} on ${t}.\n\nPossible causes:\n- The contract address may be incorrect\n- The contract may not be deployed on ${t}\n- The contract may not be a valid Djed contract\n\nPlease verify the contract address is correct for ${t} (Chain ID: ${n}).`)}throw e}}catch(e){if(console.error("[Transaction] Error initializing transaction:",e),e.message&&(e.message.includes("CONNECTION ERROR")||e.message.includes("ERR_NAME_NOT_RESOLVED"))){const e=(e=>e.includes("milkomeda")?"Milkomeda":e.includes("mordor")?"Mordor":e.includes("sepolia")?"Sepolia":"the selected network")(this.networkUri);throw new Error(`Failed to connect to ${e} RPC endpoint: ${this.networkUri}\n\nPossible causes:\n- The RPC endpoint may be temporarily unavailable\n- DNS resolution issue (check your internet connection)\n- Network firewall blocking the connection\n\nPlease try again in a few moments or check the network status.`)}throw e}}getBlockchainDetails(){return{web3Available:!!this.web3,djedContractAvailable:!!this.djedContract,stableCoinAddress:this.stableCoin?this.stableCoin._address:"N/A",reserveCoinAddress:this.reserveCoin?this.reserveCoin._address:"N/A",stableCoinDecimals:this.scDecimals,reserveCoinDecimals:this.rcDecimals,oracleAddress:this.oracleAddress||"N/A",oracleContractAvailable:!!this.oracleContract}}async handleTradeDataBuySc(e){if(!this.djedContract)throw new Error("DJED contract is not initialized");if("string"!=typeof e)throw new Error("Amount must be a string");try{return(await i(this.djedContract,this.scDecimals,e)).totalBCScaled}catch(e){throw console.error("Error fetching trade data for buying stablecoins: ",e),e}}async buyStablecoins(e,t,n){if(!this.djedContract)throw new Error("DJED contract is not initialized");try{const r="0x0232556C83791b8291E9b23BfEa7d67405Bd9839";return await s(this.djedContract,e,t,n,r,this.djedAddress)}catch(e){throw console.error("Error executing buyStablecoins transaction: ",e),e}}}var T="main_stablePayButton__UA7HC",S="main_logo__ITyEy",A="main_buttonText__N-ewy";const D=({onClick:e,size:t="medium"})=>{const n={small:{width:"200px",height:"50px",fontSize:"14px"},medium:{width:"250px",height:"60px",fontSize:"16px"},large:{width:"300px",height:"70px",fontSize:"18px"}},r={small:{width:"35px",height:"33px"},medium:{width:"40px",height:"38px"},large:{width:"45px",height:"43px"}},a=n[t]||n.medium,o=r[t]||r.medium;return c.createElement("button",{className:T,onClick:e,style:a},c.createElement("div",{className:S,style:o}),c.createElement("span",{className:A},"Pay with StablePay"))};var x={dialogOverlay:"PricingCard_dialogOverlay__0XJrE",pricingCard:"PricingCard_pricingCard__LrWb9",small:"PricingCard_small__J4CHj",medium:"PricingCard_medium__EVmTB",large:"PricingCard_large__A6pnX",dialogClose:"PricingCard_dialogClose__jJ1tM",pricingCardHeader:"PricingCard_pricingCardHeader__wGczA",allianceLogo:"PricingCard_allianceLogo__URa-U",stablepayTitle:"PricingCard_stablepayTitle__4t848",pricingCardBody:"PricingCard_pricingCardBody__0wKQn",selectField:"PricingCard_selectField__LBPoZ",transactionReview:"PricingCard_transactionReview__Ix-eL",transactionInfo:"PricingCard_transactionInfo__Ck-Rc",transactionLabel:"PricingCard_transactionLabel__GDux7",transactionValue:"PricingCard_transactionValue__q-xxp",infoSection:"PricingCard_infoSection__gyjMQ",infoIcon:"PricingCard_infoIcon__rraxD",infoText:"PricingCard_infoText__l4b7A",walletButton:"PricingCard_walletButton__llw4v",loading:"PricingCard_loading__2-tGA",error:"PricingCard_error__m5fK-",networkError:"PricingCard_networkError__zR-36",errorText:"PricingCard_errorText__qZRJt","message-box":"PricingCard_message-box__vkUKy",detailsButton:"PricingCard_detailsButton__jHglL",errorDetails:"PricingCard_errorDetails__CzN-7",loadingContainer:"PricingCard_loadingContainer__6nOVa",spinner:"PricingCard_spinner__9ucQv",spin:"PricingCard_spin__24tni"};const P=({children:e,onClose:t,size:n="medium"})=>c.createElement("div",{className:x.dialogOverlay},c.createElement("div",{className:`${x.pricingCard} ${x[n]}`},c.createElement("button",{className:x.dialogClose,onClick:t},"×"),c.createElement("div",{className:x.pricingCardHeader},c.createElement("div",{className:x.allianceLogo}),c.createElement("h2",{className:x.stablepayTitle},"StablePay")),c.createElement("div",{className:x.pricingCardBody},e)));class I{constructor(e){this.networkSelector=e,this.selectedToken=null}selectToken(e){const t=this.networkSelector.getSelectedNetworkConfig();return!(!t||!t.tokens[e])&&(this.selectedToken={key:e,...t.tokens[e]},!0)}getSelectedToken(){return this.selectedToken}getAvailableTokens(){const e=this.networkSelector.getSelectedNetworkConfig();return e?Object.entries(e.tokens).map((([e,t])=>({key:e,...t}))):[]}resetSelection(){this.selectedToken=null}}const B=d(),M=({children:e,networkSelector:t})=>{const[n]=m((()=>new I(t))),[r,a]=m(null),[o,i]=m(null),[s,l]=m(null),d=()=>{i(null),l(null)};return u((()=>{a(t.selectedNetwork)}),[t.selectedNetwork]),c.createElement(B.Provider,{value:{networkSelector:t,tokenSelector:n,selectedNetwork:r,selectedToken:o,transactionDetails:s,setTransactionDetails:l,selectNetwork:e=>!!t.selectNetwork(e)&&(a(e),d(),!0),selectToken:e=>{if(n.selectToken(e)){const e=n.getSelectedToken();return i(e),!0}return!1},resetSelections:()=>{t.selectNetwork(null),a(null),d()}}},e)},$=()=>{const e=l(B);if(void 0===e)throw new Error("useNetwork must be used within a NetworkProvider");return e},j=()=>{const{networkSelector:e,selectedNetwork:t,selectNetwork:n}=$();return c.createElement("div",{className:x.selectField},c.createElement("label",{htmlFor:"network-select"},"Select Network"),c.createElement("select",{id:"network-select",onChange:e=>{n(e.target.value)},value:t||""},c.createElement("option",{value:"",disabled:!0},"Select a network"),Object.keys(e.availableNetworks).map((e=>c.createElement("option",{key:e,value:e},e)))))},U=()=>{const{networkSelector:e,tokenSelector:t,selectedNetwork:n,selectedToken:r,selectToken:a,setTransactionDetails:o}=$(),[i,s]=m(!1),[l,d]=m(null),u=n?t.getAvailableTokens():[];return c.createElement("div",{className:x.selectField},c.createElement("label",{htmlFor:"token-select"},"Select Token"),c.createElement("select",{id:"token-select",onChange:async r=>{const i=r.target.value;d(null),s(!0);try{if(a(i)){const r=e.getSelectedNetworkConfig(),a=new N(r.uri,r.djedAddress);await a.init();const s=e.getTokenAmount(i),c=a.getBlockchainDetails();let l=null;"native"===i&&(l=await a.handleTradeDataBuySc(String(s))),o({network:n,token:i,tokenSymbol:t.getSelectedToken().symbol,amount:s,receivingAddress:e.getReceivingAddress(),djedContractAddress:r.djedAddress,isDirectTransfer:t.getSelectedToken().isDirectTransfer||!1,isNativeToken:t.getSelectedToken().isNative||!1,tradeAmount:l?l.amount:null,...c})}}catch(e){console.error("Error fetching transaction details:",e),d("Failed to fetch transaction details. Please try again.")}finally{s(!1)}},value:r?r.key:"",disabled:!n||i},c.createElement("option",{value:"",disabled:!0},n?i?"Loading...":"Select a token":"Please select a network first"),u.map((e=>c.createElement("option",{key:e.key,value:e.key},e.symbol," (",e.isDirectTransfer?"Direct Transfer":"Native",")")))),l&&c.createElement("div",{className:x.error},l))};k({id:63,name:"Mordor Testnet",network:"mordor",nativeCurrency:{decimals:18,name:"Mordor Ether",symbol:"METC"},rpcUrls:{default:{http:["https://rpc.mordor.etccooperative.org"],webSocket:["wss://rpc.mordor.etccooperative.org/ws"]}},blockExplorers:{default:{name:"BlockScout",url:"https://blockscout.com/etc/mordor"}},testnet:!0});const F=k({id:2001,name:"Milkomeda C1 Mainnet",network:"milkomeda",nativeCurrency:{decimals:18,name:"Milkomeda ADA",symbol:"mADA"},rpcUrls:{default:{http:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"]}},blockExplorers:{default:{name:"Milkomeda Explorer",url:"https://explorer-mainnet-cardano-evm.c1.milkomeda.com"}},testnet:!1}),R=k({id:61,name:"Ethereum Classic",network:"etc",nativeCurrency:{decimals:18,name:"Ethereum Classic",symbol:"ETC"},rpcUrls:{default:{http:["https://etc.rivet.link"]}},blockExplorers:{default:{name:"Blockscout",url:"https://blockscout.com/etc/mainnet"}},testnet:!1}),L=d(null),z=async e=>{if(!window.ethereum)throw new Error("MetaMask not installed");const t=(e=>{switch(e){case"sepolia":return{chainId:`0x${y.id.toString(16)}`,chainName:"Sepolia",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:y.rpcUrls.default.http,blockExplorerUrls:y.blockExplorers?.default?.url?[y.blockExplorers.default.url]:[]};case"ethereum-classic":return{chainId:`0x${R.id.toString(16)}`,chainName:"Ethereum Classic",nativeCurrency:{name:"Ethereum Classic",symbol:"ETC",decimals:18},rpcUrls:["https://etc.rivet.link"],blockExplorerUrls:["https://blockscout.com/etc/mainnet"]};case"milkomeda-mainnet":return{chainId:`0x${F.id.toString(16)}`,chainName:"Milkomeda C1 Mainnet",nativeCurrency:{name:"Milkomeda ADA",symbol:"mADA",decimals:18},rpcUrls:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"],blockExplorerUrls:["https://explorer-mainnet-cardano-evm.c1.milkomeda.com"]};default:return null}})(e);if(!t)throw new Error(`Unsupported network: ${e}`);try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:t.chainId}]})}catch(e){if(4902!==e.code)throw 4001===e.code?new Error(`User rejected switching to ${t.chainName}. Please switch manually in MetaMask.`):new Error(`Failed to switch to ${t.chainName}: ${e.message}`);try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[t]})}catch(e){if(4001===e.code)throw new Error(`User rejected adding ${t.chainName} to MetaMask. Please add it manually.`);throw new Error(`Failed to add ${t.chainName} to MetaMask: ${e.message}`)}}},W=({children:e})=>{const{selectedNetwork:t}=$(),[n,r]=m(null),[a,o]=m(null),[i,s]=m(null),[l,d]=m(null),[k,f]=m(null),[v,E]=m(null),[_,N]=m(!1),T=t?(e=>{switch(e){case"sepolia":return y;case"ethereum-classic":return R;case"milkomeda-mainnet":return F;default:return null}})(t):null,S=T?T.id:null,A=h(null),D=h(null),x=w((()=>{r(null),o(null),s(null),d(null),f(null),E(null)}),[]),P=w((async e=>{const n=parseInt(e,16);if(d(n),T&&n===S){if(E(null),window.ethereum&&T){const e=g({chain:T,transport:C(window.ethereum)});r(e)}}else if(T&&n!==S){E(`Wrong network detected. Please switch to ${T?.name||t||"selected network"}`)}}),[T,S,t]);D.current=P;const I=w((async e=>{if(0===e.length){if(x(),window.ethereum){const e=A.current,t=D.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}}else if(s(e[0]),T)try{const t=p({chain:T,transport:b()});o(t);const n=await t.getBalance({address:e[0]});f(parseFloat(n)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),f(null)}}),[T,x]);A.current=I;const B=w((()=>{if(x(),window.ethereum){const e=A.current,t=D.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}}),[x]),M=w((()=>{T&&o(p({chain:T,transport:b()}))}),[T]),j=w((async()=>{if(!window.ethereum)return E("Please install MetaMask or another Web3 wallet"),!1;if(!t||!T)return E("Please select a network first"),!1;N(!0),E(null);try{const e=await window.ethereum.request({method:"eth_requestAccounts"});if(0===e.length)throw new Error("No wallet address found. Please unlock your wallet.");const n=await window.ethereum.request({method:"eth_chainId"});parseInt(n,16)!==S&&await z(t);const a=g({chain:T,transport:C(window.ethereum)});r(a),s(e[0]),d(S);const i=p({chain:T,transport:b()});o(i);try{const t=await i.getBalance({address:e[0]});f(parseFloat(t)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),f(null)}return A.current=I,D.current=P,window.ethereum.on("accountsChanged",I),window.ethereum.on("chainChanged",P),!0}catch(e){return console.error("Error connecting wallet:",e),E(e.message),!1}finally{N(!1)}}),[t,T,S,I,P]),U=w((async()=>{if(!(window.ethereum&&t&&T&&i)){return E("Wallet not connected or network not selected"),null}try{const e=await window.ethereum.request({method:"eth_chainId"});if(parseInt(e,16)!==S){E(null),await z(t);const e=500;await new Promise((t=>setTimeout(t,e)));const n=await window.ethereum.request({method:"eth_chainId"}),r=parseInt(n,16);if(r!==S)throw new Error(`Failed to switch network. MetaMask is still on chain ${r}, expected ${S}`)}const n=g({chain:T,transport:C(window.ethereum)});return r(n),d(S),E(null),n}catch(e){return E(e.message),null}}),[t,T,S,i]),W=h(t);return u((()=>{if(null!==W.current&&W.current!==t&&i&&(x(),window.ethereum)){const e=A.current,t=D.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}W.current=t}),[t,i,x]),u((()=>{M()}),[M]),c.createElement(L.Provider,{value:{walletClient:n,publicClient:a,account:i,chainId:l,balance:k,error:v,isConnecting:_,connectWallet:j,disconnectWallet:B,ensureCorrectNetwork:U,expectedChainId:S}},e)},O=({onTransactionComplete:e})=>{const{networkSelector:t,selectedNetwork:n,selectedToken:r,transactionDetails:a,setTransactionDetails:o}=$(),{connectWallet:i,account:s,walletClient:d,publicClient:h,isConnecting:w,ensureCorrectNetwork:k,expectedChainId:g}=(()=>{const e=l(L);if(!e)throw new Error("useWallet must be used within a WalletProvider");return e})(),[C,p]=m(null),[b,y]=m(null),[_,T]=m(null),[S,A]=m(""),[D,P]=m(null),[I,B]=m(null),[M,j]=m(!1);if(u((()=>{T(null),y(null),A(""),B(null),P(null)}),[n,r]),u((()=>{(async()=>{if(n&&r)try{const e=t.getSelectedNetworkConfig(),a=t.getReceivingAddress(),i=t.getTokenAmount(r.key),s=new N(e.uri,e.djedAddress);await s.init(),p(s);let c=null;if("native"===r.key)try{c=await s.handleTradeDataBuySc(String(i)),y(c)}catch(e){console.error("Error fetching trade data:",e)}o({network:n,token:r.key,tokenSymbol:r.symbol,amount:i||"0",receivingAddress:a,djedContractAddress:e.djedAddress,isDirectTransfer:r.isDirectTransfer||!1,isNativeToken:r.isNative||!1,tradeAmount:c?c.amount:null,...s.getBlockchainDetails()})}catch(e){console.error("Error initializing transaction:",e)}})()}),[n,r,t,o]),!a)return c.createElement("div",{className:x.loading},"Initializing transaction...");const U=()=>{if(!D||!n)return null;const e={"ethereum-classic":"https://blockscout.com/etc/mainnet/tx/",sepolia:"https://sepolia.etherscan.io/tx/","milkomeda-mainnet":"https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/"};return e[n]?`${e[n]}${D}`:null};return c.createElement("div",{className:x.transactionReview},c.createElement("div",{className:x.transactionInfo},c.createElement("span",{className:x.transactionLabel},"Network:"),c.createElement("span",{className:x.transactionValue},a.network)),c.createElement("div",{className:x.transactionInfo},c.createElement("span",{className:x.transactionLabel},"You Pay:"),c.createElement("span",{className:x.transactionValue},"stablecoin"===r.key?`${a.amount} ${a.tokenSymbol}`:`${b||"Calculating..."} ${a.tokenSymbol}`)),c.createElement("button",{className:x.walletButton,onClick:async()=>{await i()},disabled:w},w?"Connecting...":"Connect Wallet"),s&&!_&&c.createElement("button",{className:x.walletButton,onClick:async()=>{if(s&&a&&C)try{T(null),B(null),A("⏳ Preparing transaction...");const e=a.receivingAddress;let n;if("native"===r.key){const t="0x0232556C83791b8291E9b23BfEa7d67405Bd9839",r=f(String(b||"0"));n=await C.buyStablecoins(s,e,r,t),n={...n,value:r,account:s}}else{const r=t.getSelectedNetworkConfig(),o=r?.tokens?.stablecoin?.address;if(!o)throw new Error("Stablecoin address not found in network configuration");const i=a.amount?v(String(a.amount),a.stableCoinDecimals):"0";n={to:o,value:0n,data:E({abi:[{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],functionName:"transfer",args:[e,i]}),account:s}}T(n),A("✅ Transaction ready! Click 'Send Transaction' to proceed.")}catch(e){B(e),A("❌ Transaction preparation failed.")}else A("❌ Wallet not connected or transaction details missing")}},"Prepare Transaction"),s&&_&&c.createElement("button",{className:x.walletButton,onClick:async()=>{B(null);try{if(!s||!_)return void A("❌ Wallet account or transaction data is missing");if(!n)return void A("❌ Network not selected");const o=t.getSelectedNetworkConfig();if(!o)return void A("❌ Network configuration not found");A("⏳ Verifying network...");const i=await k();if(!i)return void A("❌ Failed to switch to correct network. Please approve the network switch in MetaMask and try again.");if(!window.ethereum)return void A("❌ MetaMask not available");const c=await window.ethereum.request({method:"eth_chainId"}),l=parseInt(c,16);if(l!==o.chainId){const e=`Network mismatch. MetaMask is on chain ${l}, but ${n} requires chain ${o.chainId}. Please switch networks in MetaMask.`;return A(`❌ ${e}`),void B(new Error(e))}if(i.chain.id!==o.chainId){const e=`Wallet client chain mismatch. Wallet client is on chain ${i.chain.id}, but expected ${o.chainId}.`;return A(`❌ ${e}`),void B(new Error(e))}A("⏳ Sending transaction...");const d=await i.sendTransaction({..._,account:s});P(d),A("✅ Transaction sent!"),e&&e({txHash:d,network:n,token:r?.key,tokenSymbol:r?.symbol,amount:a?.amount,receivingAddress:a?.receivingAddress})}catch(e){B(e),A("❌ Transaction failed."),console.error("Transaction error:",e)}},disabled:null!==D},"Send Transaction"),S&&c.createElement("div",{className:"message-box"},S,I&&c.createElement("button",{onClick:()=>j(!M),className:x.detailsButton},M?"Hide Details":"Show Details")),M&&I&&c.createElement("div",{className:x.errorDetails},c.createElement("pre",null,I.message)),D&&c.createElement("div",{className:x.transactionLink},"✅ Transaction Hash:"," ",U()?c.createElement("a",{href:U(),target:"_blank",rel:"noopener noreferrer",className:x.explorerLink,style:{color:"#007bff",textDecoration:"underline",fontWeight:"bold",cursor:"pointer",wordBreak:"break-word"}},D.slice(0,6),"...",D.slice(-6)):c.createElement("span",{style:{wordBreak:"break-word"}},D)))},q=({onClose:e,buttonSize:t,onTransactionComplete:n})=>{const{resetSelections:r}=$();return c.createElement(P,{onClose:()=>{r(),e()},size:t},c.createElement(j,null),c.createElement(U,null),c.createElement(O,{onTransactionComplete:n}))},H=({onClose:e,buttonSize:t,networkSelector:n,onTransactionComplete:r})=>c.createElement(M,{networkSelector:n},c.createElement(W,null,c.createElement(q,{onClose:e,buttonSize:t,onTransactionComplete:r}))),V={NetworkSelector:class{constructor(e){this.merchantConfig=e,this.blacklist=e.getBlacklist(),this.availableNetworks=this.getAvailableNetworks(),this.selectedNetwork=null}getAvailableNetworks(){return Object.entries(_).reduce(((e,[t,n])=>(this.blacklist.includes(n.chainId)||(e[t]=n),e)),{})}selectNetwork(e){return null===e?(this.selectedNetwork=null,console.log("Network selection reset"),!0):this.availableNetworks[e]?(this.selectedNetwork=e,console.log(`Network selected: ${e}`),!0):(console.error(`Invalid network: ${e}`),!1)}getSelectedNetworkConfig(){return this.selectedNetwork?this.availableNetworks[this.selectedNetwork]:null}getReceivingAddress(){return this.merchantConfig.getReceivingAddress()}getTokenAmount(e){return this.merchantConfig.getTokenAmount(this.selectedNetwork,e)}},Transaction:N,Config:class{constructor(e={}){this.receivingAddress=e.receivingAddress||"",this.blacklist=e.blacklist||[],this.amounts=e.Amounts||{},this.validateConfig()}validateConfig(){if(!this.receivingAddress)throw new Error("Receiving address is required");for(const[e,t]of Object.entries(this.amounts)){if(!_[e])throw new Error(`Invalid network: ${e}`);if(!t.stablecoin||"number"!=typeof t.stablecoin||t.stablecoin<=0)throw new Error(`Invalid stablecoin amount for network ${e}`)}}getBlacklist(){return this.blacklist}getReceivingAddress(){return this.receivingAddress}getTokenAmount(e){console.log("Getting amount for network:",e),console.log("Amounts object:",this.amounts);const t=this.amounts[e]?.stablecoin;return console.log("Returning amount:",t),t||0}},Widget:({networkSelector:e,buttonSize:t="medium",onTransactionComplete:n,onSuccess:r})=>{const[a,o]=m(!1),i=n||r;return c.createElement("div",{className:x.widgetContainer},!a&&c.createElement(D,{onClick:()=>{o(!0)},size:t}),a&&c.createElement(H,{onClose:()=>{o(!1)},buttonSize:t,networkSelector:e,onTransactionComplete:i}))},PayButton:D,Dialog:P,NetworkDropdown:j};export{V as default};
+import{createPublicClient as e,http as t,getContract as n,defineChain as a,createWalletClient as i,custom as r,parseEther as s,parseUnits as o,encodeFunctionData as l}from"viem";import{sepolia as c,mainnet as u}from"viem/chains";import d,{useContext as p,createContext as m,useState as y,useEffect as h,useRef as w,useCallback as b}from"react";const g={sepolia:{uri:"https://ethereum-sepolia.publicnode.com/",chainId:11155111,djedAddress:"0x624FcD0a1F9B5820c950FefD48087531d38387f4",tokens:{stablecoin:{symbol:"SOD",address:"0x6b930182787F346F18666D167e8d32166dC5eFBD",decimals:18,isDirectTransfer:!0},native:{symbol:"ETH",decimals:18,isNative:!0}},feeUI:0},"milkomeda-mainnet":{uri:"https://rpc-mainnet-cardano-evm.c1.milkomeda.com",chainId:2001,djedAddress:"0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76",tokens:{stablecoin:{symbol:"MOD",address:"0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9",decimals:18,isDirectTransfer:!0},native:{symbol:"mADA",decimals:18,isNative:!0}},feeUI:0},"ethereum-classic":{uri:"https://etc.rivet.link",chainId:61,djedAddress:"0xCc3664d7021FD36B1Fe2b136e2324710c8442cCf",tokens:{stablecoin:{symbol:"ECSD",address:"0x5A7Ca94F6E969C94bef4CE5e2f90ed9d4891918A",decimals:18,isDirectTransfer:!0},native:{symbol:"ETC",decimals:18,isNative:!0}},feeUI:0}};var k=[{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"uint256",name:"_scalingFactor",type:"uint256"},{internalType:"address",name:"_treasury",type:"address"},{internalType:"uint256",name:"_initialTreasuryFee",type:"uint256"},{internalType:"uint256",name:"_treasuryRevenueTarget",type:"uint256"},{internalType:"uint256",name:"_reserveRatioMin",type:"uint256"},{internalType:"uint256",name:"_reserveRatioMax",type:"uint256"},{internalType:"uint256",name:"_fee",type:"uint256"},{internalType:"uint256",name:"_thresholdSupplySC",type:"uint256"},{internalType:"uint256",name:"_rcMinPrice",type:"uint256"},{internalType:"uint256",name:"_txLimit",type:"uint256"}],stateMutability:"payable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountRC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"BoughtReserveCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountSC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"BoughtStableCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountSC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountRC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"SoldBothCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountRC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"SoldReserveCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountSC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"SoldStableCoins",type:"event"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"E",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"L",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"R",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"fee_ui",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"buyReserveCoins",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"feeUI",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"buyStableCoins",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialTreasuryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"oracle",outputs:[{internalType:"contract IFreeOracle",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"ratio",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"rcBuyingPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rcDecimalScalingFactor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rcMinPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"rcTargetPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"reserveCoin",outputs:[{internalType:"contract Coin",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"reserveRatioMax",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"reserveRatioMin",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"scDecimalScalingFactor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"scPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"scalingFactor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountSC",type:"uint256"},{internalType:"uint256",name:"amountRC",type:"uint256"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"fee_ui",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"sellBothCoins",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountRC",type:"uint256"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"fee_ui",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"sellReserveCoins",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountSC",type:"uint256"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"feeUI",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"sellStableCoins",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stableCoin",outputs:[{internalType:"contract Coin",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"thresholdSupplySC",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryRevenue",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryRevenueTarget",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"txLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],T=[{inputs:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"}];class C{constructor(e,t){this.networkUri=e,this.djedAddress=t,this.chain=function(e){if(e.includes("sepolia"))return c;if(e.includes("mainnet"))return u;throw new Error(`Unsupported network URI: ${e}. Please use sepolia or mainnet.`)}(e)}async init(){this.publicClient=e({chain:this.chain,transport:t(this.networkUri)}),this.djedContract=n({address:this.djedAddress,abi:k,client:this.publicClient});const a=await this.djedContract.read.stableCoin(),i=await this.djedContract.read.reserveCoin();this.stableCoin=n({address:a,abi:T,client:this.publicClient}),this.reserveCoin=n({address:i,abi:T,client:this.publicClient}),this.scDecimals=BigInt(await this.stableCoin.read.decimals()),this.rcDecimals=BigInt(await this.reserveCoin.read.decimals()),this.oracleAddress=await this.djedContract.read.oracle()}getBlockchainDetails(){return{clientAvailable:!!this.publicClient,djedContractAvailable:!!this.djedContract,stableCoinAddress:this.stableCoin?.address||"N/A",reserveCoinAddress:this.reserveCoin?.address||"N/A",stableCoinDecimals:Number(this.scDecimals),reserveCoinDecimals:Number(this.rcDecimals),oracleAddress:this.oracleAddress||"N/A"}}async handleTradeDataBuySc(e){if(!this.djedContract)throw new Error("DJED contract is not initialized");if("string"!=typeof e)throw new Error("Amount must be a string");const t=BigInt(e),n=await this.djedContract.read.scPrice([0n]),a=await this.djedContract.read.treasuryFee(),i=await this.djedContract.read.fee(),r=10n**24n;return(t*n/10n**this.scDecimals*r/(r-(a+i))).toString()}async buyStablecoins(e,t,n){if(!this.djedContract)throw new Error("DJED contract is not initialized");if(!e)throw new Error("Wallet client is required");return await e.writeContract({address:this.djedAddress,abi:k,functionName:"buyStableCoins",args:[t,0n,"0x0232556C83791b8291E9b23BfEa7d67405Bd9839"],value:BigInt(n)})}}var v="main_stablePayButton__UA7HC",f="main_logo__ITyEy",_="main_buttonText__N-ewy";const E=({onClick:e,size:t="medium"})=>{const n={small:{width:"200px",height:"50px",fontSize:"14px"},medium:{width:"250px",height:"60px",fontSize:"16px"},large:{width:"300px",height:"70px",fontSize:"18px"}},a={small:{width:"35px",height:"33px"},medium:{width:"40px",height:"38px"},large:{width:"45px",height:"43px"}},i=n[t]||n.medium,r=a[t]||a.medium;return d.createElement("button",{className:v,onClick:e,style:i},d.createElement("div",{className:f,style:r}),d.createElement("span",{className:_},"Pay with StablePay"))};var S={dialogOverlay:"PricingCard_dialogOverlay__0XJrE",pricingCard:"PricingCard_pricingCard__LrWb9",small:"PricingCard_small__J4CHj",medium:"PricingCard_medium__EVmTB",large:"PricingCard_large__A6pnX",dialogClose:"PricingCard_dialogClose__jJ1tM",pricingCardHeader:"PricingCard_pricingCardHeader__wGczA",allianceLogo:"PricingCard_allianceLogo__URa-U",stablepayTitle:"PricingCard_stablepayTitle__4t848",pricingCardBody:"PricingCard_pricingCardBody__0wKQn",selectField:"PricingCard_selectField__LBPoZ",transactionReview:"PricingCard_transactionReview__Ix-eL",transactionInfo:"PricingCard_transactionInfo__Ck-Rc",transactionLabel:"PricingCard_transactionLabel__GDux7",transactionValue:"PricingCard_transactionValue__q-xxp",infoSection:"PricingCard_infoSection__gyjMQ",infoIcon:"PricingCard_infoIcon__rraxD",infoText:"PricingCard_infoText__l4b7A",walletButton:"PricingCard_walletButton__llw4v",loading:"PricingCard_loading__2-tGA",error:"PricingCard_error__m5fK-",networkError:"PricingCard_networkError__zR-36",errorText:"PricingCard_errorText__qZRJt","message-box":"PricingCard_message-box__vkUKy",detailsButton:"PricingCard_detailsButton__jHglL",errorDetails:"PricingCard_errorDetails__CzN-7",loadingContainer:"PricingCard_loadingContainer__6nOVa",spinner:"PricingCard_spinner__9ucQv",spin:"PricingCard_spin__24tni"};const x=({children:e,onClose:t,size:n="medium"})=>d.createElement("div",{className:S.dialogOverlay},d.createElement("div",{className:`${S.pricingCard} ${S[n]}`},d.createElement("button",{className:S.dialogClose,onClick:t},"×"),d.createElement("div",{className:S.pricingCardHeader},d.createElement("div",{className:S.allianceLogo}),d.createElement("h2",{className:S.stablepayTitle},"StablePay")),d.createElement("div",{className:S.pricingCardBody},e)));class N{constructor(e){this.networkSelector=e,this.selectedToken=null}selectToken(e){const t=this.networkSelector.getSelectedNetworkConfig();return!(!t||!t.tokens[e])&&(this.selectedToken={key:e,...t.tokens[e]},!0)}getSelectedToken(){return this.selectedToken}getAvailableTokens(){const e=this.networkSelector.getSelectedNetworkConfig();return e?Object.entries(e.tokens).map(([e,t])=>({key:e,...t})):[]}resetSelection(){this.selectedToken=null}}const A=m(),M=({children:e,networkSelector:t})=>{const[n]=y(()=>new N(t)),[a,i]=y(null),[r,s]=y(null),[o,l]=y(null),c=()=>{s(null),l(null)};return h(()=>{i(t.selectedNetwork)},[t.selectedNetwork]),d.createElement(A.Provider,{value:{networkSelector:t,tokenSelector:n,selectedNetwork:a,selectedToken:r,transactionDetails:o,setTransactionDetails:l,selectNetwork:e=>!!t.selectNetwork(e)&&(i(e),c(),!0),selectToken:e=>{if(n.selectToken(e)){const e=n.getSelectedToken();return s(e),!0}return!1},resetSelections:()=>{t.selectNetwork(null),i(null),c()}}},e)},P=()=>{const e=p(A);if(void 0===e)throw new Error("useNetwork must be used within a NetworkProvider");return e},D=()=>{const{networkSelector:e,selectedNetwork:t,selectNetwork:n}=P();return d.createElement("div",{className:S.selectField},d.createElement("label",{htmlFor:"network-select"},"Select Network"),d.createElement("select",{id:"network-select",onChange:e=>{n(e.target.value)},value:t||""},d.createElement("option",{value:"",disabled:!0},"Select a network"),Object.keys(e.availableNetworks).map(e=>d.createElement("option",{key:e,value:e},e))))},B=()=>{const{networkSelector:e,tokenSelector:t,selectedNetwork:n,selectedToken:a,selectToken:i,setTransactionDetails:r}=P(),[s,o]=y(!1),[l,c]=y(null),u=n?t.getAvailableTokens():[];return d.createElement("div",{className:S.selectField},d.createElement("label",{htmlFor:"token-select"},"Select Token"),d.createElement("select",{id:"token-select",onChange:async a=>{const s=a.target.value;c(null),o(!0);try{if(i(s)){const a=e.getSelectedNetworkConfig(),i=new C(a.uri,a.djedAddress);await i.init();const o=e.getTokenAmount(s),l=i.getBlockchainDetails();let c=null;"native"===s&&(c=await i.handleTradeDataBuySc(String(o))),r({network:n,token:s,tokenSymbol:t.getSelectedToken().symbol,amount:o,receivingAddress:e.getReceivingAddress(),djedContractAddress:a.djedAddress,isDirectTransfer:t.getSelectedToken().isDirectTransfer||!1,isNativeToken:t.getSelectedToken().isNative||!1,tradeAmount:c?c.amount:null,...l})}}catch(e){console.error("Error fetching transaction details:",e),c("Failed to fetch transaction details. Please try again.")}finally{o(!1)}},value:a?a.key:"",disabled:!n||s},d.createElement("option",{value:"",disabled:!0},n?s?"Loading...":"Select a token":"Please select a network first"),u.map(e=>d.createElement("option",{key:e.key,value:e.key},e.symbol," (",e.isDirectTransfer?"Direct Transfer":"Native",")"))),l&&d.createElement("div",{className:S.error},l))};a({id:63,name:"Mordor Testnet",network:"mordor",nativeCurrency:{decimals:18,name:"Mordor Ether",symbol:"METC"},rpcUrls:{default:{http:["https://rpc.mordor.etccooperative.org"],webSocket:["wss://rpc.mordor.etccooperative.org/ws"]}},blockExplorers:{default:{name:"BlockScout",url:"https://blockscout.com/etc/mordor"}},testnet:!0});const I=a({id:2001,name:"Milkomeda C1 Mainnet",network:"milkomeda",nativeCurrency:{decimals:18,name:"Milkomeda ADA",symbol:"mADA"},rpcUrls:{default:{http:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"]}},blockExplorers:{default:{name:"Milkomeda Explorer",url:"https://explorer-mainnet-cardano-evm.c1.milkomeda.com"}},testnet:!1}),j=a({id:61,name:"Ethereum Classic",network:"etc",nativeCurrency:{decimals:18,name:"Ethereum Classic",symbol:"ETC"},rpcUrls:{default:{http:["https://etc.rivet.link"]}},blockExplorers:{default:{name:"Blockscout",url:"https://blockscout.com/etc/mainnet"}},testnet:!1}),F=m(null),R=async e=>{if(!window.ethereum)throw new Error("MetaMask not installed");const t=(e=>{switch(e){case"sepolia":return{chainId:`0x${c.id.toString(16)}`,chainName:"Sepolia",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:c.rpcUrls.default.http,blockExplorerUrls:c.blockExplorers?.default?.url?[c.blockExplorers.default.url]:[]};case"ethereum-classic":return{chainId:`0x${j.id.toString(16)}`,chainName:"Ethereum Classic",nativeCurrency:{name:"Ethereum Classic",symbol:"ETC",decimals:18},rpcUrls:["https://etc.rivet.link"],blockExplorerUrls:["https://blockscout.com/etc/mainnet"]};case"milkomeda-mainnet":return{chainId:`0x${I.id.toString(16)}`,chainName:"Milkomeda C1 Mainnet",nativeCurrency:{name:"Milkomeda ADA",symbol:"mADA",decimals:18},rpcUrls:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"],blockExplorerUrls:["https://explorer-mainnet-cardano-evm.c1.milkomeda.com"]};default:return null}})(e);if(!t)throw new Error(`Unsupported network: ${e}`);try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:t.chainId}]})}catch(e){if(4902!==e.code)throw 4001===e.code?new Error(`User rejected switching to ${t.chainName}. Please switch manually in MetaMask.`):new Error(`Failed to switch to ${t.chainName}: ${e.message}`);try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[t]})}catch(e){if(4001===e.code)throw new Error(`User rejected adding ${t.chainName} to MetaMask. Please add it manually.`);throw new Error(`Failed to add ${t.chainName} to MetaMask: ${e.message}`)}}},U=({children:n})=>{const{selectedNetwork:a}=P(),[s,o]=y(null),[l,u]=y(null),[p,m]=y(null),[g,k]=y(null),[T,C]=y(null),[v,f]=y(null),[_,E]=y(!1),S=a?(e=>{switch(e){case"sepolia":return c;case"ethereum-classic":return j;case"milkomeda-mainnet":return I;default:return null}})(a):null,x=S?S.id:null,N=w(null),A=w(null),M=b(()=>{o(null),u(null),m(null),k(null),C(null),f(null)},[]),D=b(async e=>{const t=parseInt(e,16);if(k(t),S&&t===x){if(f(null),window.ethereum&&S){const e=i({chain:S,transport:r(window.ethereum)});o(e)}}else if(S&&t!==x){f(`Wrong network detected. Please switch to ${S?.name||a||"selected network"}`)}},[S,x,a]);A.current=D;const B=b(async n=>{if(0===n.length){if(M(),window.ethereum){const e=N.current,t=A.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}}else if(m(n[0]),S)try{const a=e({chain:S,transport:t()});u(a);const i=await a.getBalance({address:n[0]});C(parseFloat(i)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),C(null)}},[S,M]);N.current=B;const U=b(()=>{if(M(),window.ethereum){const e=N.current,t=A.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}},[M]),$=b(()=>{S&&u(e({chain:S,transport:t()}))},[S]),z=b(async()=>{if(!window.ethereum)return f("Please install MetaMask or another Web3 wallet"),!1;if(!a||!S)return f("Please select a network first"),!1;E(!0),f(null);try{const n=await window.ethereum.request({method:"eth_requestAccounts"});if(0===n.length)throw new Error("No wallet address found. Please unlock your wallet.");const s=await window.ethereum.request({method:"eth_chainId"});parseInt(s,16)!==x&&await R(a);const l=i({chain:S,transport:r(window.ethereum)});o(l),m(n[0]),k(x);const c=e({chain:S,transport:t()});u(c);try{const e=await c.getBalance({address:n[0]});C(parseFloat(e)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),C(null)}return N.current=B,A.current=D,window.ethereum.on("accountsChanged",B),window.ethereum.on("chainChanged",D),!0}catch(e){return console.error("Error connecting wallet:",e),f(e.message),!1}finally{E(!1)}},[a,S,x,B,D]),L=b(async()=>{if(!(window.ethereum&&a&&S&&p)){return f("Wallet not connected or network not selected"),null}try{const e=await window.ethereum.request({method:"eth_chainId"});if(parseInt(e,16)!==x){f(null),await R(a);const e=500;await new Promise(t=>setTimeout(t,e));const t=await window.ethereum.request({method:"eth_chainId"}),n=parseInt(t,16);if(n!==x)throw new Error(`Failed to switch network. MetaMask is still on chain ${n}, expected ${x}`)}const t=i({chain:S,transport:r(window.ethereum)});return o(t),k(x),f(null),t}catch(e){return f(e.message),null}},[a,S,x,p]),W=w(a);return h(()=>{if(null!==W.current&&W.current!==a&&p&&(M(),window.ethereum)){const e=N.current,t=A.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}W.current=a},[a,p,M]),h(()=>{$()},[$]),d.createElement(F.Provider,{value:{walletClient:s,publicClient:l,account:p,chainId:g,balance:T,error:v,isConnecting:_,connectWallet:z,disconnectWallet:U,ensureCorrectNetwork:L,expectedChainId:x}},n)},$=({onTransactionComplete:e})=>{const{networkSelector:t,selectedNetwork:n,selectedToken:a,transactionDetails:i,setTransactionDetails:r}=P(),{connectWallet:c,account:u,walletClient:m,isConnecting:w,ensureCorrectNetwork:b}=(()=>{const e=p(F);if(!e)throw new Error("useWallet must be used within a WalletProvider");return e})(),[g,k]=y(null),[T,v]=y(null),[f,_]=y(null),[E,x]=y(""),[N,A]=y(null),[M,D]=y(null),[B,I]=y(!1);if(h(()=>{_(null),v(null),x(""),D(null),A(null)},[n,a]),h(()=>{(async()=>{if(n&&a)try{const e=t.getSelectedNetworkConfig(),i=t.getReceivingAddress(),s=t.getTokenAmount(a.key),o=new C(e.uri,e.djedAddress);await o.init(),k(o);let l=null;"native"===a.key&&(l=await o.handleTradeDataBuySc(String(s)),v(l)),r({network:n,token:a.key,tokenSymbol:a.symbol,amount:s||"0",receivingAddress:i,djedContractAddress:e.djedAddress,isDirectTransfer:a.isDirectTransfer||!1,isNativeToken:a.isNative||!1,tradeAmount:l||null,...o.getBlockchainDetails()})}catch(e){console.error("Error initializing transaction:",e)}})()},[n,a]),!i)return d.createElement("div",{className:S.loading},"Initializing transaction...");const j=()=>{if(!N||!n)return null;const e={"ethereum-classic":"https://blockscout.com/etc/mainnet/tx/",sepolia:"https://sepolia.etherscan.io/tx/","milkomeda-mainnet":"https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/"};return e[n]?`${e[n]}${N}`:null};return d.createElement("div",{className:S.transactionReview},d.createElement("div",{className:S.transactionInfo},d.createElement("span",null,"Network:"),d.createElement("span",null,i.network)),d.createElement("div",{className:S.transactionInfo},d.createElement("span",null,"You Pay:"),d.createElement("span",null,"stablecoin"===a.key?`${i.amount} ${i.tokenSymbol}`:`${T||"Calculating..."} ${i.tokenSymbol}`)),d.createElement("button",{onClick:async()=>{await c()},disabled:w},w?"Connecting...":"Connect Wallet"),u&&!f&&d.createElement("button",{onClick:async()=>{if(u&&g)try{_(null),D(null),x("⏳ Preparing transaction...");const e=i.receivingAddress;let n;if("native"===a.key){if(!m)return void x("❌ Wallet client not available");const t=s(String(T||"0"));n=await g.buyStablecoins(m,e,t)}else{const a=t.getSelectedNetworkConfig(),r=a?.tokens?.stablecoin?.address;if(!r)throw new Error("Stablecoin address not found in network configuration");const s=i.amount?o(String(i.amount),i.stableCoinDecimals):0n;n={to:r,value:0n,data:l({abi:[{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],functionName:"transfer",args:[e,s]}),account:u}}_(n),x("✅ Transaction ready! Click 'Send Transaction' to proceed.")}catch(e){D(e),x("❌ Transaction preparation failed.")}else x("❌ Wallet not connected or transaction not ready")}},"Prepare Transaction"),u&&f&&d.createElement("button",{onClick:async()=>{try{if(!u||!f)return void x("❌ Wallet account or transaction missing");x("⏳ Verifying network...");const t=await b();if(!t)return void x("❌ Failed to switch network");x("⏳ Sending transaction...");const r=await t.sendTransaction({...f,account:u});A(r),x("✅ Transaction sent!"),e&&e({txHash:r,network:n,token:a?.key,tokenSymbol:a?.symbol,amount:i?.amount,receivingAddress:i?.receivingAddress})}catch(e){D(e),x("❌ Transaction failed."),console.error(e)}},disabled:!!N},"Send Transaction"),E&&d.createElement("div",null,E),N&&d.createElement("div",null,"✅ Transaction Hash:"," ",j()?d.createElement("a",{href:j(),target:"_blank",rel:"noreferrer"},N.slice(0,6),"...",N.slice(-6)):N))},z=({onClose:e,buttonSize:t,onTransactionComplete:n})=>{const{resetSelections:a}=P();return d.createElement(x,{onClose:()=>{a(),e()},size:t},d.createElement(D,null),d.createElement(B,null),d.createElement($,{onTransactionComplete:n}))},L=({onClose:e,buttonSize:t,networkSelector:n,onTransactionComplete:a})=>d.createElement(M,{networkSelector:n},d.createElement(U,null,d.createElement(z,{onClose:e,buttonSize:t,onTransactionComplete:a}))),W={NetworkSelector:class{constructor(e){this.merchantConfig=e,this.blacklist=e.getBlacklist(),this.availableNetworks=this.getAvailableNetworks(),this.selectedNetwork=null}getAvailableNetworks(){return Object.entries(g).reduce((e,[t,n])=>(this.blacklist.includes(n.chainId)||(e[t]=n),e),{})}selectNetwork(e){return null===e?(this.selectedNetwork=null,console.log("Network selection reset"),!0):this.availableNetworks[e]?(this.selectedNetwork=e,console.log(`Network selected: ${e}`),!0):(console.error(`Invalid network: ${e}`),!1)}getSelectedNetworkConfig(){return this.selectedNetwork?this.availableNetworks[this.selectedNetwork]:null}getReceivingAddress(){return this.merchantConfig.getReceivingAddress()}getTokenAmount(e){return this.merchantConfig.getTokenAmount(this.selectedNetwork,e)}},Transaction:C,Config:class{constructor(e={}){this.receivingAddress=e.receivingAddress||"",this.blacklist=e.blacklist||[],this.amounts=e.Amounts||{},this.validateConfig()}validateConfig(){if(!this.receivingAddress)throw new Error("Receiving address is required");for(const[e,t]of Object.entries(this.amounts)){if(!g[e])throw new Error(`Invalid network: ${e}`);if(!t.stablecoin||"number"!=typeof t.stablecoin||t.stablecoin<=0)throw new Error(`Invalid stablecoin amount for network ${e}`)}}getBlacklist(){return this.blacklist}getReceivingAddress(){return this.receivingAddress}getTokenAmount(e){console.log("Getting amount for network:",e),console.log("Amounts object:",this.amounts);const t=this.amounts[e]?.stablecoin;return console.log("Returning amount:",t),t||0}},Widget:({networkSelector:e,buttonSize:t="medium",onTransactionComplete:n,onSuccess:a})=>{const[i,r]=y(!1),s=n||a;return d.createElement("div",{className:S.widgetContainer},!i&&d.createElement(E,{onClick:()=>{r(!0)},size:t}),i&&d.createElement(L,{onClose:()=>{r(!1)},buttonSize:t,networkSelector:e,onTransactionComplete:s}))},PayButton:E,Dialog:x,NetworkDropdown:D};export{W as default};
diff --git a/stablepay-sdk/dist/umd/index.js b/stablepay-sdk/dist/umd/index.js
index 0e43e66..ba4b904 100644
--- a/stablepay-sdk/dist/umd/index.js
+++ b/stablepay-sdk/dist/umd/index.js
@@ -1,2 +1,2 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("djed-sdk"),require("react"),require("viem"),require("viem/chains")):"function"==typeof define&&define.amd?define(["djed-sdk","react","viem","viem/chains"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).StablePay=t(e.DjedSdk,e.React,e.viem,e.viemChains)}(this,(function(e,t,n,r){"use strict";const a={sepolia:{uri:"https://ethereum-sepolia.publicnode.com/",chainId:11155111,djedAddress:"0x624FcD0a1F9B5820c950FefD48087531d38387f4",tokens:{stablecoin:{symbol:"SOD",address:"0x6b930182787F346F18666D167e8d32166dC5eFBD",decimals:18,isDirectTransfer:!0},native:{symbol:"ETH",decimals:18,isNative:!0}},feeUI:0},"milkomeda-mainnet":{uri:"https://rpc-mainnet-cardano-evm.c1.milkomeda.com",chainId:2001,djedAddress:"0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76",tokens:{stablecoin:{symbol:"MOD",address:"0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9",decimals:18,isDirectTransfer:!0},native:{symbol:"mADA",decimals:18,isNative:!0}},feeUI:0},"ethereum-classic":{uri:"https://etc.rivet.link",chainId:61,djedAddress:"0xCc3664d7021FD36B1Fe2b136e2324710c8442cCf",tokens:{stablecoin:{symbol:"ECSD",address:"0x5A7Ca94F6E969C94bef4CE5e2f90ed9d4891918A",decimals:18,isDirectTransfer:!0},native:{symbol:"ETC",decimals:18,isNative:!0}},feeUI:0}};class i{constructor(e,t){this.networkUri=e,this.djedAddress=t}async init(){if(!this.networkUri||!this.djedAddress)throw new Error("Network URI and DJED address are required");try{this.web3=await e.getWeb3(this.networkUri),this.djedContract=e.getDjedContract(this.web3,this.djedAddress);try{const{stableCoin:t,reserveCoin:n}=await e.getCoinContracts(this.djedContract,this.web3),{scDecimals:r,rcDecimals:a}=await e.getDecimals(t,n);this.stableCoin=t,this.reserveCoin=n,this.scDecimals=r,this.rcDecimals=a,this.oracleContract=await e.getOracleAddress(this.djedContract).then((t=>e.getOracleContract(this.web3,t,this.djedContract._address))),this.oracleAddress=this.oracleContract._address}catch(e){if(console.error("[Transaction] Error fetching contract details:",e),e.message&&e.message.includes("execution reverted")){const e=e=>e.includes("milkomeda")?{name:"Milkomeda",chainId:"2001"}:e.includes("mordor")?{name:"Mordor Testnet",chainId:"63"}:e.includes("sepolia")?{name:"Sepolia",chainId:"11155111"}:e.includes("etc.rivet.link")?{name:"Ethereum Classic",chainId:"61"}:{name:"the selected network",chainId:"unknown"},{name:t,chainId:n}=e(this.networkUri);throw new Error(`Failed to interact with Djed contract at ${this.djedAddress} on ${t}.\n\nPossible causes:\n- The contract address may be incorrect\n- The contract may not be deployed on ${t}\n- The contract may not be a valid Djed contract\n\nPlease verify the contract address is correct for ${t} (Chain ID: ${n}).`)}throw e}}catch(e){if(console.error("[Transaction] Error initializing transaction:",e),e.message&&(e.message.includes("CONNECTION ERROR")||e.message.includes("ERR_NAME_NOT_RESOLVED"))){const e=(e=>e.includes("milkomeda")?"Milkomeda":e.includes("mordor")?"Mordor":e.includes("sepolia")?"Sepolia":"the selected network")(this.networkUri);throw new Error(`Failed to connect to ${e} RPC endpoint: ${this.networkUri}\n\nPossible causes:\n- The RPC endpoint may be temporarily unavailable\n- DNS resolution issue (check your internet connection)\n- Network firewall blocking the connection\n\nPlease try again in a few moments or check the network status.`)}throw e}}getBlockchainDetails(){return{web3Available:!!this.web3,djedContractAvailable:!!this.djedContract,stableCoinAddress:this.stableCoin?this.stableCoin._address:"N/A",reserveCoinAddress:this.reserveCoin?this.reserveCoin._address:"N/A",stableCoinDecimals:this.scDecimals,reserveCoinDecimals:this.rcDecimals,oracleAddress:this.oracleAddress||"N/A",oracleContractAvailable:!!this.oracleContract}}async handleTradeDataBuySc(t){if(!this.djedContract)throw new Error("DJED contract is not initialized");if("string"!=typeof t)throw new Error("Amount must be a string");try{return(await e.tradeDataPriceBuySc(this.djedContract,this.scDecimals,t)).totalBCScaled}catch(e){throw console.error("Error fetching trade data for buying stablecoins: ",e),e}}async buyStablecoins(t,n,r){if(!this.djedContract)throw new Error("DJED contract is not initialized");try{const a="0x0232556C83791b8291E9b23BfEa7d67405Bd9839";return await e.buyScTx(this.djedContract,t,n,r,a,this.djedAddress)}catch(e){throw console.error("Error executing buyStablecoins transaction: ",e),e}}}var o="main_stablePayButton__UA7HC",s="main_logo__ITyEy",c="main_buttonText__N-ewy";const l=({onClick:e,size:n="medium"})=>{const r={small:{width:"200px",height:"50px",fontSize:"14px"},medium:{width:"250px",height:"60px",fontSize:"16px"},large:{width:"300px",height:"70px",fontSize:"18px"}},a={small:{width:"35px",height:"33px"},medium:{width:"40px",height:"38px"},large:{width:"45px",height:"43px"}},i=r[n]||r.medium,l=a[n]||a.medium;return t.createElement("button",{className:o,onClick:e,style:i},t.createElement("div",{className:s,style:l}),t.createElement("span",{className:c},"Pay with StablePay"))};var d={dialogOverlay:"PricingCard_dialogOverlay__0XJrE",pricingCard:"PricingCard_pricingCard__LrWb9",small:"PricingCard_small__J4CHj",medium:"PricingCard_medium__EVmTB",large:"PricingCard_large__A6pnX",dialogClose:"PricingCard_dialogClose__jJ1tM",pricingCardHeader:"PricingCard_pricingCardHeader__wGczA",allianceLogo:"PricingCard_allianceLogo__URa-U",stablepayTitle:"PricingCard_stablepayTitle__4t848",pricingCardBody:"PricingCard_pricingCardBody__0wKQn",selectField:"PricingCard_selectField__LBPoZ",transactionReview:"PricingCard_transactionReview__Ix-eL",transactionInfo:"PricingCard_transactionInfo__Ck-Rc",transactionLabel:"PricingCard_transactionLabel__GDux7",transactionValue:"PricingCard_transactionValue__q-xxp",infoSection:"PricingCard_infoSection__gyjMQ",infoIcon:"PricingCard_infoIcon__rraxD",infoText:"PricingCard_infoText__l4b7A",walletButton:"PricingCard_walletButton__llw4v",loading:"PricingCard_loading__2-tGA",error:"PricingCard_error__m5fK-",networkError:"PricingCard_networkError__zR-36",errorText:"PricingCard_errorText__qZRJt","message-box":"PricingCard_message-box__vkUKy",detailsButton:"PricingCard_detailsButton__jHglL",errorDetails:"PricingCard_errorDetails__CzN-7",loadingContainer:"PricingCard_loadingContainer__6nOVa",spinner:"PricingCard_spinner__9ucQv",spin:"PricingCard_spin__24tni"};const u=({children:e,onClose:n,size:r="medium"})=>t.createElement("div",{className:d.dialogOverlay},t.createElement("div",{className:`${d.pricingCard} ${d[r]}`},t.createElement("button",{className:d.dialogClose,onClick:n},"×"),t.createElement("div",{className:d.pricingCardHeader},t.createElement("div",{className:d.allianceLogo}),t.createElement("h2",{className:d.stablepayTitle},"StablePay")),t.createElement("div",{className:d.pricingCardBody},e)));class m{constructor(e){this.networkSelector=e,this.selectedToken=null}selectToken(e){const t=this.networkSelector.getSelectedNetworkConfig();return!(!t||!t.tokens[e])&&(this.selectedToken={key:e,...t.tokens[e]},!0)}getSelectedToken(){return this.selectedToken}getAvailableTokens(){const e=this.networkSelector.getSelectedNetworkConfig();return e?Object.entries(e.tokens).map((([e,t])=>({key:e,...t}))):[]}resetSelection(){this.selectedToken=null}}const h=t.createContext(),w=({children:e,networkSelector:n})=>{const[r]=t.useState((()=>new m(n))),[a,i]=t.useState(null),[o,s]=t.useState(null),[c,l]=t.useState(null),d=()=>{s(null),l(null)};return t.useEffect((()=>{i(n.selectedNetwork)}),[n.selectedNetwork]),t.createElement(h.Provider,{value:{networkSelector:n,tokenSelector:r,selectedNetwork:a,selectedToken:o,transactionDetails:c,setTransactionDetails:l,selectNetwork:e=>!!n.selectNetwork(e)&&(i(e),d(),!0),selectToken:e=>{if(r.selectToken(e)){const e=r.getSelectedToken();return s(e),!0}return!1},resetSelections:()=>{n.selectNetwork(null),i(null),d()}}},e)},k=()=>{const e=t.useContext(h);if(void 0===e)throw new Error("useNetwork must be used within a NetworkProvider");return e},g=()=>{const{networkSelector:e,selectedNetwork:n,selectNetwork:r}=k();return t.createElement("div",{className:d.selectField},t.createElement("label",{htmlFor:"network-select"},"Select Network"),t.createElement("select",{id:"network-select",onChange:e=>{r(e.target.value)},value:n||""},t.createElement("option",{value:"",disabled:!0},"Select a network"),Object.keys(e.availableNetworks).map((e=>t.createElement("option",{key:e,value:e},e)))))},C=()=>{const{networkSelector:e,tokenSelector:n,selectedNetwork:r,selectedToken:a,selectToken:o,setTransactionDetails:s}=k(),[c,l]=t.useState(!1),[u,m]=t.useState(null),h=r?n.getAvailableTokens():[];return t.createElement("div",{className:d.selectField},t.createElement("label",{htmlFor:"token-select"},"Select Token"),t.createElement("select",{id:"token-select",onChange:async t=>{const a=t.target.value;m(null),l(!0);try{if(o(a)){const t=e.getSelectedNetworkConfig(),o=new i(t.uri,t.djedAddress);await o.init();const c=e.getTokenAmount(a),l=o.getBlockchainDetails();let d=null;"native"===a&&(d=await o.handleTradeDataBuySc(String(c))),s({network:r,token:a,tokenSymbol:n.getSelectedToken().symbol,amount:c,receivingAddress:e.getReceivingAddress(),djedContractAddress:t.djedAddress,isDirectTransfer:n.getSelectedToken().isDirectTransfer||!1,isNativeToken:n.getSelectedToken().isNative||!1,tradeAmount:d?d.amount:null,...l})}}catch(e){console.error("Error fetching transaction details:",e),m("Failed to fetch transaction details. Please try again.")}finally{l(!1)}},value:a?a.key:"",disabled:!r||c},t.createElement("option",{value:"",disabled:!0},r?c?"Loading...":"Select a token":"Please select a network first"),h.map((e=>t.createElement("option",{key:e.key,value:e.key},e.symbol," (",e.isDirectTransfer?"Direct Transfer":"Native",")")))),u&&t.createElement("div",{className:d.error},u))};n.defineChain({id:63,name:"Mordor Testnet",network:"mordor",nativeCurrency:{decimals:18,name:"Mordor Ether",symbol:"METC"},rpcUrls:{default:{http:["https://rpc.mordor.etccooperative.org"],webSocket:["wss://rpc.mordor.etccooperative.org/ws"]}},blockExplorers:{default:{name:"BlockScout",url:"https://blockscout.com/etc/mordor"}},testnet:!0});const b=n.defineChain({id:2001,name:"Milkomeda C1 Mainnet",network:"milkomeda",nativeCurrency:{decimals:18,name:"Milkomeda ADA",symbol:"mADA"},rpcUrls:{default:{http:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"]}},blockExplorers:{default:{name:"Milkomeda Explorer",url:"https://explorer-mainnet-cardano-evm.c1.milkomeda.com"}},testnet:!1}),p=n.defineChain({id:61,name:"Ethereum Classic",network:"etc",nativeCurrency:{decimals:18,name:"Ethereum Classic",symbol:"ETC"},rpcUrls:{default:{http:["https://etc.rivet.link"]}},blockExplorers:{default:{name:"Blockscout",url:"https://blockscout.com/etc/mainnet"}},testnet:!1}),f=t.createContext(null),v=async e=>{if(!window.ethereum)throw new Error("MetaMask not installed");const t=(e=>{switch(e){case"sepolia":return{chainId:`0x${r.sepolia.id.toString(16)}`,chainName:"Sepolia",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:r.sepolia.rpcUrls.default.http,blockExplorerUrls:r.sepolia.blockExplorers?.default?.url?[r.sepolia.blockExplorers.default.url]:[]};case"ethereum-classic":return{chainId:`0x${p.id.toString(16)}`,chainName:"Ethereum Classic",nativeCurrency:{name:"Ethereum Classic",symbol:"ETC",decimals:18},rpcUrls:["https://etc.rivet.link"],blockExplorerUrls:["https://blockscout.com/etc/mainnet"]};case"milkomeda-mainnet":return{chainId:`0x${b.id.toString(16)}`,chainName:"Milkomeda C1 Mainnet",nativeCurrency:{name:"Milkomeda ADA",symbol:"mADA",decimals:18},rpcUrls:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"],blockExplorerUrls:["https://explorer-mainnet-cardano-evm.c1.milkomeda.com"]};default:return null}})(e);if(!t)throw new Error(`Unsupported network: ${e}`);try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:t.chainId}]})}catch(e){if(4902!==e.code)throw 4001===e.code?new Error(`User rejected switching to ${t.chainName}. Please switch manually in MetaMask.`):new Error(`Failed to switch to ${t.chainName}: ${e.message}`);try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[t]})}catch(e){if(4001===e.code)throw new Error(`User rejected adding ${t.chainName} to MetaMask. Please add it manually.`);throw new Error(`Failed to add ${t.chainName} to MetaMask: ${e.message}`)}}},y=({children:e})=>{const{selectedNetwork:a}=k(),[i,o]=t.useState(null),[s,c]=t.useState(null),[l,d]=t.useState(null),[u,m]=t.useState(null),[h,w]=t.useState(null),[g,C]=t.useState(null),[y,E]=t.useState(!1),_=a?(e=>{switch(e){case"sepolia":return r.sepolia;case"ethereum-classic":return p;case"milkomeda-mainnet":return b;default:return null}})(a):null,S=_?_.id:null,N=t.useRef(null),T=t.useRef(null),A=t.useCallback((()=>{o(null),c(null),d(null),m(null),w(null),C(null)}),[]),D=t.useCallback((async e=>{const t=parseInt(e,16);if(m(t),_&&t===S){if(C(null),window.ethereum&&_){const e=n.createWalletClient({chain:_,transport:n.custom(window.ethereum)});o(e)}}else if(_&&t!==S){C(`Wrong network detected. Please switch to ${_?.name||a||"selected network"}`)}}),[_,S,a]);T.current=D;const x=t.useCallback((async e=>{if(0===e.length){if(A(),window.ethereum){const e=N.current,t=T.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}}else if(d(e[0]),_)try{const t=n.createPublicClient({chain:_,transport:n.http()});c(t);const r=await t.getBalance({address:e[0]});w(parseFloat(r)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),w(null)}}),[_,A]);N.current=x;const P=t.useCallback((()=>{if(A(),window.ethereum){const e=N.current,t=T.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}}),[A]),I=t.useCallback((()=>{_&&c(n.createPublicClient({chain:_,transport:n.http()}))}),[_]),j=t.useCallback((async()=>{if(!window.ethereum)return C("Please install MetaMask or another Web3 wallet"),!1;if(!a||!_)return C("Please select a network first"),!1;E(!0),C(null);try{const e=await window.ethereum.request({method:"eth_requestAccounts"});if(0===e.length)throw new Error("No wallet address found. Please unlock your wallet.");const t=await window.ethereum.request({method:"eth_chainId"});parseInt(t,16)!==S&&await v(a);const r=n.createWalletClient({chain:_,transport:n.custom(window.ethereum)});o(r),d(e[0]),m(S);const i=n.createPublicClient({chain:_,transport:n.http()});c(i);try{const t=await i.getBalance({address:e[0]});w(parseFloat(t)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),w(null)}return N.current=x,T.current=D,window.ethereum.on("accountsChanged",x),window.ethereum.on("chainChanged",D),!0}catch(e){return console.error("Error connecting wallet:",e),C(e.message),!1}finally{E(!1)}}),[a,_,S,x,D]),B=t.useCallback((async()=>{if(!(window.ethereum&&a&&_&&l)){return C("Wallet not connected or network not selected"),null}try{const e=await window.ethereum.request({method:"eth_chainId"});if(parseInt(e,16)!==S){C(null),await v(a);const e=500;await new Promise((t=>setTimeout(t,e)));const t=await window.ethereum.request({method:"eth_chainId"}),n=parseInt(t,16);if(n!==S)throw new Error(`Failed to switch network. MetaMask is still on chain ${n}, expected ${S}`)}const t=n.createWalletClient({chain:_,transport:n.custom(window.ethereum)});return o(t),m(S),C(null),t}catch(e){return C(e.message),null}}),[a,_,S,l]),M=t.useRef(a);return t.useEffect((()=>{if(null!==M.current&&M.current!==a&&l&&(A(),window.ethereum)){const e=N.current,t=T.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}M.current=a}),[a,l,A]),t.useEffect((()=>{I()}),[I]),t.createElement(f.Provider,{value:{walletClient:i,publicClient:s,account:l,chainId:u,balance:h,error:g,isConnecting:y,connectWallet:j,disconnectWallet:P,ensureCorrectNetwork:B,expectedChainId:S}},e)},E=({onTransactionComplete:e})=>{const{networkSelector:r,selectedNetwork:a,selectedToken:o,transactionDetails:s,setTransactionDetails:c}=k(),{connectWallet:l,account:u,walletClient:m,publicClient:h,isConnecting:w,ensureCorrectNetwork:g,expectedChainId:C}=(()=>{const e=t.useContext(f);if(!e)throw new Error("useWallet must be used within a WalletProvider");return e})(),[b,p]=t.useState(null),[v,y]=t.useState(null),[E,_]=t.useState(null),[S,N]=t.useState(""),[T,A]=t.useState(null),[D,x]=t.useState(null),[P,I]=t.useState(!1);if(t.useEffect((()=>{_(null),y(null),N(""),x(null),A(null)}),[a,o]),t.useEffect((()=>{(async()=>{if(a&&o)try{const e=r.getSelectedNetworkConfig(),t=r.getReceivingAddress(),n=r.getTokenAmount(o.key),s=new i(e.uri,e.djedAddress);await s.init(),p(s);let l=null;if("native"===o.key)try{l=await s.handleTradeDataBuySc(String(n)),y(l)}catch(e){console.error("Error fetching trade data:",e)}c({network:a,token:o.key,tokenSymbol:o.symbol,amount:n||"0",receivingAddress:t,djedContractAddress:e.djedAddress,isDirectTransfer:o.isDirectTransfer||!1,isNativeToken:o.isNative||!1,tradeAmount:l?l.amount:null,...s.getBlockchainDetails()})}catch(e){console.error("Error initializing transaction:",e)}})()}),[a,o,r,c]),!s)return t.createElement("div",{className:d.loading},"Initializing transaction...");const j=()=>{if(!T||!a)return null;const e={"ethereum-classic":"https://blockscout.com/etc/mainnet/tx/",sepolia:"https://sepolia.etherscan.io/tx/","milkomeda-mainnet":"https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/"};return e[a]?`${e[a]}${T}`:null};return t.createElement("div",{className:d.transactionReview},t.createElement("div",{className:d.transactionInfo},t.createElement("span",{className:d.transactionLabel},"Network:"),t.createElement("span",{className:d.transactionValue},s.network)),t.createElement("div",{className:d.transactionInfo},t.createElement("span",{className:d.transactionLabel},"You Pay:"),t.createElement("span",{className:d.transactionValue},"stablecoin"===o.key?`${s.amount} ${s.tokenSymbol}`:`${v||"Calculating..."} ${s.tokenSymbol}`)),t.createElement("button",{className:d.walletButton,onClick:async()=>{await l()},disabled:w},w?"Connecting...":"Connect Wallet"),u&&!E&&t.createElement("button",{className:d.walletButton,onClick:async()=>{if(u&&s&&b)try{_(null),x(null),N("⏳ Preparing transaction...");const e=s.receivingAddress;let t;if("native"===o.key){const r="0x0232556C83791b8291E9b23BfEa7d67405Bd9839",a=v||"0",i=n.parseEther(String(a));t=await b.buyStablecoins(u,e,i,r),t={...t,value:i,account:u}}else{const a=r.getSelectedNetworkConfig(),i=a?.tokens?.stablecoin?.address;if(!i)throw new Error("Stablecoin address not found in network configuration");const o=s.amount?n.parseUnits(String(s.amount),s.stableCoinDecimals):"0";t={to:i,value:0n,data:n.encodeFunctionData({abi:[{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],functionName:"transfer",args:[e,o]}),account:u}}_(t),N("✅ Transaction ready! Click 'Send Transaction' to proceed.")}catch(e){x(e),N("❌ Transaction preparation failed.")}else N("❌ Wallet not connected or transaction details missing")}},"Prepare Transaction"),u&&E&&t.createElement("button",{className:d.walletButton,onClick:async()=>{x(null);try{if(!u||!E)return void N("❌ Wallet account or transaction data is missing");if(!a)return void N("❌ Network not selected");const t=r.getSelectedNetworkConfig();if(!t)return void N("❌ Network configuration not found");N("⏳ Verifying network...");const n=await g();if(!n)return void N("❌ Failed to switch to correct network. Please approve the network switch in MetaMask and try again.");if(!window.ethereum)return void N("❌ MetaMask not available");const i=await window.ethereum.request({method:"eth_chainId"}),c=parseInt(i,16);if(c!==t.chainId){const e=`Network mismatch. MetaMask is on chain ${c}, but ${a} requires chain ${t.chainId}. Please switch networks in MetaMask.`;return N(`❌ ${e}`),void x(new Error(e))}if(n.chain.id!==t.chainId){const e=`Wallet client chain mismatch. Wallet client is on chain ${n.chain.id}, but expected ${t.chainId}.`;return N(`❌ ${e}`),void x(new Error(e))}N("⏳ Sending transaction...");const l=await n.sendTransaction({...E,account:u});A(l),N("✅ Transaction sent!"),e&&e({txHash:l,network:a,token:o?.key,tokenSymbol:o?.symbol,amount:s?.amount,receivingAddress:s?.receivingAddress})}catch(e){x(e),N("❌ Transaction failed."),console.error("Transaction error:",e)}},disabled:null!==T},"Send Transaction"),S&&t.createElement("div",{className:"message-box"},S,D&&t.createElement("button",{onClick:()=>I(!P),className:d.detailsButton},P?"Hide Details":"Show Details")),P&&D&&t.createElement("div",{className:d.errorDetails},t.createElement("pre",null,D.message)),T&&t.createElement("div",{className:d.transactionLink},"✅ Transaction Hash:"," ",j()?t.createElement("a",{href:j(),target:"_blank",rel:"noopener noreferrer",className:d.explorerLink,style:{color:"#007bff",textDecoration:"underline",fontWeight:"bold",cursor:"pointer",wordBreak:"break-word"}},T.slice(0,6),"...",T.slice(-6)):t.createElement("span",{style:{wordBreak:"break-word"}},T)))},_=({onClose:e,buttonSize:n,onTransactionComplete:r})=>{const{resetSelections:a}=k();return t.createElement(u,{onClose:()=>{a(),e()},size:n},t.createElement(g,null),t.createElement(C,null),t.createElement(E,{onTransactionComplete:r}))},S=({onClose:e,buttonSize:n,networkSelector:r,onTransactionComplete:a})=>t.createElement(w,{networkSelector:r},t.createElement(y,null,t.createElement(_,{onClose:e,buttonSize:n,onTransactionComplete:a})));return{NetworkSelector:class{constructor(e){this.merchantConfig=e,this.blacklist=e.getBlacklist(),this.availableNetworks=this.getAvailableNetworks(),this.selectedNetwork=null}getAvailableNetworks(){return Object.entries(a).reduce(((e,[t,n])=>(this.blacklist.includes(n.chainId)||(e[t]=n),e)),{})}selectNetwork(e){return null===e?(this.selectedNetwork=null,console.log("Network selection reset"),!0):this.availableNetworks[e]?(this.selectedNetwork=e,console.log(`Network selected: ${e}`),!0):(console.error(`Invalid network: ${e}`),!1)}getSelectedNetworkConfig(){return this.selectedNetwork?this.availableNetworks[this.selectedNetwork]:null}getReceivingAddress(){return this.merchantConfig.getReceivingAddress()}getTokenAmount(e){return this.merchantConfig.getTokenAmount(this.selectedNetwork,e)}},Transaction:i,Config:class{constructor(e={}){this.receivingAddress=e.receivingAddress||"",this.blacklist=e.blacklist||[],this.amounts=e.Amounts||{},this.validateConfig()}validateConfig(){if(!this.receivingAddress)throw new Error("Receiving address is required");for(const[e,t]of Object.entries(this.amounts)){if(!a[e])throw new Error(`Invalid network: ${e}`);if(!t.stablecoin||"number"!=typeof t.stablecoin||t.stablecoin<=0)throw new Error(`Invalid stablecoin amount for network ${e}`)}}getBlacklist(){return this.blacklist}getReceivingAddress(){return this.receivingAddress}getTokenAmount(e){console.log("Getting amount for network:",e),console.log("Amounts object:",this.amounts);const t=this.amounts[e]?.stablecoin;return console.log("Returning amount:",t),t||0}},Widget:({networkSelector:e,buttonSize:n="medium",onTransactionComplete:r,onSuccess:a})=>{const[i,o]=t.useState(!1),s=r||a;return t.createElement("div",{className:d.widgetContainer},!i&&t.createElement(l,{onClick:()=>{o(!0)},size:n}),i&&t.createElement(S,{onClose:()=>{o(!1)},buttonSize:n,networkSelector:e,onTransactionComplete:s}))},PayButton:l,Dialog:u,NetworkDropdown:g}}));
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("viem"),require("viem/chains"),require("react")):"function"==typeof define&&define.amd?define(["viem","viem/chains","react"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).StablePay=t(e.viem,e.viemChains,e.React)}(this,function(e,t,n){"use strict";const a={sepolia:{uri:"https://ethereum-sepolia.publicnode.com/",chainId:11155111,djedAddress:"0x624FcD0a1F9B5820c950FefD48087531d38387f4",tokens:{stablecoin:{symbol:"SOD",address:"0x6b930182787F346F18666D167e8d32166dC5eFBD",decimals:18,isDirectTransfer:!0},native:{symbol:"ETH",decimals:18,isNative:!0}},feeUI:0},"milkomeda-mainnet":{uri:"https://rpc-mainnet-cardano-evm.c1.milkomeda.com",chainId:2001,djedAddress:"0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76",tokens:{stablecoin:{symbol:"MOD",address:"0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9",decimals:18,isDirectTransfer:!0},native:{symbol:"mADA",decimals:18,isNative:!0}},feeUI:0},"ethereum-classic":{uri:"https://etc.rivet.link",chainId:61,djedAddress:"0xCc3664d7021FD36B1Fe2b136e2324710c8442cCf",tokens:{stablecoin:{symbol:"ECSD",address:"0x5A7Ca94F6E969C94bef4CE5e2f90ed9d4891918A",decimals:18,isDirectTransfer:!0},native:{symbol:"ETC",decimals:18,isNative:!0}},feeUI:0}};var i=[{inputs:[{internalType:"address",name:"oracleAddress",type:"address"},{internalType:"uint256",name:"_scalingFactor",type:"uint256"},{internalType:"address",name:"_treasury",type:"address"},{internalType:"uint256",name:"_initialTreasuryFee",type:"uint256"},{internalType:"uint256",name:"_treasuryRevenueTarget",type:"uint256"},{internalType:"uint256",name:"_reserveRatioMin",type:"uint256"},{internalType:"uint256",name:"_reserveRatioMax",type:"uint256"},{internalType:"uint256",name:"_fee",type:"uint256"},{internalType:"uint256",name:"_thresholdSupplySC",type:"uint256"},{internalType:"uint256",name:"_rcMinPrice",type:"uint256"},{internalType:"uint256",name:"_txLimit",type:"uint256"}],stateMutability:"payable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountRC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"BoughtReserveCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountSC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"BoughtStableCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountSC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountRC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"SoldBothCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountRC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"SoldReserveCoins",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amountSC",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountBC",type:"uint256"}],name:"SoldStableCoins",type:"event"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"E",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"L",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"R",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"fee_ui",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"buyReserveCoins",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"feeUI",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"buyStableCoins",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialTreasuryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"oracle",outputs:[{internalType:"contract IFreeOracle",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"ratio",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"rcBuyingPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rcDecimalScalingFactor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rcMinPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"rcTargetPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"reserveCoin",outputs:[{internalType:"contract Coin",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"reserveRatioMax",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"reserveRatioMin",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"scDecimalScalingFactor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_currentPaymentAmount",type:"uint256"}],name:"scPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"scalingFactor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountSC",type:"uint256"},{internalType:"uint256",name:"amountRC",type:"uint256"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"fee_ui",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"sellBothCoins",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountRC",type:"uint256"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"fee_ui",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"sellReserveCoins",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountSC",type:"uint256"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"feeUI",type:"uint256"},{internalType:"address",name:"ui",type:"address"}],name:"sellStableCoins",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stableCoin",outputs:[{internalType:"contract Coin",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"thresholdSupplySC",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryRevenue",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"treasuryRevenueTarget",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"txLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],r=[{inputs:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"}];class s{constructor(e,n){this.networkUri=e,this.djedAddress=n,this.chain=function(e){if(e.includes("sepolia"))return t.sepolia;if(e.includes("mainnet"))return t.mainnet;throw new Error(`Unsupported network URI: ${e}. Please use sepolia or mainnet.`)}(e)}async init(){this.publicClient=e.createPublicClient({chain:this.chain,transport:e.http(this.networkUri)}),this.djedContract=e.getContract({address:this.djedAddress,abi:i,client:this.publicClient});const t=await this.djedContract.read.stableCoin(),n=await this.djedContract.read.reserveCoin();this.stableCoin=e.getContract({address:t,abi:r,client:this.publicClient}),this.reserveCoin=e.getContract({address:n,abi:r,client:this.publicClient}),this.scDecimals=BigInt(await this.stableCoin.read.decimals()),this.rcDecimals=BigInt(await this.reserveCoin.read.decimals()),this.oracleAddress=await this.djedContract.read.oracle()}getBlockchainDetails(){return{clientAvailable:!!this.publicClient,djedContractAvailable:!!this.djedContract,stableCoinAddress:this.stableCoin?.address||"N/A",reserveCoinAddress:this.reserveCoin?.address||"N/A",stableCoinDecimals:Number(this.scDecimals),reserveCoinDecimals:Number(this.rcDecimals),oracleAddress:this.oracleAddress||"N/A"}}async handleTradeDataBuySc(e){if(!this.djedContract)throw new Error("DJED contract is not initialized");if("string"!=typeof e)throw new Error("Amount must be a string");const t=BigInt(e),n=await this.djedContract.read.scPrice([0n]),a=await this.djedContract.read.treasuryFee(),i=await this.djedContract.read.fee(),r=10n**24n;return(t*n/10n**this.scDecimals*r/(r-(a+i))).toString()}async buyStablecoins(e,t,n){if(!this.djedContract)throw new Error("DJED contract is not initialized");if(!e)throw new Error("Wallet client is required");return await e.writeContract({address:this.djedAddress,abi:i,functionName:"buyStableCoins",args:[t,0n,"0x0232556C83791b8291E9b23BfEa7d67405Bd9839"],value:BigInt(n)})}}var o="main_stablePayButton__UA7HC",l="main_logo__ITyEy",c="main_buttonText__N-ewy";const u=({onClick:e,size:t="medium"})=>{const a={small:{width:"200px",height:"50px",fontSize:"14px"},medium:{width:"250px",height:"60px",fontSize:"16px"},large:{width:"300px",height:"70px",fontSize:"18px"}},i={small:{width:"35px",height:"33px"},medium:{width:"40px",height:"38px"},large:{width:"45px",height:"43px"}},r=a[t]||a.medium,s=i[t]||i.medium;return n.createElement("button",{className:o,onClick:e,style:r},n.createElement("div",{className:l,style:s}),n.createElement("span",{className:c},"Pay with StablePay"))};var d={dialogOverlay:"PricingCard_dialogOverlay__0XJrE",pricingCard:"PricingCard_pricingCard__LrWb9",small:"PricingCard_small__J4CHj",medium:"PricingCard_medium__EVmTB",large:"PricingCard_large__A6pnX",dialogClose:"PricingCard_dialogClose__jJ1tM",pricingCardHeader:"PricingCard_pricingCardHeader__wGczA",allianceLogo:"PricingCard_allianceLogo__URa-U",stablepayTitle:"PricingCard_stablepayTitle__4t848",pricingCardBody:"PricingCard_pricingCardBody__0wKQn",selectField:"PricingCard_selectField__LBPoZ",transactionReview:"PricingCard_transactionReview__Ix-eL",transactionInfo:"PricingCard_transactionInfo__Ck-Rc",transactionLabel:"PricingCard_transactionLabel__GDux7",transactionValue:"PricingCard_transactionValue__q-xxp",infoSection:"PricingCard_infoSection__gyjMQ",infoIcon:"PricingCard_infoIcon__rraxD",infoText:"PricingCard_infoText__l4b7A",walletButton:"PricingCard_walletButton__llw4v",loading:"PricingCard_loading__2-tGA",error:"PricingCard_error__m5fK-",networkError:"PricingCard_networkError__zR-36",errorText:"PricingCard_errorText__qZRJt","message-box":"PricingCard_message-box__vkUKy",detailsButton:"PricingCard_detailsButton__jHglL",errorDetails:"PricingCard_errorDetails__CzN-7",loadingContainer:"PricingCard_loadingContainer__6nOVa",spinner:"PricingCard_spinner__9ucQv",spin:"PricingCard_spin__24tni"};const p=({children:e,onClose:t,size:a="medium"})=>n.createElement("div",{className:d.dialogOverlay},n.createElement("div",{className:`${d.pricingCard} ${d[a]}`},n.createElement("button",{className:d.dialogClose,onClick:t},"×"),n.createElement("div",{className:d.pricingCardHeader},n.createElement("div",{className:d.allianceLogo}),n.createElement("h2",{className:d.stablepayTitle},"StablePay")),n.createElement("div",{className:d.pricingCardBody},e)));class m{constructor(e){this.networkSelector=e,this.selectedToken=null}selectToken(e){const t=this.networkSelector.getSelectedNetworkConfig();return!(!t||!t.tokens[e])&&(this.selectedToken={key:e,...t.tokens[e]},!0)}getSelectedToken(){return this.selectedToken}getAvailableTokens(){const e=this.networkSelector.getSelectedNetworkConfig();return e?Object.entries(e.tokens).map(([e,t])=>({key:e,...t})):[]}resetSelection(){this.selectedToken=null}}const y=n.createContext(),h=({children:e,networkSelector:t})=>{const[a]=n.useState(()=>new m(t)),[i,r]=n.useState(null),[s,o]=n.useState(null),[l,c]=n.useState(null),u=()=>{o(null),c(null)};return n.useEffect(()=>{r(t.selectedNetwork)},[t.selectedNetwork]),n.createElement(y.Provider,{value:{networkSelector:t,tokenSelector:a,selectedNetwork:i,selectedToken:s,transactionDetails:l,setTransactionDetails:c,selectNetwork:e=>!!t.selectNetwork(e)&&(r(e),u(),!0),selectToken:e=>{if(a.selectToken(e)){const e=a.getSelectedToken();return o(e),!0}return!1},resetSelections:()=>{t.selectNetwork(null),r(null),u()}}},e)},w=()=>{const e=n.useContext(y);if(void 0===e)throw new Error("useNetwork must be used within a NetworkProvider");return e},b=()=>{const{networkSelector:e,selectedNetwork:t,selectNetwork:a}=w();return n.createElement("div",{className:d.selectField},n.createElement("label",{htmlFor:"network-select"},"Select Network"),n.createElement("select",{id:"network-select",onChange:e=>{a(e.target.value)},value:t||""},n.createElement("option",{value:"",disabled:!0},"Select a network"),Object.keys(e.availableNetworks).map(e=>n.createElement("option",{key:e,value:e},e))))},C=()=>{const{networkSelector:e,tokenSelector:t,selectedNetwork:a,selectedToken:i,selectToken:r,setTransactionDetails:o}=w(),[l,c]=n.useState(!1),[u,p]=n.useState(null),m=a?t.getAvailableTokens():[];return n.createElement("div",{className:d.selectField},n.createElement("label",{htmlFor:"token-select"},"Select Token"),n.createElement("select",{id:"token-select",onChange:async n=>{const i=n.target.value;p(null),c(!0);try{if(r(i)){const n=e.getSelectedNetworkConfig(),r=new s(n.uri,n.djedAddress);await r.init();const l=e.getTokenAmount(i),c=r.getBlockchainDetails();let u=null;"native"===i&&(u=await r.handleTradeDataBuySc(String(l))),o({network:a,token:i,tokenSymbol:t.getSelectedToken().symbol,amount:l,receivingAddress:e.getReceivingAddress(),djedContractAddress:n.djedAddress,isDirectTransfer:t.getSelectedToken().isDirectTransfer||!1,isNativeToken:t.getSelectedToken().isNative||!1,tradeAmount:u?u.amount:null,...c})}}catch(e){console.error("Error fetching transaction details:",e),p("Failed to fetch transaction details. Please try again.")}finally{c(!1)}},value:i?i.key:"",disabled:!a||l},n.createElement("option",{value:"",disabled:!0},a?l?"Loading...":"Select a token":"Please select a network first"),m.map(e=>n.createElement("option",{key:e.key,value:e.key},e.symbol," (",e.isDirectTransfer?"Direct Transfer":"Native",")"))),u&&n.createElement("div",{className:d.error},u))};e.defineChain({id:63,name:"Mordor Testnet",network:"mordor",nativeCurrency:{decimals:18,name:"Mordor Ether",symbol:"METC"},rpcUrls:{default:{http:["https://rpc.mordor.etccooperative.org"],webSocket:["wss://rpc.mordor.etccooperative.org/ws"]}},blockExplorers:{default:{name:"BlockScout",url:"https://blockscout.com/etc/mordor"}},testnet:!0});const g=e.defineChain({id:2001,name:"Milkomeda C1 Mainnet",network:"milkomeda",nativeCurrency:{decimals:18,name:"Milkomeda ADA",symbol:"mADA"},rpcUrls:{default:{http:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"]}},blockExplorers:{default:{name:"Milkomeda Explorer",url:"https://explorer-mainnet-cardano-evm.c1.milkomeda.com"}},testnet:!1}),f=e.defineChain({id:61,name:"Ethereum Classic",network:"etc",nativeCurrency:{decimals:18,name:"Ethereum Classic",symbol:"ETC"},rpcUrls:{default:{http:["https://etc.rivet.link"]}},blockExplorers:{default:{name:"Blockscout",url:"https://blockscout.com/etc/mainnet"}},testnet:!1}),k=n.createContext(null),T=async e=>{if(!window.ethereum)throw new Error("MetaMask not installed");const n=(e=>{switch(e){case"sepolia":return{chainId:`0x${t.sepolia.id.toString(16)}`,chainName:"Sepolia",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:t.sepolia.rpcUrls.default.http,blockExplorerUrls:t.sepolia.blockExplorers?.default?.url?[t.sepolia.blockExplorers.default.url]:[]};case"ethereum-classic":return{chainId:`0x${f.id.toString(16)}`,chainName:"Ethereum Classic",nativeCurrency:{name:"Ethereum Classic",symbol:"ETC",decimals:18},rpcUrls:["https://etc.rivet.link"],blockExplorerUrls:["https://blockscout.com/etc/mainnet"]};case"milkomeda-mainnet":return{chainId:`0x${g.id.toString(16)}`,chainName:"Milkomeda C1 Mainnet",nativeCurrency:{name:"Milkomeda ADA",symbol:"mADA",decimals:18},rpcUrls:["https://rpc-mainnet-cardano-evm.c1.milkomeda.com"],blockExplorerUrls:["https://explorer-mainnet-cardano-evm.c1.milkomeda.com"]};default:return null}})(e);if(!n)throw new Error(`Unsupported network: ${e}`);try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:n.chainId}]})}catch(e){if(4902!==e.code)throw 4001===e.code?new Error(`User rejected switching to ${n.chainName}. Please switch manually in MetaMask.`):new Error(`Failed to switch to ${n.chainName}: ${e.message}`);try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[n]})}catch(e){if(4001===e.code)throw new Error(`User rejected adding ${n.chainName} to MetaMask. Please add it manually.`);throw new Error(`Failed to add ${n.chainName} to MetaMask: ${e.message}`)}}},v=({children:a})=>{const{selectedNetwork:i}=w(),[r,s]=n.useState(null),[o,l]=n.useState(null),[c,u]=n.useState(null),[d,p]=n.useState(null),[m,y]=n.useState(null),[h,b]=n.useState(null),[C,v]=n.useState(!1),_=i?(e=>{switch(e){case"sepolia":return t.sepolia;case"ethereum-classic":return f;case"milkomeda-mainnet":return g;default:return null}})(i):null,E=_?_.id:null,S=n.useRef(null),x=n.useRef(null),N=n.useCallback(()=>{s(null),l(null),u(null),p(null),y(null),b(null)},[]),A=n.useCallback(async t=>{const n=parseInt(t,16);if(p(n),_&&n===E){if(b(null),window.ethereum&&_){const t=e.createWalletClient({chain:_,transport:e.custom(window.ethereum)});s(t)}}else if(_&&n!==E){b(`Wrong network detected. Please switch to ${_?.name||i||"selected network"}`)}},[_,E,i]);x.current=A;const M=n.useCallback(async t=>{if(0===t.length){if(N(),window.ethereum){const e=S.current,t=x.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}}else if(u(t[0]),_)try{const n=e.createPublicClient({chain:_,transport:e.http()});l(n);const a=await n.getBalance({address:t[0]});y(parseFloat(a)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),y(null)}},[_,N]);S.current=M;const P=n.useCallback(()=>{if(N(),window.ethereum){const e=S.current,t=x.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}},[N]),D=n.useCallback(()=>{_&&l(e.createPublicClient({chain:_,transport:e.http()}))},[_]),B=n.useCallback(async()=>{if(!window.ethereum)return b("Please install MetaMask or another Web3 wallet"),!1;if(!i||!_)return b("Please select a network first"),!1;v(!0),b(null);try{const t=await window.ethereum.request({method:"eth_requestAccounts"});if(0===t.length)throw new Error("No wallet address found. Please unlock your wallet.");const n=await window.ethereum.request({method:"eth_chainId"});parseInt(n,16)!==E&&await T(i);const a=e.createWalletClient({chain:_,transport:e.custom(window.ethereum)});s(a),u(t[0]),p(E);const r=e.createPublicClient({chain:_,transport:e.http()});l(r);try{const e=await r.getBalance({address:t[0]});y(parseFloat(e)/Math.pow(10,18))}catch(e){console.error("Error fetching balance:",e),y(null)}return S.current=M,x.current=A,window.ethereum.on("accountsChanged",M),window.ethereum.on("chainChanged",A),!0}catch(e){return console.error("Error connecting wallet:",e),b(e.message),!1}finally{v(!1)}},[i,_,E,M,A]),I=n.useCallback(async()=>{if(!(window.ethereum&&i&&_&&c)){return b("Wallet not connected or network not selected"),null}try{const t=await window.ethereum.request({method:"eth_chainId"});if(parseInt(t,16)!==E){b(null),await T(i);const e=500;await new Promise(t=>setTimeout(t,e));const t=await window.ethereum.request({method:"eth_chainId"}),n=parseInt(t,16);if(n!==E)throw new Error(`Failed to switch network. MetaMask is still on chain ${n}, expected ${E}`)}const n=e.createWalletClient({chain:_,transport:e.custom(window.ethereum)});return s(n),p(E),b(null),n}catch(e){return b(e.message),null}},[i,_,E,c]),R=n.useRef(i);return n.useEffect(()=>{if(null!==R.current&&R.current!==i&&c&&(N(),window.ethereum)){const e=S.current,t=x.current;e&&window.ethereum.removeListener("accountsChanged",e),t&&window.ethereum.removeListener("chainChanged",t)}R.current=i},[i,c,N]),n.useEffect(()=>{D()},[D]),n.createElement(k.Provider,{value:{walletClient:r,publicClient:o,account:c,chainId:d,balance:m,error:h,isConnecting:C,connectWallet:B,disconnectWallet:P,ensureCorrectNetwork:I,expectedChainId:E}},a)},_=({onTransactionComplete:t})=>{const{networkSelector:a,selectedNetwork:i,selectedToken:r,transactionDetails:o,setTransactionDetails:l}=w(),{connectWallet:c,account:u,walletClient:p,isConnecting:m,ensureCorrectNetwork:y}=(()=>{const e=n.useContext(k);if(!e)throw new Error("useWallet must be used within a WalletProvider");return e})(),[h,b]=n.useState(null),[C,g]=n.useState(null),[f,T]=n.useState(null),[v,_]=n.useState(""),[E,S]=n.useState(null),[x,N]=n.useState(null),[A,M]=n.useState(!1);if(n.useEffect(()=>{T(null),g(null),_(""),N(null),S(null)},[i,r]),n.useEffect(()=>{(async()=>{if(i&&r)try{const e=a.getSelectedNetworkConfig(),t=a.getReceivingAddress(),n=a.getTokenAmount(r.key),o=new s(e.uri,e.djedAddress);await o.init(),b(o);let c=null;"native"===r.key&&(c=await o.handleTradeDataBuySc(String(n)),g(c)),l({network:i,token:r.key,tokenSymbol:r.symbol,amount:n||"0",receivingAddress:t,djedContractAddress:e.djedAddress,isDirectTransfer:r.isDirectTransfer||!1,isNativeToken:r.isNative||!1,tradeAmount:c||null,...o.getBlockchainDetails()})}catch(e){console.error("Error initializing transaction:",e)}})()},[i,r]),!o)return n.createElement("div",{className:d.loading},"Initializing transaction...");const P=()=>{if(!E||!i)return null;const e={"ethereum-classic":"https://blockscout.com/etc/mainnet/tx/",sepolia:"https://sepolia.etherscan.io/tx/","milkomeda-mainnet":"https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/"};return e[i]?`${e[i]}${E}`:null};return n.createElement("div",{className:d.transactionReview},n.createElement("div",{className:d.transactionInfo},n.createElement("span",null,"Network:"),n.createElement("span",null,o.network)),n.createElement("div",{className:d.transactionInfo},n.createElement("span",null,"You Pay:"),n.createElement("span",null,"stablecoin"===r.key?`${o.amount} ${o.tokenSymbol}`:`${C||"Calculating..."} ${o.tokenSymbol}`)),n.createElement("button",{onClick:async()=>{await c()},disabled:m},m?"Connecting...":"Connect Wallet"),u&&!f&&n.createElement("button",{onClick:async()=>{if(u&&h)try{T(null),N(null),_("⏳ Preparing transaction...");const t=o.receivingAddress;let n;if("native"===r.key){if(!p)return void _("❌ Wallet client not available");const a=C||"0",i=e.parseEther(String(a));n=await h.buyStablecoins(p,t,i)}else{const i=a.getSelectedNetworkConfig(),r=i?.tokens?.stablecoin?.address;if(!r)throw new Error("Stablecoin address not found in network configuration");const s=o.amount?e.parseUnits(String(o.amount),o.stableCoinDecimals):0n;n={to:r,value:0n,data:e.encodeFunctionData({abi:[{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],functionName:"transfer",args:[t,s]}),account:u}}T(n),_("✅ Transaction ready! Click 'Send Transaction' to proceed.")}catch(e){N(e),_("❌ Transaction preparation failed.")}else _("❌ Wallet not connected or transaction not ready")}},"Prepare Transaction"),u&&f&&n.createElement("button",{onClick:async()=>{try{if(!u||!f)return void _("❌ Wallet account or transaction missing");_("⏳ Verifying network...");const e=await y();if(!e)return void _("❌ Failed to switch network");_("⏳ Sending transaction...");const n=await e.sendTransaction({...f,account:u});S(n),_("✅ Transaction sent!"),t&&t({txHash:n,network:i,token:r?.key,tokenSymbol:r?.symbol,amount:o?.amount,receivingAddress:o?.receivingAddress})}catch(e){N(e),_("❌ Transaction failed."),console.error(e)}},disabled:!!E},"Send Transaction"),v&&n.createElement("div",null,v),E&&n.createElement("div",null,"✅ Transaction Hash:"," ",P()?n.createElement("a",{href:P(),target:"_blank",rel:"noreferrer"},E.slice(0,6),"...",E.slice(-6)):E))},E=({onClose:e,buttonSize:t,onTransactionComplete:a})=>{const{resetSelections:i}=w();return n.createElement(p,{onClose:()=>{i(),e()},size:t},n.createElement(b,null),n.createElement(C,null),n.createElement(_,{onTransactionComplete:a}))},S=({onClose:e,buttonSize:t,networkSelector:a,onTransactionComplete:i})=>n.createElement(h,{networkSelector:a},n.createElement(v,null,n.createElement(E,{onClose:e,buttonSize:t,onTransactionComplete:i})));return{NetworkSelector:class{constructor(e){this.merchantConfig=e,this.blacklist=e.getBlacklist(),this.availableNetworks=this.getAvailableNetworks(),this.selectedNetwork=null}getAvailableNetworks(){return Object.entries(a).reduce((e,[t,n])=>(this.blacklist.includes(n.chainId)||(e[t]=n),e),{})}selectNetwork(e){return null===e?(this.selectedNetwork=null,console.log("Network selection reset"),!0):this.availableNetworks[e]?(this.selectedNetwork=e,console.log(`Network selected: ${e}`),!0):(console.error(`Invalid network: ${e}`),!1)}getSelectedNetworkConfig(){return this.selectedNetwork?this.availableNetworks[this.selectedNetwork]:null}getReceivingAddress(){return this.merchantConfig.getReceivingAddress()}getTokenAmount(e){return this.merchantConfig.getTokenAmount(this.selectedNetwork,e)}},Transaction:s,Config:class{constructor(e={}){this.receivingAddress=e.receivingAddress||"",this.blacklist=e.blacklist||[],this.amounts=e.Amounts||{},this.validateConfig()}validateConfig(){if(!this.receivingAddress)throw new Error("Receiving address is required");for(const[e,t]of Object.entries(this.amounts)){if(!a[e])throw new Error(`Invalid network: ${e}`);if(!t.stablecoin||"number"!=typeof t.stablecoin||t.stablecoin<=0)throw new Error(`Invalid stablecoin amount for network ${e}`)}}getBlacklist(){return this.blacklist}getReceivingAddress(){return this.receivingAddress}getTokenAmount(e){console.log("Getting amount for network:",e),console.log("Amounts object:",this.amounts);const t=this.amounts[e]?.stablecoin;return console.log("Returning amount:",t),t||0}},Widget:({networkSelector:e,buttonSize:t="medium",onTransactionComplete:a,onSuccess:i})=>{const[r,s]=n.useState(!1),o=a||i;return n.createElement("div",{className:d.widgetContainer},!r&&n.createElement(u,{onClick:()=>{s(!0)},size:t}),r&&n.createElement(S,{onClose:()=>{s(!1)},buttonSize:t,networkSelector:e,onTransactionComplete:o}))},PayButton:u,Dialog:p,NetworkDropdown:b}});
//# sourceMappingURL=index.js.map
diff --git a/stablepay-sdk/dist/umd/index.js.map b/stablepay-sdk/dist/umd/index.js.map
index f7c2fad..89e2c90 100644
--- a/stablepay-sdk/dist/umd/index.js.map
+++ b/stablepay-sdk/dist/umd/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["../../src/utils/config.js","../../src/core/Transaction.js","../../src/widget/PayButton.jsx","../../src/widget/Dialog.jsx","../../src/core/TokenSelector.js","../../src/contexts/NetworkContext.jsx","../../src/widget/NetworkDropdown.jsx","../../src/widget/TokenDropdown.jsx","../../src/contexts/chains.js","../../src/contexts/WalletContext.jsx","../../src/widget/TransactionReview.jsx","../../src/widget/Widget.jsx","../../src/index.js","../../src/core/NetworkSelector.js","../../src/core/MerchantConfig.js"],"sourcesContent":["// src/utils/config.js\nexport const networksConfig = {\n 'sepolia': {\n uri: 'https://ethereum-sepolia.publicnode.com/',\n chainId: 11155111,\n djedAddress: '0x624FcD0a1F9B5820c950FefD48087531d38387f4',\n tokens: {\n stablecoin: {\n symbol: 'SOD',\n address: '0x6b930182787F346F18666D167e8d32166dC5eFBD',\n decimals: 18,\n isDirectTransfer: true\n },\n native: {\n symbol: 'ETH',\n decimals: 18,\n isNative: true\n }\n },\n feeUI: 0\n },\n 'milkomeda-mainnet': {\n uri: 'https://rpc-mainnet-cardano-evm.c1.milkomeda.com',\n chainId: 2001,\n djedAddress: '0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76',\n tokens: {\n stablecoin: {\n symbol: 'MOD',\n address: '0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9',\n decimals: 18,\n isDirectTransfer: true\n },\n native: {\n symbol: 'mADA',\n decimals: 18,\n isNative: true\n }\n },\n feeUI: 0\n },\n 'ethereum-classic': {\n uri: 'https://etc.rivet.link',\n chainId: 61,\n djedAddress: '0xCc3664d7021FD36B1Fe2b136e2324710c8442cCf',\n tokens: {\n stablecoin: {\n symbol: 'ECSD',\n address: '0x5A7Ca94F6E969C94bef4CE5e2f90ed9d4891918A',\n decimals: 18,\n isDirectTransfer: true\n },\n native: {\n symbol: 'ETC',\n decimals: 18,\n isNative: true\n }\n },\n feeUI: 0\n }\n};","import { getWeb3, getDjedContract, getCoinContracts, getDecimals, getOracleAddress, getOracleContract, tradeDataPriceBuySc, buyScTx } from 'djed-sdk';\n\nexport class Transaction {\n constructor(networkUri, djedAddress) {\n this.networkUri = networkUri;\n this.djedAddress = djedAddress;\n }\n\n async init() {\n if (!this.networkUri || !this.djedAddress) {\n throw new Error('Network URI and DJED address are required');\n }\n\n try {\n this.web3 = await getWeb3(this.networkUri);\n this.djedContract = getDjedContract(this.web3, this.djedAddress);\n \n try {\n const { stableCoin, reserveCoin } = await getCoinContracts(this.djedContract, this.web3);\n const { scDecimals, rcDecimals } = await getDecimals(stableCoin, reserveCoin);\n this.stableCoin = stableCoin;\n this.reserveCoin = reserveCoin;\n this.scDecimals = scDecimals;\n this.rcDecimals = rcDecimals;\n\n this.oracleContract = await getOracleAddress(this.djedContract).then((addr) =>\n getOracleContract(this.web3, addr, this.djedContract._address)\n );\n\n this.oracleAddress = this.oracleContract._address;\n } catch (contractError) {\n console.error('[Transaction] Error fetching contract details:', contractError);\n if (contractError.message && contractError.message.includes('execution reverted')) {\n const getNetworkInfo = (uri) => {\n if (uri.includes('milkomeda')) return { name: 'Milkomeda', chainId: '2001' };\n if (uri.includes('mordor')) return { name: 'Mordor Testnet', chainId: '63' };\n if (uri.includes('sepolia')) return { name: 'Sepolia', chainId: '11155111' };\n if (uri.includes('etc.rivet.link')) return { name: 'Ethereum Classic', chainId: '61' };\n return { name: 'the selected network', chainId: 'unknown' };\n };\n const { name: networkName, chainId } = getNetworkInfo(this.networkUri);\n throw new Error(\n `Failed to interact with Djed contract at ${this.djedAddress} on ${networkName}.\\n\\n` +\n `Possible causes:\\n` +\n `- The contract address may be incorrect\\n` +\n `- The contract may not be deployed on ${networkName}\\n` +\n `- The contract may not be a valid Djed contract\\n\\n` +\n `Please verify the contract address is correct for ${networkName} (Chain ID: ${chainId}).`\n );\n }\n throw contractError;\n }\n } catch (error) {\n console.error('[Transaction] Error initializing transaction:', error);\n if (error.message && (error.message.includes('CONNECTION ERROR') || error.message.includes('ERR_NAME_NOT_RESOLVED'))) {\n const getNetworkName = (uri) => {\n if (uri.includes('milkomeda')) return 'Milkomeda';\n if (uri.includes('mordor')) return 'Mordor';\n if (uri.includes('sepolia')) return 'Sepolia';\n return 'the selected network';\n };\n const networkName = getNetworkName(this.networkUri);\n throw new Error(\n `Failed to connect to ${networkName} RPC endpoint: ${this.networkUri}\\n\\n` +\n `Possible causes:\\n` +\n `- The RPC endpoint may be temporarily unavailable\\n` +\n `- DNS resolution issue (check your internet connection)\\n` +\n `- Network firewall blocking the connection\\n\\n` +\n `Please try again in a few moments or check the network status.`\n );\n }\n throw error;\n }\n }\n\n getBlockchainDetails() {\n return {\n web3Available: !!this.web3,\n djedContractAvailable: !!this.djedContract,\n stableCoinAddress: this.stableCoin ? this.stableCoin._address : 'N/A',\n reserveCoinAddress: this.reserveCoin ? this.reserveCoin._address : 'N/A',\n stableCoinDecimals: this.scDecimals,\n reserveCoinDecimals: this.rcDecimals,\n oracleAddress: this.oracleAddress || 'N/A',\n oracleContractAvailable: !!this.oracleContract,\n };\n }\n\n async handleTradeDataBuySc(amountScaled) {\n if (!this.djedContract) {\n throw new Error(\"DJED contract is not initialized\");\n }\n if (typeof amountScaled !== 'string') {\n throw new Error(\"Amount must be a string\");\n }\n try {\n const result = await tradeDataPriceBuySc(this.djedContract, this.scDecimals, amountScaled);\n return result.totalBCScaled;\n } catch (error) {\n console.error(\"Error fetching trade data for buying stablecoins: \", error);\n throw error;\n }\n }\n\n async buyStablecoins(payer, receiver, value) {\n if (!this.djedContract) {\n throw new Error(\"DJED contract is not initialized\");\n }\n try {\n const UI = '0x0232556C83791b8291E9b23BfEa7d67405Bd9839';\n\n const txData = await buyScTx(this.djedContract, payer, receiver, value, UI, this.djedAddress);\n\n return txData;\n } catch (error) {\n console.error(\"Error executing buyStablecoins transaction: \", error);\n throw error;\n }\n }\n}\n","import React from \"react\";\nimport styles from \"../styles/main.css\";\n\nconst PayButton = ({ onClick, size = \"medium\" }) => {\n const sizeStyles = {\n small: { width: \"200px\", height: \"50px\", fontSize: \"14px\" },\n medium: { width: \"250px\", height: \"60px\", fontSize: \"16px\" },\n large: { width: \"300px\", height: \"70px\", fontSize: \"18px\" },\n };\n\n const logoSizes = {\n small: { width: \"35px\", height: \"33px\" },\n medium: { width: \"40px\", height: \"38px\" },\n large: { width: \"45px\", height: \"43px\" },\n };\n\n const buttonStyle = sizeStyles[size] || sizeStyles.medium;\n const logoStyle = logoSizes[size] || logoSizes.medium;\n\n return (\n \n );\n};\n\nexport default PayButton;\n","import React from 'react';\nimport styles from '../styles/PricingCard.css';\n\n\nconst Dialog = ({ children, onClose, size = 'medium' }) => {\n return (\n
\n
\n
\n
\n
\n {children}\n
\n
\n
\n );\n};\n\nexport default Dialog;","// TokenSelector.js\n\nexport class TokenSelector {\n constructor(networkSelector) {\n this.networkSelector = networkSelector;\n this.selectedToken = null;\n }\n\n selectToken(tokenKey) {\n const networkConfig = this.networkSelector.getSelectedNetworkConfig();\n if (networkConfig && networkConfig.tokens[tokenKey]) {\n this.selectedToken = {\n key: tokenKey,\n ...networkConfig.tokens[tokenKey]\n };\n return true;\n }\n return false;\n }\n\n getSelectedToken() {\n return this.selectedToken;\n }\n\n getAvailableTokens() {\n const networkConfig = this.networkSelector.getSelectedNetworkConfig();\n if (!networkConfig) return [];\n\n return Object.entries(networkConfig.tokens).map(([key, config]) => ({\n key,\n ...config\n }));\n }\n\n resetSelection() {\n this.selectedToken = null;\n }\n}","import React, { createContext, useState, useContext, useEffect } from 'react';\nimport { TokenSelector } from '../core/TokenSelector';\n\nconst NetworkContext = createContext();\n\nexport const NetworkProvider = ({ children, networkSelector }) => {\n const [tokenSelector] = useState(() => new TokenSelector(networkSelector));\n const [selectedNetwork, setSelectedNetwork] = useState(null);\n const [selectedToken, setSelectedToken] = useState(null);\n const [transactionDetails, setTransactionDetails] = useState(null);\n\n const resetState = () => {\n setSelectedToken(null);\n setTransactionDetails(null);\n };\n\n const selectNetwork = (networkKey) => {\n if (networkSelector.selectNetwork(networkKey)) {\n setSelectedNetwork(networkKey);\n resetState(); \n return true;\n }\n return false;\n };\n\n const selectToken = (tokenKey) => {\n if (tokenSelector.selectToken(tokenKey)) {\n const token = tokenSelector.getSelectedToken();\n setSelectedToken(token);\n return true;\n }\n return false;\n };\n\n const resetSelections = () => {\n networkSelector.selectNetwork(null);\n setSelectedNetwork(null);\n resetState();\n };\n\n // Synchronize context state with NetworkSelector\n useEffect(() => {\n setSelectedNetwork(networkSelector.selectedNetwork);\n }, [networkSelector.selectedNetwork]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useNetwork = () => {\n const context = useContext(NetworkContext);\n if (context === undefined) {\n throw new Error('useNetwork must be used within a NetworkProvider');\n }\n return context;\n};\n\nexport default NetworkContext;","import React from 'react';\nimport { useNetwork } from '../contexts/NetworkContext';\nimport styles from '../styles/PricingCard.css';\n\nconst NetworkDropdown = () => {\n const { networkSelector, selectedNetwork, selectNetwork } = useNetwork();\n\n const handleNetworkChange = (event) => {\n selectNetwork(event.target.value);\n };\n\n return (\n \n \n \n
\n );\n};\n\nexport default NetworkDropdown;","import React, { useState } from \"react\";\nimport { useNetwork } from \"../contexts/NetworkContext\";\nimport { Transaction } from \"../core/Transaction\";\nimport styles from \"../styles/PricingCard.css\";\n\nconst TokenDropdown = () => {\n const {\n networkSelector,\n tokenSelector,\n selectedNetwork,\n selectedToken,\n selectToken,\n setTransactionDetails,\n } = useNetwork();\n\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const handleTokenChange = async (event) => {\n const newValue = event.target.value;\n setError(null);\n setLoading(true);\n\n try {\n if (selectToken(newValue)) {\n const networkConfig = networkSelector.getSelectedNetworkConfig();\n const transaction = new Transaction(\n networkConfig.uri,\n networkConfig.djedAddress\n );\n await transaction.init();\n\n const tokenAmount = networkSelector.getTokenAmount(newValue);\n const blockchainDetails = transaction.getBlockchainDetails();\n\n let tradeData = null;\n if (newValue === \"native\") {\n tradeData = await transaction.handleTradeDataBuySc(\n String(tokenAmount)\n );\n }\n\n setTransactionDetails({\n network: selectedNetwork,\n token: newValue,\n tokenSymbol: tokenSelector.getSelectedToken().symbol,\n amount: tokenAmount,\n receivingAddress: networkSelector.getReceivingAddress(),\n djedContractAddress: networkConfig.djedAddress,\n isDirectTransfer:\n tokenSelector.getSelectedToken().isDirectTransfer || false,\n isNativeToken: tokenSelector.getSelectedToken().isNative || false,\n tradeAmount: tradeData ? tradeData.amount : null,\n ...blockchainDetails,\n });\n }\n } catch (err) {\n console.error(\"Error fetching transaction details:\", err);\n setError(\"Failed to fetch transaction details. Please try again.\");\n } finally {\n setLoading(false);\n }\n };\n\n const availableTokens = selectedNetwork\n ? tokenSelector.getAvailableTokens()\n : [];\n\n return (\n \n
\n
\n {error &&
{error}
}\n
\n );\n};\n\nexport default TokenDropdown;\n","import { defineChain } from 'viem';\nimport { sepolia } from 'viem/chains';\n\nexport const mordor = defineChain({\n id: 63,\n name: 'Mordor Testnet',\n network: 'mordor',\n nativeCurrency: {\n decimals: 18,\n name: 'Mordor Ether',\n symbol: 'METC',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.mordor.etccooperative.org'],\n webSocket: ['wss://rpc.mordor.etccooperative.org/ws'],\n },\n },\n blockExplorers: {\n default: { name: 'BlockScout', url: 'https://blockscout.com/etc/mordor' },\n },\n testnet: true,\n});\n\nexport const milkomeda = defineChain({\n id: 2001,\n name: 'Milkomeda C1 Mainnet',\n network: 'milkomeda',\n nativeCurrency: {\n decimals: 18,\n name: 'Milkomeda ADA',\n symbol: 'mADA',\n },\n rpcUrls: {\n default: {\n http: ['https://rpc-mainnet-cardano-evm.c1.milkomeda.com'],\n },\n },\n blockExplorers: {\n default: { name: 'Milkomeda Explorer', url: 'https://explorer-mainnet-cardano-evm.c1.milkomeda.com' },\n },\n testnet: false,\n});\n\nexport const etcMainnet = defineChain({\n id: 61,\n name: 'Ethereum Classic',\n network: 'etc',\n nativeCurrency: {\n decimals: 18,\n name: 'Ethereum Classic',\n symbol: 'ETC',\n },\n rpcUrls: {\n default: {\n http: ['https://etc.rivet.link'],\n },\n },\n blockExplorers: {\n default: { name: 'Blockscout', url: 'https://blockscout.com/etc/mainnet' },\n },\n testnet: false,\n});\n\nexport const getChainByNetworkKey = (networkKey) => {\n switch (networkKey) {\n case 'sepolia':\n return sepolia;\n case 'ethereum-classic':\n return etcMainnet;\n case 'milkomeda-mainnet':\n return milkomeda;\n default:\n return null;\n }\n};\n\nexport const getChainConfigForWallet = (networkKey) => {\n switch (networkKey) {\n case 'sepolia':\n return {\n chainId: `0x${sepolia.id.toString(16)}`,\n chainName: 'Sepolia',\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n rpcUrls: sepolia.rpcUrls.default.http,\n blockExplorerUrls: sepolia.blockExplorers?.default?.url ? [sepolia.blockExplorers.default.url] : [],\n };\n case 'ethereum-classic':\n return {\n chainId: `0x${etcMainnet.id.toString(16)}`,\n chainName: 'Ethereum Classic',\n nativeCurrency: {\n name: 'Ethereum Classic',\n symbol: 'ETC',\n decimals: 18,\n },\n rpcUrls: ['https://etc.rivet.link'],\n blockExplorerUrls: ['https://blockscout.com/etc/mainnet'],\n };\n case 'milkomeda-mainnet':\n return {\n chainId: `0x${milkomeda.id.toString(16)}`,\n chainName: 'Milkomeda C1 Mainnet',\n nativeCurrency: {\n name: 'Milkomeda ADA',\n symbol: 'mADA',\n decimals: 18,\n },\n rpcUrls: ['https://rpc-mainnet-cardano-evm.c1.milkomeda.com'],\n blockExplorerUrls: ['https://explorer-mainnet-cardano-evm.c1.milkomeda.com'],\n };\n default:\n return null;\n }\n};\n","import React, { createContext, useContext, useState, useCallback, useEffect, useRef } from 'react';\nimport { createWalletClient, createPublicClient, custom, http } from 'viem';\nimport { useNetwork } from './NetworkContext';\nimport { getChainByNetworkKey, getChainConfigForWallet } from './chains';\n\nconst WalletContext = createContext(null);\n\nexport const useWallet = () => {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error('useWallet must be used within a WalletProvider');\n }\n return context;\n};\n\nconst switchToNetwork = async (networkKey) => {\n if (!window.ethereum) {\n throw new Error('MetaMask not installed');\n }\n\n const chainConfig = getChainConfigForWallet(networkKey);\n if (!chainConfig) {\n throw new Error(`Unsupported network: ${networkKey}`);\n }\n\n try {\n await window.ethereum.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: chainConfig.chainId }],\n });\n } catch (switchError) {\n if (switchError.code === 4902) {\n try {\n await window.ethereum.request({\n method: 'wallet_addEthereumChain',\n params: [chainConfig],\n });\n } catch (addError) {\n if (addError.code === 4001) {\n throw new Error(`User rejected adding ${chainConfig.chainName} to MetaMask. Please add it manually.`);\n }\n throw new Error(`Failed to add ${chainConfig.chainName} to MetaMask: ${addError.message}`);\n }\n } else if (switchError.code === 4001) {\n throw new Error(`User rejected switching to ${chainConfig.chainName}. Please switch manually in MetaMask.`);\n } else {\n throw new Error(`Failed to switch to ${chainConfig.chainName}: ${switchError.message}`);\n }\n }\n};\n\nexport const WalletProvider = ({ children }) => {\n const { selectedNetwork } = useNetwork();\n const [walletClient, setWalletClient] = useState(null);\n const [publicClient, setPublicClient] = useState(null);\n const [account, setAccount] = useState(null);\n const [chainId, setChainId] = useState(null);\n const [balance, setBalance] = useState(null);\n const [error, setError] = useState(null);\n const [isConnecting, setIsConnecting] = useState(false);\n\n const selectedChain = selectedNetwork ? getChainByNetworkKey(selectedNetwork) : null;\n const expectedChainId = selectedChain ? selectedChain.id : null;\n\n const handleAccountsChangedRef = useRef(null);\n const handleChainChangedRef = useRef(null);\n\n const disconnectWalletInternal = useCallback(() => {\n setWalletClient(null);\n setPublicClient(null);\n setAccount(null);\n setChainId(null);\n setBalance(null);\n setError(null);\n }, []);\n\n const handleChainChanged = useCallback(async (chainIdHex) => {\n const newChainId = parseInt(chainIdHex, 16);\n setChainId(newChainId);\n\n if (selectedChain && newChainId === expectedChainId) {\n setError(null);\n if (window.ethereum && selectedChain) {\n const newWalletClient = createWalletClient({ \n chain: selectedChain, \n transport: custom(window.ethereum) \n });\n setWalletClient(newWalletClient);\n }\n } else if (selectedChain && newChainId !== expectedChainId) {\n const chainName = selectedChain?.name || selectedNetwork || 'selected network';\n setError(`Wrong network detected. Please switch to ${chainName}`);\n }\n }, [selectedChain, expectedChainId, selectedNetwork]);\n\n handleChainChangedRef.current = handleChainChanged;\n\n const handleAccountsChanged = useCallback(async (accounts) => {\n if (accounts.length === 0) {\n disconnectWalletInternal();\n if (window.ethereum) {\n const accountsHandler = handleAccountsChangedRef.current;\n const chainHandler = handleChainChangedRef.current;\n if (accountsHandler) {\n window.ethereum.removeListener('accountsChanged', accountsHandler);\n }\n if (chainHandler) {\n window.ethereum.removeListener('chainChanged', chainHandler);\n }\n }\n } else {\n setAccount(accounts[0]);\n if (selectedChain) {\n try {\n const newPublicClient = createPublicClient({ chain: selectedChain, transport: http() });\n setPublicClient(newPublicClient);\n const balance = await newPublicClient.getBalance({ address: accounts[0] });\n setBalance(parseFloat(balance) / Math.pow(10, 18));\n } catch (error) {\n console.error('Error fetching balance:', error);\n setBalance(null);\n }\n }\n }\n }, [selectedChain, disconnectWalletInternal]);\n\n handleAccountsChangedRef.current = handleAccountsChanged;\n\n const disconnectWallet = useCallback(() => {\n disconnectWalletInternal();\n if (window.ethereum) {\n const accountsHandler = handleAccountsChangedRef.current;\n const chainHandler = handleChainChangedRef.current;\n if (accountsHandler) {\n window.ethereum.removeListener('accountsChanged', accountsHandler);\n }\n if (chainHandler) {\n window.ethereum.removeListener('chainChanged', chainHandler);\n }\n }\n }, [disconnectWalletInternal]);\n\n const connectPublicClient = useCallback(() => {\n if (selectedChain) {\n setPublicClient(createPublicClient({ chain: selectedChain, transport: http() }));\n }\n }, [selectedChain]);\n\n const connectWallet = useCallback(async () => {\n if (!window.ethereum) {\n setError('Please install MetaMask or another Web3 wallet');\n return false;\n }\n\n if (!selectedNetwork || !selectedChain) {\n setError('Please select a network first');\n return false;\n }\n\n setIsConnecting(true);\n setError(null);\n\n try {\n const accounts = await window.ethereum.request({ \n method: 'eth_requestAccounts' \n });\n\n if (accounts.length === 0) {\n throw new Error('No wallet address found. Please unlock your wallet.');\n }\n\n const chainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\n const currentChainId = parseInt(chainIdHex, 16);\n\n if (currentChainId !== expectedChainId) {\n await switchToNetwork(selectedNetwork);\n }\n\n const newWalletClient = createWalletClient({\n chain: selectedChain,\n transport: custom(window.ethereum),\n });\n\n setWalletClient(newWalletClient);\n setAccount(accounts[0]);\n setChainId(expectedChainId);\n\n const newPublicClient = createPublicClient({ chain: selectedChain, transport: http() });\n setPublicClient(newPublicClient);\n try {\n const balance = await newPublicClient.getBalance({ address: accounts[0] });\n setBalance(parseFloat(balance) / Math.pow(10, 18));\n } catch (error) {\n console.error('Error fetching balance:', error);\n setBalance(null);\n }\n\n handleAccountsChangedRef.current = handleAccountsChanged;\n handleChainChangedRef.current = handleChainChanged;\n window.ethereum.on('accountsChanged', handleAccountsChanged);\n window.ethereum.on('chainChanged', handleChainChanged);\n\n return true;\n } catch (err) {\n console.error('Error connecting wallet:', err);\n setError(err.message);\n return false;\n } finally {\n setIsConnecting(false);\n }\n }, [selectedNetwork, selectedChain, expectedChainId, handleAccountsChanged, handleChainChanged]);\n\n const ensureCorrectNetwork = useCallback(async () => {\n if (!window.ethereum || !selectedNetwork || !selectedChain || !account) {\n const errorMsg = 'Wallet not connected or network not selected';\n setError(errorMsg);\n return null;\n }\n\n try {\n const chainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\n const currentChainId = parseInt(chainIdHex, 16);\n\n if (currentChainId !== expectedChainId) {\n setError(null);\n await switchToNetwork(selectedNetwork);\n const NETWORK_SWITCH_DELAY_MS = 500;\n await new Promise(resolve => setTimeout(resolve, NETWORK_SWITCH_DELAY_MS));\n \n const newChainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\n const newChainId = parseInt(newChainIdHex, 16);\n if (newChainId !== expectedChainId) {\n throw new Error(`Failed to switch network. MetaMask is still on chain ${newChainId}, expected ${expectedChainId}`);\n }\n }\n\n const freshWalletClient = createWalletClient({\n chain: selectedChain,\n transport: custom(window.ethereum),\n });\n\n setWalletClient(freshWalletClient);\n setChainId(expectedChainId);\n setError(null);\n return freshWalletClient;\n } catch (err) {\n setError(err.message);\n return null;\n }\n }, [selectedNetwork, selectedChain, expectedChainId, account]);\n\n const prevNetworkRef = useRef(selectedNetwork);\n\n useEffect(() => {\n if (prevNetworkRef.current !== null && \n prevNetworkRef.current !== selectedNetwork && \n account) {\n disconnectWalletInternal();\n if (window.ethereum) {\n const accountsHandler = handleAccountsChangedRef.current;\n const chainHandler = handleChainChangedRef.current;\n if (accountsHandler) {\n window.ethereum.removeListener('accountsChanged', accountsHandler);\n }\n if (chainHandler) {\n window.ethereum.removeListener('chainChanged', chainHandler);\n }\n }\n }\n prevNetworkRef.current = selectedNetwork;\n }, [selectedNetwork, account, disconnectWalletInternal]);\n\n useEffect(() => {\n connectPublicClient();\n }, [connectPublicClient]);\n\n return (\n \n {children}\n \n );\n};","import React, { useState, useEffect } from \"react\";\nimport { useNetwork } from \"../contexts/NetworkContext\";\nimport { useWallet } from \"../contexts/WalletContext\";\nimport { Transaction } from \"../core/Transaction\";\nimport { parseEther, encodeFunctionData, parseUnits } from \"viem\"; \nimport styles from \"../styles/PricingCard.css\"; \n\nconst TransactionReview = ({ onTransactionComplete }) => {\n const {\n networkSelector,\n selectedNetwork,\n selectedToken,\n transactionDetails: contextTransactionDetails,\n setTransactionDetails,\n } = useNetwork();\n\n const {\n connectWallet,\n account,\n walletClient,\n publicClient,\n isConnecting,\n ensureCorrectNetwork,\n expectedChainId,\n } = useWallet();\n\n const [transaction, setTransaction] = useState(null);\n const [tradeDataBuySc, setTradeDataBuySc] = useState(null);\n const [txData, setTxData] = useState(null);\n const [message, setMessage] = useState(\"\");\n const [txHash, setTxHash] = useState(null);\n const [error, setError] = useState(null);\n const [isErrorDetailsVisible, setIsErrorDetailsVisible] = useState(false);\n\n useEffect(() => {\n setTxData(null);\n setTradeDataBuySc(null);\n setMessage(\"\");\n setError(null);\n setTxHash(null);\n }, [selectedNetwork, selectedToken]);\n\n useEffect(() => {\n const initializeTransaction = async () => {\n if (!selectedNetwork || !selectedToken) return;\n\n try {\n const networkConfig = networkSelector.getSelectedNetworkConfig();\n const receivingAddress = networkSelector.getReceivingAddress();\n const tokenAmount = networkSelector.getTokenAmount(selectedToken.key);\n\n const newTransaction = new Transaction(\n networkConfig.uri,\n networkConfig.djedAddress\n );\n await newTransaction.init();\n setTransaction(newTransaction);\n\n let tradeData = null;\n if (selectedToken.key === \"native\") {\n try {\n tradeData = await newTransaction.handleTradeDataBuySc(String(tokenAmount));\n setTradeDataBuySc(tradeData);\n } catch (tradeError) {\n console.error(\"Error fetching trade data:\", tradeError);\n }\n }\n\n setTransactionDetails({\n network: selectedNetwork,\n token: selectedToken.key,\n tokenSymbol: selectedToken.symbol,\n amount: tokenAmount || \"0\",\n receivingAddress,\n djedContractAddress: networkConfig.djedAddress,\n isDirectTransfer: selectedToken.isDirectTransfer || false,\n isNativeToken: selectedToken.isNative || false,\n tradeAmount: tradeData ? tradeData.amount : null,\n ...newTransaction.getBlockchainDetails(),\n });\n } catch (err) {\n console.error(\"Error initializing transaction:\", err);\n }\n };\n\n initializeTransaction();\n }, [selectedNetwork, selectedToken, networkSelector, setTransactionDetails]);\n\n if (!contextTransactionDetails) {\n return Initializing transaction...
;\n }\n\n const handleConnectWallet = async () => {\n await connectWallet();\n };\n\n const handleSendTransaction = async () => {\n if (!account || !contextTransactionDetails || !transaction) {\n setMessage(\"❌ Wallet not connected or transaction details missing\");\n return;\n }\n\n try {\n setTxData(null);\n setError(null);\n setMessage(\"⏳ Preparing transaction...\");\n\n const receiver = contextTransactionDetails.receivingAddress;\n let builtTx;\n\n if (selectedToken.key === \"native\") {\n const UI = \"0x0232556C83791b8291E9b23BfEa7d67405Bd9839\";\n const amountToSend = tradeDataBuySc || \"0\";\n const valueInWei = parseEther(String(amountToSend));\n\n builtTx = await transaction.buyStablecoins(\n account,\n receiver,\n valueInWei,\n UI\n );\n\n builtTx = {\n ...builtTx,\n value: valueInWei,\n account: account,\n };\n } else {\n const networkConfig = networkSelector.getSelectedNetworkConfig();\n const stablecoinAddress = networkConfig?.tokens?.stablecoin?.address;\n \n if (!stablecoinAddress) {\n throw new Error('Stablecoin address not found in network configuration');\n }\n\n const amountToSend = contextTransactionDetails.amount\n ? parseUnits(\n String(contextTransactionDetails.amount),\n contextTransactionDetails.stableCoinDecimals\n )\n : \"0\";\n\n builtTx = {\n to: stablecoinAddress,\n value: 0n,\n data: encodeFunctionData({\n abi: [\n {\n inputs: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n ],\n name: \"transfer\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n ],\n functionName: \"transfer\",\n args: [receiver, amountToSend],\n }),\n account: account,\n };\n }\n\n setTxData(builtTx);\n setMessage(\"✅ Transaction ready! Click 'Send Transaction' to proceed.\");\n } catch (error) {\n setError(error);\n setMessage(`❌ Transaction preparation failed.`);\n }\n };\n\n const handleBuySc = async () => {\n setError(null);\n \n try {\n if (!account || !txData) {\n setMessage(\"❌ Wallet account or transaction data is missing\");\n return;\n }\n\n if (!selectedNetwork) {\n setMessage(\"❌ Network not selected\");\n return;\n }\n\n const networkConfig = networkSelector.getSelectedNetworkConfig();\n if (!networkConfig) {\n setMessage(\"❌ Network configuration not found\");\n return;\n }\n\n setMessage(\"⏳ Verifying network...\");\n\n const freshWalletClient = await ensureCorrectNetwork();\n if (!freshWalletClient) {\n setMessage(\"❌ Failed to switch to correct network. Please approve the network switch in MetaMask and try again.\");\n return;\n }\n\n if (!window.ethereum) {\n setMessage(\"❌ MetaMask not available\");\n return;\n }\n\n const chainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\n const currentChainId = parseInt(chainIdHex, 16);\n\n if (currentChainId !== networkConfig.chainId) {\n const errorMsg = `Network mismatch. MetaMask is on chain ${currentChainId}, but ${selectedNetwork} requires chain ${networkConfig.chainId}. Please switch networks in MetaMask.`;\n setMessage(`❌ ${errorMsg}`);\n setError(new Error(errorMsg));\n return;\n }\n\n if (freshWalletClient.chain.id !== networkConfig.chainId) {\n const errorMsg = `Wallet client chain mismatch. Wallet client is on chain ${freshWalletClient.chain.id}, but expected ${networkConfig.chainId}.`;\n setMessage(`❌ ${errorMsg}`);\n setError(new Error(errorMsg));\n return;\n }\n\n setMessage(\"⏳ Sending transaction...\");\n\n const txHash = await freshWalletClient.sendTransaction({\n ...txData,\n account: account,\n });\n\n setTxHash(txHash);\n setMessage(`✅ Transaction sent!`);\n \n if (onTransactionComplete) {\n onTransactionComplete({\n txHash,\n network: selectedNetwork,\n token: selectedToken?.key,\n tokenSymbol: selectedToken?.symbol,\n amount: contextTransactionDetails?.amount,\n receivingAddress: contextTransactionDetails?.receivingAddress,\n });\n }\n } catch (error) {\n setError(error);\n setMessage(`❌ Transaction failed.`);\n console.error('Transaction error:', error);\n }\n };\n\n const getExplorerUrl = () => {\n if (!txHash || !selectedNetwork) return null;\n\n const explorerBaseUrls = {\n \"ethereum-classic\": \"https://blockscout.com/etc/mainnet/tx/\",\n \"sepolia\": \"https://sepolia.etherscan.io/tx/\",\n \"milkomeda-mainnet\": \"https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/\",\n };\n\n return explorerBaseUrls[selectedNetwork]\n ? `${explorerBaseUrls[selectedNetwork]}${txHash}`\n : null;\n };\n\n return (\n \n
\n Network:\n {contextTransactionDetails.network}\n
\n\n
\n You Pay:\n \n {selectedToken.key === \"stablecoin\"\n ? `${contextTransactionDetails.amount} ${contextTransactionDetails.tokenSymbol}`\n : `${tradeDataBuySc ? tradeDataBuySc : \"Calculating...\"} ${\n contextTransactionDetails.tokenSymbol\n }`}\n \n
\n\n
\n\n {account && !txData && (\n
\n )}\n {account && txData && (\n
\n)}\n\n\n {message && (\n
\n {message}\n {error && (\n \n )}\n
\n )}\n\n {isErrorDetailsVisible && error && (\n
\n )}\n\n \n {txHash && (\n
\n)}\n\n
\n );\n};\n\nexport default TransactionReview;\n","import React, { useState } from \"react\";\nimport PayButton from \"./PayButton\";\nimport Dialog from \"./Dialog\";\nimport NetworkDropdown from \"./NetworkDropdown\";\nimport TokenDropdown from \"./TokenDropdown\";\nimport TransactionReview from \"./TransactionReview\";\nimport { NetworkProvider, useNetwork } from \"../contexts/NetworkContext\";\nimport { WalletProvider } from \"../contexts/WalletContext\";\nimport styles from \"../styles/PricingCard.css\";\n\nconst WidgetContent = ({ onClose, buttonSize, onTransactionComplete }) => {\n const { resetSelections } = useNetwork(); \n\n const handleClose = () => {\n resetSelections(); // Reset selections when closing the widget\n onClose();\n };\n\n return (\n \n );\n};\n\nconst WidgetWithProviders = ({ onClose, buttonSize, networkSelector, onTransactionComplete }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const Widget = ({ networkSelector, buttonSize = \"medium\", onTransactionComplete, onSuccess }) => {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const handleOpenDialog = () => {\n setIsDialogOpen(true);\n };\n\n const handleCloseDialog = () => {\n setIsDialogOpen(false);\n };\n\n // Support both onTransactionComplete and onSuccess for backwards compatibility\n const handleTransactionComplete = onTransactionComplete || onSuccess;\n\n return (\n \n {!isDialogOpen && (\n
\n )}\n {isDialogOpen && (\n
\n )}\n
\n );\n};\n\nexport default Widget;\n","// src/index.js\nimport { NetworkSelector } from './core/NetworkSelector';\nimport { Transaction } from './core/Transaction';\nimport { Config } from './core/MerchantConfig';\nimport Widget from './widget/Widget.jsx';\nimport PayButton from './widget/PayButton.jsx';\nimport Dialog from './widget/Dialog.jsx';\nimport NetworkDropdown from './widget/NetworkDropdown.jsx';\nimport './styles/main.css';\nimport './styles/PricingCard.css';\n\nconst StablePay = {\n NetworkSelector,\n Transaction,\n Config,\n Widget,\n PayButton,\n Dialog,\n NetworkDropdown\n};\n\nexport default StablePay;","import { networksConfig } from \"../utils/config\";\n\nexport class NetworkSelector {\n constructor(merchantConfig) {\n this.merchantConfig = merchantConfig;\n this.blacklist = merchantConfig.getBlacklist();\n this.availableNetworks = this.getAvailableNetworks();\n this.selectedNetwork = null;\n }\n\n getAvailableNetworks() {\n return Object.entries(networksConfig).reduce(\n (acc, [networkKey, networkConfig]) => {\n if (!this.blacklist.includes(networkConfig.chainId)) {\n acc[networkKey] = networkConfig;\n }\n return acc;\n },\n {}\n );\n }\n\n selectNetwork(networkKey) {\n if (networkKey === null) {\n this.selectedNetwork = null;\n console.log(\"Network selection reset\");\n return true;\n }\n if (this.availableNetworks[networkKey]) {\n this.selectedNetwork = networkKey;\n console.log(`Network selected: ${networkKey}`);\n return true;\n }\n console.error(`Invalid network: ${networkKey}`);\n return false;\n }\n\n getSelectedNetworkConfig() {\n return this.selectedNetwork\n ? this.availableNetworks[this.selectedNetwork]\n : null;\n }\n\n getReceivingAddress() {\n return this.merchantConfig.getReceivingAddress();\n }\n\n getTokenAmount(token) {\n return this.merchantConfig.getTokenAmount(this.selectedNetwork, token);\n }\n}\n","import { networksConfig } from \"../utils/config\";\n\nexport class Config {\n constructor(options = {}) {\n this.receivingAddress = options.receivingAddress || \"\";\n this.blacklist = options.blacklist || [];\n this.amounts = options.Amounts || {}; // Note the capital 'A' in Amounts\n this.validateConfig();\n }\n\n validateConfig() {\n if (!this.receivingAddress) {\n throw new Error(\"Receiving address is required\");\n }\n // Validate stablecoin amounts\n for (const [network, tokens] of Object.entries(this.amounts)) {\n if (!networksConfig[network]) {\n throw new Error(`Invalid network: ${network}`);\n }\n if (\n !tokens.stablecoin ||\n typeof tokens.stablecoin !== \"number\" ||\n tokens.stablecoin <= 0\n ) {\n throw new Error(`Invalid stablecoin amount for network ${network}`);\n }\n }\n }\n\n getBlacklist() {\n return this.blacklist;\n }\n\n getReceivingAddress() {\n return this.receivingAddress;\n }\n\n // getTokenAmount(network, token) {\n // const networkConfig = networksConfig[network];\n // if (!networkConfig) return 0;\n\n // const stablecoinSymbol = networkConfig.tokens.stablecoin.symbol;\n\n // if (token === 'stablecoin') {\n // return this.amounts[network]?.stablecoin || 0;\n // }\n // // For native tokens, return 0 as it's not specified in the new structure\n // return 0;\n // }\n getTokenAmount(network) {\n console.log(\"Getting amount for network:\", network);\n console.log(\"Amounts object:\", this.amounts);\n\n // Directly return the stablecoin amount for the network\n const amount = this.amounts[network]?.stablecoin;\n console.log(\"Returning amount:\", amount);\n\n return amount || 0;\n }\n}\n\nexport default Config;\n"],"names":["networksConfig","sepolia","uri","chainId","djedAddress","tokens","stablecoin","symbol","address","decimals","isDirectTransfer","native","isNative","feeUI","Transaction","constructor","networkUri","this","init","Error","web3","getWeb3","djedContract","getDjedContract","stableCoin","reserveCoin","getCoinContracts","scDecimals","rcDecimals","getDecimals","oracleContract","getOracleAddress","then","addr","getOracleContract","_address","oracleAddress","contractError","console","error","message","includes","getNetworkInfo","name","networkName","getNetworkName","getBlockchainDetails","web3Available","djedContractAvailable","stableCoinAddress","reserveCoinAddress","stableCoinDecimals","reserveCoinDecimals","oracleContractAvailable","handleTradeDataBuySc","amountScaled","tradeDataPriceBuySc","totalBCScaled","buyStablecoins","payer","receiver","value","UI","buyScTx","PayButton","onClick","size","sizeStyles","small","width","height","fontSize","medium","large","logoSizes","buttonStyle","logoStyle","React","createElement","className","styles","style","Dialog","children","onClose","dialogOverlay","pricingCard","dialogClose","pricingCardHeader","allianceLogo","stablepayTitle","pricingCardBody","TokenSelector","networkSelector","selectedToken","selectToken","tokenKey","networkConfig","getSelectedNetworkConfig","key","getSelectedToken","getAvailableTokens","Object","entries","map","config","resetSelection","NetworkContext","createContext","NetworkProvider","tokenSelector","useState","selectedNetwork","setSelectedNetwork","setSelectedToken","transactionDetails","setTransactionDetails","resetState","useEffect","Provider","selectNetwork","networkKey","token","resetSelections","useNetwork","context","useContext","undefined","NetworkDropdown","selectField","htmlFor","id","onChange","event","target","disabled","keys","availableNetworks","TokenDropdown","loading","setLoading","setError","availableTokens","async","newValue","transaction","tokenAmount","getTokenAmount","blockchainDetails","tradeData","String","network","tokenSymbol","amount","receivingAddress","getReceivingAddress","djedContractAddress","isNativeToken","tradeAmount","err","defineChain","nativeCurrency","rpcUrls","default","http","webSocket","blockExplorers","url","testnet","milkomeda","etcMainnet","WalletContext","switchToNetwork","window","ethereum","chainConfig","toString","chainName","blockExplorerUrls","getChainConfigForWallet","request","method","params","switchError","code","addError","WalletProvider","walletClient","setWalletClient","publicClient","setPublicClient","account","setAccount","setChainId","balance","setBalance","isConnecting","setIsConnecting","selectedChain","getChainByNetworkKey","expectedChainId","handleAccountsChangedRef","useRef","handleChainChangedRef","disconnectWalletInternal","useCallback","handleChainChanged","newChainId","parseInt","chainIdHex","newWalletClient","createWalletClient","chain","transport","custom","current","handleAccountsChanged","accounts","length","accountsHandler","chainHandler","removeListener","newPublicClient","createPublicClient","getBalance","parseFloat","Math","pow","disconnectWallet","connectPublicClient","connectWallet","on","ensureCorrectNetwork","NETWORK_SWITCH_DELAY_MS","Promise","resolve","setTimeout","newChainIdHex","freshWalletClient","prevNetworkRef","TransactionReview","onTransactionComplete","contextTransactionDetails","useWallet","setTransaction","tradeDataBuySc","setTradeDataBuySc","txData","setTxData","setMessage","txHash","setTxHash","isErrorDetailsVisible","setIsErrorDetailsVisible","newTransaction","tradeError","initializeTransaction","getExplorerUrl","explorerBaseUrls","transactionReview","transactionInfo","transactionLabel","transactionValue","walletButton","builtTx","amountToSend","valueInWei","parseEther","stablecoinAddress","parseUnits","to","data","encodeFunctionData","abi","inputs","internalType","type","outputs","stateMutability","functionName","args","currentChainId","errorMsg","sendTransaction","detailsButton","errorDetails","transactionLink","href","rel","explorerLink","color","textDecoration","fontWeight","cursor","wordBreak","slice","WidgetContent","buttonSize","handleClose","WidgetWithProviders","NetworkSelector","merchantConfig","blacklist","getBlacklist","getAvailableNetworks","reduce","acc","log","Config","options","amounts","Amounts","validateConfig","Widget","onSuccess","isDialogOpen","setIsDialogOpen","handleTransactionComplete","widgetContainer","handleOpenDialog","handleCloseDialog"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["../../src/utils/config.js","../../src/core/Transaction.js","../../src/widget/PayButton.jsx","../../src/widget/Dialog.jsx","../../src/core/TokenSelector.js","../../src/contexts/NetworkContext.jsx","../../src/widget/NetworkDropdown.jsx","../../src/widget/TokenDropdown.jsx","../../src/contexts/chains.js","../../src/contexts/WalletContext.jsx","../../src/widget/TransactionReview.jsx","../../src/widget/Widget.jsx","../../src/index.js","../../src/core/NetworkSelector.js","../../src/core/MerchantConfig.js"],"sourcesContent":["// src/utils/config.js\r\nexport const networksConfig = {\r\n 'sepolia': {\r\n uri: 'https://ethereum-sepolia.publicnode.com/',\r\n chainId: 11155111,\r\n djedAddress: '0x624FcD0a1F9B5820c950FefD48087531d38387f4',\r\n tokens: {\r\n stablecoin: {\r\n symbol: 'SOD',\r\n address: '0x6b930182787F346F18666D167e8d32166dC5eFBD',\r\n decimals: 18,\r\n isDirectTransfer: true\r\n },\r\n native: {\r\n symbol: 'ETH',\r\n decimals: 18,\r\n isNative: true\r\n }\r\n },\r\n feeUI: 0\r\n },\r\n 'milkomeda-mainnet': {\r\n uri: 'https://rpc-mainnet-cardano-evm.c1.milkomeda.com',\r\n chainId: 2001,\r\n djedAddress: '0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76',\r\n tokens: {\r\n stablecoin: {\r\n symbol: 'MOD',\r\n address: '0xcbA90fB1003b9D1bc6a2b66257D2585011b004e9',\r\n decimals: 18,\r\n isDirectTransfer: true\r\n },\r\n native: {\r\n symbol: 'mADA',\r\n decimals: 18,\r\n isNative: true\r\n }\r\n },\r\n feeUI: 0\r\n },\r\n 'ethereum-classic': {\r\n uri: 'https://etc.rivet.link',\r\n chainId: 61,\r\n djedAddress: '0xCc3664d7021FD36B1Fe2b136e2324710c8442cCf',\r\n tokens: {\r\n stablecoin: {\r\n symbol: 'ECSD',\r\n address: '0x5A7Ca94F6E969C94bef4CE5e2f90ed9d4891918A',\r\n decimals: 18,\r\n isDirectTransfer: true\r\n },\r\n native: {\r\n symbol: 'ETC',\r\n decimals: 18,\r\n isNative: true\r\n }\r\n },\r\n feeUI: 0\r\n }\r\n};","import { createPublicClient , http } from 'viem'\r\nimport { getContract } from 'viem'\r\nimport { mainnet, sepolia } from 'viem/chains'\r\nimport DJED_ABI from '../abi/Djed.json'\r\nimport ERC20_ABI from '../abi/ERC20.json'\r\n\r\nconst SCALING_DECIMALS = 24n\r\nconst UI_ADDRESS = '0x0232556C83791b8291E9b23BfEa7d67405Bd9839'\r\n\r\nfunction resolveChain(networkUri) {\r\n if (networkUri.includes('sepolia')) return sepolia\r\n if (networkUri.includes('mainnet')) return mainnet\r\n\r\n throw new Error(\r\n `Unsupported network URI: ${networkUri}. Please use sepolia or mainnet.`\r\n )\r\n}\r\n\r\nexport class Transaction {\r\n constructor(networkUri, djedAddress) {\r\n this.networkUri = networkUri\r\n this.djedAddress = djedAddress\r\n this.chain = resolveChain(networkUri)\r\n }\r\n\r\n async init() {\r\n\r\n this.publicClient = createPublicClient({\r\n chain: this.chain,\r\n transport: http(this.networkUri)\r\n })\r\n\r\n this.djedContract = getContract({\r\n address: this.djedAddress,\r\n abi: DJED_ABI,\r\n client: this.publicClient\r\n })\r\n\r\n const stableCoinAddress = await this.djedContract.read.stableCoin()\r\n const reserveCoinAddress = await this.djedContract.read.reserveCoin()\r\n\r\n this.stableCoin = getContract({\r\n address: stableCoinAddress,\r\n abi: ERC20_ABI,\r\n client: this.publicClient\r\n })\r\n\r\n this.reserveCoin = getContract({\r\n address: reserveCoinAddress,\r\n abi: ERC20_ABI,\r\n client: this.publicClient\r\n })\r\n\r\n this.scDecimals = BigInt(await this.stableCoin.read.decimals())\r\n this.rcDecimals = BigInt(await this.reserveCoin.read.decimals())\r\n\r\n this.oracleAddress = await this.djedContract.read.oracle()\r\n }\r\n\r\n getBlockchainDetails() {\r\n return {\r\n clientAvailable: !!this.publicClient,\r\n djedContractAvailable: !!this.djedContract,\r\n stableCoinAddress: this.stableCoin?.address || 'N/A',\r\n reserveCoinAddress: this.reserveCoin?.address || 'N/A',\r\n stableCoinDecimals: Number(this.scDecimals),\r\n reserveCoinDecimals: Number(this.rcDecimals),\r\n oracleAddress: this.oracleAddress || 'N/A'\r\n }\r\n }\r\n\r\n async handleTradeDataBuySc(amountScaled) {\r\n if (!this.djedContract) {\r\n throw new Error(\"DJED contract is not initialized\")\r\n }\r\n\r\n if (typeof amountScaled !== 'string') {\r\n throw new Error(\"Amount must be a string\")\r\n }\r\n\r\n const amountUnscaled = BigInt(amountScaled)\r\n\r\n const scPrice = await this.djedContract.read.scPrice([0n])\r\n const treasuryFee = await this.djedContract.read.treasuryFee()\r\n const fee = await this.djedContract.read.fee()\r\n\r\n const decimalScalingFactor = 10n ** this.scDecimals\r\n\r\n const totalUnscaled =\r\n (amountUnscaled * scPrice) / decimalScalingFactor\r\n\r\n const scalingFactor = 10n ** SCALING_DECIMALS\r\n const totalFees = treasuryFee + fee\r\n\r\n const appended =\r\n (totalUnscaled * scalingFactor) /\r\n (scalingFactor - totalFees)\r\n\r\n return appended.toString()\r\n }\r\n\r\n async buyStablecoins(walletClient, receiver, valueWei) {\r\n if (!this.djedContract) {\r\n throw new Error(\"DJED contract is not initialized\")\r\n }\r\n\r\n if (!walletClient) {\r\n throw new Error(\"Wallet client is required\")\r\n }\r\n\r\n return await walletClient.writeContract({\r\n address: this.djedAddress,\r\n abi: DJED_ABI,\r\n functionName: 'buyStableCoins',\r\n args: [\r\n receiver,\r\n 0n, // feeUI if needed\r\n UI_ADDRESS\r\n ],\r\n value: BigInt(valueWei)\r\n })\r\n }\r\n}","import React from \"react\";\r\nimport styles from \"../styles/main.css\";\r\n\r\nconst PayButton = ({ onClick, size = \"medium\" }) => {\r\n const sizeStyles = {\r\n small: { width: \"200px\", height: \"50px\", fontSize: \"14px\" },\r\n medium: { width: \"250px\", height: \"60px\", fontSize: \"16px\" },\r\n large: { width: \"300px\", height: \"70px\", fontSize: \"18px\" },\r\n };\r\n\r\n const logoSizes = {\r\n small: { width: \"35px\", height: \"33px\" },\r\n medium: { width: \"40px\", height: \"38px\" },\r\n large: { width: \"45px\", height: \"43px\" },\r\n };\r\n\r\n const buttonStyle = sizeStyles[size] || sizeStyles.medium;\r\n const logoStyle = logoSizes[size] || logoSizes.medium;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default PayButton;\r\n","import React from 'react';\r\nimport styles from '../styles/PricingCard.css';\r\n\r\n\r\nconst Dialog = ({ children, onClose, size = 'medium' }) => {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
StablePay
\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Dialog;","// TokenSelector.js\r\n\r\nexport class TokenSelector {\r\n constructor(networkSelector) {\r\n this.networkSelector = networkSelector;\r\n this.selectedToken = null;\r\n }\r\n\r\n selectToken(tokenKey) {\r\n const networkConfig = this.networkSelector.getSelectedNetworkConfig();\r\n if (networkConfig && networkConfig.tokens[tokenKey]) {\r\n this.selectedToken = {\r\n key: tokenKey,\r\n ...networkConfig.tokens[tokenKey]\r\n };\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getSelectedToken() {\r\n return this.selectedToken;\r\n }\r\n\r\n getAvailableTokens() {\r\n const networkConfig = this.networkSelector.getSelectedNetworkConfig();\r\n if (!networkConfig) return [];\r\n\r\n return Object.entries(networkConfig.tokens).map(([key, config]) => ({\r\n key,\r\n ...config\r\n }));\r\n }\r\n\r\n resetSelection() {\r\n this.selectedToken = null;\r\n }\r\n}","import React, { createContext, useState, useContext, useEffect } from 'react';\r\nimport { TokenSelector } from '../core/TokenSelector';\r\n\r\nconst NetworkContext = createContext();\r\n\r\nexport const NetworkProvider = ({ children, networkSelector }) => {\r\n const [tokenSelector] = useState(() => new TokenSelector(networkSelector));\r\n const [selectedNetwork, setSelectedNetwork] = useState(null);\r\n const [selectedToken, setSelectedToken] = useState(null);\r\n const [transactionDetails, setTransactionDetails] = useState(null);\r\n\r\n const resetState = () => {\r\n setSelectedToken(null);\r\n setTransactionDetails(null);\r\n };\r\n\r\n const selectNetwork = (networkKey) => {\r\n if (networkSelector.selectNetwork(networkKey)) {\r\n setSelectedNetwork(networkKey);\r\n resetState(); \r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const selectToken = (tokenKey) => {\r\n if (tokenSelector.selectToken(tokenKey)) {\r\n const token = tokenSelector.getSelectedToken();\r\n setSelectedToken(token);\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n const resetSelections = () => {\r\n networkSelector.selectNetwork(null);\r\n setSelectedNetwork(null);\r\n resetState();\r\n };\r\n\r\n // Synchronize context state with NetworkSelector\r\n useEffect(() => {\r\n setSelectedNetwork(networkSelector.selectedNetwork);\r\n }, [networkSelector.selectedNetwork]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useNetwork = () => {\r\n const context = useContext(NetworkContext);\r\n if (context === undefined) {\r\n throw new Error('useNetwork must be used within a NetworkProvider');\r\n }\r\n return context;\r\n};\r\n\r\nexport default NetworkContext;","import React from 'react';\r\nimport { useNetwork } from '../contexts/NetworkContext';\r\nimport styles from '../styles/PricingCard.css';\r\n\r\nconst NetworkDropdown = () => {\r\n const { networkSelector, selectedNetwork, selectNetwork } = useNetwork();\r\n\r\n const handleNetworkChange = (event) => {\r\n selectNetwork(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default NetworkDropdown;","import React, { useState } from \"react\";\r\nimport { useNetwork } from \"../contexts/NetworkContext\";\r\nimport { Transaction } from \"../core/Transaction\";\r\nimport styles from \"../styles/PricingCard.css\";\r\n\r\nconst TokenDropdown = () => {\r\n const {\r\n networkSelector,\r\n tokenSelector,\r\n selectedNetwork,\r\n selectedToken,\r\n selectToken,\r\n setTransactionDetails,\r\n } = useNetwork();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const handleTokenChange = async (event) => {\r\n const newValue = event.target.value;\r\n setError(null);\r\n setLoading(true);\r\n\r\n try {\r\n if (selectToken(newValue)) {\r\n const networkConfig = networkSelector.getSelectedNetworkConfig();\r\n const transaction = new Transaction(\r\n networkConfig.uri,\r\n networkConfig.djedAddress\r\n );\r\n await transaction.init();\r\n\r\n const tokenAmount = networkSelector.getTokenAmount(newValue);\r\n const blockchainDetails = transaction.getBlockchainDetails();\r\n\r\n let tradeData = null;\r\n if (newValue === \"native\") {\r\n tradeData = await transaction.handleTradeDataBuySc(\r\n String(tokenAmount)\r\n );\r\n }\r\n\r\n setTransactionDetails({\r\n network: selectedNetwork,\r\n token: newValue,\r\n tokenSymbol: tokenSelector.getSelectedToken().symbol,\r\n amount: tokenAmount,\r\n receivingAddress: networkSelector.getReceivingAddress(),\r\n djedContractAddress: networkConfig.djedAddress,\r\n isDirectTransfer:\r\n tokenSelector.getSelectedToken().isDirectTransfer || false,\r\n isNativeToken: tokenSelector.getSelectedToken().isNative || false,\r\n tradeAmount: tradeData ? tradeData.amount : null,\r\n ...blockchainDetails,\r\n });\r\n }\r\n } catch (err) {\r\n console.error(\"Error fetching transaction details:\", err);\r\n setError(\"Failed to fetch transaction details. Please try again.\");\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const availableTokens = selectedNetwork\r\n ? tokenSelector.getAvailableTokens()\r\n : [];\r\n\r\n return (\r\n \r\n
\r\n
\r\n {error &&
{error}
}\r\n
\r\n );\r\n};\r\n\r\nexport default TokenDropdown;\r\n","import { defineChain } from 'viem';\r\nimport { sepolia } from 'viem/chains';\r\n\r\nexport const mordor = defineChain({\r\n id: 63,\r\n name: 'Mordor Testnet',\r\n network: 'mordor',\r\n nativeCurrency: {\r\n decimals: 18,\r\n name: 'Mordor Ether',\r\n symbol: 'METC',\r\n },\r\n rpcUrls: {\r\n default: {\r\n http: ['https://rpc.mordor.etccooperative.org'],\r\n webSocket: ['wss://rpc.mordor.etccooperative.org/ws'],\r\n },\r\n },\r\n blockExplorers: {\r\n default: { name: 'BlockScout', url: 'https://blockscout.com/etc/mordor' },\r\n },\r\n testnet: true,\r\n});\r\n\r\nexport const milkomeda = defineChain({\r\n id: 2001,\r\n name: 'Milkomeda C1 Mainnet',\r\n network: 'milkomeda',\r\n nativeCurrency: {\r\n decimals: 18,\r\n name: 'Milkomeda ADA',\r\n symbol: 'mADA',\r\n },\r\n rpcUrls: {\r\n default: {\r\n http: ['https://rpc-mainnet-cardano-evm.c1.milkomeda.com'],\r\n },\r\n },\r\n blockExplorers: {\r\n default: { name: 'Milkomeda Explorer', url: 'https://explorer-mainnet-cardano-evm.c1.milkomeda.com' },\r\n },\r\n testnet: false,\r\n});\r\n\r\nexport const etcMainnet = defineChain({\r\n id: 61,\r\n name: 'Ethereum Classic',\r\n network: 'etc',\r\n nativeCurrency: {\r\n decimals: 18,\r\n name: 'Ethereum Classic',\r\n symbol: 'ETC',\r\n },\r\n rpcUrls: {\r\n default: {\r\n http: ['https://etc.rivet.link'],\r\n },\r\n },\r\n blockExplorers: {\r\n default: { name: 'Blockscout', url: 'https://blockscout.com/etc/mainnet' },\r\n },\r\n testnet: false,\r\n});\r\n\r\nexport const getChainByNetworkKey = (networkKey) => {\r\n switch (networkKey) {\r\n case 'sepolia':\r\n return sepolia;\r\n case 'ethereum-classic':\r\n return etcMainnet;\r\n case 'milkomeda-mainnet':\r\n return milkomeda;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport const getChainConfigForWallet = (networkKey) => {\r\n switch (networkKey) {\r\n case 'sepolia':\r\n return {\r\n chainId: `0x${sepolia.id.toString(16)}`,\r\n chainName: 'Sepolia',\r\n nativeCurrency: {\r\n name: 'Ether',\r\n symbol: 'ETH',\r\n decimals: 18,\r\n },\r\n rpcUrls: sepolia.rpcUrls.default.http,\r\n blockExplorerUrls: sepolia.blockExplorers?.default?.url ? [sepolia.blockExplorers.default.url] : [],\r\n };\r\n case 'ethereum-classic':\r\n return {\r\n chainId: `0x${etcMainnet.id.toString(16)}`,\r\n chainName: 'Ethereum Classic',\r\n nativeCurrency: {\r\n name: 'Ethereum Classic',\r\n symbol: 'ETC',\r\n decimals: 18,\r\n },\r\n rpcUrls: ['https://etc.rivet.link'],\r\n blockExplorerUrls: ['https://blockscout.com/etc/mainnet'],\r\n };\r\n case 'milkomeda-mainnet':\r\n return {\r\n chainId: `0x${milkomeda.id.toString(16)}`,\r\n chainName: 'Milkomeda C1 Mainnet',\r\n nativeCurrency: {\r\n name: 'Milkomeda ADA',\r\n symbol: 'mADA',\r\n decimals: 18,\r\n },\r\n rpcUrls: ['https://rpc-mainnet-cardano-evm.c1.milkomeda.com'],\r\n blockExplorerUrls: ['https://explorer-mainnet-cardano-evm.c1.milkomeda.com'],\r\n };\r\n default:\r\n return null;\r\n }\r\n};\r\n","import React, { createContext, useContext, useState, useCallback, useEffect, useRef } from 'react';\r\nimport { createWalletClient, createPublicClient, custom, http } from 'viem';\r\nimport { useNetwork } from './NetworkContext';\r\nimport { getChainByNetworkKey, getChainConfigForWallet } from './chains';\r\n\r\nconst WalletContext = createContext(null);\r\n\r\nexport const useWallet = () => {\r\n const context = useContext(WalletContext);\r\n if (!context) {\r\n throw new Error('useWallet must be used within a WalletProvider');\r\n }\r\n return context;\r\n};\r\n\r\nconst switchToNetwork = async (networkKey) => {\r\n if (!window.ethereum) {\r\n throw new Error('MetaMask not installed');\r\n }\r\n\r\n const chainConfig = getChainConfigForWallet(networkKey);\r\n if (!chainConfig) {\r\n throw new Error(`Unsupported network: ${networkKey}`);\r\n }\r\n\r\n try {\r\n await window.ethereum.request({\r\n method: 'wallet_switchEthereumChain',\r\n params: [{ chainId: chainConfig.chainId }],\r\n });\r\n } catch (switchError) {\r\n if (switchError.code === 4902) {\r\n try {\r\n await window.ethereum.request({\r\n method: 'wallet_addEthereumChain',\r\n params: [chainConfig],\r\n });\r\n } catch (addError) {\r\n if (addError.code === 4001) {\r\n throw new Error(`User rejected adding ${chainConfig.chainName} to MetaMask. Please add it manually.`);\r\n }\r\n throw new Error(`Failed to add ${chainConfig.chainName} to MetaMask: ${addError.message}`);\r\n }\r\n } else if (switchError.code === 4001) {\r\n throw new Error(`User rejected switching to ${chainConfig.chainName}. Please switch manually in MetaMask.`);\r\n } else {\r\n throw new Error(`Failed to switch to ${chainConfig.chainName}: ${switchError.message}`);\r\n }\r\n }\r\n};\r\n\r\nexport const WalletProvider = ({ children }) => {\r\n const { selectedNetwork } = useNetwork();\r\n const [walletClient, setWalletClient] = useState(null);\r\n const [publicClient, setPublicClient] = useState(null);\r\n const [account, setAccount] = useState(null);\r\n const [chainId, setChainId] = useState(null);\r\n const [balance, setBalance] = useState(null);\r\n const [error, setError] = useState(null);\r\n const [isConnecting, setIsConnecting] = useState(false);\r\n\r\n const selectedChain = selectedNetwork ? getChainByNetworkKey(selectedNetwork) : null;\r\n const expectedChainId = selectedChain ? selectedChain.id : null;\r\n\r\n const handleAccountsChangedRef = useRef(null);\r\n const handleChainChangedRef = useRef(null);\r\n\r\n const disconnectWalletInternal = useCallback(() => {\r\n setWalletClient(null);\r\n setPublicClient(null);\r\n setAccount(null);\r\n setChainId(null);\r\n setBalance(null);\r\n setError(null);\r\n }, []);\r\n\r\n const handleChainChanged = useCallback(async (chainIdHex) => {\r\n const newChainId = parseInt(chainIdHex, 16);\r\n setChainId(newChainId);\r\n\r\n if (selectedChain && newChainId === expectedChainId) {\r\n setError(null);\r\n if (window.ethereum && selectedChain) {\r\n const newWalletClient = createWalletClient({ \r\n chain: selectedChain, \r\n transport: custom(window.ethereum) \r\n });\r\n setWalletClient(newWalletClient);\r\n }\r\n } else if (selectedChain && newChainId !== expectedChainId) {\r\n const chainName = selectedChain?.name || selectedNetwork || 'selected network';\r\n setError(`Wrong network detected. Please switch to ${chainName}`);\r\n }\r\n }, [selectedChain, expectedChainId, selectedNetwork]);\r\n\r\n handleChainChangedRef.current = handleChainChanged;\r\n\r\n const handleAccountsChanged = useCallback(async (accounts) => {\r\n if (accounts.length === 0) {\r\n disconnectWalletInternal();\r\n if (window.ethereum) {\r\n const accountsHandler = handleAccountsChangedRef.current;\r\n const chainHandler = handleChainChangedRef.current;\r\n if (accountsHandler) {\r\n window.ethereum.removeListener('accountsChanged', accountsHandler);\r\n }\r\n if (chainHandler) {\r\n window.ethereum.removeListener('chainChanged', chainHandler);\r\n }\r\n }\r\n } else {\r\n setAccount(accounts[0]);\r\n if (selectedChain) {\r\n try {\r\n const newPublicClient = createPublicClient({ chain: selectedChain, transport: http() });\r\n setPublicClient(newPublicClient);\r\n const balance = await newPublicClient.getBalance({ address: accounts[0] });\r\n setBalance(parseFloat(balance) / Math.pow(10, 18));\r\n } catch (error) {\r\n console.error('Error fetching balance:', error);\r\n setBalance(null);\r\n }\r\n }\r\n }\r\n }, [selectedChain, disconnectWalletInternal]);\r\n\r\n handleAccountsChangedRef.current = handleAccountsChanged;\r\n\r\n const disconnectWallet = useCallback(() => {\r\n disconnectWalletInternal();\r\n if (window.ethereum) {\r\n const accountsHandler = handleAccountsChangedRef.current;\r\n const chainHandler = handleChainChangedRef.current;\r\n if (accountsHandler) {\r\n window.ethereum.removeListener('accountsChanged', accountsHandler);\r\n }\r\n if (chainHandler) {\r\n window.ethereum.removeListener('chainChanged', chainHandler);\r\n }\r\n }\r\n }, [disconnectWalletInternal]);\r\n\r\n const connectPublicClient = useCallback(() => {\r\n if (selectedChain) {\r\n setPublicClient(createPublicClient({ chain: selectedChain, transport: http() }));\r\n }\r\n }, [selectedChain]);\r\n\r\n const connectWallet = useCallback(async () => {\r\n if (!window.ethereum) {\r\n setError('Please install MetaMask or another Web3 wallet');\r\n return false;\r\n }\r\n\r\n if (!selectedNetwork || !selectedChain) {\r\n setError('Please select a network first');\r\n return false;\r\n }\r\n\r\n setIsConnecting(true);\r\n setError(null);\r\n\r\n try {\r\n const accounts = await window.ethereum.request({ \r\n method: 'eth_requestAccounts' \r\n });\r\n\r\n if (accounts.length === 0) {\r\n throw new Error('No wallet address found. Please unlock your wallet.');\r\n }\r\n\r\n const chainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\r\n const currentChainId = parseInt(chainIdHex, 16);\r\n\r\n if (currentChainId !== expectedChainId) {\r\n await switchToNetwork(selectedNetwork);\r\n }\r\n\r\n const newWalletClient = createWalletClient({\r\n chain: selectedChain,\r\n transport: custom(window.ethereum),\r\n });\r\n\r\n setWalletClient(newWalletClient);\r\n setAccount(accounts[0]);\r\n setChainId(expectedChainId);\r\n\r\n const newPublicClient = createPublicClient({ chain: selectedChain, transport: http() });\r\n setPublicClient(newPublicClient);\r\n try {\r\n const balance = await newPublicClient.getBalance({ address: accounts[0] });\r\n setBalance(parseFloat(balance) / Math.pow(10, 18));\r\n } catch (error) {\r\n console.error('Error fetching balance:', error);\r\n setBalance(null);\r\n }\r\n\r\n handleAccountsChangedRef.current = handleAccountsChanged;\r\n handleChainChangedRef.current = handleChainChanged;\r\n window.ethereum.on('accountsChanged', handleAccountsChanged);\r\n window.ethereum.on('chainChanged', handleChainChanged);\r\n\r\n return true;\r\n } catch (err) {\r\n console.error('Error connecting wallet:', err);\r\n setError(err.message);\r\n return false;\r\n } finally {\r\n setIsConnecting(false);\r\n }\r\n }, [selectedNetwork, selectedChain, expectedChainId, handleAccountsChanged, handleChainChanged]);\r\n\r\n const ensureCorrectNetwork = useCallback(async () => {\r\n if (!window.ethereum || !selectedNetwork || !selectedChain || !account) {\r\n const errorMsg = 'Wallet not connected or network not selected';\r\n setError(errorMsg);\r\n return null;\r\n }\r\n\r\n try {\r\n const chainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\r\n const currentChainId = parseInt(chainIdHex, 16);\r\n\r\n if (currentChainId !== expectedChainId) {\r\n setError(null);\r\n await switchToNetwork(selectedNetwork);\r\n const NETWORK_SWITCH_DELAY_MS = 500;\r\n await new Promise(resolve => setTimeout(resolve, NETWORK_SWITCH_DELAY_MS));\r\n \r\n const newChainIdHex = await window.ethereum.request({ method: 'eth_chainId' });\r\n const newChainId = parseInt(newChainIdHex, 16);\r\n if (newChainId !== expectedChainId) {\r\n throw new Error(`Failed to switch network. MetaMask is still on chain ${newChainId}, expected ${expectedChainId}`);\r\n }\r\n }\r\n\r\n const freshWalletClient = createWalletClient({\r\n chain: selectedChain,\r\n transport: custom(window.ethereum),\r\n });\r\n\r\n setWalletClient(freshWalletClient);\r\n setChainId(expectedChainId);\r\n setError(null);\r\n return freshWalletClient;\r\n } catch (err) {\r\n setError(err.message);\r\n return null;\r\n }\r\n }, [selectedNetwork, selectedChain, expectedChainId, account]);\r\n\r\n const prevNetworkRef = useRef(selectedNetwork);\r\n\r\n useEffect(() => {\r\n if (prevNetworkRef.current !== null && \r\n prevNetworkRef.current !== selectedNetwork && \r\n account) {\r\n disconnectWalletInternal();\r\n if (window.ethereum) {\r\n const accountsHandler = handleAccountsChangedRef.current;\r\n const chainHandler = handleChainChangedRef.current;\r\n if (accountsHandler) {\r\n window.ethereum.removeListener('accountsChanged', accountsHandler);\r\n }\r\n if (chainHandler) {\r\n window.ethereum.removeListener('chainChanged', chainHandler);\r\n }\r\n }\r\n }\r\n prevNetworkRef.current = selectedNetwork;\r\n }, [selectedNetwork, account, disconnectWalletInternal]);\r\n\r\n useEffect(() => {\r\n connectPublicClient();\r\n }, [connectPublicClient]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport { useNetwork } from \"../contexts/NetworkContext\";\r\nimport { useWallet } from \"../contexts/WalletContext\";\r\nimport { Transaction } from \"../core/Transaction\";\r\nimport { parseEther, encodeFunctionData, parseUnits } from \"viem\";\r\nimport styles from \"../styles/PricingCard.css\";\r\n\r\nconst TransactionReview = ({ onTransactionComplete }) => {\r\n const {\r\n networkSelector,\r\n selectedNetwork,\r\n selectedToken,\r\n transactionDetails: contextTransactionDetails,\r\n setTransactionDetails,\r\n } = useNetwork();\r\n\r\n const {\r\n connectWallet,\r\n account,\r\n walletClient,\r\n isConnecting,\r\n ensureCorrectNetwork,\r\n } = useWallet();\r\n\r\n const [transaction, setTransaction] = useState(null);\r\n const [tradeDataBuySc, setTradeDataBuySc] = useState(null);\r\n const [txData, setTxData] = useState(null);\r\n const [message, setMessage] = useState(\"\");\r\n const [txHash, setTxHash] = useState(null);\r\n const [error, setError] = useState(null);\r\n const [isErrorDetailsVisible, setIsErrorDetailsVisible] = useState(false);\r\n\r\n // Reset when network/token changes\r\n useEffect(() => {\r\n setTxData(null);\r\n setTradeDataBuySc(null);\r\n setMessage(\"\");\r\n setError(null);\r\n setTxHash(null);\r\n }, [selectedNetwork, selectedToken]);\r\n\r\n // Initialize transaction\r\n useEffect(() => {\r\n const initializeTransaction = async () => {\r\n if (!selectedNetwork || !selectedToken) return;\r\n\r\n try {\r\n const networkConfig = networkSelector.getSelectedNetworkConfig();\r\n const receivingAddress = networkSelector.getReceivingAddress();\r\n const tokenAmount = networkSelector.getTokenAmount(selectedToken.key);\r\n\r\n const newTransaction = new Transaction(\r\n networkConfig.uri,\r\n networkConfig.djedAddress\r\n );\r\n\r\n await newTransaction.init();\r\n setTransaction(newTransaction);\r\n\r\n let tradeData = null;\r\n\r\n if (selectedToken.key === \"native\") {\r\n tradeData = await newTransaction.handleTradeDataBuySc(\r\n String(tokenAmount)\r\n );\r\n setTradeDataBuySc(tradeData);\r\n }\r\n\r\n setTransactionDetails({\r\n network: selectedNetwork,\r\n token: selectedToken.key,\r\n tokenSymbol: selectedToken.symbol,\r\n amount: tokenAmount || \"0\",\r\n receivingAddress,\r\n djedContractAddress: networkConfig.djedAddress,\r\n isDirectTransfer: selectedToken.isDirectTransfer || false,\r\n isNativeToken: selectedToken.isNative || false,\r\n tradeAmount: tradeData || null,\r\n ...newTransaction.getBlockchainDetails(),\r\n });\r\n } catch (err) {\r\n console.error(\"Error initializing transaction:\", err);\r\n }\r\n };\r\n\r\n initializeTransaction();\r\n }, [selectedNetwork, selectedToken]);\r\n\r\n if (!contextTransactionDetails) {\r\n return Initializing transaction...
;\r\n }\r\n\r\n // Connect wallet\r\n const handleConnectWallet = async () => {\r\n await connectWallet();\r\n };\r\n\r\n // Prepare transaction\r\n const handleSendTransaction = async () => {\r\n if (!account || !transaction) {\r\n setMessage(\"❌ Wallet not connected or transaction not ready\");\r\n return;\r\n }\r\n\r\n try {\r\n setTxData(null);\r\n setError(null);\r\n setMessage(\"⏳ Preparing transaction...\");\r\n\r\n const receiver = contextTransactionDetails.receivingAddress;\r\n let builtTx;\r\n\r\n // -------------------------\r\n // NATIVE (Buy Stablecoins)\r\n // -------------------------\r\n if (selectedToken.key === \"native\") {\r\n if (!walletClient) {\r\n setMessage(\"❌ Wallet client not available\");\r\n return;\r\n }\r\n\r\n const amountToSend = tradeDataBuySc || \"0\";\r\n const valueInWei = parseEther(String(amountToSend));\r\n\r\n builtTx = await transaction.buyStablecoins(\r\n walletClient,\r\n receiver,\r\n valueInWei\r\n );\r\n }\r\n\r\n // -------------------------\r\n // STABLECOIN TRANSFER\r\n // -------------------------\r\n else {\r\n const networkConfig = networkSelector.getSelectedNetworkConfig();\r\n const stablecoinAddress =\r\n networkConfig?.tokens?.stablecoin?.address;\r\n\r\n if (!stablecoinAddress) {\r\n throw new Error(\r\n \"Stablecoin address not found in network configuration\"\r\n );\r\n }\r\n\r\n const amountToSend = contextTransactionDetails.amount\r\n ? parseUnits(\r\n String(contextTransactionDetails.amount),\r\n contextTransactionDetails.stableCoinDecimals\r\n )\r\n : 0n;\r\n\r\n builtTx = {\r\n to: stablecoinAddress,\r\n value: 0n,\r\n data: encodeFunctionData({\r\n abi: [\r\n {\r\n inputs: [\r\n { internalType: \"address\", name: \"to\", type: \"address\" },\r\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\r\n ],\r\n name: \"transfer\",\r\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\r\n stateMutability: \"nonpayable\",\r\n type: \"function\",\r\n },\r\n ],\r\n functionName: \"transfer\",\r\n args: [receiver, amountToSend],\r\n }),\r\n account: account,\r\n };\r\n }\r\n\r\n setTxData(builtTx);\r\n setMessage(\"✅ Transaction ready! Click 'Send Transaction' to proceed.\");\r\n } catch (error) {\r\n setError(error);\r\n setMessage(\"❌ Transaction preparation failed.\");\r\n }\r\n };\r\n\r\n // Send transaction\r\n const handleBuySc = async () => {\r\n try {\r\n if (!account || !txData) {\r\n setMessage(\"❌ Wallet account or transaction missing\");\r\n return;\r\n }\r\n\r\n setMessage(\"⏳ Verifying network...\");\r\n\r\n const freshWalletClient = await ensureCorrectNetwork();\r\n if (!freshWalletClient) {\r\n setMessage(\"❌ Failed to switch network\");\r\n return;\r\n }\r\n\r\n setMessage(\"⏳ Sending transaction...\");\r\n\r\n const txHash = await freshWalletClient.sendTransaction({\r\n ...txData,\r\n account,\r\n });\r\n\r\n setTxHash(txHash);\r\n setMessage(\"✅ Transaction sent!\");\r\n\r\n if (onTransactionComplete) {\r\n onTransactionComplete({\r\n txHash,\r\n network: selectedNetwork,\r\n token: selectedToken?.key,\r\n tokenSymbol: selectedToken?.symbol,\r\n amount: contextTransactionDetails?.amount,\r\n receivingAddress:\r\n contextTransactionDetails?.receivingAddress,\r\n });\r\n }\r\n } catch (err) {\r\n setError(err);\r\n setMessage(\"❌ Transaction failed.\");\r\n console.error(err);\r\n }\r\n };\r\n\r\n const getExplorerUrl = () => {\r\n if (!txHash || !selectedNetwork) return null;\r\n\r\n const explorerBaseUrls = {\r\n \"ethereum-classic\":\r\n \"https://blockscout.com/etc/mainnet/tx/\",\r\n sepolia: \"https://sepolia.etherscan.io/tx/\",\r\n \"milkomeda-mainnet\":\r\n \"https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/\",\r\n };\r\n\r\n return explorerBaseUrls[selectedNetwork]\r\n ? `${explorerBaseUrls[selectedNetwork]}${txHash}`\r\n : null;\r\n };\r\n\r\n return (\r\n \r\n
\r\n Network:\r\n {contextTransactionDetails.network}\r\n
\r\n\r\n
\r\n You Pay:\r\n \r\n {selectedToken.key === \"stablecoin\"\r\n ? `${contextTransactionDetails.amount} ${contextTransactionDetails.tokenSymbol}`\r\n : `${tradeDataBuySc || \"Calculating...\"} ${\r\n contextTransactionDetails.tokenSymbol\r\n }`}\r\n \r\n
\r\n\r\n
\r\n\r\n {account && !txData && (\r\n
\r\n )}\r\n\r\n {account && txData && (\r\n
\r\n )}\r\n\r\n {message &&
{message}
}\r\n\r\n {txHash && (\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default TransactionReview;","import React, { useState } from \"react\";\r\nimport PayButton from \"./PayButton\";\r\nimport Dialog from \"./Dialog\";\r\nimport NetworkDropdown from \"./NetworkDropdown\";\r\nimport TokenDropdown from \"./TokenDropdown\";\r\nimport TransactionReview from \"./TransactionReview\";\r\nimport { NetworkProvider, useNetwork } from \"../contexts/NetworkContext\";\r\nimport { WalletProvider } from \"../contexts/WalletContext\";\r\nimport styles from \"../styles/PricingCard.css\";\r\n\r\nconst WidgetContent = ({ onClose, buttonSize, onTransactionComplete }) => {\r\n const { resetSelections } = useNetwork(); \r\n\r\n const handleClose = () => {\r\n resetSelections(); // Reset selections when closing the widget\r\n onClose();\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst WidgetWithProviders = ({ onClose, buttonSize, networkSelector, onTransactionComplete }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const Widget = ({ networkSelector, buttonSize = \"medium\", onTransactionComplete, onSuccess }) => {\r\n const [isDialogOpen, setIsDialogOpen] = useState(false);\r\n\r\n const handleOpenDialog = () => {\r\n setIsDialogOpen(true);\r\n };\r\n\r\n const handleCloseDialog = () => {\r\n setIsDialogOpen(false);\r\n };\r\n\r\n // Support both onTransactionComplete and onSuccess for backwards compatibility\r\n const handleTransactionComplete = onTransactionComplete || onSuccess;\r\n\r\n return (\r\n \r\n {!isDialogOpen && (\r\n
\r\n )}\r\n {isDialogOpen && (\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Widget;\r\n","// src/index.js\r\nimport { NetworkSelector } from './core/NetworkSelector';\r\nimport { Transaction } from './core/Transaction';\r\nimport { Config } from './core/MerchantConfig';\r\nimport Widget from './widget/Widget.jsx';\r\nimport PayButton from './widget/PayButton.jsx';\r\nimport Dialog from './widget/Dialog.jsx';\r\nimport NetworkDropdown from './widget/NetworkDropdown.jsx';\r\nimport './styles/main.css';\r\nimport './styles/PricingCard.css';\r\n\r\nconst StablePay = {\r\n NetworkSelector,\r\n Transaction,\r\n Config,\r\n Widget,\r\n PayButton,\r\n Dialog,\r\n NetworkDropdown\r\n};\r\n\r\nexport default StablePay;","import { networksConfig } from \"../utils/config\";\r\n\r\nexport class NetworkSelector {\r\n constructor(merchantConfig) {\r\n this.merchantConfig = merchantConfig;\r\n this.blacklist = merchantConfig.getBlacklist();\r\n this.availableNetworks = this.getAvailableNetworks();\r\n this.selectedNetwork = null;\r\n }\r\n\r\n getAvailableNetworks() {\r\n return Object.entries(networksConfig).reduce(\r\n (acc, [networkKey, networkConfig]) => {\r\n if (!this.blacklist.includes(networkConfig.chainId)) {\r\n acc[networkKey] = networkConfig;\r\n }\r\n return acc;\r\n },\r\n {}\r\n );\r\n }\r\n\r\n selectNetwork(networkKey) {\r\n if (networkKey === null) {\r\n this.selectedNetwork = null;\r\n console.log(\"Network selection reset\");\r\n return true;\r\n }\r\n if (this.availableNetworks[networkKey]) {\r\n this.selectedNetwork = networkKey;\r\n console.log(`Network selected: ${networkKey}`);\r\n return true;\r\n }\r\n console.error(`Invalid network: ${networkKey}`);\r\n return false;\r\n }\r\n\r\n getSelectedNetworkConfig() {\r\n return this.selectedNetwork\r\n ? this.availableNetworks[this.selectedNetwork]\r\n : null;\r\n }\r\n\r\n getReceivingAddress() {\r\n return this.merchantConfig.getReceivingAddress();\r\n }\r\n\r\n getTokenAmount(token) {\r\n return this.merchantConfig.getTokenAmount(this.selectedNetwork, token);\r\n }\r\n}\r\n","import { networksConfig } from \"../utils/config\";\r\n\r\nexport class Config {\r\n constructor(options = {}) {\r\n this.receivingAddress = options.receivingAddress || \"\";\r\n this.blacklist = options.blacklist || [];\r\n this.amounts = options.Amounts || {}; // Note the capital 'A' in Amounts\r\n this.validateConfig();\r\n }\r\n\r\n validateConfig() {\r\n if (!this.receivingAddress) {\r\n throw new Error(\"Receiving address is required\");\r\n }\r\n // Validate stablecoin amounts\r\n for (const [network, tokens] of Object.entries(this.amounts)) {\r\n if (!networksConfig[network]) {\r\n throw new Error(`Invalid network: ${network}`);\r\n }\r\n if (\r\n !tokens.stablecoin ||\r\n typeof tokens.stablecoin !== \"number\" ||\r\n tokens.stablecoin <= 0\r\n ) {\r\n throw new Error(`Invalid stablecoin amount for network ${network}`);\r\n }\r\n }\r\n }\r\n\r\n getBlacklist() {\r\n return this.blacklist;\r\n }\r\n\r\n getReceivingAddress() {\r\n return this.receivingAddress;\r\n }\r\n\r\n // getTokenAmount(network, token) {\r\n // const networkConfig = networksConfig[network];\r\n // if (!networkConfig) return 0;\r\n\r\n // const stablecoinSymbol = networkConfig.tokens.stablecoin.symbol;\r\n\r\n // if (token === 'stablecoin') {\r\n // return this.amounts[network]?.stablecoin || 0;\r\n // }\r\n // // For native tokens, return 0 as it's not specified in the new structure\r\n // return 0;\r\n // }\r\n getTokenAmount(network) {\r\n console.log(\"Getting amount for network:\", network);\r\n console.log(\"Amounts object:\", this.amounts);\r\n\r\n // Directly return the stablecoin amount for the network\r\n const amount = this.amounts[network]?.stablecoin;\r\n console.log(\"Returning amount:\", amount);\r\n\r\n return amount || 0;\r\n }\r\n}\r\n\r\nexport default Config;\r\n"],"names":["networksConfig","sepolia","uri","chainId","djedAddress","tokens","stablecoin","symbol","address","decimals","isDirectTransfer","native","isNative","feeUI","Transaction","constructor","networkUri","this","chain","includes","mainnet","Error","resolveChain","init","publicClient","createPublicClient","transport","http","djedContract","getContract","abi","DJED_ABI","client","stableCoinAddress","read","stableCoin","reserveCoinAddress","reserveCoin","ERC20_ABI","scDecimals","BigInt","rcDecimals","oracleAddress","oracle","getBlockchainDetails","clientAvailable","djedContractAvailable","stableCoinDecimals","Number","reserveCoinDecimals","handleTradeDataBuySc","amountScaled","amountUnscaled","scPrice","treasuryFee","fee","scalingFactor","toString","buyStablecoins","walletClient","receiver","valueWei","writeContract","functionName","args","value","PayButton","onClick","size","sizeStyles","small","width","height","fontSize","medium","large","logoSizes","buttonStyle","logoStyle","React","createElement","className","styles","style","Dialog","children","onClose","dialogOverlay","pricingCard","dialogClose","pricingCardHeader","allianceLogo","stablepayTitle","pricingCardBody","TokenSelector","networkSelector","selectedToken","selectToken","tokenKey","networkConfig","getSelectedNetworkConfig","key","getSelectedToken","getAvailableTokens","Object","entries","map","config","resetSelection","NetworkContext","createContext","NetworkProvider","tokenSelector","useState","selectedNetwork","setSelectedNetwork","setSelectedToken","transactionDetails","setTransactionDetails","resetState","useEffect","Provider","selectNetwork","networkKey","token","resetSelections","useNetwork","context","useContext","undefined","NetworkDropdown","selectField","htmlFor","id","onChange","event","target","disabled","keys","availableNetworks","TokenDropdown","loading","setLoading","error","setError","availableTokens","async","newValue","transaction","tokenAmount","getTokenAmount","blockchainDetails","tradeData","String","network","tokenSymbol","amount","receivingAddress","getReceivingAddress","djedContractAddress","isNativeToken","tradeAmount","err","console","defineChain","name","nativeCurrency","rpcUrls","default","webSocket","blockExplorers","url","testnet","milkomeda","etcMainnet","WalletContext","switchToNetwork","window","ethereum","chainConfig","chainName","blockExplorerUrls","getChainConfigForWallet","request","method","params","switchError","code","message","addError","WalletProvider","setWalletClient","setPublicClient","account","setAccount","setChainId","balance","setBalance","isConnecting","setIsConnecting","selectedChain","getChainByNetworkKey","expectedChainId","handleAccountsChangedRef","useRef","handleChainChangedRef","disconnectWalletInternal","useCallback","handleChainChanged","newChainId","parseInt","chainIdHex","newWalletClient","createWalletClient","custom","current","handleAccountsChanged","accounts","length","accountsHandler","chainHandler","removeListener","newPublicClient","getBalance","parseFloat","Math","pow","disconnectWallet","connectPublicClient","connectWallet","on","ensureCorrectNetwork","NETWORK_SWITCH_DELAY_MS","Promise","resolve","setTimeout","newChainIdHex","freshWalletClient","prevNetworkRef","TransactionReview","onTransactionComplete","contextTransactionDetails","useWallet","setTransaction","tradeDataBuySc","setTradeDataBuySc","txData","setTxData","setMessage","txHash","setTxHash","isErrorDetailsVisible","setIsErrorDetailsVisible","newTransaction","initializeTransaction","getExplorerUrl","explorerBaseUrls","transactionReview","transactionInfo","builtTx","amountToSend","valueInWei","parseEther","stablecoinAddress","parseUnits","to","data","encodeFunctionData","inputs","internalType","type","outputs","stateMutability","sendTransaction","href","rel","slice","WidgetContent","buttonSize","handleClose","WidgetWithProviders","NetworkSelector","merchantConfig","blacklist","getBlacklist","getAvailableNetworks","reduce","acc","log","Config","options","amounts","Amounts","validateConfig","Widget","onSuccess","isDialogOpen","setIsDialogOpen","handleTransactionComplete","widgetContainer","handleOpenDialog","handleCloseDialog"],"mappings":"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"}
\ No newline at end of file
diff --git a/stablepay-sdk/package-lock.json b/stablepay-sdk/package-lock.json
index d3d2450..c0b275b 100644
--- a/stablepay-sdk/package-lock.json
+++ b/stablepay-sdk/package-lock.json
@@ -1,19 +1,17 @@
{
"name": "stablepay-sdk",
- "version": "1.0.4",
+ "version": "1.0.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "stablepay-sdk",
- "version": "1.0.4",
+ "version": "1.0.3",
"license": "ISC",
"dependencies": {
- "djed-sdk": "^1.0.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
- "viem": "^2.21.53",
- "web3": "^1.7.3"
+ "viem": "^2.46.1"
},
"devDependencies": {
"@babel/preset-react": "^7.25.7",
@@ -40,9 +38,9 @@
"license": "MIT"
},
"node_modules/@babel/code-frame": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz",
- "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -55,9 +53,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz",
- "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -66,22 +64,22 @@
}
},
"node_modules/@babel/core": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz",
- "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
- "@babel/code-frame": "^7.28.6",
- "@babel/generator": "^7.28.6",
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
"@babel/helper-compilation-targets": "^7.28.6",
"@babel/helper-module-transforms": "^7.28.6",
"@babel/helpers": "^7.28.6",
- "@babel/parser": "^7.28.6",
+ "@babel/parser": "^7.29.0",
"@babel/template": "^7.28.6",
- "@babel/traverse": "^7.28.6",
- "@babel/types": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
"@jridgewell/remapping": "^2.3.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
@@ -97,42 +95,15 @@
"url": "https://opencollective.com/babel"
}
},
- "node_modules/@babel/core/node_modules/debug": {
- "version": "4.4.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
- "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "dev": true,
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/core/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==",
- "dev": true,
- "license": "MIT",
- "peer": true
- },
"node_modules/@babel/generator": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz",
- "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==",
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^7.28.6",
- "@babel/types": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"jsesc": "^3.0.2"
@@ -142,12 +113,13 @@
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz",
- "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==",
+ "version": "7.27.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
+ "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.25.7"
+ "@babel/types": "^7.27.3"
},
"engines": {
"node": ">=6.9.0"
@@ -215,10 +187,11 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
- "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -269,13 +242,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz",
- "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz",
+ "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.28.6"
+ "@babel/types": "^7.29.0"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -285,12 +258,13 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz",
- "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
+ "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -300,12 +274,13 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz",
- "integrity": "sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==",
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
+ "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -315,16 +290,17 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz",
- "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz",
+ "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-module-imports": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/plugin-syntax-jsx": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.27.3",
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-plugin-utils": "^7.28.6",
+ "@babel/plugin-syntax-jsx": "^7.28.6",
+ "@babel/types": "^7.28.6"
},
"engines": {
"node": ">=6.9.0"
@@ -334,12 +310,13 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.7.tgz",
- "integrity": "sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz",
+ "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.25.7"
+ "@babel/plugin-transform-react-jsx": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -349,13 +326,14 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.7.tgz",
- "integrity": "sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==",
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz",
+ "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -365,17 +343,18 @@
}
},
"node_modules/@babel/preset-react": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.7.tgz",
- "integrity": "sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==",
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz",
+ "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-validator-option": "^7.25.7",
- "@babel/plugin-transform-react-display-name": "^7.25.7",
- "@babel/plugin-transform-react-jsx": "^7.25.7",
- "@babel/plugin-transform-react-jsx-development": "^7.25.7",
- "@babel/plugin-transform-react-pure-annotations": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/helper-validator-option": "^7.27.1",
+ "@babel/plugin-transform-react-display-name": "^7.28.0",
+ "@babel/plugin-transform-react-jsx": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-development": "^7.27.1",
+ "@babel/plugin-transform-react-pure-annotations": "^7.27.1"
},
"engines": {
"node": ">=6.9.0"
@@ -400,51 +379,28 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz",
- "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.28.6",
- "@babel/generator": "^7.28.6",
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
"@babel/helper-globals": "^7.28.0",
- "@babel/parser": "^7.28.6",
+ "@babel/parser": "^7.29.0",
"@babel/template": "^7.28.6",
- "@babel/types": "^7.28.6",
+ "@babel/types": "^7.29.0",
"debug": "^4.3.1"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/traverse/node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/traverse/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==",
- "dev": true
- },
"node_modules/@babel/types": {
- "version": "7.28.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz",
- "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==",
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -455,451 +411,6 @@
"node": ">=6.9.0"
}
},
- "node_modules/@ethereumjs/common": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz",
- "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==",
- "dependencies": {
- "crc-32": "^1.2.0",
- "ethereumjs-util": "^7.1.5"
- }
- },
- "node_modules/@ethereumjs/rlp": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz",
- "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==",
- "bin": {
- "rlp": "bin/rlp"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@ethereumjs/tx": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz",
- "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==",
- "dependencies": {
- "@ethereumjs/common": "^2.6.4",
- "ethereumjs-util": "^7.1.5"
- }
- },
- "node_modules/@ethereumjs/util": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz",
- "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==",
- "dependencies": {
- "@ethereumjs/rlp": "^4.0.1",
- "ethereum-cryptography": "^2.0.0",
- "micro-ftch": "^0.3.1"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@ethersproject/abi": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
- "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/hash": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/abstract-provider": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
- "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/networks": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/transactions": "^5.7.0",
- "@ethersproject/web": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/abstract-signer": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
- "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/abstract-provider": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/address": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
- "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/rlp": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/base64": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
- "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/bignumber": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
- "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "bn.js": "^5.2.1"
- }
- },
- "node_modules/@ethersproject/bignumber/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
- "node_modules/@ethersproject/bytes": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
- "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/constants": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
- "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bignumber": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/hash": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
- "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/abstract-signer": "^5.7.0",
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/base64": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/keccak256": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
- "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "js-sha3": "0.8.0"
- }
- },
- "node_modules/@ethersproject/logger": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
- "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ]
- },
- "node_modules/@ethersproject/networks": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
- "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/properties": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
- "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/rlp": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
- "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/signing-key": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
- "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "bn.js": "^5.2.1",
- "elliptic": "6.5.4",
- "hash.js": "1.1.7"
- }
- },
- "node_modules/@ethersproject/signing-key/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
- "node_modules/@ethersproject/signing-key/node_modules/elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/@ethersproject/strings": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
- "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/logger": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/transactions": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
- "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/address": "^5.7.0",
- "@ethersproject/bignumber": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/constants": "^5.7.0",
- "@ethersproject/keccak256": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/rlp": "^5.7.0",
- "@ethersproject/signing-key": "^5.7.0"
- }
- },
- "node_modules/@ethersproject/web": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
- "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
- "dependencies": {
- "@ethersproject/base64": "^5.7.0",
- "@ethersproject/bytes": "^5.7.0",
- "@ethersproject/logger": "^5.7.0",
- "@ethersproject/properties": "^5.7.0",
- "@ethersproject/strings": "^5.7.0"
- }
- },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -928,15 +439,17 @@
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
+ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25"
@@ -960,23 +473,40 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@noble/curves": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz",
- "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==",
- "dependencies": {
- "@noble/hashes": "1.4.0"
- },
+ "node_modules/@noble/ciphers": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz",
+ "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/curves": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz",
+ "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "1.8.0"
+ },
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@noble/hashes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
- "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "license": "MIT",
"engines": {
- "node": ">= 16"
+ "node": "^14.21.3 || >=16"
},
"funding": {
"url": "https://paulmillr.com/funding/"
@@ -987,6 +517,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -1000,6 +531,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
@@ -1009,6 +541,7 @@
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -1018,10 +551,11 @@
}
},
"node_modules/@rollup/plugin-babel": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz",
- "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.1.0.tgz",
+ "integrity": "sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.18.6",
"@rollup/pluginutils": "^5.0.1"
@@ -1044,9 +578,9 @@
}
},
"node_modules/@rollup/plugin-commonjs": {
- "version": "28.0.8",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.8.tgz",
- "integrity": "sha512-o1Ug9PxYsF61R7/NXO/GgMZZproLd/WH2XA53Tp9ppf6bU1lMlTtC/gUM6zM3mesi2E0rypk+PNtVrELREyWEQ==",
+ "version": "28.0.9",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.9.tgz",
+ "integrity": "sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1070,47 +604,6 @@
}
}
},
- "node_modules/@rollup/plugin-commonjs/node_modules/fdir": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
- "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": {
- "version": "0.30.19",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
- "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.5"
- }
- },
- "node_modules/@rollup/plugin-commonjs/node_modules/picomatch": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
"node_modules/@rollup/plugin-json": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
@@ -1157,13 +650,6 @@
}
}
},
- "node_modules/@rollup/plugin-node-resolve/node_modules/@types/resolve": {
- "version": "1.20.2",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
- "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@rollup/plugin-terser": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz",
@@ -1187,20 +673,12 @@
}
}
},
- "node_modules/@rollup/plugin-terser/node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
"node_modules/@rollup/plugin-url": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@rollup/plugin-url/-/plugin-url-8.0.2.tgz",
"integrity": "sha512-5yW2LP5NBEgkvIRSSEdJkmxe5cUNZKG3eenKtfJvSkxVm/xTTu7w+ayBtNwhozl1ZnTUCU0xFaRQR+cBl2H7TQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"make-dir": "^3.1.0",
@@ -1218,27 +696,16 @@
}
}
},
- "node_modules/@rollup/plugin-url/node_modules/mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@rollup/pluginutils": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.2.tgz",
- "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
+ "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
- "picomatch": "^2.3.1"
+ "picomatch": "^4.0.2"
},
"engines": {
"node": ">=14.0.0"
@@ -1253,307 +720,414 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz",
- "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
+ "integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz",
- "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
+ "integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"android"
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz",
- "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
+ "integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz",
- "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
+ "integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
]
},
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
+ "integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
+ "integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz",
- "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
+ "integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz",
- "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
+ "integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
"cpu": [
"arm"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz",
- "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
+ "integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz",
- "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
+ "integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
+ "integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
+ "integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
+ "integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz",
- "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==",
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
+ "integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
"cpu": [
"ppc64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz",
- "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
+ "integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
+ "integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
"cpu": [
"riscv64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz",
- "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
+ "integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
"cpu": [
"s390x"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz",
- "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
+ "integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz",
- "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
+ "integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"linux"
]
},
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
+ "integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
+ "integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz",
- "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
+ "integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
"cpu": [
"arm64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz",
- "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
+ "integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
"cpu": [
"ia32"
],
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
+ "integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz",
- "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
+ "integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@scure/base": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
- "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz",
+ "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==",
+ "license": "MIT",
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@scure/bip32": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz",
- "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz",
+ "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==",
+ "license": "MIT",
"dependencies": {
- "@noble/curves": "~1.4.0",
- "@noble/hashes": "~1.4.0",
- "@scure/base": "~1.1.6"
+ "@noble/curves": "~1.9.0",
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/@scure/bip39": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz",
- "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz",
+ "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==",
+ "license": "MIT",
"dependencies": {
- "@noble/hashes": "~1.4.0",
- "@scure/base": "~1.1.6"
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "dependencies": {
- "defer-to-connect": "^2.0.1"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
"node_modules/@trysound/sax": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10.13.0"
}
},
- "node_modules/@types/bn.js": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz",
- "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/cacheable-request": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
- "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==",
- "dependencies": {
- "@types/http-cache-semantics": "*",
- "@types/keyv": "^3.1.4",
- "@types/node": "*",
- "@types/responselike": "^1.0.0"
- }
- },
"node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "dev": true
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/fs-extra": {
"version": "8.1.5",
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz",
"integrity": "sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -1563,82 +1137,47 @@
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
"integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/minimatch": "*",
"@types/node": "*"
}
},
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="
- },
- "node_modules/@types/keyv": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
- "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/minimatch": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
"integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/node": {
- "version": "22.7.4",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz",
- "integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==",
- "dependencies": {
- "undici-types": "~6.19.2"
- }
- },
- "node_modules/@types/pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==",
+ "version": "25.3.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.1.tgz",
+ "integrity": "sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": "*"
+ "undici-types": "~7.18.0"
}
},
"node_modules/@types/resolve": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
- "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
+ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/responselike": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz",
- "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/secp256k1": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz",
- "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==",
- "dependencies": {
- "@types/node": "*"
- }
+ "license": "MIT"
},
"node_modules/abitype": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.6.tgz",
- "integrity": "sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz",
+ "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/wevm"
},
"peerDependencies": {
"typescript": ">=5.0.4",
- "zod": "^3 >=3.22.0"
+ "zod": "^3.22.0 || ^4.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -1649,28 +1188,12 @@
}
}
},
- "node_modules/abortcontroller-polyfill": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz",
- "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ=="
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/acorn": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
- "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
+ "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -1678,65 +1201,36 @@
"node": ">=0.4.0"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "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==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dependencies": {
- "safer-buffer": "~2.1.0"
- }
- },
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
"node_modules/autoprefixer": {
- "version": "10.4.20",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
- "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
+ "version": "10.4.27",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz",
+ "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==",
"dev": true,
"funding": [
{
@@ -1752,12 +1246,12 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
- "caniuse-lite": "^1.0.30001646",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.1",
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001774",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
@@ -1770,131 +1264,39 @@
"postcss": "^8.1.0"
}
},
- "node_modules/available-typed-arrays": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
- "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "dependencies": {
- "possible-typed-array-names": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/aws4": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
- "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="
- },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
- },
- "node_modules/base-x": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz",
- "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dependencies": {
- "tweetnacl": "^0.14.3"
- }
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/bignumber.js": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz",
- "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==",
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz",
+ "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
"engines": {
- "node": "*"
- }
- },
- "node_modules/blakejs": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
- "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
- },
- "node_modules/bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
- },
- "node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
+ "node": ">=6.0.0"
}
},
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -1905,6 +1307,7 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
},
@@ -1912,28 +1315,10 @@
"node": ">=8"
}
},
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
"node_modules/browserslist": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
- "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
"dev": true,
"funding": [
{
@@ -1949,11 +1334,13 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001663",
- "electron-to-chromium": "^1.5.28",
- "node-releases": "^2.0.18",
- "update-browserslist-db": "^1.1.0"
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
},
"bin": {
"browserslist": "cli.js"
@@ -1962,80 +1349,19 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
- "dependencies": {
- "base-x": "^3.0.2"
- }
- },
- "node_modules/bs58check": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
- "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "dependencies": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "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.1.13"
- }
- },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
- "node_modules/buffer-to-arraybuffer": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
- "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ=="
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="
- },
- "node_modules/bufferutil": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz",
- "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==",
- "hasInstallScript": true,
- "dependencies": {
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=6.14.2"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/builtin-modules": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -2043,84 +1369,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacheable-lookup": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz",
- "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==",
- "engines": {
- "node": ">=10.6.0"
- }
- },
- "node_modules/cacheable-request": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz",
- "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==",
- "dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "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",
"integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.0.0",
"caniuse-lite": "^1.0.0",
@@ -2129,9 +1383,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001668",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz",
- "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==",
+ "version": "1.0.30001774",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz",
+ "integrity": "sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==",
"dev": true,
"funding": [
{
@@ -2146,99 +1400,70 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ ],
+ "license": "CC-BY-4.0"
},
- "node_modules/cids": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
- "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
- "deprecated": "This module has been superseded by the multiformats module",
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "buffer": "^5.5.0",
- "class-is": "^1.1.0",
- "multibase": "~0.6.0",
- "multicodec": "^1.0.0",
- "multihashes": "~0.4.15"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=4.0.0",
- "npm": ">=3.0.0"
- }
- },
- "node_modules/cids/node_modules/multicodec": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
- "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dependencies": {
- "buffer": "^5.6.0",
- "varint": "^5.0.0"
- }
- },
- "node_modules/cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/class-is": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
- "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
- },
- "node_modules/clone-response": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
- "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "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==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "mimic-response": "^1.0.0"
+ "color-name": "~1.1.4"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=7.0.0"
}
},
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/colord": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
"integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/colorette": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
"integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
+ "node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">=16"
}
},
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
@@ -2250,46 +1475,19 @@
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/concat-with-sourcemaps": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz",
"integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"source-map": "^0.6.1"
}
},
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-hash": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
- "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
- "dependencies": {
- "cids": "^0.7.1",
- "multicodec": "^0.5.5",
- "multihashes": "^0.4.15"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -2298,85 +1496,12 @@
"license": "MIT",
"peer": true
},
- "node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/crc-32": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
- "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
- "bin": {
- "crc32": "bin/crc32.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "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/css-declaration-sorter": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz",
- "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.1.tgz",
+ "integrity": "sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^14 || ^16 || >=18"
},
@@ -2385,10 +1510,11 @@
}
},
"node_modules/css-select": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
+ "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0",
"css-what": "^6.1.0",
@@ -2401,12 +1527,13 @@
}
},
"node_modules/css-tree": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
- "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "mdn-data": "2.0.30",
+ "mdn-data": "2.12.2",
"source-map-js": "^1.0.1"
},
"engines": {
@@ -2414,10 +1541,11 @@
}
},
"node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
+ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">= 6"
},
@@ -2430,6 +1558,7 @@
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
"dev": true,
+ "license": "MIT",
"bin": {
"cssesc": "bin/cssesc"
},
@@ -2438,13 +1567,14 @@
}
},
"node_modules/cssnano": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.6.tgz",
- "integrity": "sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==",
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.2.tgz",
+ "integrity": "sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cssnano-preset-default": "^7.0.6",
- "lilconfig": "^3.1.2"
+ "cssnano-preset-default": "^7.0.10",
+ "lilconfig": "^3.1.3"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -2454,63 +1584,65 @@
"url": "https://opencollective.com/cssnano"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/cssnano-preset-default": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.6.tgz",
- "integrity": "sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==",
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.10.tgz",
+ "integrity": "sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
+ "browserslist": "^4.27.0",
"css-declaration-sorter": "^7.2.0",
- "cssnano-utils": "^5.0.0",
- "postcss-calc": "^10.0.2",
- "postcss-colormin": "^7.0.2",
- "postcss-convert-values": "^7.0.4",
- "postcss-discard-comments": "^7.0.3",
- "postcss-discard-duplicates": "^7.0.1",
- "postcss-discard-empty": "^7.0.0",
- "postcss-discard-overridden": "^7.0.0",
- "postcss-merge-longhand": "^7.0.4",
- "postcss-merge-rules": "^7.0.4",
- "postcss-minify-font-values": "^7.0.0",
- "postcss-minify-gradients": "^7.0.0",
- "postcss-minify-params": "^7.0.2",
- "postcss-minify-selectors": "^7.0.4",
- "postcss-normalize-charset": "^7.0.0",
- "postcss-normalize-display-values": "^7.0.0",
- "postcss-normalize-positions": "^7.0.0",
- "postcss-normalize-repeat-style": "^7.0.0",
- "postcss-normalize-string": "^7.0.0",
- "postcss-normalize-timing-functions": "^7.0.0",
- "postcss-normalize-unicode": "^7.0.2",
- "postcss-normalize-url": "^7.0.0",
- "postcss-normalize-whitespace": "^7.0.0",
- "postcss-ordered-values": "^7.0.1",
- "postcss-reduce-initial": "^7.0.2",
- "postcss-reduce-transforms": "^7.0.0",
- "postcss-svgo": "^7.0.1",
- "postcss-unique-selectors": "^7.0.3"
+ "cssnano-utils": "^5.0.1",
+ "postcss-calc": "^10.1.1",
+ "postcss-colormin": "^7.0.5",
+ "postcss-convert-values": "^7.0.8",
+ "postcss-discard-comments": "^7.0.5",
+ "postcss-discard-duplicates": "^7.0.2",
+ "postcss-discard-empty": "^7.0.1",
+ "postcss-discard-overridden": "^7.0.1",
+ "postcss-merge-longhand": "^7.0.5",
+ "postcss-merge-rules": "^7.0.7",
+ "postcss-minify-font-values": "^7.0.1",
+ "postcss-minify-gradients": "^7.0.1",
+ "postcss-minify-params": "^7.0.5",
+ "postcss-minify-selectors": "^7.0.5",
+ "postcss-normalize-charset": "^7.0.1",
+ "postcss-normalize-display-values": "^7.0.1",
+ "postcss-normalize-positions": "^7.0.1",
+ "postcss-normalize-repeat-style": "^7.0.1",
+ "postcss-normalize-string": "^7.0.1",
+ "postcss-normalize-timing-functions": "^7.0.1",
+ "postcss-normalize-unicode": "^7.0.5",
+ "postcss-normalize-url": "^7.0.1",
+ "postcss-normalize-whitespace": "^7.0.1",
+ "postcss-ordered-values": "^7.0.2",
+ "postcss-reduce-initial": "^7.0.5",
+ "postcss-reduce-transforms": "^7.0.1",
+ "postcss-svgo": "^7.1.0",
+ "postcss-unique-selectors": "^7.0.4"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/cssnano-utils": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz",
- "integrity": "sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz",
+ "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/csso": {
@@ -2518,6 +1650,7 @@
"resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
"integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"css-tree": "~2.2.0"
},
@@ -2531,6 +1664,7 @@
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
"integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mdn-data": "2.0.28",
"source-map-js": "^1.0.1"
@@ -2544,70 +1678,25 @@
"version": "2.0.28",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
"integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
- "dev": true
- },
- "node_modules/d": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
- "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
- "dependencies": {
- "es5-ext": "^0.10.64",
- "type": "^2.7.2"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10"
- }
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decode-uri-component": {
- "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"
- }
- },
- "node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
+ "ms": "^2.1.3"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/decompress-response/node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
"engines": {
- "node": ">=10"
+ "node": ">=6.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
"node_modules/deepmerge": {
@@ -2620,60 +1709,12 @@
"node": ">=0.10.0"
}
},
- "node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-type": "^4.0.0"
},
@@ -2681,16 +1722,12 @@
"node": ">=8"
}
},
- "node_modules/djed-sdk": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/djed-sdk/-/djed-sdk-1.0.2.tgz",
- "integrity": "sha512-0gc2BDxXjSkEzbo8yD4WxgfbiltDV0g2b3lqj2i1oTymleRioJ2KFKSLcfv2MeHBBa465Mjc+ifDD1BqlSllng=="
- },
"node_modules/dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
@@ -2700,11 +1737,6 @@
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
- "node_modules/dom-walk": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
- "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
- },
"node_modules/domelementtype": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
@@ -2715,13 +1747,15 @@
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
- ]
+ ],
+ "license": "BSD-2-Clause"
},
"node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"domelementtype": "^2.3.0"
},
@@ -2733,10 +1767,11 @@
}
},
"node_modules/domutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
@@ -2746,61 +1781,19 @@
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
"node_modules/electron-to-chromium": {
- "version": "1.5.36",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz",
- "integrity": "sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==",
- "dev": true
- },
- "node_modules/elliptic": {
- "version": "6.5.7",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz",
- "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dependencies": {
- "once": "^1.4.0"
- }
+ "version": "1.5.302",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz",
+ "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
@@ -2808,340 +1801,81 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es5-ext": {
- "version": "0.10.64",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
- "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
- "hasInstallScript": true,
- "dependencies": {
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.3",
- "esniff": "^2.0.1",
- "next-tick": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "node_modules/es6-promise": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
- "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
- },
- "node_modules/es6-symbol": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
- "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
- "dependencies": {
- "d": "^1.0.2",
- "ext": "^1.7.0"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/esniff": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
- "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
- "dependencies": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.62",
- "event-emitter": "^0.3.5",
- "type": "^2.7.2"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
"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==",
- "dev": true
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eth-ens-namehash": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
- "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
- "dependencies": {
- "idna-uts46-hx": "^2.3.1",
- "js-sha3": "^0.5.7"
- }
- },
- "node_modules/eth-ens-namehash/node_modules/js-sha3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
- "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g=="
- },
- "node_modules/eth-lib": {
- "version": "0.1.29",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
- "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "nano-json-stream-parser": "^0.1.2",
- "servify": "^0.1.12",
- "ws": "^3.0.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "node_modules/ethereum-bloom-filters": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.2.0.tgz",
- "integrity": "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==",
- "dependencies": {
- "@noble/hashes": "^1.4.0"
- }
- },
- "node_modules/ethereum-cryptography": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz",
- "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==",
- "dependencies": {
- "@noble/curves": "1.4.2",
- "@noble/hashes": "1.4.0",
- "@scure/bip32": "1.4.0",
- "@scure/bip39": "1.3.0"
- }
- },
- "node_modules/ethereumjs-util": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
- "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/ethereumjs-util/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
- "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
- },
- "node_modules/ethjs-unit": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
- "integrity": "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==",
- "dependencies": {
- "bn.js": "4.11.6",
- "number-to-bn": "1.7.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
- "node_modules/ethjs-unit/node_modules/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
- },
- "node_modules/event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/express": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
- "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/ext": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
- "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
- "dependencies": {
- "type": "^2.7.2"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "engines": [
- "node >=0.6.0"
- ]
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "micromatch": "^4.0.8"
},
"engines": {
"node": ">=8.6.0"
}
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
"node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
}
},
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -3149,109 +1883,41 @@
"node": ">=8"
}
},
- "node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/form-data-encoder": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz",
- "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg=="
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
- "dev": true,
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
},
"funding": {
- "type": "patreon",
+ "type": "github",
"url": "https://github.com/sponsors/rawify"
}
},
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/fs-extra": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
- "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "graceful-fs": "^4.1.2",
+ "graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
- }
- },
- "node_modules/fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
- "dependencies": {
- "minipass": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -3259,6 +1925,7 @@
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -3271,6 +1938,8 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -3280,6 +1949,7 @@
"resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz",
"integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"loader-utils": "^3.2.0"
}
@@ -3295,49 +1965,13 @@
"node": ">=6.9.0"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dependencies": {
- "assert-plus": "^1.0.0"
- }
- },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
"dev": true,
+ "license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -3358,6 +1992,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -3365,20 +2000,12 @@
"node": ">= 6"
}
},
- "node_modules/global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dependencies": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
- }
- },
"node_modules/globby": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz",
"integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/glob": "^7.1.1",
"array-union": "^2.1.0",
@@ -3393,142 +2020,29 @@
"node": ">=8"
}
},
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/got": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
- "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
- "dependencies": {
- "@sindresorhus/is": "^4.6.0",
- "@szmarczak/http-timer": "^5.0.1",
- "@types/cacheable-request": "^6.0.2",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^6.0.4",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "1.7.1",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "dependencies": {
- "has-symbols": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
+ "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==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
+ "node": ">=8"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -3536,89 +2050,19 @@
"node": ">= 0.4"
}
},
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-https": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
- "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg=="
- },
- "node_modules/http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- }
- },
- "node_modules/http2-wrapper": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
- "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.2.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/icss-replace-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
"integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/icss-utils": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^10 || ^12 || >= 14"
},
@@ -3626,49 +2070,12 @@
"postcss": "^8.1.0"
}
},
- "node_modules/idna-uts46-hx": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz",
- "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==",
- "dependencies": {
- "punycode": "2.1.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/idna-uts46-hx/node_modules/punycode": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
- "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -3678,6 +2085,7 @@
"resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz",
"integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"import-from": "^3.0.0"
},
@@ -3690,6 +2098,7 @@
"resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz",
"integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"resolve-from": "^5.0.0"
},
@@ -3703,6 +2112,7 @@
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
"dev": true,
+ "license": "ISC",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -3711,47 +2121,16 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"hasown": "^2.0.2"
},
@@ -3767,34 +2146,17 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/is-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
- "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
- },
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -3802,26 +2164,19 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-hex-prefixed": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
- "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==",
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
"node_modules/is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -3831,6 +2186,7 @@
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz",
"integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -3840,33 +2196,15 @@
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/estree": "*"
}
},
- "node_modules/is-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
- "dependencies": {
- "which-typed-array": "^1.1.14"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
- },
"node_modules/isows": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz",
- "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz",
+ "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==",
"funding": [
{
"type": "github",
@@ -3878,31 +2216,18 @@
"ws": "*"
}
},
- "node_modules/isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
- },
- "node_modules/js-sha3": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
- "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "node_modules/jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
},
"node_modules/jsesc": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true,
+ "license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
@@ -3910,26 +2235,6 @@
"node": ">=6"
}
},
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
"node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
@@ -3948,51 +2253,18 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
- "node_modules/jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/keccak": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz",
- "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==",
- "hasInstallScript": true,
- "dependencies": {
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
"node_modules/lilconfig": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14"
},
@@ -4005,6 +2277,7 @@
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
"integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 12.13.0"
}
@@ -4013,24 +2286,28 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
"integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -4038,17 +2315,6 @@
"loose-envify": "cli.js"
}
},
- "node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -4061,12 +2327,13 @@
}
},
"node_modules/magic-string": {
- "version": "0.25.9",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
- "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "sourcemap-codec": "^1.4.8"
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/make-dir": {
@@ -4074,6 +2341,7 @@
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"semver": "^6.0.0"
},
@@ -4084,65 +2352,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
"node_modules/mdn-data": {
- "version": "2.0.30",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
- "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
- "dev": true
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 8"
}
},
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micro-ftch": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz",
- "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg=="
- },
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@@ -4151,67 +2383,38 @@
"node": ">=8.6"
}
},
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
+ "node": ">=8.6"
},
- "engines": {
- "node": ">= 0.6"
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
- "dependencies": {
- "dom-walk": "^0.1.0"
+ "node": ">=10.0.0"
}
},
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
- },
"node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -4219,110 +2422,12 @@
"node": "*"
}
},
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node_modules/minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
- "dependencies": {
- "minipass": "^2.9.0"
- }
- },
- "node_modules/mkdirp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
- "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
- "bin": {
- "mkdirp": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/mkdirp-promise": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
- "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==",
- "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.",
- "dependencies": {
- "mkdirp": "*"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mock-fs": {
- "version": "4.14.0",
- "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
- "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw=="
- },
"node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/multibase": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz",
- "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dependencies": {
- "base-x": "^3.0.8",
- "buffer": "^5.5.0"
- }
- },
- "node_modules/multicodec": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz",
- "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dependencies": {
- "varint": "^5.0.0"
- }
- },
- "node_modules/multihashes": {
- "version": "0.4.21",
- "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz",
- "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==",
- "dependencies": {
- "buffer": "^5.5.0",
- "multibase": "^0.7.0",
- "varint": "^5.0.0"
- }
- },
- "node_modules/multihashes/node_modules/multibase": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz",
- "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==",
- "deprecated": "This module has been superseded by the multiformats module",
- "dependencies": {
- "base-x": "^3.0.8",
- "buffer": "^5.5.0"
- }
- },
- "node_modules/nano-json-stream-parser": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
- "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew=="
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/nanoid": {
"version": "3.3.11",
@@ -4344,72 +2449,19 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/next-tick": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
- "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
- },
- "node_modules/node-addon-api": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
- "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
- },
- "node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-gyp-build": {
- "version": "4.8.2",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz",
- "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
"node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
- "dev": true
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
+ "license": "MIT"
},
"node_modules/normalize-url": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
"integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -4422,6 +2474,7 @@
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0"
},
@@ -4429,82 +2482,20 @@
"url": "https://github.com/fb55/nth-check?sponsor=1"
}
},
- "node_modules/number-to-bn": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz",
- "integrity": "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==",
- "dependencies": {
- "bn.js": "4.11.6",
- "strip-hex-prefix": "1.0.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
- },
- "node_modules/number-to-bn/node_modules/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/oboe": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
- "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==",
- "dependencies": {
- "http-https": "^1.0.0"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
"wrappy": "1"
}
},
"node_modules/ox": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ox/-/ox-0.1.2.tgz",
- "integrity": "sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==",
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/ox/-/ox-0.12.4.tgz",
+ "integrity": "sha512-+P+C7QzuwPV8lu79dOwjBKfB2CbnbEXe/hfyyrff1drrO1nOOj3Hc87svHfcW1yneRr3WXaKr6nz11nq+/DF9Q==",
"funding": [
{
"type": "github",
@@ -4513,12 +2504,13 @@
],
"license": "MIT",
"dependencies": {
- "@adraffy/ens-normalize": "^1.10.1",
- "@noble/curves": "^1.6.0",
- "@noble/hashes": "^1.5.0",
- "@scure/bip32": "^1.5.0",
- "@scure/bip39": "^1.4.0",
- "abitype": "^1.0.6",
+ "@adraffy/ens-normalize": "^1.11.0",
+ "@noble/ciphers": "^1.3.0",
+ "@noble/curves": "1.9.1",
+ "@noble/hashes": "^1.8.0",
+ "@scure/bip32": "^1.7.0",
+ "@scure/bip39": "^1.6.0",
+ "abitype": "^1.2.3",
"eventemitter3": "5.0.1"
},
"peerDependencies": {
@@ -4530,88 +2522,18 @@
}
}
},
- "node_modules/ox/node_modules/@noble/curves": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
- "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==",
- "license": "MIT",
- "dependencies": {
- "@noble/hashes": "1.8.0"
- },
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/ox/node_modules/@noble/hashes": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
- "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
- "license": "MIT",
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/ox/node_modules/@scure/base": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz",
- "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==",
- "license": "MIT",
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/ox/node_modules/@scure/bip32": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz",
- "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==",
- "license": "MIT",
- "dependencies": {
- "@noble/curves": "~1.9.0",
- "@noble/hashes": "~1.8.0",
- "@scure/base": "~1.2.5"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/ox/node_modules/@scure/bip39": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz",
- "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==",
- "license": "MIT",
- "dependencies": {
- "@noble/hashes": "~1.8.0",
- "@scure/base": "~1.2.5"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/ox/node_modules/eventemitter3": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
"integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
"license": "MIT"
},
- "node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
- "engines": {
- "node": ">=12.20"
- }
- },
"node_modules/p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
"integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -4621,6 +2543,7 @@
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
"integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.4",
"p-timeout": "^3.2.0"
@@ -4637,6 +2560,7 @@
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
"integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"p-finally": "^1.0.0"
},
@@ -4644,24 +2568,12 @@
"node": ">=8"
}
},
- "node_modules/parse-headers": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
- "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -4670,42 +2582,19 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
+ "dev": true,
+ "license": "MIT"
},
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -4714,12 +2603,13 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8.6"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -4730,6 +2620,7 @@
"resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz",
"integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -4737,14 +2628,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/possible-typed-array-names": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
- "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/postcss": {
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
@@ -4776,12 +2659,13 @@
}
},
"node_modules/postcss-calc": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.2.tgz",
- "integrity": "sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==",
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz",
+ "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.1.2",
+ "postcss-selector-parser": "^7.0.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -4792,12 +2676,13 @@
}
},
"node_modules/postcss-colormin": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.2.tgz",
- "integrity": "sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.5.tgz",
+ "integrity": "sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
+ "browserslist": "^4.27.0",
"caniuse-api": "^3.0.0",
"colord": "^2.9.3",
"postcss-value-parser": "^4.2.0"
@@ -4806,74 +2691,79 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-convert-values": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.4.tgz",
- "integrity": "sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==",
+ "version": "7.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.8.tgz",
+ "integrity": "sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
+ "browserslist": "^4.27.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-discard-comments": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.3.tgz",
- "integrity": "sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.5.tgz",
+ "integrity": "sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.1.2"
+ "postcss-selector-parser": "^7.1.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-discard-duplicates": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.1.tgz",
- "integrity": "sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz",
+ "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-discard-empty": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz",
- "integrity": "sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz",
+ "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-discard-overridden": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz",
- "integrity": "sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz",
+ "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-load-config": {
@@ -4881,6 +2771,7 @@
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
"integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"lilconfig": "^2.0.5",
"yaml": "^1.10.2"
@@ -4910,49 +2801,53 @@
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/postcss-merge-longhand": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.4.tgz",
- "integrity": "sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz",
+ "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^7.0.4"
+ "stylehacks": "^7.0.5"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-merge-rules": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.4.tgz",
- "integrity": "sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.7.tgz",
+ "integrity": "sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
+ "browserslist": "^4.27.0",
"caniuse-api": "^3.0.0",
- "cssnano-utils": "^5.0.0",
- "postcss-selector-parser": "^6.1.2"
+ "cssnano-utils": "^5.0.1",
+ "postcss-selector-parser": "^7.1.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-minify-font-values": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz",
- "integrity": "sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz",
+ "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -4960,57 +2855,60 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-minify-gradients": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz",
- "integrity": "sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz",
+ "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"colord": "^2.9.3",
- "cssnano-utils": "^5.0.0",
+ "cssnano-utils": "^5.0.1",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-minify-params": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.2.tgz",
- "integrity": "sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.5.tgz",
+ "integrity": "sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
- "cssnano-utils": "^5.0.0",
+ "browserslist": "^4.27.0",
+ "cssnano-utils": "^5.0.1",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-minify-selectors": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.4.tgz",
- "integrity": "sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz",
+ "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
- "postcss-selector-parser": "^6.1.2"
+ "postcss-selector-parser": "^7.1.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-modules": {
@@ -5018,6 +2916,7 @@
"resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.3.1.tgz",
"integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"generic-names": "^4.0.0",
"icss-replace-symbols": "^1.1.0",
@@ -5037,6 +2936,7 @@
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
"integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^10 || ^12 || >= 14"
},
@@ -5045,13 +2945,14 @@
}
},
"node_modules/postcss-modules-local-by-default": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz",
- "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz",
+ "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"icss-utils": "^5.0.0",
- "postcss-selector-parser": "^6.0.2",
+ "postcss-selector-parser": "^7.0.0",
"postcss-value-parser": "^4.1.0"
},
"engines": {
@@ -5062,12 +2963,13 @@
}
},
"node_modules/postcss-modules-scope": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz",
- "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
+ "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "postcss-selector-parser": "^6.0.4"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": "^10 || ^12 || >= 14"
@@ -5081,6 +2983,7 @@
"resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
"integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"icss-utils": "^5.0.0"
},
@@ -5092,22 +2995,24 @@
}
},
"node_modules/postcss-normalize-charset": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz",
- "integrity": "sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz",
+ "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-display-values": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz",
- "integrity": "sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz",
+ "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5115,14 +3020,15 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-positions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz",
- "integrity": "sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz",
+ "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5130,14 +3036,15 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-repeat-style": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz",
- "integrity": "sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz",
+ "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5145,14 +3052,15 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-string": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz",
- "integrity": "sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz",
+ "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5160,14 +3068,15 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-timing-functions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz",
- "integrity": "sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz",
+ "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5175,30 +3084,32 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-unicode": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.2.tgz",
- "integrity": "sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.5.tgz",
+ "integrity": "sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
+ "browserslist": "^4.27.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-url": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz",
- "integrity": "sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz",
+ "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5206,14 +3117,15 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-normalize-whitespace": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz",
- "integrity": "sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz",
+ "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5221,46 +3133,49 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-ordered-values": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz",
- "integrity": "sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz",
+ "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cssnano-utils": "^5.0.0",
+ "cssnano-utils": "^5.0.1",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-reduce-initial": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.2.tgz",
- "integrity": "sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.5.tgz",
+ "integrity": "sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
+ "browserslist": "^4.27.0",
"caniuse-api": "^3.0.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-reduce-transforms": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz",
- "integrity": "sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz",
+ "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -5268,14 +3183,15 @@
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -5285,120 +3201,55 @@
}
},
"node_modules/postcss-svgo": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.1.tgz",
- "integrity": "sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz",
+ "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "svgo": "^3.3.2"
+ "svgo": "^4.0.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >= 18"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-unique-selectors": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.3.tgz",
- "integrity": "sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz",
+ "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.1.2"
+ "postcss-selector-parser": "^7.1.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
}
},
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "engines": {
- "node": ">= 0.6.0"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/promise.series": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/promise.series/-/promise.series-0.2.0.tgz",
"integrity": "sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12"
}
},
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
- },
- "node_modules/pump": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
- "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/query-string": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
- "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
- "dependencies": {
- "decode-uri-component": "^0.2.0",
- "object-assign": "^4.1.0",
- "strict-uri-encode": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -5417,53 +3268,24 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
- },
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ ],
+ "license": "MIT"
},
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "^5.1.0"
}
},
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/react": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -5475,6 +3297,7 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -5483,150 +3306,56 @@
"react": "^18.3.1"
}
},
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-core-module": "^2.13.0",
+ "is-core-module": "^2.16.1",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
- },
"node_modules/resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/responselike": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
- "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
- "dependencies": {
- "lowercase-keys": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/responselike/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
}
},
- "node_modules/ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "node_modules/rlp": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz",
- "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
- "dependencies": {
- "bn.js": "^5.2.0"
- },
- "bin": {
- "rlp": "bin/rlp"
- }
- },
- "node_modules/rlp/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
"node_modules/rollup": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz",
- "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==",
+ "version": "4.59.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz",
+ "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/estree": "1.0.6"
+ "@types/estree": "1.0.8"
},
"bin": {
"rollup": "dist/bin/rollup"
@@ -5636,22 +3365,31 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.24.0",
- "@rollup/rollup-android-arm64": "4.24.0",
- "@rollup/rollup-darwin-arm64": "4.24.0",
- "@rollup/rollup-darwin-x64": "4.24.0",
- "@rollup/rollup-linux-arm-gnueabihf": "4.24.0",
- "@rollup/rollup-linux-arm-musleabihf": "4.24.0",
- "@rollup/rollup-linux-arm64-gnu": "4.24.0",
- "@rollup/rollup-linux-arm64-musl": "4.24.0",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0",
- "@rollup/rollup-linux-riscv64-gnu": "4.24.0",
- "@rollup/rollup-linux-s390x-gnu": "4.24.0",
- "@rollup/rollup-linux-x64-gnu": "4.24.0",
- "@rollup/rollup-linux-x64-musl": "4.24.0",
- "@rollup/rollup-win32-arm64-msvc": "4.24.0",
- "@rollup/rollup-win32-ia32-msvc": "4.24.0",
- "@rollup/rollup-win32-x64-msvc": "4.24.0",
+ "@rollup/rollup-android-arm-eabi": "4.59.0",
+ "@rollup/rollup-android-arm64": "4.59.0",
+ "@rollup/rollup-darwin-arm64": "4.59.0",
+ "@rollup/rollup-darwin-x64": "4.59.0",
+ "@rollup/rollup-freebsd-arm64": "4.59.0",
+ "@rollup/rollup-freebsd-x64": "4.59.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.59.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.59.0",
+ "@rollup/rollup-linux-arm64-musl": "4.59.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.59.0",
+ "@rollup/rollup-linux-loong64-musl": "4.59.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.59.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.59.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.59.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.59.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-gnu": "4.59.0",
+ "@rollup/rollup-linux-x64-musl": "4.59.0",
+ "@rollup/rollup-openbsd-x64": "4.59.0",
+ "@rollup/rollup-openharmony-arm64": "4.59.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.59.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.59.0",
+ "@rollup/rollup-win32-x64-gnu": "4.59.0",
+ "@rollup/rollup-win32-x64-msvc": "4.59.0",
"fsevents": "~2.3.2"
}
},
@@ -5661,6 +3399,7 @@
"integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==",
"deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-commonjs.",
"dev": true,
+ "license": "MIT",
"dependencies": {
"estree-walker": "^0.6.1",
"is-reference": "^1.1.2",
@@ -5676,13 +3415,25 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/rollup-plugin-commonjs/node_modules/magic-string": {
+ "version": "0.25.9",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sourcemap-codec": "^1.4.8"
+ }
},
"node_modules/rollup-plugin-copy": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.5.0.tgz",
"integrity": "sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/fs-extra": "^8.0.1",
"colorette": "^1.1.0",
@@ -5694,26 +3445,13 @@
"node": ">=8.3"
}
},
- "node_modules/rollup-plugin-copy/node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
"node_modules/rollup-plugin-node-resolve": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz",
"integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==",
"deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve.",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/resolve": "0.0.8",
"builtin-modules": "^3.1.0",
@@ -5725,11 +3463,22 @@
"rollup": ">=1.11.0"
}
},
+ "node_modules/rollup-plugin-node-resolve/node_modules/@types/resolve": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
+ "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/rollup-plugin-postcss": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz",
"integrity": "sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"concat-with-sourcemaps": "^1.1.0",
@@ -5752,60 +3501,12 @@
"postcss": "8.x"
}
},
- "node_modules/rollup-plugin-postcss/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==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/rollup-plugin-postcss/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "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/rollup-plugin-postcss/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==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/rollup-plugin-postcss/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==",
- "dev": true
- },
"node_modules/rollup-plugin-postcss/node_modules/commander": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
"integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10"
}
@@ -5815,6 +3516,7 @@
"resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz",
"integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^10 || ^12 || >=14"
},
@@ -5827,6 +3529,7 @@
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0",
"css-what": "^6.0.1",
@@ -5843,6 +3546,7 @@
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mdn-data": "2.0.14",
"source-map": "^0.6.1"
@@ -5856,6 +3560,7 @@
"resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz",
"integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssnano-preset-default": "^5.2.14",
"lilconfig": "^2.0.3",
@@ -5877,6 +3582,7 @@
"resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
"integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"css-declaration-sorter": "^6.3.1",
"cssnano-utils": "^3.1.0",
@@ -5920,6 +3626,7 @@
"resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
"integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -5932,6 +3639,7 @@
"resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
"integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"css-tree": "^1.1.2"
},
@@ -5944,6 +3652,7 @@
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
@@ -5958,6 +3667,7 @@
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"domelementtype": "^2.2.0"
},
@@ -5973,6 +3683,7 @@
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^1.0.1",
"domelementtype": "^2.2.0",
@@ -5987,24 +3698,17 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
"dev": true,
+ "license": "BSD-2-Clause",
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/rollup-plugin-postcss/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==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/rollup-plugin-postcss/node_modules/lilconfig": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
@@ -6013,13 +3717,15 @@
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
- "dev": true
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/rollup-plugin-postcss/node_modules/postcss-calc": {
"version": "8.2.4",
"resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz",
"integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-selector-parser": "^6.0.9",
"postcss-value-parser": "^4.2.0"
@@ -6033,6 +3739,7 @@
"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
"integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
@@ -6051,6 +3758,7 @@
"resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
"integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
@@ -6067,6 +3775,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
"integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -6079,6 +3788,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
"integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -6091,6 +3801,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
"integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -6103,6 +3814,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
"integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -6115,6 +3827,7 @@
"resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
"integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
"stylehacks": "^5.1.1"
@@ -6131,6 +3844,7 @@
"resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
"integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
@@ -6149,6 +3863,7 @@
"resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
"integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6164,6 +3879,7 @@
"resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
"integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"colord": "^2.9.1",
"cssnano-utils": "^3.1.0",
@@ -6181,6 +3897,7 @@
"resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
"integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"cssnano-utils": "^3.1.0",
@@ -6198,6 +3915,7 @@
"resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
"integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-selector-parser": "^6.0.5"
},
@@ -6213,6 +3931,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
"integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -6225,6 +3944,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
"integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6240,6 +3960,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
"integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6255,6 +3976,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
"integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6270,6 +3992,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
"integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6285,6 +4008,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
"integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6300,6 +4024,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
"integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
@@ -6316,6 +4041,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
"integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"normalize-url": "^6.0.1",
"postcss-value-parser": "^4.2.0"
@@ -6332,6 +4058,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
"integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6347,6 +4074,7 @@
"resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
"integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
@@ -6363,6 +4091,7 @@
"resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
"integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"caniuse-api": "^3.0.0"
@@ -6379,6 +4108,7 @@
"resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
"integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -6389,11 +4119,26 @@
"postcss": "^8.2.15"
}
},
+ "node_modules/rollup-plugin-postcss/node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/rollup-plugin-postcss/node_modules/postcss-svgo": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
"integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
"svgo": "^2.7.0"
@@ -6410,6 +4155,7 @@
"resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
"integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"postcss-selector-parser": "^6.0.5"
},
@@ -6425,6 +4171,7 @@
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
"integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
@@ -6436,23 +4183,12 @@
"postcss": "^8.2.15"
}
},
- "node_modules/rollup-plugin-postcss/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==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/rollup-plugin-postcss/node_modules/svgo": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
"integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@trysound/sax": "0.2.0",
"commander": "^7.2.0",
@@ -6474,6 +4210,7 @@
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
"integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"estree-walker": "^0.6.1"
}
@@ -6482,7 +4219,8 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/run-parallel": {
"version": "1.2.0",
@@ -6503,6 +4241,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"queue-microtask": "^1.2.2"
}
@@ -6511,6 +4250,7 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -6524,256 +4264,104 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/safe-identifier": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz",
"integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "node_modules/sax": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz",
+ "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=11.0.0"
+ }
},
"node_modules/scheduler": {
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
}
},
- "node_modules/scrypt-js": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
- "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
- },
- "node_modules/secp256k1": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
- "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
- "hasInstallScript": true,
- "dependencies": {
- "elliptic": "^6.5.4",
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
+ "randombytes": "^2.1.0"
}
},
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">=8"
}
},
- "node_modules/send/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/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
+ "node_modules/smob": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.1.tgz",
+ "integrity": "sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=20.0.0"
}
},
- "node_modules/servify": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
- "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
- "dependencies": {
- "body-parser": "^1.16.0",
- "cors": "^2.8.1",
- "express": "^4.14.0",
- "request": "^2.79.0",
- "xhr": "^2.3.3"
- },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">= 0.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/simple-get": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
- "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
- "dependencies": {
- "decompress-response": "^3.3.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "node_modules/simple-get/node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
- "dependencies": {
- "mimic-response": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/smob": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
- "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
- "dev": true
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
"node_modules/sourcemap-codec": {
@@ -6781,101 +4369,59 @@
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
- "dev": true
- },
- "node_modules/sshpk": {
- "version": "1.18.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
- "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
"deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
- "dev": true
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
+ "dev": true,
+ "license": "MIT"
},
"node_modules/string-hash": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
"integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==",
- "dev": true
- },
- "node_modules/strip-hex-prefix": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
- "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==",
- "dependencies": {
- "is-hex-prefixed": "1.0.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/style-inject": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/style-inject/-/style-inject-0.3.0.tgz",
"integrity": "sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/stylehacks": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.4.tgz",
- "integrity": "sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.7.tgz",
+ "integrity": "sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.23.3",
- "postcss-selector-parser": "^6.1.2"
+ "browserslist": "^4.27.0",
+ "postcss-selector-parser": "^7.1.0"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
"peerDependencies": {
- "postcss": "^8.4.31"
+ "postcss": "^8.4.32"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -6883,6 +4429,7 @@
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -6891,164 +4438,40 @@
}
},
"node_modules/svgo": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
- "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz",
+ "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@trysound/sax": "0.2.0",
- "commander": "^7.2.0",
+ "commander": "^11.1.0",
"css-select": "^5.1.0",
- "css-tree": "^2.3.1",
+ "css-tree": "^3.0.1",
"css-what": "^6.1.0",
"csso": "^5.0.5",
- "picocolors": "^1.0.0"
+ "picocolors": "^1.1.1",
+ "sax": "^1.4.1"
},
"bin": {
- "svgo": "bin/svgo"
+ "svgo": "bin/svgo.js"
},
"engines": {
- "node": ">=14.0.0"
+ "node": ">=16"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/svgo"
}
},
- "node_modules/svgo/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/swarm-js": {
- "version": "0.1.42",
- "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.42.tgz",
- "integrity": "sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==",
- "dependencies": {
- "bluebird": "^3.5.0",
- "buffer": "^5.0.5",
- "eth-lib": "^0.1.26",
- "fs-extra": "^4.0.2",
- "got": "^11.8.5",
- "mime-types": "^2.1.16",
- "mkdirp-promise": "^5.0.1",
- "mock-fs": "^4.1.0",
- "setimmediate": "^1.0.5",
- "tar": "^4.0.2",
- "xhr-request": "^1.0.1"
- }
- },
- "node_modules/swarm-js/node_modules/@szmarczak/http-timer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
- "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
- "dependencies": {
- "defer-to-connect": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/swarm-js/node_modules/cacheable-lookup": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
- "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==",
- "engines": {
- "node": ">=10.6.0"
- }
- },
- "node_modules/swarm-js/node_modules/got": {
- "version": "11.8.6",
- "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz",
- "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==",
- "dependencies": {
- "@sindresorhus/is": "^4.0.0",
- "@szmarczak/http-timer": "^4.0.5",
- "@types/cacheable-request": "^6.0.1",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^5.0.3",
- "cacheable-request": "^7.0.2",
- "decompress-response": "^6.0.0",
- "http2-wrapper": "^1.0.0-beta.5.2",
- "lowercase-keys": "^2.0.0",
- "p-cancelable": "^2.0.0",
- "responselike": "^2.0.0"
- },
- "engines": {
- "node": ">=10.19.0"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/swarm-js/node_modules/http2-wrapper": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
- "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.0.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/swarm-js/node_modules/lowercase-keys": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/swarm-js/node_modules/p-cancelable": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
- "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tar": {
- "version": "4.4.19",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
- "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
- "dependencies": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
- },
- "engines": {
- "node": ">=4.5"
- }
- },
- "node_modules/tar/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
"node_modules/terser": {
- "version": "5.34.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
- "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==",
+ "version": "5.46.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz",
+ "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
+ "acorn": "^8.15.0",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
},
@@ -7059,19 +4482,19 @@
"node": ">=10"
}
},
- "node_modules/timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -7079,102 +4502,27 @@
"node": ">=8.0"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
- },
- "node_modules/type": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
- "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
- "node_modules/ultron": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
- "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
- },
"node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/update-browserslist-db": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
- "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
"dev": true,
"funding": [
{
@@ -7190,9 +4538,10 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
"escalade": "^3.2.0",
- "picocolors": "^1.1.0"
+ "picocolors": "^1.1.1"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -7201,100 +4550,17 @@
"browserslist": ">= 4.21.0"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url-set-query": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
- "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg=="
- },
- "node_modules/utf-8-validate": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
- "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
- "hasInstallScript": true,
- "dependencies": {
- "node-gyp-build": "^4.3.0"
- },
- "engines": {
- "node": ">=6.14.2"
- }
- },
- "node_modules/utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
- "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
- },
- "node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/varint": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
- "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/viem": {
- "version": "2.21.53",
- "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.53.tgz",
- "integrity": "sha512-0pY8clBacAwzc59iV1vY4a6U4xvRlA5tAuhClJCKvqA6rXJzmNMMvxQ0EG79lkHr7WtBEruXz8nAmONXwnq4EQ==",
+ "version": "2.46.3",
+ "resolved": "https://registry.npmjs.org/viem/-/viem-2.46.3.tgz",
+ "integrity": "sha512-2LJS+Hyh2sYjHXQtzfv1kU9pZx9dxFzvoU/ZKIcn0FNtOU0HQuIICuYdWtUDFHaGXbAdVo8J1eCvmjkL9JVGwg==",
"funding": [
{
"type": "github",
@@ -7303,15 +4569,14 @@
],
"license": "MIT",
"dependencies": {
- "@noble/curves": "1.6.0",
- "@noble/hashes": "1.5.0",
- "@scure/bip32": "1.5.0",
- "@scure/bip39": "1.4.0",
- "abitype": "1.0.6",
- "isows": "1.0.6",
- "ox": "0.1.2",
- "webauthn-p256": "0.0.10",
- "ws": "8.18.0"
+ "@noble/curves": "1.9.1",
+ "@noble/hashes": "1.8.0",
+ "@scure/bip32": "1.7.0",
+ "@scure/bip39": "1.6.0",
+ "abitype": "1.2.3",
+ "isows": "1.0.7",
+ "ox": "0.12.4",
+ "ws": "8.18.3"
},
"peerDependencies": {
"typescript": ">=5.0.4"
@@ -7322,63 +4587,17 @@
}
}
},
- "node_modules/viem/node_modules/@noble/curves": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz",
- "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==",
- "license": "MIT",
- "dependencies": {
- "@noble/hashes": "1.5.0"
- },
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/viem/node_modules/@noble/hashes": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz",
- "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==",
- "license": "MIT",
- "engines": {
- "node": "^14.21.3 || >=16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/viem/node_modules/@scure/bip32": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz",
- "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==",
- "license": "MIT",
- "dependencies": {
- "@noble/curves": "~1.6.0",
- "@noble/hashes": "~1.5.0",
- "@scure/base": "~1.1.7"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/viem/node_modules/@scure/bip39": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz",
- "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==",
- "dependencies": {
- "@noble/hashes": "~1.5.0",
- "@scure/base": "~1.1.8"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/viem/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -7396,513 +4615,20 @@
}
}
},
- "node_modules/web3": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz",
- "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==",
- "hasInstallScript": true,
- "dependencies": {
- "web3-bzz": "1.10.4",
- "web3-core": "1.10.4",
- "web3-eth": "1.10.4",
- "web3-eth-personal": "1.10.4",
- "web3-net": "1.10.4",
- "web3-shh": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-bzz": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz",
- "integrity": "sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==",
- "hasInstallScript": true,
- "dependencies": {
- "@types/node": "^12.12.6",
- "got": "12.1.0",
- "swarm-js": "^0.1.40"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-bzz/node_modules/@types/node": {
- "version": "12.20.55",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
- "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
- },
- "node_modules/web3-core": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz",
- "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==",
- "dependencies": {
- "@types/bn.js": "^5.1.1",
- "@types/node": "^12.12.6",
- "bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-requestmanager": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-helpers": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.10.4.tgz",
- "integrity": "sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==",
- "dependencies": {
- "web3-eth-iban": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-method": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.10.4.tgz",
- "integrity": "sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==",
- "dependencies": {
- "@ethersproject/transactions": "^5.6.2",
- "web3-core-helpers": "1.10.4",
- "web3-core-promievent": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-promievent": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.10.4.tgz",
- "integrity": "sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==",
- "dependencies": {
- "eventemitter3": "4.0.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-requestmanager": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.10.4.tgz",
- "integrity": "sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==",
- "dependencies": {
- "util": "^0.12.5",
- "web3-core-helpers": "1.10.4",
- "web3-providers-http": "1.10.4",
- "web3-providers-ipc": "1.10.4",
- "web3-providers-ws": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-subscriptions": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.10.4.tgz",
- "integrity": "sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==",
- "dependencies": {
- "eventemitter3": "4.0.4",
- "web3-core-helpers": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core/node_modules/@types/node": {
- "version": "12.20.55",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
- "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
- },
- "node_modules/web3-eth": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz",
- "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==",
- "dependencies": {
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-eth-abi": "1.10.4",
- "web3-eth-accounts": "1.10.4",
- "web3-eth-contract": "1.10.4",
- "web3-eth-ens": "1.10.4",
- "web3-eth-iban": "1.10.4",
- "web3-eth-personal": "1.10.4",
- "web3-net": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-abi": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz",
- "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==",
- "dependencies": {
- "@ethersproject/abi": "^5.6.3",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-accounts": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz",
- "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==",
- "dependencies": {
- "@ethereumjs/common": "2.6.5",
- "@ethereumjs/tx": "3.5.2",
- "@ethereumjs/util": "^8.1.0",
- "eth-lib": "0.2.8",
- "scrypt-js": "^3.0.1",
- "uuid": "^9.0.0",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-accounts/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "node_modules/web3-eth-accounts/node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/web3-eth-contract": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz",
- "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==",
- "dependencies": {
- "@types/bn.js": "^5.1.1",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-promievent": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-eth-abi": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-ens": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz",
- "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==",
- "dependencies": {
- "content-hash": "^2.5.2",
- "eth-ens-namehash": "2.0.8",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-promievent": "1.10.4",
- "web3-eth-abi": "1.10.4",
- "web3-eth-contract": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-iban": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz",
- "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==",
- "dependencies": {
- "bn.js": "^5.2.1",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-iban/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
- "node_modules/web3-eth-personal": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz",
- "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==",
- "dependencies": {
- "@types/node": "^12.12.6",
- "web3-core": "1.10.4",
- "web3-core-helpers": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-net": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-personal/node_modules/@types/node": {
- "version": "12.20.55",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
- "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
- },
- "node_modules/web3-net": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz",
- "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==",
- "dependencies": {
- "web3-core": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-utils": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-http": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.10.4.tgz",
- "integrity": "sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==",
- "dependencies": {
- "abortcontroller-polyfill": "^1.7.5",
- "cross-fetch": "^4.0.0",
- "es6-promise": "^4.2.8",
- "web3-core-helpers": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-ipc": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.10.4.tgz",
- "integrity": "sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==",
- "dependencies": {
- "oboe": "2.1.5",
- "web3-core-helpers": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-ws": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.10.4.tgz",
- "integrity": "sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==",
- "dependencies": {
- "eventemitter3": "4.0.4",
- "web3-core-helpers": "1.10.4",
- "websocket": "^1.0.32"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-shh": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.10.4.tgz",
- "integrity": "sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==",
- "hasInstallScript": true,
- "dependencies": {
- "web3-core": "1.10.4",
- "web3-core-method": "1.10.4",
- "web3-core-subscriptions": "1.10.4",
- "web3-net": "1.10.4"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-utils": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.10.4.tgz",
- "integrity": "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==",
- "dependencies": {
- "@ethereumjs/util": "^8.1.0",
- "bn.js": "^5.2.1",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereum-cryptography": "^2.1.2",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-utils/node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
- },
- "node_modules/webauthn-p256": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz",
- "integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/wevm"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@noble/curves": "^1.4.0",
- "@noble/hashes": "^1.4.0"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/websocket": {
- "version": "1.0.35",
- "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz",
- "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==",
- "dependencies": {
- "bufferutil": "^4.0.1",
- "debug": "^2.2.0",
- "es5-ext": "^0.10.63",
- "typedarray-to-buffer": "^3.1.5",
- "utf-8-validate": "^5.0.2",
- "yaeti": "^0.0.6"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
- "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
- "dependencies": {
- "available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "node_modules/ws": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
- "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
- "dependencies": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
- }
- },
- "node_modules/ws/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/xhr": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
- "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
- "dependencies": {
- "global": "~4.4.0",
- "is-function": "^1.0.1",
- "parse-headers": "^2.0.0",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/xhr-request": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz",
- "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==",
- "dependencies": {
- "buffer-to-arraybuffer": "^0.0.5",
- "object-assign": "^4.1.1",
- "query-string": "^5.0.1",
- "simple-get": "^2.7.0",
- "timed-out": "^4.0.1",
- "url-set-query": "^1.0.0",
- "xhr": "^2.0.4"
- }
- },
- "node_modules/xhr-request-promise": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz",
- "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==",
- "dependencies": {
- "xhr-request": "^1.1.0"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/yaeti": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
- "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==",
- "engines": {
- "node": ">=0.10.32"
- }
- },
"node_modules/yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC",
+ "peer": true
},
"node_modules/yaml": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">= 6"
}
diff --git a/stablepay-sdk/package.json b/stablepay-sdk/package.json
index 6b4f884..13eb65f 100644
--- a/stablepay-sdk/package.json
+++ b/stablepay-sdk/package.json
@@ -12,11 +12,9 @@
"author": "",
"license": "ISC",
"dependencies": {
- "djed-sdk": "^1.0.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
- "viem": "^2.21.53",
- "web3": "^1.7.3"
+ "viem": "^2.46.1"
},
"devDependencies": {
"@babel/preset-react": "^7.25.7",
@@ -35,4 +33,4 @@
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-postcss": "^4.0.2"
}
-}
\ No newline at end of file
+}
diff --git a/stablepay-sdk/rollup.config.mjs b/stablepay-sdk/rollup.config.mjs
index 57aa2ca..6be4c8c 100644
--- a/stablepay-sdk/rollup.config.mjs
+++ b/stablepay-sdk/rollup.config.mjs
@@ -29,7 +29,7 @@ export default {
assetFileNames: "assets/[name][extname]",
},
],
- external: ["djed-sdk", "web3", "react", "react-dom", "viem", "viem/chains"],
+ external: [ "react", "react-dom", "viem", "viem/chains"],
plugins: [
resolve({
extensions: [".js", ".jsx"],
diff --git a/stablepay-sdk/src/abi/Djed.json b/stablepay-sdk/src/abi/Djed.json
new file mode 100644
index 0000000..0309a61
--- /dev/null
+++ b/stablepay-sdk/src/abi/Djed.json
@@ -0,0 +1,701 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "oracleAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_scalingFactor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "_treasury",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_initialTreasuryFee",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_treasuryRevenueTarget",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_reserveRatioMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_reserveRatioMax",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_fee",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_thresholdSupplySC",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_rcMinPrice",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_txLimit",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "buyer",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountRC",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBC",
+ "type": "uint256"
+ }
+ ],
+ "name": "BoughtReserveCoins",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "buyer",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountSC",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBC",
+ "type": "uint256"
+ }
+ ],
+ "name": "BoughtStableCoins",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountSC",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountRC",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBC",
+ "type": "uint256"
+ }
+ ],
+ "name": "SoldBothCoins",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountRC",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBC",
+ "type": "uint256"
+ }
+ ],
+ "name": "SoldReserveCoins",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "seller",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountSC",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBC",
+ "type": "uint256"
+ }
+ ],
+ "name": "SoldStableCoins",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_currentPaymentAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "E",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "L",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_currentPaymentAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "R",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "fee_ui",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "ui",
+ "type": "address"
+ }
+ ],
+ "name": "buyReserveCoins",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeUI",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "ui",
+ "type": "address"
+ }
+ ],
+ "name": "buyStableCoins",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "fee",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialTreasuryFee",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "oracle",
+ "outputs": [
+ {
+ "internalType": "contract IFreeOracle",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ratio",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_currentPaymentAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "rcBuyingPrice",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "rcDecimalScalingFactor",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "rcMinPrice",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_currentPaymentAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "rcTargetPrice",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "reserveCoin",
+ "outputs": [
+ {
+ "internalType": "contract Coin",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "reserveRatioMax",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "reserveRatioMin",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "scDecimalScalingFactor",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_currentPaymentAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "scPrice",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "scalingFactor",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountSC",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountRC",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "fee_ui",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "ui",
+ "type": "address"
+ }
+ ],
+ "name": "sellBothCoins",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountRC",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "fee_ui",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "ui",
+ "type": "address"
+ }
+ ],
+ "name": "sellReserveCoins",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountSC",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "feeUI",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "ui",
+ "type": "address"
+ }
+ ],
+ "name": "sellStableCoins",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "stableCoin",
+ "outputs": [
+ {
+ "internalType": "contract Coin",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "thresholdSupplySC",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasury",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasuryFee",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasuryRevenue",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "treasuryRevenueTarget",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "txLimit",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+]
diff --git a/stablepay-sdk/src/abi/ERC20.json b/stablepay-sdk/src/abi/ERC20.json
new file mode 100644
index 0000000..fe9c5dc
--- /dev/null
+++ b/stablepay-sdk/src/abi/ERC20.json
@@ -0,0 +1,324 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "symbol",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
diff --git a/stablepay-sdk/src/abi/Oracle.json b/stablepay-sdk/src/abi/Oracle.json
new file mode 100644
index 0000000..af2ab68
--- /dev/null
+++ b/stablepay-sdk/src/abi/Oracle.json
@@ -0,0 +1,460 @@
+[
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_owner",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_description",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "_termsOfService",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "data",
+ "type": "uint256"
+ }
+ ],
+ "name": "DataWritten",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "opposer",
+ "type": "address"
+ }
+ ],
+ "name": "OppositionAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "opposer",
+ "type": "address"
+ }
+ ],
+ "name": "OppositionRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "OwnerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "OwnerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "supporter",
+ "type": "address"
+ }
+ ],
+ "name": "SupportAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "supporter",
+ "type": "address"
+ }
+ ],
+ "name": "SupportRemoved",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "acceptTermsOfService",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "acceptedTermsOfService",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "add",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "description",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "numOwners",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "oppose",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "opposers",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "name": "opposing",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "oppositionCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "readData",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "remove",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "support",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "supportCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "name": "supporters",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "name": "supporting",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "termsOfService",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "unoppose",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "a",
+ "type": "address"
+ }
+ ],
+ "name": "unsupport",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_data",
+ "type": "uint256"
+ }
+ ],
+ "name": "writeData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
diff --git a/stablepay-sdk/src/core/Transaction.js b/stablepay-sdk/src/core/Transaction.js
index eb72988..1c3667d 100644
--- a/stablepay-sdk/src/core/Transaction.js
+++ b/stablepay-sdk/src/core/Transaction.js
@@ -1,120 +1,123 @@
-import { getWeb3, getDjedContract, getCoinContracts, getDecimals, getOracleAddress, getOracleContract, tradeDataPriceBuySc, buyScTx } from 'djed-sdk';
+import { createPublicClient , http } from 'viem'
+import { getContract } from 'viem'
+import { mainnet, sepolia } from 'viem/chains'
+import DJED_ABI from '../abi/Djed.json'
+import ERC20_ABI from '../abi/ERC20.json'
+
+const SCALING_DECIMALS = 24n
+const UI_ADDRESS = '0x0232556C83791b8291E9b23BfEa7d67405Bd9839'
+
+function resolveChain(networkUri) {
+ if (networkUri.includes('sepolia')) return sepolia
+ if (networkUri.includes('mainnet')) return mainnet
+
+ throw new Error(
+ `Unsupported network URI: ${networkUri}. Please use sepolia or mainnet.`
+ )
+}
export class Transaction {
constructor(networkUri, djedAddress) {
- this.networkUri = networkUri;
- this.djedAddress = djedAddress;
+ this.networkUri = networkUri
+ this.djedAddress = djedAddress
+ this.chain = resolveChain(networkUri)
}
async init() {
- if (!this.networkUri || !this.djedAddress) {
- throw new Error('Network URI and DJED address are required');
- }
- try {
- this.web3 = await getWeb3(this.networkUri);
- this.djedContract = getDjedContract(this.web3, this.djedAddress);
-
- try {
- const { stableCoin, reserveCoin } = await getCoinContracts(this.djedContract, this.web3);
- const { scDecimals, rcDecimals } = await getDecimals(stableCoin, reserveCoin);
- this.stableCoin = stableCoin;
- this.reserveCoin = reserveCoin;
- this.scDecimals = scDecimals;
- this.rcDecimals = rcDecimals;
-
- this.oracleContract = await getOracleAddress(this.djedContract).then((addr) =>
- getOracleContract(this.web3, addr, this.djedContract._address)
- );
-
- this.oracleAddress = this.oracleContract._address;
- } catch (contractError) {
- console.error('[Transaction] Error fetching contract details:', contractError);
- if (contractError.message && contractError.message.includes('execution reverted')) {
- const getNetworkInfo = (uri) => {
- if (uri.includes('milkomeda')) return { name: 'Milkomeda', chainId: '2001' };
- if (uri.includes('mordor')) return { name: 'Mordor Testnet', chainId: '63' };
- if (uri.includes('sepolia')) return { name: 'Sepolia', chainId: '11155111' };
- if (uri.includes('etc.rivet.link')) return { name: 'Ethereum Classic', chainId: '61' };
- return { name: 'the selected network', chainId: 'unknown' };
- };
- const { name: networkName, chainId } = getNetworkInfo(this.networkUri);
- throw new Error(
- `Failed to interact with Djed contract at ${this.djedAddress} on ${networkName}.\n\n` +
- `Possible causes:\n` +
- `- The contract address may be incorrect\n` +
- `- The contract may not be deployed on ${networkName}\n` +
- `- The contract may not be a valid Djed contract\n\n` +
- `Please verify the contract address is correct for ${networkName} (Chain ID: ${chainId}).`
- );
- }
- throw contractError;
- }
- } catch (error) {
- console.error('[Transaction] Error initializing transaction:', error);
- if (error.message && (error.message.includes('CONNECTION ERROR') || error.message.includes('ERR_NAME_NOT_RESOLVED'))) {
- const getNetworkName = (uri) => {
- if (uri.includes('milkomeda')) return 'Milkomeda';
- if (uri.includes('mordor')) return 'Mordor';
- if (uri.includes('sepolia')) return 'Sepolia';
- return 'the selected network';
- };
- const networkName = getNetworkName(this.networkUri);
- throw new Error(
- `Failed to connect to ${networkName} RPC endpoint: ${this.networkUri}\n\n` +
- `Possible causes:\n` +
- `- The RPC endpoint may be temporarily unavailable\n` +
- `- DNS resolution issue (check your internet connection)\n` +
- `- Network firewall blocking the connection\n\n` +
- `Please try again in a few moments or check the network status.`
- );
- }
- throw error;
- }
+ this.publicClient = createPublicClient({
+ chain: this.chain,
+ transport: http(this.networkUri)
+ })
+
+ this.djedContract = getContract({
+ address: this.djedAddress,
+ abi: DJED_ABI,
+ client: this.publicClient
+ })
+
+ const stableCoinAddress = await this.djedContract.read.stableCoin()
+ const reserveCoinAddress = await this.djedContract.read.reserveCoin()
+
+ this.stableCoin = getContract({
+ address: stableCoinAddress,
+ abi: ERC20_ABI,
+ client: this.publicClient
+ })
+
+ this.reserveCoin = getContract({
+ address: reserveCoinAddress,
+ abi: ERC20_ABI,
+ client: this.publicClient
+ })
+
+ this.scDecimals = BigInt(await this.stableCoin.read.decimals())
+ this.rcDecimals = BigInt(await this.reserveCoin.read.decimals())
+
+ this.oracleAddress = await this.djedContract.read.oracle()
}
getBlockchainDetails() {
return {
- web3Available: !!this.web3,
+ clientAvailable: !!this.publicClient,
djedContractAvailable: !!this.djedContract,
- stableCoinAddress: this.stableCoin ? this.stableCoin._address : 'N/A',
- reserveCoinAddress: this.reserveCoin ? this.reserveCoin._address : 'N/A',
- stableCoinDecimals: this.scDecimals,
- reserveCoinDecimals: this.rcDecimals,
- oracleAddress: this.oracleAddress || 'N/A',
- oracleContractAvailable: !!this.oracleContract,
- };
+ stableCoinAddress: this.stableCoin?.address || 'N/A',
+ reserveCoinAddress: this.reserveCoin?.address || 'N/A',
+ stableCoinDecimals: Number(this.scDecimals),
+ reserveCoinDecimals: Number(this.rcDecimals),
+ oracleAddress: this.oracleAddress || 'N/A'
+ }
}
async handleTradeDataBuySc(amountScaled) {
if (!this.djedContract) {
- throw new Error("DJED contract is not initialized");
+ throw new Error("DJED contract is not initialized")
}
+
if (typeof amountScaled !== 'string') {
- throw new Error("Amount must be a string");
- }
- try {
- const result = await tradeDataPriceBuySc(this.djedContract, this.scDecimals, amountScaled);
- return result.totalBCScaled;
- } catch (error) {
- console.error("Error fetching trade data for buying stablecoins: ", error);
- throw error;
+ throw new Error("Amount must be a string")
}
+
+ const amountUnscaled = BigInt(amountScaled)
+
+ const scPrice = await this.djedContract.read.scPrice([0n])
+ const treasuryFee = await this.djedContract.read.treasuryFee()
+ const fee = await this.djedContract.read.fee()
+
+ const decimalScalingFactor = 10n ** this.scDecimals
+
+ const totalUnscaled =
+ (amountUnscaled * scPrice) / decimalScalingFactor
+
+ const scalingFactor = 10n ** SCALING_DECIMALS
+ const totalFees = treasuryFee + fee
+
+ const appended =
+ (totalUnscaled * scalingFactor) /
+ (scalingFactor - totalFees)
+
+ return appended.toString()
}
- async buyStablecoins(payer, receiver, value) {
+ async buyStablecoins(walletClient, receiver, valueWei) {
if (!this.djedContract) {
- throw new Error("DJED contract is not initialized");
+ throw new Error("DJED contract is not initialized")
}
- try {
- const UI = '0x0232556C83791b8291E9b23BfEa7d67405Bd9839';
- const txData = await buyScTx(this.djedContract, payer, receiver, value, UI, this.djedAddress);
-
- return txData;
- } catch (error) {
- console.error("Error executing buyStablecoins transaction: ", error);
- throw error;
+ if (!walletClient) {
+ throw new Error("Wallet client is required")
}
+
+ return await walletClient.writeContract({
+ address: this.djedAddress,
+ abi: DJED_ABI,
+ functionName: 'buyStableCoins',
+ args: [
+ receiver,
+ 0n, // feeUI if needed
+ UI_ADDRESS
+ ],
+ value: BigInt(valueWei)
+ })
}
-}
+}
\ No newline at end of file
diff --git a/stablepay-sdk/src/widget/TransactionReview.jsx b/stablepay-sdk/src/widget/TransactionReview.jsx
index 23805f3..67d9465 100644
--- a/stablepay-sdk/src/widget/TransactionReview.jsx
+++ b/stablepay-sdk/src/widget/TransactionReview.jsx
@@ -2,8 +2,8 @@ import React, { useState, useEffect } from "react";
import { useNetwork } from "../contexts/NetworkContext";
import { useWallet } from "../contexts/WalletContext";
import { Transaction } from "../core/Transaction";
-import { parseEther, encodeFunctionData, parseUnits } from "viem";
-import styles from "../styles/PricingCard.css";
+import { parseEther, encodeFunctionData, parseUnits } from "viem";
+import styles from "../styles/PricingCard.css";
const TransactionReview = ({ onTransactionComplete }) => {
const {
@@ -18,10 +18,8 @@ const TransactionReview = ({ onTransactionComplete }) => {
connectWallet,
account,
walletClient,
- publicClient,
isConnecting,
ensureCorrectNetwork,
- expectedChainId,
} = useWallet();
const [transaction, setTransaction] = useState(null);
@@ -32,6 +30,7 @@ const TransactionReview = ({ onTransactionComplete }) => {
const [error, setError] = useState(null);
const [isErrorDetailsVisible, setIsErrorDetailsVisible] = useState(false);
+ // Reset when network/token changes
useEffect(() => {
setTxData(null);
setTradeDataBuySc(null);
@@ -40,6 +39,7 @@ const TransactionReview = ({ onTransactionComplete }) => {
setTxHash(null);
}, [selectedNetwork, selectedToken]);
+ // Initialize transaction
useEffect(() => {
const initializeTransaction = async () => {
if (!selectedNetwork || !selectedToken) return;
@@ -53,17 +53,17 @@ const TransactionReview = ({ onTransactionComplete }) => {
networkConfig.uri,
networkConfig.djedAddress
);
+
await newTransaction.init();
setTransaction(newTransaction);
let tradeData = null;
+
if (selectedToken.key === "native") {
- try {
- tradeData = await newTransaction.handleTradeDataBuySc(String(tokenAmount));
- setTradeDataBuySc(tradeData);
- } catch (tradeError) {
- console.error("Error fetching trade data:", tradeError);
- }
+ tradeData = await newTransaction.handleTradeDataBuySc(
+ String(tokenAmount)
+ );
+ setTradeDataBuySc(tradeData);
}
setTransactionDetails({
@@ -75,7 +75,7 @@ const TransactionReview = ({ onTransactionComplete }) => {
djedContractAddress: networkConfig.djedAddress,
isDirectTransfer: selectedToken.isDirectTransfer || false,
isNativeToken: selectedToken.isNative || false,
- tradeAmount: tradeData ? tradeData.amount : null,
+ tradeAmount: tradeData || null,
...newTransaction.getBlockchainDetails(),
});
} catch (err) {
@@ -84,19 +84,21 @@ const TransactionReview = ({ onTransactionComplete }) => {
};
initializeTransaction();
- }, [selectedNetwork, selectedToken, networkSelector, setTransactionDetails]);
+ }, [selectedNetwork, selectedToken]);
if (!contextTransactionDetails) {
return Initializing transaction...
;
}
+ // Connect wallet
const handleConnectWallet = async () => {
await connectWallet();
};
+ // Prepare transaction
const handleSendTransaction = async () => {
- if (!account || !contextTransactionDetails || !transaction) {
- setMessage("❌ Wallet not connected or transaction details missing");
+ if (!account || !transaction) {
+ setMessage("❌ Wallet not connected or transaction not ready");
return;
}
@@ -108,29 +110,37 @@ const TransactionReview = ({ onTransactionComplete }) => {
const receiver = contextTransactionDetails.receivingAddress;
let builtTx;
+ // -------------------------
+ // NATIVE (Buy Stablecoins)
+ // -------------------------
if (selectedToken.key === "native") {
- const UI = "0x0232556C83791b8291E9b23BfEa7d67405Bd9839";
+ if (!walletClient) {
+ setMessage("❌ Wallet client not available");
+ return;
+ }
+
const amountToSend = tradeDataBuySc || "0";
const valueInWei = parseEther(String(amountToSend));
builtTx = await transaction.buyStablecoins(
- account,
+ walletClient,
receiver,
- valueInWei,
- UI
+ valueInWei
);
+ }
- builtTx = {
- ...builtTx,
- value: valueInWei,
- account: account,
- };
- } else {
+ // -------------------------
+ // STABLECOIN TRANSFER
+ // -------------------------
+ else {
const networkConfig = networkSelector.getSelectedNetworkConfig();
- const stablecoinAddress = networkConfig?.tokens?.stablecoin?.address;
-
+ const stablecoinAddress =
+ networkConfig?.tokens?.stablecoin?.address;
+
if (!stablecoinAddress) {
- throw new Error('Stablecoin address not found in network configuration');
+ throw new Error(
+ "Stablecoin address not found in network configuration"
+ );
}
const amountToSend = contextTransactionDetails.amount
@@ -138,7 +148,7 @@ const TransactionReview = ({ onTransactionComplete }) => {
String(contextTransactionDetails.amount),
contextTransactionDetails.stableCoinDecimals
)
- : "0";
+ : 0n;
builtTx = {
to: stablecoinAddress,
@@ -167,27 +177,15 @@ const TransactionReview = ({ onTransactionComplete }) => {
setMessage("✅ Transaction ready! Click 'Send Transaction' to proceed.");
} catch (error) {
setError(error);
- setMessage(`❌ Transaction preparation failed.`);
+ setMessage("❌ Transaction preparation failed.");
}
};
+ // Send transaction
const handleBuySc = async () => {
- setError(null);
-
try {
if (!account || !txData) {
- setMessage("❌ Wallet account or transaction data is missing");
- return;
- }
-
- if (!selectedNetwork) {
- setMessage("❌ Network not selected");
- return;
- }
-
- const networkConfig = networkSelector.getSelectedNetworkConfig();
- if (!networkConfig) {
- setMessage("❌ Network configuration not found");
+ setMessage("❌ Wallet account or transaction missing");
return;
}
@@ -195,29 +193,7 @@ const TransactionReview = ({ onTransactionComplete }) => {
const freshWalletClient = await ensureCorrectNetwork();
if (!freshWalletClient) {
- setMessage("❌ Failed to switch to correct network. Please approve the network switch in MetaMask and try again.");
- return;
- }
-
- if (!window.ethereum) {
- setMessage("❌ MetaMask not available");
- return;
- }
-
- const chainIdHex = await window.ethereum.request({ method: 'eth_chainId' });
- const currentChainId = parseInt(chainIdHex, 16);
-
- if (currentChainId !== networkConfig.chainId) {
- const errorMsg = `Network mismatch. MetaMask is on chain ${currentChainId}, but ${selectedNetwork} requires chain ${networkConfig.chainId}. Please switch networks in MetaMask.`;
- setMessage(`❌ ${errorMsg}`);
- setError(new Error(errorMsg));
- return;
- }
-
- if (freshWalletClient.chain.id !== networkConfig.chainId) {
- const errorMsg = `Wallet client chain mismatch. Wallet client is on chain ${freshWalletClient.chain.id}, but expected ${networkConfig.chainId}.`;
- setMessage(`❌ ${errorMsg}`);
- setError(new Error(errorMsg));
+ setMessage("❌ Failed to switch network");
return;
}
@@ -225,12 +201,12 @@ const TransactionReview = ({ onTransactionComplete }) => {
const txHash = await freshWalletClient.sendTransaction({
...txData,
- account: account,
+ account,
});
setTxHash(txHash);
- setMessage(`✅ Transaction sent!`);
-
+ setMessage("✅ Transaction sent!");
+
if (onTransactionComplete) {
onTransactionComplete({
txHash,
@@ -238,13 +214,14 @@ const TransactionReview = ({ onTransactionComplete }) => {
token: selectedToken?.key,
tokenSymbol: selectedToken?.symbol,
amount: contextTransactionDetails?.amount,
- receivingAddress: contextTransactionDetails?.receivingAddress,
+ receivingAddress:
+ contextTransactionDetails?.receivingAddress,
});
}
- } catch (error) {
- setError(error);
- setMessage(`❌ Transaction failed.`);
- console.error('Transaction error:', error);
+ } catch (err) {
+ setError(err);
+ setMessage("❌ Transaction failed.");
+ console.error(err);
}
};
@@ -252,9 +229,11 @@ const TransactionReview = ({ onTransactionComplete }) => {
if (!txHash || !selectedNetwork) return null;
const explorerBaseUrls = {
- "ethereum-classic": "https://blockscout.com/etc/mainnet/tx/",
- "sepolia": "https://sepolia.etherscan.io/tx/",
- "milkomeda-mainnet": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/",
+ "ethereum-classic":
+ "https://blockscout.com/etc/mainnet/tx/",
+ sepolia: "https://sepolia.etherscan.io/tx/",
+ "milkomeda-mainnet":
+ "https://explorer-mainnet-cardano-evm.c1.milkomeda.com/tx/",
};
return explorerBaseUrls[selectedNetwork]
@@ -265,91 +244,53 @@ const TransactionReview = ({ onTransactionComplete }) => {
return (
- Network:
- {contextTransactionDetails.network}
+ Network:
+ {contextTransactionDetails.network}
- You Pay:
-
+ You Pay:
+
{selectedToken.key === "stablecoin"
? `${contextTransactionDetails.amount} ${contextTransactionDetails.tokenSymbol}`
- : `${tradeDataBuySc ? tradeDataBuySc : "Calculating..."} ${
+ : `${tradeDataBuySc || "Calculating..."} ${
contextTransactionDetails.tokenSymbol
}`}
-
);
};
-export default TransactionReview;
+export default TransactionReview;
\ No newline at end of file