diff --git a/.github/workflows/create-asana-attachment.yaml b/.github/workflows/create-asana-attachment.yaml
index 8c53831..7b1eee8 100644
--- a/.github/workflows/create-asana-attachment.yaml
+++ b/.github/workflows/create-asana-attachment.yaml
@@ -13,6 +13,8 @@ jobs:
with:
asana-secret: ${{ secrets.ASANA_SECRET }}
allowed-projects: |
- 1201812548509877
+ 1207145524635866
+ 1207160002492686
+ 1204161964711931
- name: Log output status
- run: echo "Status is ${{ steps.postAttachment.outputs.status }}"
\ No newline at end of file
+ run: echo "Status is ${{ steps.postAttachment.outputs.status }}"
diff --git a/.gitignore b/.gitignore
index 532eddc..2ac3efa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,7 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
-.env
\ No newline at end of file
+.env
+
+# IntelijIDEA
+.idea
\ No newline at end of file
diff --git a/Dockerfile.dev b/Dockerfile.dev
new file mode 100644
index 0000000..07d6a3b
--- /dev/null
+++ b/Dockerfile.dev
@@ -0,0 +1,18 @@
+FROM node:16-alpine
+
+WORKDIR /app
+
+COPY package*.json yarn.lock ./
+RUN apk add --no-cache yarn
+
+RUN apk add --no-cache python3
+ENV PYTHON=/usr/bin/python3
+
+RUN apk add --no-cache make g++
+
+RUN yarn install
+COPY . ./
+
+EXPOSE 3001
+
+CMD ["yarn", "start"]
diff --git a/package.json b/package.json
index ad9083c..29a270f 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
"dependencies": {
"@blocto/dappauth": "^2.1.0",
"@blocto/fcl": "^1.0.0-alpha.1",
- "@blocto/sdk": "^0.9.0-beta.3",
+ "@blocto/sdk": "^0.10.2",
"@chakra-ui/icons": "^1.1.1",
"@chakra-ui/react": "^1.7.4",
"@emotion/react": "^11",
diff --git a/src/components/EvmChainSelect.tsx b/src/components/EvmChainSelect.tsx
index 2c78e76..b128eb6 100644
--- a/src/components/EvmChainSelect.tsx
+++ b/src/components/EvmChainSelect.tsx
@@ -1,14 +1,5 @@
-import React, { useEffect, useState } from "react";
-import {
- Button,
- Menu,
- MenuButton,
- MenuList,
- MenuItem,
- MenuGroup,
- MenuDivider,
-} from "@chakra-ui/react";
-import { ChevronDownIcon } from "@chakra-ui/icons";
+import React from "react";
+import { Select } from "@chakra-ui/react";
import { ReactJSXElement } from "@emotion/react/types/jsx-namespace";
import { supportedChains, bloctoSDK, useEthereum } from "../services/evm";
@@ -21,70 +12,31 @@ const supportedTestnetChains = supportedChains.filter(
const EvmChainSelect: React.FC = ({}): ReactJSXElement => {
const { chainId: currentChainId } = useEthereum();
- const [chainName, setChainName] = useState(
- supportedChains.find(({ chainId }) => chainId === currentChainId)?.name ||
- "Ethereum Goerli"
- );
- useEffect(() => {
- const chainName = supportedChains.find(
- ({ chainId }) => chainId === currentChainId
- )?.name;
- if (chainName) {
- setChainName(chainName);
- }
- }, [currentChainId]);
return (
-
+
);
};
diff --git a/src/components/EvmEditor.tsx b/src/components/EvmEditor.tsx
index bb64b7d..d5b2389 100644
--- a/src/components/EvmEditor.tsx
+++ b/src/components/EvmEditor.tsx
@@ -28,6 +28,7 @@ import EvmSignEditor from "./EvmEditors/EvmSignEditor";
import EvmUserOpEditor from "./EvmEditors/EvmUserOpEditor";
import EvmSendEditor from "./EvmEditors/EvmSendEditor";
import EvmContractEditor from "./EvmEditors/EvmContractEditor";
+import EvmBatchTxEditor from "./EvmEditors/EvmBatchTxEditor";
import type { EthereumTypes } from "@blocto/sdk";
import { bloctoSDK, useEthereum, supportedChains, web3 } from "../services/evm";
import ReactJson from "react-json-view";
@@ -233,6 +234,7 @@ const EvmEditor = (): ReactJSXElement => {
User Operation
Send
Contract
+ Batch Transaction
@@ -254,12 +256,7 @@ const EvmEditor = (): ReactJSXElement => {
- setRequestObject({
- method: "eth_sendTransaction",
- params,
- })
- }
+ setRequestObject={setRequestObject}
account={account}
/>
@@ -271,6 +268,13 @@ const EvmEditor = (): ReactJSXElement => {
chainId={chainId}
/>
+
+
+
diff --git a/src/components/EvmEditors/EvmBatchTxEditor.tsx b/src/components/EvmEditors/EvmBatchTxEditor.tsx
new file mode 100644
index 0000000..7c9ad85
--- /dev/null
+++ b/src/components/EvmEditors/EvmBatchTxEditor.tsx
@@ -0,0 +1,183 @@
+import React, { useEffect, useState, Dispatch, SetStateAction } from "react";
+import {
+ Box,
+ Text,
+ Grid,
+ Flex,
+ IconButton,
+ Radio,
+ RadioGroup,
+ Button,
+} from "@chakra-ui/react";
+import { CloseIcon } from "@chakra-ui/icons";
+import { ReactJSXElement } from "@emotion/react/types/jsx-namespace";
+import type { EthereumTypes } from "@blocto/sdk";
+import EvmTxForm from "./EvmTxForm";
+import { web3 } from "../../services/evm";
+import erc721Abi from "../../contracts/abi/ERC721.json";
+
+interface EvmBatchTxEditorProps {
+ setRequestObject: Dispatch<
+ SetStateAction
+ >;
+ account: string | null;
+ chainId: string | null;
+}
+
+const RevertOptionMap: Record = {
+ false: false,
+ true: true,
+ unset: undefined,
+};
+
+const EvmBatchTxEditor = ({
+ setRequestObject,
+ account,
+ chainId,
+}: EvmBatchTxEditorProps): ReactJSXElement => {
+ const [revert, setRevert] = useState("false");
+ const [txs, setTxs] = useState();
+
+ useEffect(() => {
+ if (account) {
+ setRequestObject({
+ method: "wallet_sendMultiCallTransaction",
+ params: [
+ txs,
+ ...(RevertOptionMap[revert] !== undefined
+ ? [RevertOptionMap[revert]]
+ : []),
+ ],
+ });
+ }
+ }, [account, setRequestObject, revert, txs]);
+
+ const addTransfer = () => {
+ const obj = {
+ value: "0x1",
+ to: "0x85fD692D2a075908079261F5E351e7fE0267dB02",
+ from: account,
+ };
+ setTxs((state) => {
+ return [...(state || []), obj];
+ });
+ };
+
+ const mintNFT = () => {
+ // TODO: wait backend provide all evm chain contract address
+ const contractAddr = "0x6bDa27BB78833658D19049118b73eC7b07815C8A"; // only scroll testnet
+ const contract = new web3.eth.Contract(erc721Abi as any, contractAddr);
+ const obj = {
+ from: account,
+ to: contractAddr,
+ data: contract.methods.mint(account).encodeABI(),
+ };
+ setTxs((state) => {
+ return [...(state || []), obj];
+ });
+ };
+
+ const SwapToken = () => {
+ const obj = {
+ from: account,
+ to: "0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",
+ data: "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000066053af000000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000038d7ea4c680000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000038d7ea4c680000000000000000000000000000000000000000000000000000000b99e289c676500000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002bfff9976782d46cc05630d1f6ebab18b2324d6b140001f41f9840a85d5af5bf1d1762f925bdaddc4201f984000000000000000000000000000000000000000000",
+ };
+ setTxs((state) => {
+ return [...(state || []), obj];
+ });
+ };
+
+ const removeTransfer = (index: number) => {
+ setTxs((state) => {
+ if (Array.isArray(state) && state.length === 1) {
+ return [];
+ }
+ const newParam = [...(state || [])];
+ return newParam.splice(index, 1);
+ });
+ };
+ return (
+ <>
+
+ Revert
+ {
+ setRevert(e);
+ }}
+ >
+
+ {Object.keys(RevertOptionMap).map((key) => (
+
+ {key}
+
+ ))}
+
+
+
+
+ Transaction
+
+ {chainId === "0x8274f" && (
+
+ )}
+ {chainId === "0xaa36a7" && (
+
+ )}
+
+
+ {Array.isArray(txs) &&
+ txs?.length > 0 &&
+ txs?.map((value, i: number) => (
+
+
+
+ Transaction {i + 1}
+
+ }
+ size="xs"
+ colorScheme="red"
+ onClick={() => removeTransfer(i)}
+ />
+
+
+ {
+ if (updatedTxs)
+ setTxs((prev) => {
+ const newTxs = [...(prev || [])];
+ newTxs[i] = updatedTxs[0];
+ return newTxs;
+ });
+ }}
+ isCustom={true}
+ account={account}
+ customParams={value}
+ />
+
+
+ ))}
+
+
+ >
+ );
+};
+
+export default EvmBatchTxEditor;
diff --git a/src/components/EvmEditors/EvmSendEditor.tsx b/src/components/EvmEditors/EvmSendEditor.tsx
index 65564b6..577d5a6 100644
--- a/src/components/EvmEditors/EvmSendEditor.tsx
+++ b/src/components/EvmEditors/EvmSendEditor.tsx
@@ -1,84 +1,27 @@
-import React, { useEffect, useState, Dispatch } from "react";
-import { Box, Textarea, Grid } from "@chakra-ui/react";
+import React, { Dispatch, useCallback } from "react";
import { ReactJSXElement } from "@emotion/react/types/jsx-namespace";
import type { EthereumTypes } from "@blocto/sdk";
-import { web3 } from "../../services/evm";
+import EvmTxForm from "./EvmTxForm";
const EvmSendEditor = ({
setRequestObject,
account,
}: {
- setRequestObject: Dispatch<
- EthereumTypes.EIP1193RequestPayload["params"] | undefined
- >;
+ setRequestObject: Dispatch;
account: string | null;
}): ReactJSXElement => {
- const [fromString, setFrom] = useState(account || "");
- const [toString, setTo] = useState("");
- const [valueString, setValue] = useState("");
- const [dataString, setData] = useState("");
- useEffect(() => {
- if (account) {
- const sendObj: {
- from: string;
- to?: string;
- value?: string;
- data?: string;
- } = {
- from: fromString,
- };
- if (toString) {
- sendObj.to = toString;
- }
- if (valueString) {
- sendObj.value = web3.utils.toHex(valueString);
- }
- if (dataString) {
- sendObj.data = dataString;
- }
- setRequestObject([sendObj]);
- }
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [account, fromString, toString, dataString, valueString]);
- useEffect(() => {
- setFrom(account || "");
- }, [account]);
+ const setTransactionObject = useCallback(
+ (params: EthereumTypes.EIP1193RequestPayload["params"] | undefined) => {
+ setRequestObject({
+ method: "eth_sendTransaction",
+ params,
+ });
+ },
+ [setRequestObject]
+ );
return (
-
- From:
-
+
);
};
diff --git a/src/components/EvmEditors/EvmTxForm.tsx b/src/components/EvmEditors/EvmTxForm.tsx
new file mode 100644
index 0000000..a8eaf2f
--- /dev/null
+++ b/src/components/EvmEditors/EvmTxForm.tsx
@@ -0,0 +1,109 @@
+import React, { useEffect, useState, Dispatch } from "react";
+import { Box, Textarea, Grid } from "@chakra-ui/react";
+import { ReactJSXElement } from "@emotion/react/types/jsx-namespace";
+import type { EthereumTypes } from "@blocto/sdk";
+import { web3 } from "../../services/evm";
+
+interface EvmTxFormProps {
+ setTransactionObject: Dispatch<
+ EthereumTypes.EIP1193RequestPayload["params"] | undefined
+ >;
+ account: string | null;
+ isCustom?: boolean;
+ customParams?: any;
+}
+
+const EvmTxForm = ({
+ setTransactionObject,
+ account,
+ isCustom = false,
+ customParams,
+}: EvmTxFormProps): ReactJSXElement => {
+ const [fromString, setFrom] = useState(account || "");
+ const [toString, setTo] = useState("");
+ const [valueString, setValue] = useState("");
+ const [dataString, setData] = useState("");
+
+ useEffect(() => {
+ if (account) {
+ const sendObj: {
+ from: string;
+ to?: string;
+ value?: string;
+ data?: string;
+ } = {
+ from: fromString,
+ };
+ if (toString) {
+ sendObj.to = toString;
+ }
+ if (valueString) {
+ try {
+ sendObj.value = web3.utils.toHex(valueString);
+ } catch (e) {
+ setValue("");
+ }
+ }
+ if (dataString) {
+ sendObj.data = dataString;
+ }
+ setTransactionObject([sendObj]);
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [account, fromString, toString, dataString, valueString]);
+ useEffect(() => {
+ if (!isCustom) {
+ setFrom(account || "");
+ } else {
+ setFrom(customParams.from || "");
+ setTo(customParams.to || "");
+ setValue(customParams.value || "");
+ setData(customParams.data || "");
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [account, isCustom]);
+
+ return (
+
+ From:
+
+ );
+};
+
+export default EvmTxForm;
diff --git a/src/components/EvmEditors/EvmUserOpEditor.tsx b/src/components/EvmEditors/EvmUserOpEditor.tsx
index acfbace..323387e 100644
--- a/src/components/EvmEditors/EvmUserOpEditor.tsx
+++ b/src/components/EvmEditors/EvmUserOpEditor.tsx
@@ -22,10 +22,10 @@ import { EthereumTypes } from "@blocto/sdk";
import ParamEditor from "./ParamEditor";
import * as UserOperationTemplate from "../../scripts/evm/UserOperation";
import type { IUserOperationTemplate } from "../../scripts/evm/UserOperation";
-import EvmSendEditor from "./EvmSendEditor";
import { AbiItem, numberToHex, isAddress, isHexStrict } from "web3-utils";
import Web3EthAbi from "web3-eth-abi";
import EvmContractEditor from "./EvmContractEditor";
+import EvmSendEditor from "./EvmSendEditor";
const MenuGroups = [{ title: "Request", templates: UserOperationTemplate }];
const ABI: AbiItem = {
@@ -124,12 +124,7 @@ const EvmUserOpEditor = ({
{templateId === "sendTransaction" ? (
- setTransactionToCallData({
- method: "eth_sendTransaction",
- params,
- })
- }
+ setRequestObject={setTransactionToCallData}
account={account}
/>
diff --git a/src/contracts/abi/ERC721.json b/src/contracts/abi/ERC721.json
new file mode 100644
index 0000000..d831cf0
--- /dev/null
+++ b/src/contracts/abi/ERC721.json
@@ -0,0 +1,252 @@
+[
+ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" }
+ ],
+ "name": "balanceOf",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "getApproved",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" },
+ { "internalType": "address", "name": "operator", "type": "address" }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "receiver", "type": "address" }
+ ],
+ "name": "mint",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "ownerOf",
+ "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" },
+ { "internalType": "bytes", "name": "data", "type": "bytes" }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "operator", "type": "address" },
+ { "internalType": "bool", "name": "approved", "type": "bool" }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "string", "name": "baseTokenURI", "type": "string" }
+ ],
+ "name": "setBaseURI",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }
+ ],
+ "name": "supportsInterface",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "index", "type": "uint256" }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "address", "name": "owner", "type": "address" },
+ { "internalType": "uint256", "name": "index", "type": "uint256" }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "tokenURI",
+ "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": "from", "type": "address" },
+ { "internalType": "address", "name": "to", "type": "address" },
+ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+]
diff --git a/src/contracts/index.ts b/src/contracts/index.ts
index 829d7d8..6783171 100644
--- a/src/contracts/index.ts
+++ b/src/contracts/index.ts
@@ -13,10 +13,6 @@ export const ContractInfos: ContractInfosType = {
abi: valueDappAbi,
address: "0x009c403BdFaE357d82AAef2262a163287c30B739",
},
- [EvmChainId.EthereumGoerli]: {
- abi: valueDappAbi,
- address: "0x009c403BdFaE357d82AAef2262a163287c30B739",
- },
[EvmChainId.Bsc]: {
abi: valueDappAbi,
address: "0x009c403BdFaE357d82AAef2262a163287c30B739",
@@ -31,7 +27,7 @@ export const ContractInfos: ContractInfosType = {
},
[EvmChainId.PolygonTestnet]: {
abi: valueDappAbi,
- address: "0x009c403BdFaE357d82AAef2262a163287c30B739",
+ address: "0x5cd3253E1F0A3b3EEA0562EA51EFCD86C04231d3",
},
[EvmChainId.Avalanche]: {
abi: valueDappAbi,
@@ -45,18 +41,10 @@ export const ContractInfos: ContractInfosType = {
abi: valueDappAbi,
address: "0x806243c7368a90D957592B55875eF4C3353C5bEa",
},
- [EvmChainId.ArbitrumTestnet]: {
- abi: valueDappAbi,
- address: "0x009c403BdFaE357d82AAef2262a163287c30B739",
- },
[EvmChainId.Optimism]: {
abi: valueDappAbi,
address: "0x806243c7368a90D957592B55875eF4C3353C5bEa",
},
- [EvmChainId.OptimismTestnet]: {
- abi: valueDappAbi,
- address: "0x009c403BdFaE357d82AAef2262a163287c30B739",
- },
[OtherChain.Aptos]: {
address:
"0x4282ed29feb89781cd4da44a5bb1d23ff7e31a9dd64536233792efe78b4a494d",
diff --git a/src/services/aptosTestnet.ts b/src/services/aptosTestnet.ts
index 4ebeaf2..a288edd 100644
--- a/src/services/aptosTestnet.ts
+++ b/src/services/aptosTestnet.ts
@@ -13,6 +13,7 @@ const isMainnet = process.env.REACT_APP_NETWORK === "mainnet";
const bloctoSDK = new BloctoSDK({
aptos: {
chainId: isMainnet ? 1 : 2,
+ server: process.env.REACT_APP_WALLET_SERVER,
},
appId: process.env.REACT_APP_DAPP_ID,
}) as ExtendedAptosBloctoSDK;
diff --git a/src/services/evm.ts b/src/services/evm.ts
index 77ee150..39cfe4c 100644
--- a/src/services/evm.ts
+++ b/src/services/evm.ts
@@ -22,13 +22,6 @@ export const supportedChains = [
],
environment: "mainnet",
},
- {
- name: "Ethereum Goerli",
- chainId: "0x5",
- rpcUrls: ["https://rpc.ankr.com/eth_goerli"],
- faucet: "https://goerlifaucet.com/",
- environment: "testnet",
- },
{
name: "Ethereum Sepolia",
chainId: "0xaa36a7",
@@ -42,13 +35,6 @@ export const supportedChains = [
rpcUrls: ["https://arb1.arbitrum.io/rpc"],
environment: "mainnet",
},
- {
- name: "Arbitrum Goerli Testnet",
- chainId: "0x66eed",
- rpcUrls: ["https://goerli-rollup.arbitrum.io/rpc"],
- faucet: "https://faucet.triangleplatform.com/arbitrum/goerli",
- environment: "testnet",
- },
{
name: "Arbitrum Sepolia Testnet",
chainId: "0x66eee",
@@ -89,9 +75,9 @@ export const supportedChains = [
environment: "mainnet",
},
{
- name: "Polygon Testnet",
- chainId: "0x13881",
- rpcUrls: ["https://rpc-mumbai.maticvigil.com/"],
+ name: "Polygon Amoy Testnet",
+ chainId: "0x13882",
+ rpcUrls: ["https://rpc-amoy.polygon.technology/"],
faucet: "https://faucet.polygon.technology/",
environment: "testnet",
},
@@ -101,13 +87,6 @@ export const supportedChains = [
rpcUrls: ["https://mainnet.optimism.io"],
environment: "mainnet",
},
- {
- name: "Optimism Testnet",
- chainId: "0x1a4",
- rpcUrls: ["https://goerli.optimism.io"],
- faucet: "https://faucet.paradigm.xyz/",
- environment: "testnet",
- },
{
name: "Optimism Sepolia Testnet",
chainId: "0xaa37dc",
@@ -121,13 +100,6 @@ export const supportedChains = [
rpcUrls: ["https://mainnet.base.org"],
environment: "mainnet",
},
- {
- name: "Base Goerli Testnet",
- chainId: "0x14a33",
- rpcUrls: ["https://goerli.base.org"],
- faucet: "https://faucet.quicknode.com/base/goerli",
- environment: "testnet",
- },
{
name: "Base Sepolia Testnet",
chainId: "0x14a34",
@@ -141,13 +113,6 @@ export const supportedChains = [
rpcUrls: ["https://rpc.zora.energy"],
environment: "mainnet",
},
- {
- name: "Zora Goerli Testnet",
- chainId: "0x3E7",
- rpcUrls: ["https://testnet.rpc.zora.energy"],
- faucet: "https://testnet.zora.co",
- environment: "testnet",
- },
{
name: "Zora Sepolia Testnet",
chainId: "0x3b9ac9ff",
@@ -161,12 +126,6 @@ export const supportedChains = [
rpcUrls: ["https://rpc.scroll.io"],
environment: "mainnet",
},
- {
- name: "Scroll Goerli Testnet",
- chainId: "0x82751",
- rpcUrls: ["https://alpha-rpc.scroll.io/l2"],
- environment: "testnet",
- },
{
name: "Scroll Sepolia Testnet",
chainId: "0x8274f",
@@ -180,29 +139,36 @@ export const supportedChains = [
rpcUrls: ["https://rpc.linea.build"],
environment: "mainnet",
},
- {
- name: "Linea Goerli Testnet",
- chainId: "0xe704",
- rpcUrls: ["https://rpc.goerli.linea.build"],
- faucet: "https://faucet.goerli.linea.build/",
- environment: "testnet",
- },
{
name: "zKatana Sepolia Testnet",
chainId: "0x133e40",
rpcUrls: ["https://rpc.startale.com/zkatana"],
environment: "testnet",
},
+ {
+ name: "Blast",
+ chainId: "0x13e31",
+ rpcUrls: ["https://rpc.blast.io"],
+ environment: "mainnet",
+ },
+ {
+ name: "Blast Sepolia Testnet",
+ chainId: "0xa0c71fd",
+ rpcUrls: ["https://sepolia.blast.io"],
+ faucet: "https://faucet.quicknode.com/blast/sepolia",
+ environment: "testnet",
+ },
];
const bloctoSDK = new BloctoSDK({
ethereum: {
// (required) chainId to be used
- chainId: isMainnet ? "0x1" : "0x5",
+ chainId: isMainnet ? "0x1" : "0xaa36a7",
// (required for Ethereum) JSON RPC endpoint
rpc: isMainnet
? `https://mainnet.infura.io/v3/${process.env.REACT_APP_INFURA_KEY}`
- : "https://rpc.ankr.com/eth_goerli",
+ : "https://ethereum-sepolia.blockpi.network/v1/rpc/public",
+ walletServer: process.env.REACT_APP_WALLET_SERVER,
},
appId: process.env.REACT_APP_DAPP_ID,
}) as ExtendedEvmBloctoSDK;
diff --git a/src/types/ChainTypes.ts b/src/types/ChainTypes.ts
index acb113c..6867071 100644
--- a/src/types/ChainTypes.ts
+++ b/src/types/ChainTypes.ts
@@ -15,17 +15,14 @@ export enum EvmChain {
export enum EvmChainId {
Ethereum = "0x1",
- EthereumGoerli = "0x5",
Bsc = "0x38",
BscTestnet = "0x61",
Polygon = "0x89",
- PolygonTestnet = "0x13881",
+ PolygonTestnet = "0x13882",
Avalanche = "0xa86a",
AvalancheTestnet = "0xa869",
Arbitrum = "0xa4b1",
- ArbitrumTestnet = "0x66eed",
Optimism = "0x000a",
- OptimismTestnet = "0x01a4",
}
export type ChainsType = OtherChain;
diff --git a/yarn.lock b/yarn.lock
index b84fa92..950a516 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -28,6 +28,14 @@
dependencies:
"@babel/highlight" "^7.16.7"
+"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+ integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
+ dependencies:
+ "@babel/highlight" "^7.23.4"
+ chalk "^2.4.2"
+
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4":
version "7.16.4"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e"
@@ -97,7 +105,7 @@
dependencies:
eslint-rule-composer "^0.3.0"
-"@babel/generator@^7.12.1", "@babel/generator@^7.16.8":
+"@babel/generator@^7.12.1":
version "7.16.8"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe"
integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==
@@ -115,6 +123,16 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
+ integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
+ dependencies:
+ "@babel/types" "^7.23.6"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
"@babel/helper-annotate-as-pure@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
@@ -182,6 +200,11 @@
dependencies:
"@babel/types" "^7.16.7"
+"@babel/helper-environment-visitor@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
"@babel/helper-explode-assignable-expression@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
@@ -198,6 +221,14 @@
"@babel/template" "^7.16.7"
"@babel/types" "^7.16.7"
+"@babel/helper-function-name@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
+
"@babel/helper-get-function-arity@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
@@ -212,6 +243,13 @@
dependencies:
"@babel/types" "^7.16.7"
+"@babel/helper-hoist-variables@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-member-expression-to-functions@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0"
@@ -302,11 +340,28 @@
dependencies:
"@babel/types" "^7.16.7"
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-string-parser@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
+ integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
+
"@babel/helper-validator-identifier@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
"@babel/helper-validator-option@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
@@ -350,16 +405,30 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
+"@babel/highlight@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+ integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.7.0":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e"
integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==
-"@babel/parser@^7.12.3", "@babel/parser@^7.16.8":
+"@babel/parser@^7.12.3":
version "7.16.8"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17"
integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==
+"@babel/parser@^7.22.15", "@babel/parser@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
+ integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
+
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050"
@@ -1237,36 +1306,29 @@
"@babel/parser" "^7.16.7"
"@babel/types" "^7.16.7"
-"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.8":
- version "7.16.8"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c"
- integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==
- dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.16.8"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.16.8"
- "@babel/types" "^7.16.8"
- debug "^4.1.0"
- globals "^11.1.0"
-
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.7.0":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.7.tgz#dac01236a72c2560073658dd1a285fe4e0865d76"
- integrity sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==
- dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.16.7"
- "@babel/types" "^7.16.7"
- debug "^4.1.0"
+"@babel/template@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/parser" "^7.22.15"
+ "@babel/types" "^7.22.15"
+
+"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.7.0":
+ version "7.23.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305"
+ integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==
+ dependencies:
+ "@babel/code-frame" "^7.23.5"
+ "@babel/generator" "^7.23.6"
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-function-name" "^7.23.0"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.23.6"
+ "@babel/types" "^7.23.6"
+ debug "^4.3.1"
globals "^11.1.0"
"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
@@ -1285,6 +1347,15 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
+"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
+ integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.23.4"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ to-fast-properties "^2.0.0"
+
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -1336,10 +1407,10 @@
deepmerge "^4.2.2"
sha3 "^2.1.4"
-"@blocto/sdk@^0.9.0-beta.3":
- version "0.9.0-beta.3"
- resolved "https://registry.yarnpkg.com/@blocto/sdk/-/sdk-0.9.0-beta.3.tgz#102da56408373c4a4b346662c0230e91af65799e"
- integrity sha512-OlqumUEWF8wKvph5Ox3RqurGlAlwDMRf/eY/rX3Ts60RSnL2kznmilmRCJfl3oiNkmwWH9eCWd8DFnxhp/LSZw==
+"@blocto/sdk@^0.10.2":
+ version "0.10.2"
+ resolved "https://registry.yarnpkg.com/@blocto/sdk/-/sdk-0.10.2.tgz#d29c652d25ac367a3c8d5fabdcb770b5cbb07c1c"
+ integrity sha512-9gCIUKA7/7/hMHaa5n94+OYU/3tHd6vmBgTgv4o2h3z9SFueQXAJMO4aBggH9+EldgHQDI6wHsnvytEt9AWb6g==
dependencies:
buffer "^6.0.3"
eip1193-provider "^1.0.1"
@@ -2752,11 +2823,25 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
+"@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+ integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
"@jridgewell/resolve-uri@^3.0.3":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
"@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
@@ -2775,6 +2860,19 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+"@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.17":
+ version "0.3.20"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
+ integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
"@jridgewell/trace-mapping@^0.3.9":
version "0.3.15"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
@@ -4627,7 +4725,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0:
+bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
@@ -4760,7 +4858,7 @@ browserify-des@^1.0.0:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
+browserify-rsa@^4.0.0, browserify-rsa@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
@@ -4769,19 +4867,19 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
randombytes "^2.0.1"
browserify-sign@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
- integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e"
+ integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==
dependencies:
- bn.js "^5.1.1"
- browserify-rsa "^4.0.1"
+ bn.js "^5.2.1"
+ browserify-rsa "^4.1.0"
create-hash "^1.2.0"
create-hmac "^1.1.7"
- elliptic "^6.5.3"
+ elliptic "^6.5.4"
inherits "^2.0.4"
- parse-asn1 "^5.1.5"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
+ parse-asn1 "^5.1.6"
+ readable-stream "^3.6.2"
+ safe-buffer "^5.2.1"
browserify-zlib@^0.2.0:
version "0.2.0"
@@ -7485,9 +7583,9 @@ focus-lock@^0.9.1:
tslib "^2.0.3"
follow-redirects@^1.0.0, follow-redirects@^1.14.0:
- version "1.15.2"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
- integrity "sha1-tGCGQUS6Y/JoEJbydMTlcCbaLBM= sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
+ version "1.15.4"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf"
+ integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==
for-in@^1.0.2:
version "1.0.2"
@@ -10926,7 +11024,7 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
+parse-asn1@^5.0.0, parse-asn1@^5.1.6:
version "5.1.6"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
@@ -12410,6 +12508,15 @@ readable-stream@^3.0.6, readable-stream@^3.6.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+readable-stream@^3.6.2:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -12954,9 +13061,9 @@ selfsigned@^1.10.8:
node-forge "^1.2.0"
"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+ integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
semver@7.0.0:
version "7.0.0"
@@ -12969,18 +13076,11 @@ semver@7.3.2:
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.2.1, semver@^7.3.2, semver@^7.3.5:
- version "7.3.5"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
- integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
- dependencies:
- lru-cache "^6.0.0"
-
-semver@^7.3.8:
+semver@^7.2.1, semver@^7.3.2, semver@^7.3.5, semver@^7.3.8:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@@ -15239,9 +15339,9 @@ which@^2.0.1, which@^2.0.2:
isexe "^2.0.0"
word-wrap@^1.2.3, word-wrap@~1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
- integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
+ integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
workbox-background-sync@^5.1.4:
version "5.1.4"