Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Downgrade path #1804

Merged
merged 95 commits into from
Dec 13, 2021
Merged
Changes from 1 commit
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
4c4e754
Settings plan page UI (#1182)
tanmoyAtb Aug 18, 2021
a58a85e
billing - Add card (#1446)
tanmoyAtb Aug 20, 2021
685ba3c
Merge remote-tracking branch 'origin/dev' into epic/files-billing
FSM1 Aug 24, 2021
45ba1be
Merge branch 'dev' of github.com:ChainSafe/ui-monorepo into epic/file…
Tbaut Aug 25, 2021
925a706
wait for 10min
Tbaut Aug 25, 2021
67b9446
Current card: billing (#1463)
tanmoyAtb Aug 25, 2021
0795b57
[FILES] Subscription tab update (#1476)
FSM1 Aug 30, 2021
a440bda
Merge dev into epic/files-billing (#1491)
Tbaut Sep 6, 2021
44458cb
merge dev (#1502)
Tbaut Sep 8, 2021
0339e57
Merge dev to epic/files-billing (#1525)
Tbaut Sep 15, 2021
3f275ce
merge latest 'origin/dev' into 'epic/files-billing' (#1588)
FSM1 Sep 27, 2021
a539565
Account Restricted (#1589)
FSM1 Sep 29, 2021
e4591af
Payments add card update with setup intent (#1584)
tanmoyAtb Oct 4, 2021
8448f58
default card API added (#1623)
tanmoyAtb Oct 12, 2021
963e514
Current Product Widget (#1482)
RyRy79261 Oct 19, 2021
c6e935b
updated default card API call (#1642)
tanmoyAtb Oct 19, 2021
766facb
notifications for billing (#1656)
tanmoyAtb Nov 3, 2021
063bfc1
merge dev into billing (#1694)
tanmoyAtb Nov 4, 2021
7aaf835
[Files] - Billing history (#1492)
Tbaut Nov 4, 2021
5bb4490
Change plan widget (#1649)
RyRy79261 Nov 4, 2021
da47f1d
Place user dropdown in app nav (#1685)
tanmoyAtb Nov 5, 2021
79e4549
Merge origin/dev 2021-11-25 (#1780)
FSM1 Nov 26, 2021
8f1f850
plans page progress
tanmoyAtb Nov 29, 2021
71048ce
subscribe modal
tanmoyAtb Nov 29, 2021
ff9f82c
payment method page
tanmoyAtb Nov 30, 2021
8cc8847
payment method page
tanmoyAtb Nov 30, 2021
b74d6ba
confirm plan in progress
tanmoyAtb Dec 1, 2021
262cfd7
confirm plan ready
tanmoyAtb Dec 1, 2021
3afa830
dark mode and colors ok
tanmoyAtb Dec 2, 2021
877a791
UI ready
tanmoyAtb Dec 2, 2021
e233a88
before success page
tanmoyAtb Dec 3, 2021
49ca414
all pages complete
tanmoyAtb Dec 3, 2021
ee2e7ed
success and failed API handle
tanmoyAtb Dec 3, 2021
0c3984a
check on reanslations
tanmoyAtb Dec 3, 2021
b80aa0f
compile trans
tanmoyAtb Dec 3, 2021
f8f00f8
handle card deletion (#1800)
Tbaut Dec 3, 2021
004b692
merged default card changes
tanmoyAtb Dec 3, 2021
805c901
client updates
tanmoyAtb Dec 3, 2021
54ba7c6
API updates
tanmoyAtb Dec 3, 2021
e346d92
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
9d57fa4
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
38d536e
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
910a530
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
dabf9bc
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
610c254
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
e305b6a
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
51927e8
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
f75bf66
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
0270244
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
3dbd082
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
f8b9500
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
c61f494
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
cad6e96
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
347faa3
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
66d4a16
Update packages/files-ui/src/Components/Modules/Settings/Subscription…
tanmoyAtb Dec 3, 2021
325ae93
apply feedbacks
tanmoyAtb Dec 3, 2021
579e15e
resolved feedbacks
tanmoyAtb Dec 3, 2021
2e30590
downgrade confirmation
Tbaut Dec 5, 2021
ec2469e
Merge dev to epic/files-billing 7/12/2021 (#1810)
Tbaut Dec 7, 2021
3512dd1
signout on mobile (#1812)
Tbaut Dec 7, 2021
d6c3072
Merge branch 'epic/files-billing' into feat/credit-card-flow-1757
FSM1 Dec 7, 2021
d039405
merge upstream
Tbaut Dec 7, 2021
bc4de48
add confirm Downgrade flow and cancel plan
Tbaut Dec 7, 2021
e765cf6
compile trans
Tbaut Dec 7, 2021
46684c2
current storage
Tbaut Dec 7, 2021
17b65f4
fix loader
FSM1 Dec 7, 2021
77c1683
go back change
tanmoyAtb Dec 8, 2021
36a8db0
Merge branch 'feat/credit-card-flow-1757' of github.com:ChainSafe/ui-…
tanmoyAtb Dec 8, 2021
ecce826
Merge dev into epic/files-billing (#1816)
Tbaut Dec 8, 2021
c768d34
Merge branch 'feat/credit-card-flow-1757' into feat/tbaut-downgrade-1783
Tbaut Dec 8, 2021
27ac2e8
merge upstream
Tbaut Dec 8, 2021
7d1a24c
apply lint --fix
Tbaut Dec 8, 2021
4d5ba5c
nits and translation
Tbaut Dec 8, 2021
2f3798d
some more nits
Tbaut Dec 8, 2021
c4b8b0c
merge upstream
Tbaut Dec 8, 2021
968e122
merge upstream
Tbaut Dec 8, 2021
1984d36
Remove default card (#1814)
tanmoyAtb Dec 8, 2021
0caba50
lint
Tbaut Dec 8, 2021
48f35b2
simplify after merge
Tbaut Dec 8, 2021
72d72c7
Billing credit card flow (#1788)
tanmoyAtb Dec 8, 2021
058fe20
merge upstream
Tbaut Dec 8, 2021
a1f44c0
fix unuse import
Tbaut Dec 8, 2021
9899fb6
merge dev
Tbaut Dec 10, 2021
052fc81
lingui extract
actions-user Dec 10, 2021
f662197
fix conflicts
Tbaut Dec 10, 2021
d289510
fix conflicts
Tbaut Dec 10, 2021
888a784
merge dev
Tbaut Dec 10, 2021
8d08c06
lingui extract
actions-user Dec 10, 2021
820a789
address comments
Tbaut Dec 13, 2021
20a0939
Merge branch 'feat/tbaut-downgrade-1783' of github.com:ChainSafe/ui-m…
Tbaut Dec 13, 2021
6422ab9
Apply suggestions from code review
Tbaut Dec 13, 2021
4a15953
nit for mobile
Tbaut Dec 13, 2021
cb14325
Merge branch 'feat/tbaut-downgrade-1783' of github.com:ChainSafe/ui-m…
Tbaut Dec 13, 2021
f9b36f5
Merge branch 'dev' into feat/tbaut-downgrade-1783
Tbaut Dec 13, 2021
c9b811a
lingui extract
actions-user Dec 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Current card: billing (#1463)
* plan page ready

* plans data

* plans page

* ready and responsive

* lingui extract

* use npm regisry

* pull from npm

* use new api client

* lingui extract

* update api client

* lingui extract

* initial stab

* lingui extract

* create barebones gaming app

* lingui extract

* update readme

* lingui extract

* Apply suggestions from code review

Co-authored-by: Ryan Noble <ryanjnoble@gmail.com>

* lingui extract

* rename

* merge latest gaming

* lingui extract

* wire up basic products list and Product info

* lingui extract

* improve text formatting

* remove unused imports

* remove unused imports

* remove billing from files for now

* fix navigation and remove settings

* lingui extract

* lingui extract

* format bytes

* removed conflicts

* lingui extract

* reshuffle files

* modal added

* card inputs

* UI ready

* billing add card

* lingui extract

* xs sizes

* formatter

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/AddCardModal.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/AddCardModal.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/AddCardModal.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/index.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/index.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/AddCardModal.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* paths on back to settings

* messages

* resolve reviews

* current card added

* add card modal updates

* login and new api client

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/AddCardModal.tsx

* Update packages/files-ui/src/Components/Modules/Settings/SubscriptionPlan/CurrentCard.tsx

Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>

* icon credit card

* Cherry pick cypress retry from dev

Co-authored-by: GitHub Actions <actions@github.com>
Co-authored-by: Thibaut Sardan <github@thib.top>
Co-authored-by: Thibaut Sardan <33178835+Tbaut@users.noreply.github.com>
Co-authored-by: Michael Yankelev <myankelev@gmail.com>
Co-authored-by: Michael Yankelev <12774278+FSM1@users.noreply.github.com>
Co-authored-by: Ryan Noble <ryanjnoble@gmail.com>
Co-authored-by: Andrew Snaith <andrew@chainsafe.io>
8 people authored Aug 25, 2021
commit 67b94460ddbaf59ba37a692016cd9cade958b444
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import * as React from "react"
import createSvgIcon from "../createSvgIcon"
import { ReactComponent as CreditCardSvg } from "../svgs/credit-card.svg"

export { CreditCardSvg }

export default createSvgIcon(<CreditCardSvg />)
1 change: 1 addition & 0 deletions packages/common-components/src/Icons/index.ts
Original file line number Diff line number Diff line change
@@ -14,6 +14,7 @@ export { default as CheckCircleIcon, CheckCircleSvg } from "./icons/CheckCircle.
export { default as CloseIcon, CloseSvg } from "./icons/Close.icon"
export { default as CloseCircleIcon, CloseCirceSvg } from "./icons/CloseCircle.icon"
export { default as CopyIcon, CopySvg } from "./icons/Copy.icon"
export { default as CreditCardIcon, CreditCardSvg } from "./icons/CreditCard.icon"
export { default as CrossIcon, CrossSvg } from "./icons/Cross.icon"
export { default as CrossOutlinedIcon, CrossOutlinedSvg } from "./icons/CrossOutlined.icon"
export { default as DatabaseIcon, DatabaseSvg } from "./icons/Database.icon"
3 changes: 3 additions & 0 deletions packages/common-components/src/Icons/svgs/credit-card.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion packages/files-ui/package.json
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
"@babel/core": "^7.12.10",
"@babel/runtime": "^7.0.0",
"@chainsafe/browser-storage-hooks": "^1.0.1",
"@chainsafe/files-api-client": "1.18.0",
"@chainsafe/files-api-client": "1.18.1",
"@chainsafe/web3-context": "1.1.4",
"@lingui/core": "^3.7.2",
"@lingui/react": "^3.7.2",
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
import { Button, Grid, TextInput, Typography, useToaster } from "@chainsafe/common-components"
import { createStyles, makeStyles } from "@chainsafe/common-theme"
import React, { useState } from "react"
import React, { useState, useCallback } from "react"
import { CSFTheme } from "../../../../Themes/types"
import CustomModal from "../../../Elements/CustomModal"
import CustomButton from "../../../Elements/CustomButton"
import { t, Trans } from "@lingui/macro"
import CardInputs from "../../../Elements/CardInputs"
import { getCardNumberError, getCVCError, getExpiryDateError } from "../../../Elements/CardInputs/utils/validator"
import axios, { AxiosResponse } from "axios"
import qs from "qs"
import { useFilesApi } from "../../../../Contexts/FilesApiContext"
import { useCallback } from "react"
import { useBilling } from "../../../../Contexts/BillingContext"

const useStyles = makeStyles(
({ breakpoints, constants, typography, zIndex }: CSFTheme) => {
@@ -78,7 +75,7 @@ const CreateFolderModal = ({ isModalOpen, onClose }: ICreateFolderModalProps) =>
const [cardName, setCardName] = useState("")
const [error, setError] = useState("")
const [loading, setLoading] = useState(false)
const { filesApiClient } = useFilesApi()
const { addCard, getCardTokenFromStripe } = useBilling()
const { addToastMessage } = useToaster()

const onCloseModal = useCallback(() => {
@@ -104,22 +101,9 @@ const CreateFolderModal = ({ isModalOpen, onClose }: ICreateFolderModalProps) =>

setLoading(true)
// get token from stripe
axios({
method: "post",
url: "https://api.stripe.com/v1/tokens",
headers: {
"Authorization": `Bearer ${process.env.REACT_APP_STRIPE_PK}`,
"Content-Type": "application/x-www-form-urlencoded"
},
data : qs.stringify({
"card[number]": cardInputs.cardNumber,
"card[exp_month]": cardInputs.cardExpiry.split("/")[0].trim(),
"card[exp_year]": cardInputs.cardExpiry.split("/")[1].trim(),
"card[cvc]": cardInputs.cardCvc
})
}).then((resp: AxiosResponse<{ card: {id: string}}>) => {
getCardTokenFromStripe(cardInputs).then((resp) => {
// send stripe token to API
filesApiClient.addCard({ token: resp.data.card.id })
addCard(resp.data.id)
.then(() => {
onCloseModal()
addToastMessage({
@@ -134,7 +118,7 @@ const CreateFolderModal = ({ isModalOpen, onClose }: ICreateFolderModalProps) =>
setError(t`Card details could not be validated`)
setLoading(false)
})
}, [addToastMessage, cardInputs, cardName, filesApiClient, onCloseModal])
}, [addToastMessage, cardInputs, cardName, onCloseModal, getCardTokenFromStripe, addCard])

return (
<CustomModal
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import React from "react"
import { Typography, CreditCardIcon } from "@chainsafe/common-components"
import { makeStyles, ITheme, createStyles } from "@chainsafe/common-theme"
import { Trans } from "@lingui/macro"
import { useBilling } from "../../../../Contexts/BillingContext"

const useStyles = makeStyles(({ constants, palette }: ITheme) =>
createStyles({
container: {
margin: `${constants.generalUnit * 3}px ${constants.generalUnit * 4}px`
},
noCard: {
margin: `${constants.generalUnit * 2}px 0`
},
cardDetailsContainer: {
display: "flex",
margin: `${constants.generalUnit * 2}px 0`
},
creditCardIcon: {
marginRight: constants.generalUnit,
fill: palette.additional["gray"][9]
}
})
)

const CurrentCard: React.FC = () => {
const classes = useStyles()
const { defaultCard } = useBilling()

return (
<div className={classes.container}>
<div>
<Typography
variant="h4"
component="h4"
>
<Trans>Credit card on file</Trans>
</Typography>
</div>
{defaultCard
? <div className={classes.cardDetailsContainer}>
<CreditCardIcon className={classes.creditCardIcon} />
<Typography>
•••• •••• •••• {defaultCard.last_four_digit}
</Typography>
</div>
: <Typography
component="p"
variant="body1"
className={classes.noCard}
>
<Trans>No Card</Trans>
</Typography>
}
</div>
)
}

export default CurrentCard
Original file line number Diff line number Diff line change
@@ -1,31 +1,38 @@
import React, { useState } from "react"
import CurrentProduct from "./CurrentProduct"
import CurrentCard from "./CurrentCard"
import AddCardModal from "./AddCardModal"
import { Button } from "@chainsafe/common-components"
import { makeStyles, createStyles, ITheme } from "@chainsafe/common-theme"
import { Trans } from "@lingui/macro"
import { useBilling } from "../../../../Contexts/BillingContext"

const useStyles = makeStyles(({ constants }: ITheme) =>
createStyles({
root: {
marginBottom: constants.generalUnit * 16
},
container: {
margin: constants.generalUnit * 4
margin: `0 ${constants.generalUnit * 4}px`
}
})
)

const PlanView: React.FC = () => {
const classes = useStyles()
const [isAddCardModalOpen, setIsAddCardModalOpen ] = useState(false)
const { defaultCard } = useBilling()

return (
<div className={classes.root}>
<CurrentProduct />
<CurrentCard />
<div className={classes.container}>
<Button onClick={() => setIsAddCardModalOpen(true)}>
<Trans>Add Card</Trans>
{defaultCard
? <Trans>Update Card</Trans>
: <Trans>Add Card</Trans>
}
</Button>
</div>
<AddCardModal
89 changes: 51 additions & 38 deletions packages/files-ui/src/Contexts/BillingContext.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
import * as React from "react"
// import { useFilesApi } from "./FilesApiContext"
import { useFilesApi } from "./FilesApiContext"
import axios, { AxiosResponse } from "axios"
import { useEffect, useState } from "react"
import { Card } from "@chainsafe/files-api-client"
import { useCallback } from "react"
import qs from "qs"

type BillingContextProps = {
children: React.ReactNode | React.ReactNode[]
}

interface IBillingContext {
defaultCard: Card | undefined
addCard(cardToken: string): Promise<void>
getCardTokenFromStripe(
card: ICard,
stripePk: string,
): Promise<AxiosResponse<IStripeResponse>>
cardInputs: {
cardNumber: string
cardExpiry: string
cardCvc: string
}
): Promise<AxiosResponse<{ id: string}>>
}

const BillingContext = React.createContext<IBillingContext | undefined>(
@@ -20,51 +28,56 @@ const BillingContext = React.createContext<IBillingContext | undefined>(

const STRIPE_API = "https://api.stripe.com/v1/tokens"

interface ICard {
cardNumber: string
cardExpiry: string
cardCvc: string
}

interface IStripeResponse {
id: string
}

const BillingProvider = ({ children }: BillingContextProps) => {
// const { filesApiClient } = useFilesApi()
const { filesApiClient, isLoggedIn } = useFilesApi()
const [defaultCard, setDefaultCard] = useState<Card | undefined>(undefined)

const addCard = async (
//cardToken: string
) => {
try {
// await filesApiClient.addCard({ token: cardToken })
return Promise.resolve()
} catch (error) {
return Promise.reject("There was an error adding card.")
}
}

const getCardTokenFromStripe = (
data: ICard,
stripePk: string
): Promise<AxiosResponse<IStripeResponse>> => {
const cardExpiryMonth = data.cardExpiry.split("/")[0]?.trim()
const cardExpiryYear = data.cardExpiry.split("/")[1]?.trim()
const refreshDefaultCard = useCallback(() => {
filesApiClient.getDefaultCard().then((card) => {
setDefaultCard(card)
}).catch((err) => {
console.error(err)
setDefaultCard(undefined)
})
}, [filesApiClient])

// eslint-disable-next-line max-len
const dataString = `card[number]=${data.cardNumber}&card[exp_month]=${cardExpiryMonth}&card[exp_year]=${cardExpiryYear}&card[cvc]=${data.cardCvc}`
useEffect(() => {
if (isLoggedIn) {
refreshDefaultCard()
}
}, [refreshDefaultCard, isLoggedIn])

return axios.post<IStripeResponse>(STRIPE_API, dataString, {
const getCardTokenFromStripe = useCallback((
cardInputs: {
cardNumber: string
cardExpiry: string
cardCvc: string
}
): Promise<AxiosResponse<{ id: string}>> => {
return axios({
method: "post",
url: STRIPE_API,
headers: {
Authorization: `Bearer ${stripePk}`,
"Authorization": `Bearer ${process.env.REACT_APP_STRIPE_PK}`,
"Content-Type": "application/x-www-form-urlencoded"
}
},
data : qs.stringify({
"card[number]": cardInputs.cardNumber,
"card[exp_month]": cardInputs.cardExpiry.split("/")[0].trim(),
"card[exp_year]": cardInputs.cardExpiry.split("/")[1].trim(),
"card[cvc]": cardInputs.cardCvc
})
})
}
}, [])

const addCard = useCallback((cardToken: string) => {
return filesApiClient.addCard({ token: cardToken }).then(refreshDefaultCard)
}, [filesApiClient, refreshDefaultCard])

return (
<BillingContext.Provider
value={{
defaultCard,
addCard,
getCardTokenFromStripe
}}
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
@@ -1667,10 +1667,10 @@
resolved "https://registry.yarnpkg.com/@chainsafe/files-api-client/-/files-api-client-1.17.9.tgz#8c608db1a07dc8bbdb10a1cd21fad00d091deed3"
integrity sha512-5XUs/KlNfAIVbqKCxtVEbUyWneTn0/kp70blbyCqVwaX1X3e7D2aXX0gy7zR5kMM7yjGsZE7vwA/0oVCaemfig==

"@chainsafe/files-api-client@1.18.0":
version "1.18.0"
resolved "https://registry.yarnpkg.com/@chainsafe/files-api-client/-/files-api-client-1.18.0.tgz#7df265c411126f6ee8b51a87d984e20463a715ee"
integrity sha512-97QHs2EOnhhioDlJk9xR9Q1Vv+dlXBA9oiVD4bLTEPW3uOmJjEi52lfaSyOSt1b9wINNFf0nx9wZb1FCWk8AgA==
"@chainsafe/files-api-client@1.18.1":
version "1.18.1"
resolved "https://registry.yarnpkg.com/@chainsafe/files-api-client/-/files-api-client-1.18.1.tgz#bcfdff988743d4684079dca10c4d86f86f93b822"
integrity sha512-FqNZdiBMo5GoHeQgya5u8AdjLhPqBR8iKYxrhp0oWxbb2FJdrExZTmLQT5y2e7vlSvdiY5aJT//4VioK138xmQ==

"@chainsafe/web3-context@1.1.4":
version "1.1.4"