Merge pull request #16 from exstake/feature/show-apr

feature: show pools apr
This commit is contained in:
Claudio Ramos
2021-08-15 02:21:53 -03:00
committed by GitHub
17 changed files with 996 additions and 145 deletions

12
Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM ruby:2.7.4
RUN apt update && apt install -y graphviz nodejs npm
RUN npm i -g yarn
WORKDIR /usr/src/app
USER 1000:1000
COPY Gemfile Gemfile.lock /usr/src/app/
RUN bundle install
COPY . /usr/src/app
CMD bundle exec rails s -b 0.0.0.0

View File

@@ -0,0 +1,222 @@
[
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
}
]

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,98 @@
import React from "react";
import BigNumber from "bignumber.js";
import type { PoolConfig } from "../types";
import { useBsc } from "../contexts/BscProvider";
import { getPriceInBusd } from "../utils/getPrice";
import { getApr } from "../utils/apr";
import { getTotalStaked } from "../utils/getTotalStaked";
type PoolProps = {
pool: PoolConfig;
};
export const Pool = ({ pool }: PoolProps) => {
const {
provider,
pancake: { router },
} = useBsc();
const [apr, setApr] = React.useState<{
value: string | null;
loading: boolean;
}>({
value: null,
loading: true,
});
React.useEffect(() => {
(async () => {
const stakingPrice = await getPriceInBusd(router, pool.stakingToken);
const earningPrice = await getPriceInBusd(router, pool.earningToken);
const totalStaked = await getTotalStaked(provider, pool);
console.log(
`Total Staked for ${pool.stakingToken.symbol} - ${
pool.earningToken.symbol
}: ${JSON.stringify(totalStaked)}`
);
const aprValue = getApr(
stakingPrice,
earningPrice,
totalStaked,
parseFloat(pool.tokenPerBlock) / 1e-18
);
if (aprValue) {
setApr({
loading: false,
value: aprValue.toFixed(2),
});
}
})();
}, []);
return (
<div
key={pool.sousId}
id={pool.sousId.toString()}
className="flex items-center w-full h-auto bg-white px-16 p-4 rounded-xl shadow flex-col relative z-0 overflow-hidden hover:shadow-lg transition-all duration-300 cursor-pointer"
>
<div
className="box-border h-full w-full absolute left-0 top-0 rounded-xl opacity-20 filter blur-2xl bg-cover"
style={{
backgroundImage: `url('https://pancakeswap.finance/images/tokens/${pool.earningToken.address["56"]}.svg')`,
backgroundPositionX: "50%",
backgroundPositionY: "50%",
backgroundSize: "125%",
zIndex: -1,
}}
/>
<img
className="shadow-xl rounded-full w-24"
src={`https://pancakeswap.finance/images/tokens/${pool.earningToken.address["56"]}.svg`}
alt={`${pool.earningToken.symbol} icon`}
/>
<div className="mt-4 p-2">
<p>
<span className="font-medium">Investir:</span>{" "}
{pool.stakingToken.symbol}
</p>
<p>
<span className="font-medium">Receber:</span>{" "}
{pool.earningToken.symbol}
</p>
<div className="flex items-center">
<span className="font-medium mr-1">Rendimento:</span>
{apr.loading ? (
<div className="w-10 h-5 inline-block animate-pulse bg-gray-300 rounded" />
) : (
`${apr.value}%`
)}
</div>
</div>
</div>
);
};

View File

@@ -1,6 +1,7 @@
import React from "react"; import React from "react";
import { pools } from "../constants/Pools"; import { pools } from "../constants/Pools";
import { Pool } from "./Poo";
export const PoolListing = () => { export const PoolListing = () => {
return ( return (
@@ -8,43 +9,7 @@ export const PoolListing = () => {
{pools {pools
.filter((pool) => !pool.isFinished) .filter((pool) => !pool.isFinished)
.sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)) .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0))
.map((pool) => ( .map((pool) => <Pool key={pool.sousId} pool={pool} />)}
<div
key={pool.sousId}
id={pool.sousId.toString()}
className="flex items-center w-full h-auto bg-white px-16 p-4 rounded-xl shadow flex-col relative z-0 overflow-hidden hover:shadow-lg transition-all duration-300 cursor-pointer"
>
<div
className="box-border h-full w-full absolute left-0 top-0 rounded-xl opacity-20 filter blur-2xl bg-cover"
style={{
backgroundImage: `url('https://pancakeswap.finance/images/tokens/${pool.earningToken.address["56"]}.svg')`,
backgroundPositionX: "50%",
backgroundPositionY: "50%",
backgroundSize: "125%",
zIndex: -1,
}}
/>
<img
className="shadow-xl rounded-full w-24"
src={`https://pancakeswap.finance/images/tokens/${pool.earningToken.address["56"]}.svg`}
alt={`${pool.earningToken.symbol} icon`}
/>
<div className="mt-4 p-2">
<p>
<span className="font-medium">Investir:</span>{" "}
{pool.stakingToken.symbol}
</p>
<p>
<span className="font-medium">Receber:</span>{" "}
{pool.earningToken.symbol}
</p>
<div className="flex items-center">
<span className="font-medium mr-1">Rendimento:</span>
<div className="w-10 h-5 inline-block animate-pulse bg-gray-300 rounded" />
</div>
</div>
</div>
))}
</div> </div>
); );
}; };

View File

@@ -0,0 +1,6 @@
import BigNumber from "bignumber.js";
export const BSC_BLOCK_TIME = 3;
export const BLOCKS_PER_YEAR = new BigNumber(
(60 / BSC_BLOCK_TIME) * 60 * 24 * 365
);

View File

@@ -0,0 +1,49 @@
import React, { useContext } from "react";
import { ethers } from "ethers";
import pancakeRouterV2 from "../abi/pancake-router-v2.json";
const provider = new ethers.providers.JsonRpcProvider(
"https://bsc-dataseed1.defibit.io/\n"
);
const router = new ethers.Contract(
"0x10ED43C718714eb63d5aA57B78B54704E256024E",
new ethers.utils.Interface(pancakeRouterV2),
provider
);
export type BscContext = {
provider: typeof provider;
pancake: {
router: InstanceType<typeof ethers.Contract>;
};
};
const Context = React.createContext<BscContext>({
provider,
pancake: {
router,
},
});
export const useBsc = () => {
const context = useContext(Context);
if (!context) {
throw new Error("You must wrap the component with <BscProvider />");
}
return context;
};
export const BscProvider = ({ children }: React.PropsWithChildren<any>) => {
const value: BscContext = {
provider,
pancake: {
router,
},
};
return <Context.Provider value={value}>{children}</Context.Provider>;
};

View File

@@ -0,0 +1,22 @@
import BigNumber from "bignumber.js";
import { BLOCKS_PER_YEAR } from "../constants";
export const getApr = (
stakingTokenPrice: number,
rewardTokenPrice: number,
totalStaked: number,
tokenPerBlock: number
) => {
const totalRewardPricePerYear = new BigNumber(rewardTokenPrice)
.times(tokenPerBlock)
.times(BLOCKS_PER_YEAR);
const totalStakingTokenInPool = new BigNumber(stakingTokenPrice).times(
totalStaked
);
const apr = totalRewardPricePerYear.div(totalStakingTokenInPool).times(100);
return apr.isNaN() || !apr.isFinite() ? null : apr.toNumber();
};

View File

@@ -0,0 +1,21 @@
import { ethers } from "ethers";
import { tokens } from "../constants/pancake/Tokens";
import type { Token } from "../constants/pancake/Tokens";
import type { BscContext } from "../contexts/BscProvider";
// 1 Wei = 1*10^18 Ether
const ONE_BUSD_IN_WEI = ethers.utils.parseUnits("1", 18);
export const getPriceInBusd = async (router: any, token: Token) => {
try {
const result = await router.getAmountsOut(ONE_BUSD_IN_WEI, [
token.address["56"],
tokens.busd.address["56"],
]);
return result[1].toString() / 1e18;
} catch {
return 0;
}
};

View File

@@ -0,0 +1,30 @@
import { ethers } from "ethers";
import BigNumber from "bignumber.js";
import erc20 from "../abi/erc20.json";
import { Token } from "../constants/pancake/Tokens";
import type { PoolConfig } from "../types";
export const getTotalStaked = async (
provider: ethers.providers.Provider,
pool: PoolConfig
) => {
if (pool.stakingToken.symbol === "BNB") {
// TODO: BNB
return 0;
}
const contract = new ethers.Contract(
pool.stakingToken.address["56"],
erc20,
provider
);
try {
const result = await contract.balanceOf(pool.contractAddress["56"]);
return new BigNumber(result.toJSON().hex).toNumber();
} catch {
return 0;
}
};

23
docker-compose.yaml Normal file
View File

@@ -0,0 +1,23 @@
version: "3"
services:
web:
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://postgres:postgres@db:5432/postgres
image: xstake
depends_on:
- db
volumes:
- ./:/usr/src/app/
db:
image: postgres
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
ports:
- "5432:5432"
volumes:
- "data:/var/lib/postgresql/data"
volumes:
data:

210
erd.svg
View File

@@ -1,178 +1,178 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.48.0 (0) <!-- Generated by graphviz version 2.40.1 (20161225.0304)
--> -->
<!-- Title: XStake Pages: 1 --> <!-- Title: XStake Pages: 1 -->
<svg width="426pt" height="606pt" <svg width="423pt" height="606pt"
viewBox="0.00 0.00 425.60 605.60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0.00 0.00 422.60 605.60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(28.8 576.8)"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(28.8 576.8)">
<title>XStake</title> <title>XStake</title>
<polygon fill="white" stroke="transparent" points="-28.8,28.8 -28.8,-576.8 396.8,-576.8 396.8,28.8 -28.8,28.8"/> <polygon fill="#ffffff" stroke="transparent" points="-28.8,28.8 -28.8,-576.8 393.8,-576.8 393.8,28.8 -28.8,28.8"/>
<text text-anchor="middle" x="184" y="-533.6" font-family="Arial Bold" font-size="13.00">XStake domain model</text> <text text-anchor="middle" x="182.5" y="-533.6" font-family="Arial Bold" font-size="13.00" fill="#000000">XStake domain model</text>
<!-- m_AdminUser --> <!-- m_AdminUser -->
<g id="node1" class="node"> <g id="node1" class="node">
<title>m_AdminUser</title> <title>m_AdminUser</title>
<path fill="none" stroke="black" d="M12,-0.5C12,-0.5 150,-0.5 150,-0.5 156,-0.5 162,-6.5 162,-12.5 162,-12.5 162,-83.5 162,-83.5 162,-89.5 156,-95.5 150,-95.5 150,-95.5 12,-95.5 12,-95.5 6,-95.5 0,-89.5 0,-83.5 0,-83.5 0,-12.5 0,-12.5 0,-6.5 6,-0.5 12,-0.5"/> <path fill="none" stroke="#000000" d="M12,-.5C12,-.5 149,-.5 149,-.5 155,-.5 161,-6.5 161,-12.5 161,-12.5 161,-83.5 161,-83.5 161,-89.5 155,-95.5 149,-95.5 149,-95.5 12,-95.5 12,-95.5 6,-95.5 0,-89.5 0,-83.5 0,-83.5 0,-12.5 0,-12.5 0,-6.5 6,-.5 12,-.5"/>
<text text-anchor="start" x="49" y="-82.7" font-family="Arial Bold" font-size="11.00">AdminUser</text> <text text-anchor="start" x="48.5" y="-82.7" font-family="Arial Bold" font-size="11.00" fill="#000000">AdminUser</text>
<polyline fill="none" stroke="black" points="0,-75.5 162,-75.5 "/> <polyline fill="none" stroke="#000000" points="0,-75.5 161,-75.5 "/>
<text text-anchor="start" x="7" y="-62" font-family="Arial" font-size="10.00">email </text> <text text-anchor="start" x="7.5" y="-62" font-family="Arial" font-size="10.00" fill="#000000">email </text>
<text text-anchor="start" x="34" y="-62" font-family="Arial Italic" font-size="10.00" fill="#999999">string U</text> <text text-anchor="start" x="34.5" y="-62" font-family="Arial Italic" font-size="10.00" fill="#999999">string U</text>
<text text-anchor="start" x="7" y="-49" font-family="Arial" font-size="10.00">encrypted_password </text> <text text-anchor="start" x="7.5" y="-49" font-family="Arial" font-size="10.00" fill="#000000">encrypted_password </text>
<text text-anchor="start" x="101" y="-49" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="100.5" y="-49" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="7" y="-36" font-family="Arial" font-size="10.00">remember_created_at </text> <text text-anchor="start" x="7.5" y="-36" font-family="Arial" font-size="10.00" fill="#000000">remember_created_at </text>
<text text-anchor="start" x="105" y="-36" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text> <text text-anchor="start" x="105.5" y="-36" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text>
<text text-anchor="start" x="7" y="-23" font-family="Arial" font-size="10.00">reset_password_sent_at </text> <text text-anchor="start" x="7.5" y="-23" font-family="Arial" font-size="10.00" fill="#000000">reset_password_sent_at </text>
<text text-anchor="start" x="117" y="-23" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text> <text text-anchor="start" x="116.5" y="-23" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text>
<text text-anchor="start" x="7" y="-10" font-family="Arial" font-size="10.00">reset_password_token </text> <text text-anchor="start" x="7.5" y="-10" font-family="Arial" font-size="10.00" fill="#000000">reset_password_token </text>
<text text-anchor="start" x="109" y="-10" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="108.5" y="-10" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
</g> </g>
<!-- m_Balance --> <!-- m_Balance -->
<g id="node2" class="node"> <g id="node2" class="node">
<title>m_Balance</title> <title>m_Balance</title>
<path fill="none" stroke="black" d="M223,-441.5C223,-441.5 343,-441.5 343,-441.5 349,-441.5 355,-447.5 355,-453.5 355,-453.5 355,-498.5 355,-498.5 355,-504.5 349,-510.5 343,-510.5 343,-510.5 223,-510.5 223,-510.5 217,-510.5 211,-504.5 211,-498.5 211,-498.5 211,-453.5 211,-453.5 211,-447.5 217,-441.5 223,-441.5"/> <path fill="none" stroke="#000000" d="M221,-441.5C221,-441.5 341,-441.5 341,-441.5 347,-441.5 353,-447.5 353,-453.5 353,-453.5 353,-498.5 353,-498.5 353,-504.5 347,-510.5 341,-510.5 341,-510.5 221,-510.5 221,-510.5 215,-510.5 209,-504.5 209,-498.5 209,-498.5 209,-453.5 209,-453.5 209,-447.5 215,-441.5 221,-441.5"/>
<text text-anchor="start" x="259.5" y="-497.7" font-family="Arial Bold" font-size="11.00">Balance</text> <text text-anchor="start" x="257.5" y="-497.7" font-family="Arial Bold" font-size="11.00" fill="#000000">Balance</text>
<polyline fill="none" stroke="black" points="211,-490.5 355,-490.5 "/> <polyline fill="none" stroke="#000000" points="209,-490.5 353,-490.5 "/>
<text text-anchor="start" x="218" y="-477" font-family="Arial" font-size="10.00">amount </text> <text text-anchor="start" x="216" y="-477" font-family="Arial" font-size="10.00" fill="#000000">amount </text>
<text text-anchor="start" x="254" y="-477" font-family="Arial Italic" font-size="10.00" fill="#999999">decimal (20,10)</text> <text text-anchor="start" x="252" y="-477" font-family="Arial Italic" font-size="10.00" fill="#999999">decimal (20,10)</text>
<text text-anchor="start" x="218" y="-464" font-family="Arial" font-size="10.00">currency_id </text> <text text-anchor="start" x="216" y="-464" font-family="Arial" font-size="10.00" fill="#000000">currency_id </text>
<text text-anchor="start" x="272" y="-464" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="270" y="-464" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
<text text-anchor="start" x="218" y="-451" font-family="Arial" font-size="10.00">user_id </text> <text text-anchor="start" x="216" y="-451" font-family="Arial" font-size="10.00" fill="#000000">user_id </text>
<text text-anchor="start" x="253" y="-451" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="251" y="-451" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
</g> </g>
<!-- m_BuyCryptoOrder --> <!-- m_BuyCryptoOrder -->
<g id="node3" class="node"> <g id="node3" class="node">
<title>m_BuyCryptoOrder</title> <title>m_BuyCryptoOrder</title>
<path fill="none" stroke="black" d="M210,-316.5C210,-316.5 356,-316.5 356,-316.5 362,-316.5 368,-322.5 368,-328.5 368,-328.5 368,-399.5 368,-399.5 368,-405.5 362,-411.5 356,-411.5 356,-411.5 210,-411.5 210,-411.5 204,-411.5 198,-405.5 198,-399.5 198,-399.5 198,-328.5 198,-328.5 198,-322.5 204,-316.5 210,-316.5"/> <path fill="none" stroke="#000000" d="M209,-316.5C209,-316.5 353,-316.5 353,-316.5 359,-316.5 365,-322.5 365,-328.5 365,-328.5 365,-399.5 365,-399.5 365,-405.5 359,-411.5 353,-411.5 353,-411.5 209,-411.5 209,-411.5 203,-411.5 197,-405.5 197,-399.5 197,-399.5 197,-328.5 197,-328.5 197,-322.5 203,-316.5 209,-316.5"/>
<text text-anchor="start" x="237" y="-398.7" font-family="Arial Bold" font-size="11.00">BuyCryptoOrder</text> <text text-anchor="start" x="235" y="-398.7" font-family="Arial Bold" font-size="11.00" fill="#000000">BuyCryptoOrder</text>
<polyline fill="none" stroke="black" points="198,-391.5 368,-391.5 "/> <polyline fill="none" stroke="#000000" points="197,-391.5 365,-391.5 "/>
<text text-anchor="start" x="205" y="-378" font-family="Arial" font-size="10.00">currency_id </text> <text text-anchor="start" x="204" y="-378" font-family="Arial" font-size="10.00" fill="#000000">currency_id </text>
<text text-anchor="start" x="259" y="-378" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="258" y="-378" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
<text text-anchor="start" x="205" y="-365" font-family="Arial" font-size="10.00">paid_amount_cents </text> <text text-anchor="start" x="204" y="-365" font-family="Arial" font-size="10.00" fill="#000000">paid_amount_cents </text>
<text text-anchor="start" x="293" y="-365" font-family="Arial Italic" font-size="10.00" fill="#999999">integer</text> <text text-anchor="start" x="292" y="-365" font-family="Arial Italic" font-size="10.00" fill="#999999">integer</text>
<text text-anchor="start" x="205" y="-352" font-family="Arial" font-size="10.00">received_amount </text> <text text-anchor="start" x="204" y="-352" font-family="Arial" font-size="10.00" fill="#000000">received_amount </text>
<text text-anchor="start" x="283" y="-352" font-family="Arial Italic" font-size="10.00" fill="#999999">decimal (20,10)</text> <text text-anchor="start" x="282" y="-352" font-family="Arial Italic" font-size="10.00" fill="#999999">decimal (20,10)</text>
<text text-anchor="start" x="205" y="-339" font-family="Arial" font-size="10.00">status </text> <text text-anchor="start" x="204" y="-339" font-family="Arial" font-size="10.00" fill="#000000">status </text>
<text text-anchor="start" x="236" y="-339" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="235" y="-339" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="205" y="-326" font-family="Arial" font-size="10.00">user_id </text> <text text-anchor="start" x="204" y="-326" font-family="Arial" font-size="10.00" fill="#000000">user_id </text>
<text text-anchor="start" x="240" y="-326" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="239" y="-326" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
</g> </g>
<!-- m_Currency --> <!-- m_Currency -->
<g id="node4" class="node"> <g id="node4" class="node">
<title>m_Currency</title> <title>m_Currency</title>
<path fill="none" stroke="black" d="M21,-342.5C21,-342.5 141,-342.5 141,-342.5 147,-342.5 153,-348.5 153,-354.5 153,-354.5 153,-373.5 153,-373.5 153,-379.5 147,-385.5 141,-385.5 141,-385.5 21,-385.5 21,-385.5 15,-385.5 9,-379.5 9,-373.5 9,-373.5 9,-354.5 9,-354.5 9,-348.5 15,-342.5 21,-342.5"/> <path fill="none" stroke="#000000" d="M20.5,-342.5C20.5,-342.5 140.5,-342.5 140.5,-342.5 146.5,-342.5 152.5,-348.5 152.5,-354.5 152.5,-354.5 152.5,-373.5 152.5,-373.5 152.5,-379.5 146.5,-385.5 140.5,-385.5 140.5,-385.5 20.5,-385.5 20.5,-385.5 14.5,-385.5 8.5,-379.5 8.5,-373.5 8.5,-373.5 8.5,-354.5 8.5,-354.5 8.5,-348.5 14.5,-342.5 20.5,-342.5"/>
<text text-anchor="start" x="54.5" y="-372.7" font-family="Arial Bold" font-size="11.00">Currency</text> <text text-anchor="start" x="54" y="-372.7" font-family="Arial Bold" font-size="11.00" fill="#000000">Currency</text>
<polyline fill="none" stroke="black" points="9,-365.5 153,-365.5 "/> <polyline fill="none" stroke="#000000" points="8.5,-365.5 152.5,-365.5 "/>
<text text-anchor="start" x="16" y="-352" font-family="Arial" font-size="10.00">name </text> <text text-anchor="start" x="15.5" y="-352" font-family="Arial" font-size="10.00" fill="#000000">name </text>
<text text-anchor="start" x="44" y="-352" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="43.5" y="-352" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
</g> </g>
<!-- m_Currency&#45;&gt;m_Balance --> <!-- m_Currency&#45;&gt;m_Balance -->
<g id="edge8" class="edge"> <g id="edge8" class="edge">
<title>m_Currency&#45;&gt;m_Balance</title> <title>m_Currency&#45;&gt;m_Balance</title>
<path fill="none" stroke="black" d="M120.56,-385.59C146.51,-400.12 181.46,-419.7 212.21,-436.92"/> <path fill="none" stroke="#000000" d="M119.1584,-385.5947C145.169,-400.1243 180.2111,-419.699 211.0368,-436.9183"/>
<polygon fill="black" stroke="black" points="210.95,-439.82 220.34,-441.47 214.03,-434.33 210.95,-439.82"/> <polygon fill="#000000" stroke="#000000" points="209.7968,-439.8338 219.1903,-441.4729 212.8692,-434.3337 209.7968,-439.8338"/>
</g> </g>
<!-- m_Currency&#45;&gt;m_BuyCryptoOrder --> <!-- m_Currency&#45;&gt;m_BuyCryptoOrder -->
<g id="edge5" class="edge"> <g id="edge5" class="edge">
<title>m_Currency&#45;&gt;m_BuyCryptoOrder</title> <title>m_Currency&#45;&gt;m_BuyCryptoOrder</title>
<path fill="none" stroke="black" d="M153.08,-364C164.62,-364 176.72,-364 188.7,-364"/> <path fill="none" stroke="#000000" d="M152.6018,-364C164.0532,-364 176.0378,-364 187.8887,-364"/>
<polygon fill="black" stroke="black" points="188.82,-367.15 197.82,-364 188.82,-360.85 188.82,-367.15"/> <polygon fill="#000000" stroke="#000000" points="187.914,-367.1501 196.914,-364 187.914,-360.8501 187.914,-367.1501"/>
</g> </g>
<!-- m_SellCryptoOrder --> <!-- m_SellCryptoOrder -->
<g id="node6" class="node"> <g id="node6" class="node">
<title>m_SellCryptoOrder</title> <title>m_SellCryptoOrder</title>
<path fill="none" stroke="black" d="M214.5,-191.5C214.5,-191.5 351.5,-191.5 351.5,-191.5 357.5,-191.5 363.5,-197.5 363.5,-203.5 363.5,-203.5 363.5,-274.5 363.5,-274.5 363.5,-280.5 357.5,-286.5 351.5,-286.5 351.5,-286.5 214.5,-286.5 214.5,-286.5 208.5,-286.5 202.5,-280.5 202.5,-274.5 202.5,-274.5 202.5,-203.5 202.5,-203.5 202.5,-197.5 208.5,-191.5 214.5,-191.5"/> <path fill="none" stroke="#000000" d="M213,-191.5C213,-191.5 349,-191.5 349,-191.5 355,-191.5 361,-197.5 361,-203.5 361,-203.5 361,-274.5 361,-274.5 361,-280.5 355,-286.5 349,-286.5 349,-286.5 213,-286.5 213,-286.5 207,-286.5 201,-280.5 201,-274.5 201,-274.5 201,-203.5 201,-203.5 201,-197.5 207,-191.5 213,-191.5"/>
<text text-anchor="start" x="238" y="-273.7" font-family="Arial Bold" font-size="11.00">SellCryptoOrder</text> <text text-anchor="start" x="235.5" y="-273.7" font-family="Arial Bold" font-size="11.00" fill="#000000">SellCryptoOrder</text>
<polyline fill="none" stroke="black" points="202.5,-266.5 363.5,-266.5 "/> <polyline fill="none" stroke="#000000" points="201,-266.5 361,-266.5 "/>
<text text-anchor="start" x="210" y="-253" font-family="Arial" font-size="10.00">currency_id </text> <text text-anchor="start" x="208" y="-253" font-family="Arial" font-size="10.00" fill="#000000">currency_id </text>
<text text-anchor="start" x="264" y="-253" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="262" y="-253" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
<text text-anchor="start" x="210" y="-240" font-family="Arial" font-size="10.00">paid_amount </text> <text text-anchor="start" x="208" y="-240" font-family="Arial" font-size="10.00" fill="#000000">paid_amount </text>
<text text-anchor="start" x="269" y="-240" font-family="Arial Italic" font-size="10.00" fill="#999999">decimal (20,10)</text> <text text-anchor="start" x="267" y="-240" font-family="Arial Italic" font-size="10.00" fill="#999999">decimal (20,10)</text>
<text text-anchor="start" x="210" y="-227" font-family="Arial" font-size="10.00">received_amount_cents </text> <text text-anchor="start" x="208" y="-227" font-family="Arial" font-size="10.00" fill="#000000">received_amount_cents </text>
<text text-anchor="start" x="317" y="-227" font-family="Arial Italic" font-size="10.00" fill="#999999">integer</text> <text text-anchor="start" x="315" y="-227" font-family="Arial Italic" font-size="10.00" fill="#999999">integer</text>
<text text-anchor="start" x="210" y="-214" font-family="Arial" font-size="10.00">status </text> <text text-anchor="start" x="208" y="-214" font-family="Arial" font-size="10.00" fill="#000000">status </text>
<text text-anchor="start" x="241" y="-214" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="239" y="-214" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="210" y="-201" font-family="Arial" font-size="10.00">user_id </text> <text text-anchor="start" x="208" y="-201" font-family="Arial" font-size="10.00" fill="#000000">user_id </text>
<text text-anchor="start" x="245" y="-201" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="243" y="-201" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
</g> </g>
<!-- m_Currency&#45;&gt;m_SellCryptoOrder --> <!-- m_Currency&#45;&gt;m_SellCryptoOrder -->
<g id="edge7" class="edge"> <g id="edge7" class="edge">
<title>m_Currency&#45;&gt;m_SellCryptoOrder</title> <title>m_Currency&#45;&gt;m_SellCryptoOrder</title>
<path fill="none" stroke="black" d="M116.84,-342.23C139.24,-328.22 169.37,-309.39 197.77,-291.65"/> <path fill="none" stroke="#000000" d="M115.4244,-342.2267C137.8839,-328.2245 168.0914,-309.3919 196.5551,-291.6464"/>
<polygon fill="black" stroke="black" points="199.76,-294.12 205.72,-286.68 196.42,-288.77 199.76,-294.12"/> <polygon fill="#000000" stroke="#000000" points="198.5584,-294.1096 204.5292,-286.6751 195.2253,-288.7635 198.5584,-294.1096"/>
</g> </g>
<!-- m_FiatBalance --> <!-- m_FiatBalance -->
<g id="node5" class="node"> <g id="node5" class="node">
<title>m_FiatBalance</title> <title>m_FiatBalance</title>
<path fill="none" stroke="black" d="M223,-6.5C223,-6.5 343,-6.5 343,-6.5 349,-6.5 355,-12.5 355,-18.5 355,-18.5 355,-63.5 355,-63.5 355,-69.5 349,-75.5 343,-75.5 343,-75.5 223,-75.5 223,-75.5 217,-75.5 211,-69.5 211,-63.5 211,-63.5 211,-18.5 211,-18.5 211,-12.5 217,-6.5 223,-6.5"/> <path fill="none" stroke="#000000" d="M221,-6.5C221,-6.5 341,-6.5 341,-6.5 347,-6.5 353,-12.5 353,-18.5 353,-18.5 353,-63.5 353,-63.5 353,-69.5 347,-75.5 341,-75.5 341,-75.5 221,-75.5 221,-75.5 215,-75.5 209,-69.5 209,-63.5 209,-63.5 209,-18.5 209,-18.5 209,-12.5 215,-6.5 221,-6.5"/>
<text text-anchor="start" x="250" y="-62.7" font-family="Arial Bold" font-size="11.00">FiatBalance</text> <text text-anchor="start" x="248" y="-62.7" font-family="Arial Bold" font-size="11.00" fill="#000000">FiatBalance</text>
<polyline fill="none" stroke="black" points="211,-55.5 355,-55.5 "/> <polyline fill="none" stroke="#000000" points="209,-55.5 353,-55.5 "/>
<text text-anchor="start" x="218" y="-42" font-family="Arial" font-size="10.00">amount_cents </text> <text text-anchor="start" x="216" y="-42" font-family="Arial" font-size="10.00" fill="#000000">amount_cents </text>
<text text-anchor="start" x="283" y="-42" font-family="Arial Italic" font-size="10.00" fill="#999999">integer</text> <text text-anchor="start" x="281" y="-42" font-family="Arial Italic" font-size="10.00" fill="#999999">integer</text>
<text text-anchor="start" x="218" y="-29" font-family="Arial" font-size="10.00">amount_currency </text> <text text-anchor="start" x="216" y="-29" font-family="Arial" font-size="10.00" fill="#000000">amount_currency </text>
<text text-anchor="start" x="297" y="-29" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="295" y="-29" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="218" y="-16" font-family="Arial" font-size="10.00">user_id </text> <text text-anchor="start" x="216" y="-16" font-family="Arial" font-size="10.00" fill="#000000">user_id </text>
<text text-anchor="start" x="253" y="-16" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="251" y="-16" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
</g> </g>
<!-- m_User --> <!-- m_User -->
<g id="node7" class="node"> <g id="node7" class="node">
<title>m_User</title> <title>m_User</title>
<path fill="none" stroke="black" d="M12,-125.5C12,-125.5 150,-125.5 150,-125.5 156,-125.5 162,-131.5 162,-137.5 162,-137.5 162,-234.5 162,-234.5 162,-240.5 156,-246.5 150,-246.5 150,-246.5 12,-246.5 12,-246.5 6,-246.5 0,-240.5 0,-234.5 0,-234.5 0,-137.5 0,-137.5 0,-131.5 6,-125.5 12,-125.5"/> <path fill="none" stroke="#000000" d="M12,-125.5C12,-125.5 149,-125.5 149,-125.5 155,-125.5 161,-131.5 161,-137.5 161,-137.5 161,-234.5 161,-234.5 161,-240.5 155,-246.5 149,-246.5 149,-246.5 12,-246.5 12,-246.5 6,-246.5 0,-240.5 0,-234.5 0,-234.5 0,-137.5 0,-137.5 0,-131.5 6,-125.5 12,-125.5"/>
<text text-anchor="start" x="66.5" y="-233.7" font-family="Arial Bold" font-size="11.00">User</text> <text text-anchor="start" x="66" y="-233.7" font-family="Arial Bold" font-size="11.00" fill="#000000">User</text>
<polyline fill="none" stroke="black" points="0,-226.5 162,-226.5 "/> <polyline fill="none" stroke="#000000" points="0,-226.5 161,-226.5 "/>
<text text-anchor="start" x="7" y="-213" font-family="Arial" font-size="10.00">email </text> <text text-anchor="start" x="7.5" y="-213" font-family="Arial" font-size="10.00" fill="#000000">email </text>
<text text-anchor="start" x="34" y="-213" font-family="Arial Italic" font-size="10.00" fill="#999999">string U</text> <text text-anchor="start" x="34.5" y="-213" font-family="Arial Italic" font-size="10.00" fill="#999999">string U</text>
<text text-anchor="start" x="7" y="-200" font-family="Arial" font-size="10.00">encrypted_password </text> <text text-anchor="start" x="7.5" y="-200" font-family="Arial" font-size="10.00" fill="#000000">encrypted_password </text>
<text text-anchor="start" x="101" y="-200" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="100.5" y="-200" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="7" y="-187" font-family="Arial" font-size="10.00">first_name </text> <text text-anchor="start" x="7.5" y="-187" font-family="Arial" font-size="10.00" fill="#000000">first_name </text>
<text text-anchor="start" x="56" y="-187" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="56.5" y="-187" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="7" y="-174" font-family="Arial" font-size="10.00">last_name </text> <text text-anchor="start" x="7.5" y="-174" font-family="Arial" font-size="10.00" fill="#000000">last_name </text>
<text text-anchor="start" x="56" y="-174" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="56.5" y="-174" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="7" y="-161" font-family="Arial" font-size="10.00">remember_created_at </text> <text text-anchor="start" x="7.5" y="-161" font-family="Arial" font-size="10.00" fill="#000000">remember_created_at </text>
<text text-anchor="start" x="105" y="-161" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text> <text text-anchor="start" x="105.5" y="-161" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text>
<text text-anchor="start" x="7" y="-148" font-family="Arial" font-size="10.00">reset_password_sent_at </text> <text text-anchor="start" x="7.5" y="-148" font-family="Arial" font-size="10.00" fill="#000000">reset_password_sent_at </text>
<text text-anchor="start" x="117" y="-148" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text> <text text-anchor="start" x="116.5" y="-148" font-family="Arial Italic" font-size="10.00" fill="#999999">datetime</text>
<text text-anchor="start" x="7" y="-135" font-family="Arial" font-size="10.00">reset_password_token </text> <text text-anchor="start" x="7.5" y="-135" font-family="Arial" font-size="10.00" fill="#000000">reset_password_token </text>
<text text-anchor="start" x="109" y="-135" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="108.5" y="-135" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
</g> </g>
<!-- m_User&#45;&gt;m_Balance --> <!-- m_User&#45;&gt;m_Balance -->
<g id="edge2" class="edge"> <g id="edge2" class="edge">
<title>m_User&#45;&gt;m_Balance</title> <title>m_User&#45;&gt;m_Balance</title>
<path fill="none" stroke="black" d="M119.1,-246.71C133.45,-271.44 149.41,-300.62 162,-328 181.56,-370.54 167.99,-391.06 198,-427 202.33,-432.18 207.36,-436.94 212.76,-441.29"/> <path fill="none" stroke="#000000" d="M117.8604,-246.6822C132.3012,-271.4162 148.3569,-300.5952 161,-328 180.613,-370.5127 166.9911,-391.063 197,-427 201.3286,-432.1836 206.3552,-436.9437 211.7562,-441.286"/>
</g> </g>
<!-- m_User&#45;&gt;m_BuyCryptoOrder --> <!-- m_User&#45;&gt;m_BuyCryptoOrder -->
<g id="edge4" class="edge"> <g id="edge4" class="edge">
<title>m_User&#45;&gt;m_BuyCryptoOrder</title> <title>m_User&#45;&gt;m_BuyCryptoOrder</title>
<path fill="none" stroke="black" d="M139.37,-246.78C157.57,-265.12 178.14,-284.91 198,-302 201.26,-304.81 204.64,-307.63 208.09,-310.44"/> <path fill="none" stroke="#000000" d="M138.1489,-246.7611C156.4296,-265.0999 177.0785,-284.8928 197,-302 200.2659,-304.8045 203.6488,-307.6223 207.0989,-310.4268"/>
<polygon fill="black" stroke="black" points="206.25,-313 215.25,-316.17 210.19,-308.08 206.25,-313"/> <polygon fill="#000000" stroke="#000000" points="205.2637,-312.9926 214.259,-316.156 209.1997,-308.0735 205.2637,-312.9926"/>
</g> </g>
<!-- m_User&#45;&gt;m_FiatBalance --> <!-- m_User&#45;&gt;m_FiatBalance -->
<g id="edge3" class="edge"> <g id="edge3" class="edge">
<title>m_User&#45;&gt;m_FiatBalance</title> <title>m_User&#45;&gt;m_FiatBalance</title>
<path fill="none" stroke="black" d="M151.41,-125.47C166.42,-113.26 182.46,-100.85 198,-90 204.92,-85.17 212.34,-80.35 219.8,-75.73"/> <path fill="none" stroke="#000000" d="M150.2329,-125.4832C165.3085,-113.274 181.4114,-100.8639 197,-90 203.9257,-85.1734 211.3503,-80.363 218.8149,-75.7466"/>
</g> </g>
<!-- m_User&#45;&gt;m_SellCryptoOrder --> <!-- m_User&#45;&gt;m_SellCryptoOrder -->
<g id="edge6" class="edge"> <g id="edge6" class="edge">
<title>m_User&#45;&gt;m_SellCryptoOrder</title> <title>m_User&#45;&gt;m_SellCryptoOrder</title>
<path fill="none" stroke="black" d="M162.2,-207.25C172.55,-210 183.21,-212.82 193.69,-215.6"/> <path fill="none" stroke="#000000" d="M161.1843,-207.328C171.2838,-209.9977 181.6589,-212.7403 191.8779,-215.4415"/>
<polygon fill="black" stroke="black" points="192.93,-218.66 202.44,-217.92 194.55,-212.57 192.93,-218.66"/> <polygon fill="#000000" stroke="#000000" points="191.3009,-218.5471 200.8071,-217.8019 192.911,-212.4563 191.3009,-218.5471"/>
</g> </g>
<!-- m_UserDocument --> <!-- m_UserDocument -->
<g id="node8" class="node"> <g id="node8" class="node">
<title>m_UserDocument</title> <title>m_UserDocument</title>
<path fill="none" stroke="black" d="M223,-105C223,-105 343,-105 343,-105 349,-105 355,-111 355,-117 355,-117 355,-149 355,-149 355,-155 349,-161 343,-161 343,-161 223,-161 223,-161 217,-161 211,-155 211,-149 211,-149 211,-117 211,-117 211,-111 217,-105 223,-105"/> <path fill="none" stroke="#000000" d="M221,-105C221,-105 341,-105 341,-105 347,-105 353,-111 353,-117 353,-117 353,-149 353,-149 353,-155 347,-161 341,-161 341,-161 221,-161 221,-161 215,-161 209,-155 209,-149 209,-149 209,-117 209,-117 209,-111 215,-105 221,-105"/>
<text text-anchor="start" x="241.5" y="-148.2" font-family="Arial Bold" font-size="11.00">UserDocument</text> <text text-anchor="start" x="239.5" y="-148.2" font-family="Arial Bold" font-size="11.00" fill="#000000">UserDocument</text>
<polyline fill="none" stroke="black" points="211,-141 355,-141 "/> <polyline fill="none" stroke="#000000" points="209,-141 353,-141 "/>
<text text-anchor="start" x="218" y="-128" font-family="Arial" font-size="10.00">status </text> <text text-anchor="start" x="216" y="-128" font-family="Arial" font-size="10.00" fill="#000000">status </text>
<text text-anchor="start" x="249" y="-128" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text> <text text-anchor="start" x="247" y="-128" font-family="Arial Italic" font-size="10.00" fill="#999999">string</text>
<text text-anchor="start" x="218" y="-115" font-family="Arial" font-size="10.00">user_id </text> <text text-anchor="start" x="216" y="-115" font-family="Arial" font-size="10.00" fill="#000000">user_id </text>
<text text-anchor="start" x="253" y="-115" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text> <text text-anchor="start" x="251" y="-115" font-family="Arial Italic" font-size="10.00" fill="#999999">integer (8) FK</text>
</g> </g>
<!-- m_User&#45;&gt;m_UserDocument --> <!-- m_User&#45;&gt;m_UserDocument -->
<g id="edge1" class="edge"> <g id="edge1" class="edge">
<title>m_User&#45;&gt;m_UserDocument</title> <title>m_User&#45;&gt;m_UserDocument</title>
<path fill="none" stroke="black" d="M162.2,-164.75C175.26,-161.29 188.8,-157.7 201.87,-154.23"/> <path fill="none" stroke="#000000" d="M161.1843,-164.672C174.0042,-161.2832 187.2682,-157.777 200.0932,-154.3868"/>
<polygon fill="black" stroke="black" points="202.93,-157.21 210.83,-151.86 201.32,-151.12 202.93,-157.21"/> <polygon fill="#000000" stroke="#000000" points="200.9949,-157.4068 208.891,-152.0612 199.3848,-151.316 200.9949,-157.4068"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -24,6 +24,7 @@
"babel-plugin-relay": "^11.0.2", "babel-plugin-relay": "^11.0.2",
"bignumber.js": "^9.0.1", "bignumber.js": "^9.0.1",
"classnames": "^2.3.1", "classnames": "^2.3.1",
"ethers": "^5.4.4",
"postcss": "^7", "postcss": "^7",
"ramda": "^0.27.1", "ramda": "^0.27.1",
"react": "^17.0.2", "react": "^17.0.2",

View File

View File

View File

@@ -11,7 +11,8 @@
"jsx": "react", "jsx": "react",
"noEmit": true, "noEmit": true,
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"strict": true "strict": true,
"resolveJsonModule": true
}, },
"exclude": [ "exclude": [
"**/*.spec.ts", "**/*.spec.ts",

404
yarn.lock generated
View File

@@ -1128,6 +1128,345 @@
minimatch "^3.0.4" minimatch "^3.0.4"
strip-json-comments "^3.1.1" strip-json-comments "^3.1.1"
"@ethersproject/abi@5.4.0", "@ethersproject/abi@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.0.tgz#a6d63bdb3672f738398846d4279fa6b6c9818242"
integrity sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw==
dependencies:
"@ethersproject/address" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/hash" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/abstract-provider@5.4.1", "@ethersproject/abstract-provider@^5.4.0":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e"
integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==
dependencies:
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/networks" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/web" "^5.4.0"
"@ethersproject/abstract-signer@5.4.1", "@ethersproject/abstract-signer@^5.4.0":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81"
integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==
dependencies:
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/address@5.4.0", "@ethersproject/address@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3"
integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==
dependencies:
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/rlp" "^5.4.0"
"@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a"
integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6"
integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/bignumber@5.4.1", "@ethersproject/bignumber@^5.4.0":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.1.tgz#64399d3b9ae80aa83d483e550ba57ea062c1042d"
integrity sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
bn.js "^4.11.9"
"@ethersproject/bytes@5.4.0", "@ethersproject/bytes@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e"
integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==
dependencies:
"@ethersproject/logger" "^5.4.0"
"@ethersproject/constants@5.4.0", "@ethersproject/constants@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a"
integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==
dependencies:
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/contracts@5.4.1":
version "5.4.1"
resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470"
integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w==
dependencies:
"@ethersproject/abi" "^5.4.0"
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0"
integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==
dependencies:
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac"
integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q==
dependencies:
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/basex" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/pbkdf2" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/sha2" "^5.4.0"
"@ethersproject/signing-key" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/wordlists" "^5.4.0"
"@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95"
integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ==
dependencies:
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/hdnode" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/pbkdf2" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/random" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
aes-js "3.0.0"
scrypt-js "3.0.1"
"@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318"
integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==
dependencies:
"@ethersproject/bytes" "^5.4.0"
js-sha3 "0.5.7"
"@ethersproject/logger@5.4.0", "@ethersproject/logger@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.0.tgz#f39adadf62ad610c420bcd156fd41270e91b3ca9"
integrity sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ==
"@ethersproject/networks@5.4.2", "@ethersproject/networks@^5.4.0":
version "5.4.2"
resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35"
integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==
dependencies:
"@ethersproject/logger" "^5.4.0"
"@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c"
integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/sha2" "^5.4.0"
"@ethersproject/properties@5.4.0", "@ethersproject/properties@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.0.tgz#38ba20539b44dcc5d5f80c45ad902017dcdbefe7"
integrity sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A==
dependencies:
"@ethersproject/logger" "^5.4.0"
"@ethersproject/providers@5.4.3":
version "5.4.3"
resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.3.tgz#4cd7ccd9e12bc3875b33df8b24abf735663958a5"
integrity sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg==
dependencies:
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/basex" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/hash" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/networks" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/random" "^5.4.0"
"@ethersproject/rlp" "^5.4.0"
"@ethersproject/sha2" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/web" "^5.4.0"
bech32 "1.1.4"
ws "7.4.6"
"@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16"
integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931"
integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371"
integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
hash.js "1.1.7"
"@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec"
integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
bn.js "^4.11.9"
elliptic "6.5.4"
hash.js "1.1.7"
"@ethersproject/solidity@5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec"
integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ==
dependencies:
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/sha2" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/strings@5.4.0", "@ethersproject/strings@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a"
integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0"
integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==
dependencies:
"@ethersproject/address" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/rlp" "^5.4.0"
"@ethersproject/signing-key" "^5.4.0"
"@ethersproject/units@5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe"
integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg==
dependencies:
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/constants" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/wallet@5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353"
integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ==
dependencies:
"@ethersproject/abstract-provider" "^5.4.0"
"@ethersproject/abstract-signer" "^5.4.0"
"@ethersproject/address" "^5.4.0"
"@ethersproject/bignumber" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/hash" "^5.4.0"
"@ethersproject/hdnode" "^5.4.0"
"@ethersproject/json-wallets" "^5.4.0"
"@ethersproject/keccak256" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/random" "^5.4.0"
"@ethersproject/signing-key" "^5.4.0"
"@ethersproject/transactions" "^5.4.0"
"@ethersproject/wordlists" "^5.4.0"
"@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f"
integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==
dependencies:
"@ethersproject/base64" "^5.4.0"
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0":
version "5.4.0"
resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7"
integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA==
dependencies:
"@ethersproject/bytes" "^5.4.0"
"@ethersproject/hash" "^5.4.0"
"@ethersproject/logger" "^5.4.0"
"@ethersproject/properties" "^5.4.0"
"@ethersproject/strings" "^5.4.0"
"@headlessui/react@^1.4.0": "@headlessui/react@^1.4.0":
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.4.0.tgz#c6d424d8ab10ac925e4423d7f3cbab02c30d736a" resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.4.0.tgz#c6d424d8ab10ac925e4423d7f3cbab02c30d736a"
@@ -1599,6 +1938,11 @@ acorn@^7.0.0, acorn@^7.4.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
aes-js@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=
aggregate-error@^3.0.0: aggregate-error@^3.0.0:
version "3.1.0" version "3.1.0"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
@@ -2019,6 +2363,11 @@ batch@0.6.1:
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
bech32@1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
big.js@^5.2.2: big.js@^5.2.2:
version "5.2.2" version "5.2.2"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -3282,7 +3631,7 @@ electron-to-chromium@^1.3.793:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.793.tgz#c10dff5f3126238004de344db458f1da3641d554" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.793.tgz#c10dff5f3126238004de344db458f1da3641d554"
integrity sha512-l9NrGV6Mr4ov5mayYPvIWcwklNw5ROmy6rllzz9dCACw9nKE5y+s5uQk+CBJMetxrWZ6QJFsvEfG6WDcH2IGUg== integrity sha512-l9NrGV6Mr4ov5mayYPvIWcwklNw5ROmy6rllzz9dCACw9nKE5y+s5uQk+CBJMetxrWZ6QJFsvEfG6WDcH2IGUg==
elliptic@^6.5.3: elliptic@6.5.4, elliptic@^6.5.3:
version "6.5.4" version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@@ -3709,6 +4058,42 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
ethers@^5.4.4:
version "5.4.4"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.4.tgz#35cce530505b84c699da944162195cfb3f894947"
integrity sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA==
dependencies:
"@ethersproject/abi" "5.4.0"
"@ethersproject/abstract-provider" "5.4.1"
"@ethersproject/abstract-signer" "5.4.1"
"@ethersproject/address" "5.4.0"
"@ethersproject/base64" "5.4.0"
"@ethersproject/basex" "5.4.0"
"@ethersproject/bignumber" "5.4.1"
"@ethersproject/bytes" "5.4.0"
"@ethersproject/constants" "5.4.0"
"@ethersproject/contracts" "5.4.1"
"@ethersproject/hash" "5.4.0"
"@ethersproject/hdnode" "5.4.0"
"@ethersproject/json-wallets" "5.4.0"
"@ethersproject/keccak256" "5.4.0"
"@ethersproject/logger" "5.4.0"
"@ethersproject/networks" "5.4.2"
"@ethersproject/pbkdf2" "5.4.0"
"@ethersproject/properties" "5.4.0"
"@ethersproject/providers" "5.4.3"
"@ethersproject/random" "5.4.0"
"@ethersproject/rlp" "5.4.0"
"@ethersproject/sha2" "5.4.0"
"@ethersproject/signing-key" "5.4.0"
"@ethersproject/solidity" "5.4.0"
"@ethersproject/strings" "5.4.0"
"@ethersproject/transactions" "5.4.0"
"@ethersproject/units" "5.4.0"
"@ethersproject/wallet" "5.4.0"
"@ethersproject/web" "5.4.0"
"@ethersproject/wordlists" "5.4.0"
eventemitter3@^4.0.0: eventemitter3@^4.0.0:
version "4.0.7" version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
@@ -4340,7 +4725,7 @@ hash-base@^3.0.0:
readable-stream "^3.6.0" readable-stream "^3.6.0"
safe-buffer "^5.2.0" safe-buffer "^5.2.0"
hash.js@^1.0.0, hash.js@^1.0.3: hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.7" version "1.1.7"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
@@ -4990,6 +5375,11 @@ jest-worker@^26.5.0:
merge-stream "^2.0.0" merge-stream "^2.0.0"
supports-color "^7.0.0" supports-color "^7.0.0"
js-sha3@0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7"
integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -7609,6 +7999,11 @@ schema-utils@^3.0.0:
ajv "^6.12.5" ajv "^6.12.5"
ajv-keywords "^3.5.2" ajv-keywords "^3.5.2"
scrypt-js@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
select-hose@^2.0.0: select-hose@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
@@ -8914,6 +9309,11 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
ws@7.4.6:
version "7.4.6"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
ws@^6.2.1: ws@^6.2.1:
version "6.2.2" version "6.2.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"