+
setMessage(e.target.value)}
diff --git a/packages/maskbook/src/plugins/RedPacket/SNSAdaptor/hooks/useCreateCallback.ts b/packages/maskbook/src/plugins/RedPacket/SNSAdaptor/hooks/useCreateCallback.tsx
similarity index 64%
rename from packages/maskbook/src/plugins/RedPacket/SNSAdaptor/hooks/useCreateCallback.ts
rename to packages/maskbook/src/plugins/RedPacket/SNSAdaptor/hooks/useCreateCallback.tsx
index 71a62e1726ec..d451d148917f 100644
--- a/packages/maskbook/src/plugins/RedPacket/SNSAdaptor/hooks/useCreateCallback.ts
+++ b/packages/maskbook/src/plugins/RedPacket/SNSAdaptor/hooks/useCreateCallback.tsx
@@ -1,9 +1,13 @@
+import { ShowSnackbarOptions, SnackbarKey, SnackbarMessage, useCustomSnackbar } from '@masknet/theme'
+import { makeStyles } from '@masknet/theme'
import type { HappyRedPacketV4 } from '@masknet/web3-contracts/types/HappyRedPacketV4'
import type { PayableTx } from '@masknet/web3-contracts/types/types'
import {
EthereumTokenType,
+ formatBalance,
FungibleTokenDetailed,
isLessThan,
+ resolveTransactionLinkOnExplorer,
TransactionEventType,
TransactionState,
TransactionStateType,
@@ -12,14 +16,24 @@ import {
useTokenConstants,
useTransactionState,
} from '@masknet/web3-shared'
+import { Link } from '@material-ui/core'
+import LaunchIcon from '@material-ui/icons/Launch'
+import BigNumber from 'bignumber.js'
import { omit } from 'lodash-es'
+import React, { FC, memo, useCallback, useRef, useState } from 'react'
import { useAsync } from 'react-use'
-import BigNumber from 'bignumber.js'
-import { useCallback, useState } from 'react'
import type { TransactionReceipt } from 'web3-core'
import Web3Utils from 'web3-utils'
+import { useI18N } from '../../../../utils/i18n-next-ui'
import { useRedPacketContract } from './useRedPacketContract'
+const useStyles = makeStyles()({
+ link: {
+ display: 'flex',
+ alignItems: 'center',
+ },
+})
+
export interface RedPacketSettings {
publicKey: string
privateKey: string
@@ -122,14 +136,45 @@ export function useCreateParams(redPacketSettings: RedPacketSettings | undefined
}, [redPacketSettings, account, redPacketContract]).value
}
+const TransactionLink: FC<{ txHash?: string }> = memo(({ children, txHash }) => {
+ const { classes } = useStyles()
+ const chainId = useChainId()
+ if (!txHash) {
+ return null
+ }
+ const link = resolveTransactionLinkOnExplorer(chainId, txHash)
+ return (
+
+ {children}
+
+
+ )
+})
+
export function useCreateCallback(redPacketSettings: RedPacketSettings, version: number) {
const account = useAccount()
const chainId = useChainId()
+ const { t } = useI18N()
const [createState, setCreateState] = useTransactionState()
const redPacketContract = useRedPacketContract(version)
const [createSettings, setCreateSettings] = useState(null)
const paramResult = useCreateParams(redPacketSettings, version)
+ const { showSnackbar, closeSnackbar } = useCustomSnackbar()
+ const snackbarKeyRef = useRef()
+ const showSingletonSnackbar = useCallback(
+ (title: SnackbarMessage, options: ShowSnackbarOptions) => {
+ if (snackbarKeyRef.current !== undefined) closeSnackbar(snackbarKeyRef.current)
+ snackbarKeyRef.current = showSnackbar(title, options)
+ return () => {
+ closeSnackbar(snackbarKeyRef.current)
+ }
+ },
+ [showSnackbar, closeSnackbar],
+ )
+
+ const transactionHashRef = useRef()
+
const createCallback = useCallback(async () => {
const { token } = redPacketSettings
@@ -151,6 +196,7 @@ export function useCreateCallback(redPacketSettings: RedPacketSettings, version:
}
if (!checkParams(paramsObj, setCreateState)) return
+
setCreateSettings(redPacketSettings)
// pre-step: start waiting for provider to confirm tx
@@ -160,6 +206,10 @@ export function useCreateCallback(redPacketSettings: RedPacketSettings, version:
// estimate gas and compose transaction
const value = new BigNumber(token.type === EthereumTokenType.Native ? paramsObj.total : '0').toFixed()
+ const formattedValue = formatBalance(
+ new BigNumber(token.type === EthereumTokenType.Native ? paramsObj.total : '0'),
+ token.decimals,
+ )
const config = {
from: account,
value,
@@ -169,18 +219,36 @@ export function useCreateCallback(redPacketSettings: RedPacketSettings, version:
// send transaction and wait for hash
return new Promise(async (resolve, reject) => {
const promiEvent = redPacketContract.methods.create_red_packet(...params).send(config as PayableTx)
- promiEvent.on(TransactionEventType.TRANSACTION_HASH, (hash: string) => {
+ const snackbarTitle = t('plugin_red_packet_create_title')
+ promiEvent.once(TransactionEventType.TRANSACTION_HASH, (hash: string) => {
setCreateState({
type: TransactionStateType.WAIT_FOR_CONFIRMING,
hash,
})
+ transactionHashRef.current = hash
+ showSingletonSnackbar(snackbarTitle, {
+ processing: true,
+ persist: true,
+ message: (
+ {t('plugin_red_packet_transaction_submitted')}
+ ),
+ })
})
- promiEvent.on(TransactionEventType.RECEIPT, (receipt: TransactionReceipt) => {
+ promiEvent.once(TransactionEventType.RECEIPT, (receipt: TransactionReceipt) => {
setCreateState({
type: TransactionStateType.CONFIRMED,
no: 0,
receipt,
})
+ transactionHashRef.current = receipt.transactionHash
+ showSingletonSnackbar(snackbarTitle, {
+ variant: 'success',
+ message: (
+
+ {t('plugin_red_packet_transaction_submitted')}
+
+ ),
+ })
})
promiEvent.on(TransactionEventType.CONFIRMATION, (no: number, receipt: TransactionReceipt) => {
@@ -189,7 +257,19 @@ export function useCreateCallback(redPacketSettings: RedPacketSettings, version:
no,
receipt,
})
+ transactionHashRef.current = receipt.transactionHash
resolve()
+ showSingletonSnackbar(snackbarTitle, {
+ variant: 'success',
+ message: (
+
+ {t('plugin_red_packet_success', {
+ value: formattedValue,
+ symbol: token.symbol,
+ })}
+
+ ),
+ })
})
promiEvent.on(TransactionEventType.ERROR, (error: Error) => {
@@ -198,9 +278,17 @@ export function useCreateCallback(redPacketSettings: RedPacketSettings, version:
error,
})
reject(error)
+ showSingletonSnackbar(snackbarTitle, {
+ variant: 'error',
+ message: (
+
+ {t('plugin_red_packet_transaction_rejected')}
+
+ ),
+ })
})
})
- }, [account, redPacketContract, redPacketSettings, chainId, paramResult])
+ }, [account, redPacketContract, redPacketSettings, chainId, paramResult, showSingletonSnackbar])
const resetCallback = useCallback(() => {
setCreateState({
diff --git a/packages/theme/src/Components/Snackbar/index.tsx b/packages/theme/src/Components/Snackbar/index.tsx
index 4c8486f29cc1..467645bc8bd3 100644
--- a/packages/theme/src/Components/Snackbar/index.tsx
+++ b/packages/theme/src/Components/Snackbar/index.tsx
@@ -23,7 +23,7 @@ import { makeStyles } from '../../makeStyles'
import { MaskColorVar } from '../../constants'
export { SnackbarProvider, useSnackbar } from 'notistack'
-export type { VariantType, OptionsObject, SnackbarKey } from 'notistack'
+export type { VariantType, OptionsObject, SnackbarKey, SnackbarMessage } from 'notistack'
const useStyles = makeStyles()((theme, _, createRef) => {
const { palette } = theme
@@ -169,7 +169,6 @@ export interface CustomSnackbarContentProps {
icon?: React.ReactNode
processing?: boolean
variant?: VariantType
- link?: string
action?: SnackbarAction
}
const IconMap: Record = {
@@ -245,14 +244,16 @@ export const CustomSnackbarProvider = memo((props) => {
)
})
-interface Options extends OptionsObject, Pick {}
+export interface ShowSnackbarOptions
+ extends OptionsObject,
+ Pick {}
export function useCustomSnackbar() {
const { enqueueSnackbar, closeSnackbar } = useSnackbar()
const showSnackbar = useCallback(
(
text: SnackbarMessage,
- options: Options = {
+ options: ShowSnackbarOptions = {
variant: 'default',
},
) => {
diff --git a/packages/theme/src/makeStyles.ts b/packages/theme/src/makeStyles.ts
index ac65f33c7828..96af1a8acbbc 100644
--- a/packages/theme/src/makeStyles.ts
+++ b/packages/theme/src/makeStyles.ts
@@ -2,3 +2,4 @@ import { createMakeStyles } from 'tss-react'
import { useTheme } from '@mui/material'
export const { makeStyles } = createMakeStyles({ useTheme })
export type { Css, Cx } from 'tss-react'
+export { keyframes } from 'tss-react'
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b9398a427f8b..fa69e1354d2f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -860,7 +860,7 @@ packages:
dependencies:
'@0xproject/utils': 0.3.4
chalk: 2.4.2
- glob: 7.1.7
+ glob: 7.2.0
handlebars: 4.7.7
lodash: 4.17.21
mkdirp: 0.5.5
@@ -1320,6 +1320,10 @@ packages:
resolution: {integrity: sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-validator-identifier/7.15.7:
+ resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-validator-option/7.14.5:
resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==}
engines: {node: '>=6.9.0'}
@@ -1351,7 +1355,7 @@ packages:
resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.14.9
+ '@babel/helper-validator-identifier': 7.15.7
chalk: 2.4.2
js-tokens: 4.0.0
@@ -3871,7 +3875,7 @@ packages:
resolution: {integrity: sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g==}
dependencies:
'@emotion/memoize': 0.7.5
- '@emotion/sheet': 1.0.1
+ '@emotion/sheet': 1.0.2
'@emotion/utils': 1.0.0
'@emotion/weak-memoize': 0.2.5
stylis: 4.0.10
@@ -3962,7 +3966,7 @@ packages:
'@emotion/memoize': 0.7.5
'@emotion/unitless': 0.7.5
'@emotion/utils': 1.0.0
- csstype: 3.0.8
+ csstype: 3.0.9
dev: false
/@emotion/server/11.4.0:
@@ -3983,10 +3987,6 @@ packages:
resolution: {integrity: sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==}
dev: true
- /@emotion/sheet/1.0.1:
- resolution: {integrity: sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g==}
- dev: false
-
/@emotion/sheet/1.0.2:
resolution: {integrity: sha512-QQPB1B70JEVUHuNtzjHftMGv6eC3Y9wqavyarj4x4lg47RACkeSfNo5pxIOKizwS9AEFLohsqoaxGQj4p0vSIw==}
dev: false
@@ -8099,8 +8099,8 @@ packages:
resolution: {integrity: sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw==}
dev: true
- /@types/lodash/4.14.173:
- resolution: {integrity: sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg==}
+ /@types/lodash/4.14.175:
+ resolution: {integrity: sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw==}
dev: false
/@types/markdown-to-jsx/6.11.3:
@@ -8148,6 +8148,9 @@ packages:
/@types/node/14.17.15:
resolution: {integrity: sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA==}
+ /@types/node/16.10.2:
+ resolution: {integrity: sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==}
+
/@types/node/16.4.3:
resolution: {integrity: sha512-GKM4FLMkWDc0sfx7tXqPWkM6NBow1kge0fgQh0bOnlqo4iT1kvTvMEKE0c1RtUGnbLlGRXiAA8SumE//90uKAg==}
@@ -8191,7 +8194,7 @@ packages:
/@types/pbkdf2/3.1.0:
resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==}
dependencies:
- '@types/node': 16.9.1
+ '@types/node': 16.10.2
/@types/prettier/2.3.2:
resolution: {integrity: sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==}
@@ -8354,7 +8357,7 @@ packages:
/@types/secp256k1/4.0.3:
resolution: {integrity: sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==}
dependencies:
- '@types/node': 16.9.1
+ '@types/node': 16.10.2
/@types/serve-index/1.9.1:
resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==}
@@ -10829,8 +10832,8 @@ packages:
resolution: {integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001257
- electron-to-chromium: 1.3.840
+ caniuse-lite: 1.0.30001261
+ electron-to-chromium: 1.3.853
dev: false
/browserslist/4.14.2:
@@ -11143,6 +11146,10 @@ packages:
/caniuse-lite/1.0.30001257:
resolution: {integrity: sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==}
+ /caniuse-lite/1.0.30001261:
+ resolution: {integrity: sha512-vM8D9Uvp7bHIN0fZ2KQ4wnmYFpJo/Etb4Vwsuc+ka0tfGDHvOPrFm6S/7CCNLSOkAUjenT2HnUPESdOIL91FaA==}
+ dev: false
+
/capture-exit/2.0.0:
resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==}
engines: {node: 6.* || 8.* || >= 10.*}
@@ -12925,6 +12932,10 @@ packages:
/electron-to-chromium/1.3.840:
resolution: {integrity: sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==}
+ /electron-to-chromium/1.3.853:
+ resolution: {integrity: sha512-W4U8n+U8I5/SUaFcqZgbKRmYZwcyEIQVBDf+j5QQK6xChjXnQD+wj248eGR9X4u+dDmDR//8vIfbu4PrdBBIoQ==}
+ dev: false
+
/element-resize-detector/1.2.3:
resolution: {integrity: sha512-+dhNzUgLpq9ol5tyhoG7YLoXL3ssjfFW+0gpszXPwRU6NjGr1fVHMEAF8fVzIiRJq57Nre0RFeIjJwI8Nh2NmQ==}
dependencies:
@@ -13189,6 +13200,30 @@ packages:
string.prototype.trimstart: 1.0.4
unbox-primitive: 1.0.1
+ /es-abstract/1.18.7:
+ resolution: {integrity: sha512-uFG1gyVX91tZIiDWNmPsL8XNpiCk/6tkB7MZphoSJflS4w+KgWyQ2gjCVDnsPxFAo9WjRXG3eqONNYdfbJjAtw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ es-to-primitive: 1.2.1
+ function-bind: 1.1.1
+ get-intrinsic: 1.1.1
+ get-symbol-description: 1.0.0
+ has: 1.0.3
+ has-symbols: 1.0.2
+ internal-slot: 1.0.3
+ is-callable: 1.2.4
+ is-negative-zero: 2.0.1
+ is-regex: 1.1.4
+ is-string: 1.0.7
+ object-inspect: 1.11.0
+ object-keys: 1.1.1
+ object.assign: 4.1.2
+ string.prototype.trimend: 1.0.4
+ string.prototype.trimstart: 1.0.4
+ unbox-primitive: 1.0.1
+ dev: false
+
/es-array-method-boxes-properly/1.0.0:
resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==}
dev: true
@@ -13932,7 +13967,7 @@ packages:
is-stream: 1.1.0
npm-run-path: 2.0.2
p-finally: 1.0.0
- signal-exit: 3.0.3
+ signal-exit: 3.0.4
strip-eof: 1.0.0
dev: false
@@ -14914,6 +14949,16 @@ packages:
once: 1.4.0
path-is-absolute: 1.0.1
+ /glob/7.2.0:
+ resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.0.4
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
/global-dirs/0.1.1:
resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=}
engines: {node: '>=4'}
@@ -16024,6 +16069,12 @@ packages:
resolution: {integrity: sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==}
dependencies:
has: 1.0.3
+ dev: true
+
+ /is-core-module/2.7.0:
+ resolution: {integrity: sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==}
+ dependencies:
+ has: 1.0.3
/is-data-descriptor/0.1.4:
resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=}
@@ -17363,7 +17414,7 @@ packages:
requiresBuild: true
dependencies:
node-addon-api: 2.0.2
- node-gyp-build: 4.2.3
+ node-gyp-build: 4.3.0
readable-stream: 3.6.0
/keyv/3.1.0:
@@ -18516,6 +18567,10 @@ packages:
resolution: {integrity: sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==}
hasBin: true
+ /node-gyp-build/4.3.0:
+ resolution: {integrity: sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==}
+ hasBin: true
+
/node-int64/0.4.0:
resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=}
dev: true
@@ -20869,7 +20924,7 @@ packages:
/resolve/1.20.0:
resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==}
dependencies:
- is-core-module: 2.6.0
+ is-core-module: 2.7.0
path-parse: 1.0.7
/resolve/2.0.0-next.3:
@@ -20937,7 +20992,7 @@ packages:
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
hasBin: true
dependencies:
- glob: 7.1.7
+ glob: 7.2.0
/rimraf/3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
@@ -21140,7 +21195,7 @@ packages:
dependencies:
elliptic: 6.5.4
node-addon-api: 2.0.2
- node-gyp-build: 4.2.3
+ node-gyp-build: 4.3.0
/select-hose/2.0.0:
resolution: {integrity: sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=}
@@ -21379,6 +21434,10 @@ packages:
/signal-exit/3.0.3:
resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==}
+ /signal-exit/3.0.4:
+ resolution: {integrity: sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==}
+ dev: false
+
/simple-concat/1.0.1:
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
@@ -21863,7 +21922,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.1.3
- es-abstract: 1.18.6
+ es-abstract: 1.18.7
dev: false
/string.prototype.trimend/1.0.4:
@@ -22815,7 +22874,7 @@ packages:
chalk: 2.4.2
commander: 2.20.3
diff: 4.0.2
- glob: 7.1.7
+ glob: 7.2.0
js-yaml: 3.14.1
minimatch: 3.0.4
mkdirp: 0.5.5
@@ -25216,7 +25275,7 @@ packages:
'@0xproject/types': 0.1.9
'@0xproject/utils': 0.1.3
'@0xproject/web3-wrapper': 0.1.14
- '@types/lodash': 4.14.173
+ '@types/lodash': 4.14.175
'@types/node': 9.6.61
0x.js: 0.29.2
awesome-typescript-loader: 3.5.0_typescript@2.9.2
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index e9458aa3bf4d..efaa8187b262 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -15,8 +15,8 @@ packages:
- 'packages/web3-contracts'
- 'packages/web3-shared'
- 'packages/storybook-shared'
- - 'packages/theme'
- 'packages/icons'
+ - 'packages/theme'
- 'packages/plugin-infra'
- 'packages/plugins/example'
- 'packages/plugins/Wallet'