Lightning Payments

This commit is contained in:
KoalaSat 2023-01-03 17:26:49 +01:00
parent 47b36d0424
commit 56a0322e27
No known key found for this signature in database
GPG Key ID: 2F7F61C6146AB157
12 changed files with 591 additions and 67 deletions

Binary file not shown.

View File

@ -84,15 +84,7 @@ public class Event {
JSONArray eTags = filterTags("e");
String replyEventId = null;
try {
for (int i = 0; i < eTags.length(); ++i) {
JSONArray tag = eTags.getJSONArray(i);
if (tag.length() > 3 && tag.getString(3).equals("reply")) {
replyEventId = tag.getString(1);
}
}
if (replyEventId == null && eTags.length() > 0) {
replyEventId = eTags.getJSONArray(eTags.length() - 1).getString(1);
}
replyEventId = eTags.getJSONArray(eTags.length() - 1).getString(1);
} catch (JSONException e) {
e.printStackTrace();
}

View File

@ -0,0 +1,190 @@
import React, { useEffect, useState } from 'react'
import { requestInvoice } from 'lnurl-pay'
import { Button, Card, Input, Layout, Modal, Text } from '@ui-kitten/components'
import { Event } from '../../lib/nostr/Events'
import { User } from '../../Functions/DatabaseFunctions/Users'
import { Clipboard, Linking, StyleSheet } from 'react-native'
import { useTranslation } from 'react-i18next'
import { showMessage } from 'react-native-flash-message'
interface TextContentProps {
open: boolean
setOpen: (open: boolean) => void
event?: Event
user?: User
}
export const LnPayment: React.FC<TextContentProps> = ({ open, setOpen, event, user }) => {
const { t } = useTranslation('common')
const [monto, setMonto] = useState<string>('')
const [comment, setComment] = useState<string>('')
const [loading, setLoading] = useState<boolean>(false)
useEffect(() => {
setMonto('')
setComment('')
}, [open])
useEffect(() => {
if (event?.id) {
setComment(`Tip for Nostr event ${event?.id}`)
}
}, [event, user])
const styles = StyleSheet.create({
modal: {
paddingLeft: 32,
paddingRight: 32,
width: '100%',
},
backdrop: {
backgroundColor: 'rgba(0, 0, 0, 0.5)',
},
input: {
marginTop: 31,
},
modalContainer: {
marginBottom: 15,
},
buttonsContainer: {
flexDirection: 'row',
marginTop: 31,
},
buttonLeft: {
flex: 3,
paddingRight: 16,
},
buttonRight: {
flex: 3,
paddingLeft: 16,
},
buttonMonto: {
flex: 2,
},
buttonMontoMiddle: {
flex: 2,
marginLeft: 10,
marginRight: 10,
},
satoshi: {
fontFamily: 'Satoshi-Symbol',
},
})
const copyInvoice: (invoice: string) => void = (invoice) => {
Clipboard.setString(invoice)
showMessage({
message: t('alerts.invoiceCopied'),
type: 'success',
})
}
const openApp: (invoice: string) => void = (invoice) => {
Linking.openURL(`lightning:${invoice}`)
}
const generateInvoice: (copy: boolean) => void = async (copy) => {
if (user?.lnurl && monto !== '') {
setLoading(true)
requestInvoice({
lnUrlOrAddress: user.lnurl,
tokens: parseInt(monto, 10),
comment,
})
.then((action) => {
if (action.hasValidAmount && action.invoice) {
copy ? copyInvoice(action.invoice) : openApp(action.invoice)
} else {
showMessage({
message: t('alerts.invoiceError'),
type: 'danger',
})
}
setLoading(false)
setOpen(false)
setMonto('')
setComment('')
})
.catch(() => setLoading(false))
}
}
return user?.lnurl ? (
<Modal
style={styles.modal}
visible={open}
backdropStyle={styles.backdrop}
onBackdropPress={() => setOpen(false)}
>
<Card disabled={true}>
<Layout style={styles.modalContainer}>
<Layout style={styles.buttonsContainer}>
<Button style={styles.buttonMonto} onPress={() => setMonto('1000')}>
<>
<Text style={styles.satoshi}>s</Text>
<Text> 1k</Text>
</>
</Button>
<Button style={styles.buttonMontoMiddle} onPress={() => setMonto('5000')}>
<>
<Text style={styles.satoshi}>s</Text>
<Text> 5k</Text>
</>
</Button>
<Button style={styles.buttonMonto} onPress={() => setMonto('10000')}>
<>
<Text style={styles.satoshi}>s</Text>
<Text> 10k</Text>
</>
</Button>
</Layout>
<Layout style={styles.input}>
<Input
value={monto}
onChangeText={(text) => {
if (/^\d+$/.test(text)) {
setMonto(text)
}
}}
size='large'
placeholder={t('lnPayment.monto')}
accessoryLeft={() => <Text style={styles.satoshi}>s</Text>}
/>
</Layout>
<Layout style={styles.input}>
<Input
value={comment}
onChangeText={setComment}
placeholder={t('lnPayment.comment')}
size='large'
/>
</Layout>
<Layout style={styles.buttonsContainer}>
<Layout style={styles.buttonLeft}>
<Button
onPress={() => generateInvoice(true)}
appearance='ghost'
disabled={loading || monto === ''}
>
{t('lnPayment.copy')}
</Button>
</Layout>
<Layout style={styles.buttonRight}>
<Button
onPress={() => generateInvoice(false)}
status='warning'
disabled={loading || monto === ''}
>
{t('lnPayment.openApp')}
</Button>
</Layout>
</Layout>
</Layout>
</Card>
</Modal>
) : (
<></>
)
}
export default LnPayment

View File

@ -104,7 +104,7 @@ export const NoteCard: React.FC<NoteCardProps> = ({
return (
<>
<Layout style={styles.profile} level='2'>
<TouchableOpacity onPress={onPressUser}>
<TouchableOpacity onPress={() => onPressUser(note.pubkey)}>
<Avatar
src={note.picture}
name={note.name && note.name !== '' ? note.name : note.pubkey}
@ -114,7 +114,7 @@ export const NoteCard: React.FC<NoteCardProps> = ({
</Layout>
<Layout style={styles.contentNoAction} level='2'>
<Layout style={styles.titleText}>
<TouchableOpacity onPress={onPressUser}>
<TouchableOpacity onPress={() => onPressUser(note.pubkey)}>
<Layout style={styles.pubkey}>
<Text appearance='hint'>{note.name ?? formatPubKey(note.pubkey)}</Text>
</Layout>
@ -231,8 +231,8 @@ export const NoteCard: React.FC<NoteCardProps> = ({
)
}
const onPressUser: () => void = () => {
goToPage(`profile#${note.pubkey}`)
const onPressUser: (pubKey: string) => void = (pubKey) => {
goToPage(`profile#${pubKey}`)
}
const styles = StyleSheet.create({

View File

@ -25,6 +25,12 @@
"description": "Store it on a safe place to recover your user"
}
},
"lnPayment": {
"monto": "Amount",
"comment": "Comment (optional)",
"copy": "Copy",
"openApp": "Open App"
},
"profilePage": {
"search": "Search",
"send": "Send",
@ -92,7 +98,9 @@
"alerts": {
"relayAdded": "Relay added",
"relayRemoved": "Relay removed",
"profilePublished": "Profile published"
"profilePublished": "Profile published",
"invoiceCopied": "Invoice copied",
"invoiceError": "There was an error while trying to obtain the invoice"
},
"note": {
"contentWarning": "Sensitive content. Tap to show."

View File

@ -31,6 +31,12 @@
"profileNotCreated": "Perfil aún no publicado",
"createProfile": "Ir a configuración"
},
"lnPayment": {
"monto": "Cantidad",
"comment": "Comentario (opcional)",
"copy": "Copiar",
"openApp": "Abrir App"
},
"relaysPage": {
"title": "Relays",
"addRelay": {
@ -92,7 +98,9 @@
"alerts": {
"relayAdded": "Relay agregado",
"relayRemoved": "Relay eliminado",
"profilePublished": "Perfil publicado"
"profilePublished": "Perfil publicado",
"invoiceCopied": "Factura copiada",
"invoiceError": "Se ha producido un error al tratar de obtener la factura"
},
"note": {
"contentWarning": "Contenido sensible. Toca para mostrar."

View File

@ -31,6 +31,12 @@
"profileNotCreated": "Профиль еще не опубликован",
"createProfile": "Перейти в настройки"
},
"lnPayment": {
"monto": "Cantidad",
"comment": "Comentario (opcional)",
"copy": "Copiar",
"openApp": "Abrir App"
},
"relaysPage": {
"title": "Все реле",
"addRelay": {
@ -92,7 +98,9 @@
"alerts": {
"relayAdded": "Реле добавлено",
"relayRemoved": "Реле удалено",
"profilePublished": "Профиль опубликован"
"profilePublished": "Профиль опубликован",
"invoiceCopied": "Factura copiada",
"invoiceError": "Se ha producido un error al tratar de obtener la factura"
},
"note": {
"contentWarning": "Деликатный контент. Нажмите, чтобы увидеть"

View File

@ -35,9 +35,15 @@ export const Loader: React.FC = () => {
getUsers(database, { contacts: true }).then((results) => {
setContactsCount(results.length)
if (publicKey && results && results.length > 0) {
const authors = [...results.map((user: User) => user.id), publicKey]
relayPool?.subscribe('main-channel', {
kinds: [EventKind.meta, EventKind.textNote, EventKind.recommendServer],
authors: [...results.map((user: User) => user.id), publicKey],
kinds: [EventKind.meta],
authors,
})
relayPool?.subscribe('main-channel', {
kinds: [EventKind.textNote],
authors,
limit: 50,
})
}
})

View File

@ -10,6 +10,8 @@ import { Clipboard, ScrollView, StyleSheet, Text, TouchableOpacity } from 'react
import Loading from '../../Components/Loading'
import { getDirectReplies, getReplyEventId } from '../../Functions/RelayFunctions/Events'
import { RelayFilters } from '../../lib/nostr/RelayPool/intex'
import LnPayment from '../../Components/LnPayment'
import { getUser, User } from '../../Functions/DatabaseFunctions/Users'
export const NotePage: React.FC = () => {
const { page, goBack, goToPage, database, getActualPage } = useContext(AppContext)
@ -17,6 +19,8 @@ export const NotePage: React.FC = () => {
const [note, setNote] = useState<Note>()
const [replies, setReplies] = useState<Note[]>()
const [eventId, setEventId] = useState(getActualPage().split('#')[1])
const [openPayment, setOpenPayment] = useState<boolean>(false)
const [user, setUser] = useState<User>()
const theme = useTheme()
useEffect(() => {
@ -67,6 +71,11 @@ export const NotePage: React.FC = () => {
} else {
setReplies([])
}
getUser(event.pubkey, database).then((user) => {
if (user) {
setUser(user)
}
})
}
}
@ -93,17 +102,26 @@ export const NotePage: React.FC = () => {
)
}
const renderNoteActions = (): JSX.Element => {
return note && getReplyEventId(note) ? (
<Button
accessoryRight={<Icon name='arrow-up' size={16} color={theme['text-basic-color']} />}
onPress={onPressGoParent}
appearance='ghost'
/>
) : (
<></>
)
}
const renderNoteActions = (
<>
{user?.lnurl ? (
<Button appearance='ghost' onPress={() => setOpenPayment(true)} status='warning'>
<Icon name='bolt' size={16} color={theme['text-basic-color']} solid />
</Button>
) : (
<></>
)}
{note && getReplyEventId(note) ? (
<Button
accessoryRight={<Icon name='arrow-up' size={16} color={theme['text-basic-color']} />}
onPress={onPressGoParent}
appearance='ghost'
/>
) : (
<></>
)}
</>
)
const onPressNote: (note: Note) => void = (note) => {
if (note.kind !== EventKind.recommendServer) {
@ -159,7 +177,7 @@ export const NotePage: React.FC = () => {
alignment='center'
title={
<TouchableOpacity onPress={onPressTitle}>
<Text>{`${eventId.slice(0, 12)}...${eventId.slice(-12)}`}</Text>
<Text>{`${eventId.slice(0, 8)}...${eventId.slice(-8)}`}</Text>
</TouchableOpacity>
}
accessoryLeft={renderBackAction}
@ -173,6 +191,7 @@ export const NotePage: React.FC = () => {
) : (
<Loading style={styles.loading} />
)}
<LnPayment event={note} open={openPayment} setOpen={setOpenPayment} user={user} />
</Layout>
{privateKey && (
<TouchableOpacity

View File

@ -24,6 +24,7 @@ import Avatar from '../../Components/Avatar'
import { RelayFilters } from '../../lib/nostr/RelayPool/intex'
import { t } from 'i18next'
import TextContent from '../../Components/TextContent'
import LnPayment from '../../Components/LnPayment'
export const ProfilePage: React.FC = () => {
const { database, page, goToPage, goBack } = useContext(AppContext)
@ -35,6 +36,7 @@ export const ProfilePage: React.FC = () => {
const [pageSize, setPageSize] = useState<number>(initialPageSize)
const [isContact, setIsContact] = useState<boolean>()
const [refreshing, setRefreshing] = useState(false)
const [openPayment, setOpenPayment] = useState<boolean>(false)
const breadcrump = page.split('%')
const userId = breadcrump[breadcrump.length - 1].split('#')[1] ?? publicKey
const username = user?.name === '' ? formatPubKey(user.id) : user?.name
@ -136,37 +138,49 @@ export const ProfilePage: React.FC = () => {
}
const renderOptions: () => JSX.Element = () => {
const payment = user?.lnurl ? (
<Button appearance='ghost' onPress={() => setOpenPayment(true)} status='warning'>
<Icon name='bolt' size={16} color={theme['text-basic-color']} solid />
</Button>
) : (
<></>
)
if (publicKey === userId) {
return (
<Button
accessoryRight={<Icon name='cog' size={16} color={theme['text-basic-color']} solid />}
onPress={() => goToPage('config')}
appearance='ghost'
/>
<>
{payment}
<Button
accessoryRight={<Icon name='cog' size={16} color={theme['text-basic-color']} solid />}
onPress={() => goToPage('config')}
appearance='ghost'
/>
</>
)
} else {
if (user) {
if (isContact) {
return (
<Button
accessoryRight={
<Icon name='user-minus' size={16} color={theme['color-danger-500']} solid />
}
onPress={removeAuthor}
appearance='ghost'
/>
)
} else {
return (
<Button
accessoryRight={
<Icon name='user-plus' size={16} color={theme['color-success-500']} solid />
}
onPress={addAuthor}
appearance='ghost'
/>
)
}
const contact = isContact ? (
<Button
accessoryRight={
<Icon name='user-minus' size={16} color={theme['color-danger-500']} solid />
}
onPress={removeAuthor}
appearance='ghost'
/>
) : (
<Button
accessoryRight={
<Icon name='user-plus' size={16} color={theme['color-success-500']} solid />
}
onPress={addAuthor}
appearance='ghost'
/>
)
return (
<>
{payment}
{contact}
</>
)
} else {
return <Spinner size='small' />
}
@ -343,6 +357,7 @@ export const ProfilePage: React.FC = () => {
) : (
<Loading />
)}
<LnPayment user={user} open={openPayment} setOpen={setOpenPayment} />
</Layout>
{privateKey && publicKey === userId && (
<TouchableOpacity

View File

@ -25,6 +25,7 @@
"cryptr": "^6.0.3",
"events": "^3.3.0",
"i18next": "^22.0.6",
"lnurl-pay": "^2.1.0",
"lodash.debounce": "^4.0.8",
"moment": "^2.29.4",
"nostr-tools": "^0.24.1",

299
yarn.lock
View File

@ -10,6 +10,38 @@
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
"@aws-crypto/sha256-js@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99"
integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ==
dependencies:
"@aws-crypto/util" "^2.0.2"
"@aws-sdk/types" "^3.110.0"
tslib "^1.11.1"
"@aws-crypto/util@^2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0"
integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==
dependencies:
"@aws-sdk/types" "^3.110.0"
"@aws-sdk/util-utf8-browser" "^3.0.0"
tslib "^1.11.1"
"@aws-sdk/types@^3.110.0":
version "3.226.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.226.0.tgz#3dba2ba223fbb8ac1ebc84de0e036ce69a81d469"
integrity sha512-MmmNHrWeO4man7wpOwrAhXlevqtOV9ZLcH4RhnG5LmRce0RFOApx24HoKENfFCcOyCm5LQBlsXCqi0dZWDWU0A==
dependencies:
tslib "^2.3.1"
"@aws-sdk/util-utf8-browser@^3.0.0":
version "3.188.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225"
integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q==
dependencies:
tslib "^2.3.1"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
@ -1661,6 +1693,13 @@
dependencies:
"@babel/types" "^7.3.0"
"@types/bn.js@^4.11.3":
version "4.11.6"
resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c"
integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==
dependencies:
"@types/node" "*"
"@types/create-hash@^1.2.2":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@types/create-hash/-/create-hash-1.2.2.tgz#e87247083df8478f6b83655592bde0d709028235"
@ -2089,6 +2128,11 @@ acorn@^8.8.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
aes-js@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a"
integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==
ajv@^6.10.0, ajv@^6.12.4:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
@ -2314,6 +2358,11 @@ async@^3.2.2:
resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@ -2324,6 +2373,15 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axios@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1"
integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
babel-core@^7.0.0-bridge.0:
version "7.0.0-bridge.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
@ -2456,7 +2514,14 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base64-js@*, base64-js@^1.1.2, base64-js@^1.3.1:
base-x@^3.0.2:
version "3.0.9"
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"
integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
dependencies:
safe-buffer "^5.0.1"
base64-js@*, base64-js@^1.1.2, base64-js@^1.3.1, base64-js@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@ -2474,6 +2539,16 @@ base@^0.11.1:
mixin-deep "^1.2.0"
pascalcase "^0.1.1"
bech32@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
bech32@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355"
integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
bigi@^1.1.0, bigi@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/bigi/-/bigi-1.4.2.tgz#9c665a95f88b8b08fc05cfd731f561859d725825"
@ -2490,6 +2565,25 @@ bip-schnorr@^0.6.6:
randombytes "^2.1.0"
safe-buffer "^5.2.1"
bip174@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/bip174/-/bip174-2.1.0.tgz#cd3402581feaa5116f0f00a0eaee87a5843a2d30"
integrity sha512-lkc0XyiX9E9KiVAS1ZiOqK1xfiwvf4FXDDdkDq5crcDzOq+xGytY+14qCsqz7kCiy8rpN1CRNfacRhf9G3JNSA==
bitcoinjs-lib@^6.0.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.0.tgz#2e3123d63eab5e8e752fd7e2f237314f35ed738f"
integrity sha512-eupi1FBTJmPuAZdChnzTXLv2HBqFW2AICpzXZQLniP0V9FWWeeUQSMKES6sP8isy/xO0ijDexbgkdEyFVrsuJw==
dependencies:
bech32 "^2.0.0"
bip174 "^2.1.0"
bs58check "^2.1.2"
create-hash "^1.1.0"
ripemd160 "^2.0.2"
typeforce "^1.11.3"
varuint-bitcoin "^1.1.2"
wif "^2.0.1"
bl@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
@ -2499,7 +2593,7 @@ bl@^4.1.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
@ -2509,6 +2603,20 @@ bn.js@^5.0.0, bn.js@^5.1.1:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
bolt11@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/bolt11/-/bolt11-1.4.0.tgz#d8ff0f6b8f89aaa07ed8c02e330a344b8c158263"
integrity sha512-TeGIOpFNrvNA1XGvwBr+lYmzKfoJeyMRt7nsGmIci+5gbmSz7s46jwKLNYXH3IoxV7fjmYUEUu2NM19n9w0msg==
dependencies:
"@types/bn.js" "^4.11.3"
bech32 "^1.1.2"
bitcoinjs-lib "^6.0.0"
bn.js "^4.11.8"
create-hash "^1.2.0"
lodash "^4.17.11"
safe-buffer "^5.1.1"
secp256k1 "^4.0.2"
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@ -2604,6 +2712,13 @@ browserify-sign@^4.0.0:
readable-stream "^3.6.0"
safe-buffer "^5.2.0"
browserify-zlib@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
dependencies:
pako "~1.0.5"
browserslist@^4.21.3, browserslist@^4.21.4:
version "4.21.4"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
@ -2614,6 +2729,22 @@ browserslist@^4.21.3, browserslist@^4.21.4:
node-releases "^2.0.6"
update-browserslist-db "^1.0.9"
bs58@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==
dependencies:
base-x "^3.0.2"
bs58check@<3.0.0, bs58check@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc"
integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==
dependencies:
bs58 "^4.0.0"
create-hash "^1.1.0"
safe-buffer "^5.1.2"
bser@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@ -2654,6 +2785,11 @@ bufferutil@^4.0.1:
dependencies:
node-gyp-build "^4.3.0"
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
builtins@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9"
@ -2882,6 +3018,13 @@ colorette@^1.0.7:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
command-exists@^1.2.8:
version "1.2.9"
resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"
@ -3194,6 +3337,11 @@ define-property@^2.0.2:
is-descriptor "^1.0.2"
isobject "^3.0.1"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
denodeify@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631"
@ -3310,7 +3458,7 @@ electron-to-chromium@^1.4.251:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
elliptic@^6.5.3:
elliptic@^6.5.3, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@ -4114,6 +4262,11 @@ flow-parser@^0.121.0:
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f"
integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==
follow-redirects@^1.15.0:
version "1.15.2"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@ -4126,6 +4279,15 @@ for-in@^1.0.2:
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
form-data@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
@ -4480,6 +4642,11 @@ http-errors@2.0.0:
statuses "2.0.1"
toidentifier "1.0.1"
https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
human-signals@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
@ -4544,7 +4711,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@ -4833,6 +5000,11 @@ is-unicode-supported@^0.1.0:
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
is-url@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
is-weakref@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
@ -5569,6 +5741,27 @@ lines-and-columns@^1.1.6:
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
lnurl-pay@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/lnurl-pay/-/lnurl-pay-2.1.0.tgz#c3843aed328e4f6f6eb0ee413a830f8386d39523"
integrity sha512-Dd6ZGDDbyolyCWHaeaV9E2eCxUXahYjSYNZa7TM/+VAYRCmXVibGU2i6yjqtDbOtvlKF6X74dHtH36xEO8x2nw==
dependencies:
"@aws-crypto/sha256-js" "^2.0.2"
aes-js "^3.1.2"
assert "^2.0.0"
axios "^1.2.1"
base64-js "^1.5.1"
bech32 "^2.0.0"
bolt11 "^1.4.0"
browserify-zlib "^0.2.0"
buffer "^6.0.3"
https-browserify "^1.0.0"
is-url "^1.2.4"
stream-browserify "^3.0.0"
stream-http "^3.2.0"
tslib "^2.4.1"
url "^0.11.0"
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@ -5611,7 +5804,7 @@ lodash.throttle@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
lodash@^4.17.21:
lodash@^4.17.11, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@ -6093,7 +6286,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.27, mime-types@~2.1.34:
mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@ -6224,6 +6417,11 @@ nocache@^3.0.1:
resolved "https://registry.yarnpkg.com/nocache/-/nocache-3.0.4.tgz#5b37a56ec6e09fc7d401dceaed2eab40c8bfdf79"
integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==
node-addon-api@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
node-dir@^0.1.17:
version "0.1.17"
resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
@ -6238,7 +6436,7 @@ node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.6.0:
dependencies:
whatwg-url "^5.0.0"
node-gyp-build@^4.3.0:
node-gyp-build@^4.2.0, node-gyp-build@^4.3.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40"
integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==
@ -6561,6 +6759,11 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
pako@~1.0.5:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@ -6771,6 +6974,11 @@ prop-types@^15.5.10, prop-types@^15.7.2, prop-types@^15.7.x, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
public-encrypt@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
@ -6791,11 +6999,21 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
querystring@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@ -7027,7 +7245,7 @@ react@18.1.0:
dependencies:
loose-envify "^1.1.0"
readable-stream@^3.4.0, readable-stream@^3.6.0:
readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@ -7261,7 +7479,7 @@ rimraf@~2.6.2:
dependencies:
glob "^7.1.3"
ripemd160@^2.0.0, ripemd160@^2.0.1:
ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
@ -7314,6 +7532,15 @@ scheduler@^0.22.0:
dependencies:
loose-envify "^1.1.0"
secp256k1@^4.0.2:
version "4.0.3"
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303"
integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==
dependencies:
elliptic "^6.5.4"
node-addon-api "^2.0.0"
node-gyp-build "^4.2.0"
semver@^5.5.0, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@ -7603,6 +7830,24 @@ statuses@~1.5.0:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
stream-browserify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f"
integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==
dependencies:
inherits "~2.0.4"
readable-stream "^3.5.0"
stream-http@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5"
integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==
dependencies:
builtin-status-codes "^3.0.0"
inherits "^2.0.4"
readable-stream "^3.6.0"
xtend "^4.0.2"
stream@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/stream/-/stream-0.0.2.tgz#7f5363f057f6592c5595f00bc80a27f5cec1f0ef"
@ -7910,7 +8155,7 @@ tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
tslib@^1.8.1:
tslib@^1.11.1, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@ -7920,6 +8165,11 @@ tslib@^2.0.1, tslib@^2.4.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
tslib@^2.3.1, tslib@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
tstl@^2.0.7:
version "2.5.13"
resolved "https://registry.yarnpkg.com/tstl/-/tstl-2.5.13.tgz#a5a5d27b79a12767e46a08525b3e045c5cdb1180"
@ -7976,6 +8226,11 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
typeforce@^1.11.3:
version "1.18.0"
resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc"
integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==
typescript@^4.9.3:
version "4.9.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db"
@ -8070,6 +8325,14 @@ urix@^0.1.0:
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==
dependencies:
punycode "1.3.2"
querystring "0.2.0"
use-sync-external-store@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
@ -8122,6 +8385,13 @@ v8-to-istanbul@^9.0.1:
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
varuint-bitcoin@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92"
integrity sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==
dependencies:
safe-buffer "^5.1.1"
vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@ -8231,6 +8501,13 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
wif@^2.0.1:
version "2.0.6"
resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704"
integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==
dependencies:
bs58check "<3.0.0"
word-wrap@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
@ -8288,7 +8565,7 @@ ws@^7, ws@^7.5.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
xtend@~4.0.1:
xtend@^4.0.2, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==