diff --git a/packages/dapp/.project.json b/packages/dapp/.project.json index 7250fe3f..c4d4d53c 100644 --- a/packages/dapp/.project.json +++ b/packages/dapp/.project.json @@ -1,5 +1,5 @@ { - "fullNodeVersion": "v3.5.0", + "fullNodeVersion": "v3.6.2", "compilerOptionsUsed": { "ignoreUnusedConstantsWarnings": false, "ignoreUnusedVariablesWarnings": false, @@ -17,7 +17,7 @@ "codeHashDebug": "" }, "IFungibleToken": { - "sourceFile": "../../../node_modules/@alephium/web3/std/fungible_token_interface.ral", + "sourceFile": "../../../../../../.npm/_npx/f1b120e1b513c04c/node_modules/@alephium/web3/std/fungible_token_interface.ral", "sourceCodeHash": "62910bf11e1eeb6cb2fd468626ff606a9b06306b2b81590c3b10f6deb5966bde", "bytecodeDebugPatch": "", "codeHashDebug": "" diff --git a/packages/dapp/artifacts/Destroy.ral.json b/packages/dapp/artifacts/Destroy.ral.json index ba2bcc3d..7445b2c5 100644 --- a/packages/dapp/artifacts/Destroy.ral.json +++ b/packages/dapp/artifacts/Destroy.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.5.0", + "version": "v3.6.2", "name": "Destroy", "bytecodeTemplate": "01010300000005{1}0d0c{0}0105", "fieldsSig": { diff --git a/packages/dapp/artifacts/ShinyToken.ral.json b/packages/dapp/artifacts/ShinyToken.ral.json index 6f8f1da7..d50de9c2 100644 --- a/packages/dapp/artifacts/ShinyToken.ral.json +++ b/packages/dapp/artifacts/ShinyToken.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.5.0", + "version": "v3.6.2", "name": "ShinyToken", "bytecode": "050609121b40244041404f010000000102ce0002010000000102ce0102010000000102ce0202010000000102ce0302010202020008d36ee15a7b1600b11601ab160013c3038d7ea4c68000a8010201010003d320f98f621600b0", "codeHash": "9bdc139154d4e611dd391a5b262cc081d2519b9a3ccc95df943a98a9e3c67661", diff --git a/packages/dapp/artifacts/Transfer.ral.json b/packages/dapp/artifacts/Transfer.ral.json index e036027b..d4ec9471 100644 --- a/packages/dapp/artifacts/Transfer.ral.json +++ b/packages/dapp/artifacts/Transfer.ral.json @@ -1,5 +1,5 @@ { - "version": "v3.5.0", + "version": "v3.6.2", "name": "Transfer", "bytecodeTemplate": "01010300000006{1}{2}0e0c{0}0104", "fieldsSig": { diff --git a/packages/dapp/artifacts/ts/ShinyToken.ts b/packages/dapp/artifacts/ts/ShinyToken.ts index 76d218b9..c174e9b0 100644 --- a/packages/dapp/artifacts/ts/ShinyToken.ts +++ b/packages/dapp/artifacts/ts/ShinyToken.ts @@ -4,34 +4,34 @@ import { Address, - CallContractParams, - CallContractResult, Contract, - ContractEvent, - ContractFactory, - ContractInstance, ContractState, + TestContractResult, + HexString, + ContractFactory, EventSubscribeOptions, EventSubscription, - HexString, - SignExecuteContractMethodParams, - SignExecuteScriptTxResult, + CallContractParams, + CallContractResult, TestContractParams, - TestContractParamsWithoutMaps, - TestContractResult, - TestContractResultWithoutMaps, - addStdIdToFields, + ContractEvent, + subscribeContractEvent, + subscribeContractEvents, + testMethod, callMethod, - encodeContractFields, + multicallMethods, fetchContractState, + Asset, + ContractInstance, getContractEventsCurrentCount, - multicallMethods, + TestContractParamsWithoutMaps, + TestContractResultWithoutMaps, + SignExecuteContractMethodParams, + SignExecuteScriptTxResult, signExecuteMethod, - subscribeContractEvent, - subscribeContractEvents, - testMethod, + addStdIdToFields, + encodeContractFields, } from "@alephium/web3"; - import { default as ShinyTokenContractJson } from "../ShinyToken.ral.json"; import { getContractByCodeHash } from "./contracts"; @@ -84,10 +84,9 @@ export namespace ShinyTokenTypes { ? CallMethodTable[MaybeName]["result"] : undefined; }; - export type MulticallReturnType = - Callss["length"] extends 1 - ? MultiCallResults - : { [index in keyof Callss]: MultiCallResults }; + export type MulticallReturnType = { + [index in keyof Callss]: MultiCallResults; + }; export interface SignExecuteMethodTable { getSymbol: { @@ -187,6 +186,14 @@ class Factory extends ContractFactory< return testMethod(this, "destroy", params, getContractByCodeHash); }, }; + + stateForTest( + initFields: ShinyTokenTypes.Fields, + asset?: Asset, + address?: string + ) { + return this.stateForTest_(initFields, asset, address, undefined); + } } // Use this object to test and deploy the contract diff --git a/packages/dapp/artifacts/ts/contracts.ts b/packages/dapp/artifacts/ts/contracts.ts index 8caa68e5..443410f0 100644 --- a/packages/dapp/artifacts/ts/contracts.ts +++ b/packages/dapp/artifacts/ts/contracts.ts @@ -3,7 +3,6 @@ /* eslint-disable */ import { Contract, ContractFactory } from "@alephium/web3"; - import { ShinyToken } from "."; let contracts: ContractFactory[] | undefined = undefined; @@ -11,10 +10,7 @@ export function getContractByCodeHash(codeHash: string): Contract { if (contracts === undefined) { contracts = [ShinyToken]; } - const c = contracts.find( - (c) => - c.contract.codeHash === codeHash || c.contract.codeHashDebug === codeHash - ); + const c = contracts.find((c) => c.contract.hasCodeHash(codeHash)); if (c === undefined) { throw new Error("Unknown code with code hash: " + codeHash); } diff --git a/packages/dapp/artifacts/ts/scripts.ts b/packages/dapp/artifacts/ts/scripts.ts index 516c631d..992e302b 100644 --- a/packages/dapp/artifacts/ts/scripts.ts +++ b/packages/dapp/artifacts/ts/scripts.ts @@ -7,14 +7,13 @@ import { ExecutableScript, ExecuteScriptParams, ExecuteScriptResult, - HexString, Script, SignerProvider, + HexString, } from "@alephium/web3"; - +import { getContractByCodeHash } from "./contracts"; import { default as DestroyScriptJson } from "../Destroy.ral.json"; import { default as TransferScriptJson } from "../Transfer.ral.json"; -import { getContractByCodeHash } from "./contracts"; export const Destroy = new ExecutableScript<{ shinyToken: HexString; diff --git a/packages/dapp/package.json b/packages/dapp/package.json index 4374d666..9dd73bdf 100644 --- a/packages/dapp/package.json +++ b/packages/dapp/package.json @@ -10,15 +10,15 @@ "lint": "next lint" }, "dependencies": { - "@alephium/get-extension-wallet": "^1.5.0", - "@alephium/web3": "^1.5.0", + "@alephium/get-extension-wallet": "^1.7.3", + "@alephium/web3": "^1.7.3", "ethers": "^5.5.1", "next": "^13.0.0", "react": "^18.0.0", "react-dom": "^18.0.0" }, "devDependencies": { - "@alephium/cli": "^1.5.0", + "@alephium/cli": "^1.7.3", "@types/node": "18.11.18", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", diff --git a/packages/extension/locales/en-US/translation.json b/packages/extension/locales/en-US/translation.json index 42cb242c..efd8dfd7 100644 --- a/packages/extension/locales/en-US/translation.json +++ b/packages/extension/locales/en-US/translation.json @@ -189,6 +189,7 @@ "Network ID": "Network ID", "Name": "Name", "Node URL": "Node URL", + "Node API Key (Optional)": "Node API Key (Optional)", "Explorer URL": "Explorer URL", "Explorer API URL": "Explorer API URL", "Reject": "Reject", diff --git a/packages/extension/package.json b/packages/extension/package.json index 010d8bb2..3233f61b 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -4,12 +4,12 @@ "main": "index.js", "license": "MIT", "devDependencies": { - "@alephium/get-extension-wallet": "^1.5.0", + "@alephium/get-extension-wallet": "^1.7.3", "@alephium/ledger-app": "0.6.0", "@alephium/token-list": "0.0.19", - "@alephium/web3": "^1.5.0", - "@alephium/web3-test": "^1.5.0", - "@alephium/web3-wallet": "^1.5.0", + "@alephium/web3": "^1.7.3", + "@alephium/web3-test": "^1.7.3", + "@alephium/web3-wallet": "^1.7.3", "@ledgerhq/hw-transport-webusb": "6.29.0", "@ledgerhq/hw-transport-webhid": "6.29.0", "@playwright/test": "^1.23.0", diff --git a/packages/extension/src/background/networkStatus.ts b/packages/extension/src/background/networkStatus.ts index e823dc41..bf621a63 100644 --- a/packages/extension/src/background/networkStatus.ts +++ b/packages/extension/src/background/networkStatus.ts @@ -39,7 +39,7 @@ export const getNetworkStatuses = async ( } export const isNetworkHealthy = async (network: Network): Promise => { - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) const explorerProvider = new ExplorerProvider(network.explorerApiUrl) return swr(`${network.id}-network-status`, async () => { diff --git a/packages/extension/src/background/wallet.ts b/packages/extension/src/background/wallet.ts index 251f42f0..7c945f98 100644 --- a/packages/extension/src/background/wallet.ts +++ b/packages/extension/src/background/wallet.ts @@ -99,7 +99,7 @@ export class Wallet { async submitSignedTx(account: WalletAccount, unsignedTx: string, signature: string): Promise { const network = await this.getNetwork(account.networkId) - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) await nodeProvider.transactions.postTransactionsSubmit({ unsignedTx, signature }) return } @@ -127,7 +127,7 @@ export class Wallet { } const network = await this.getNetwork(account.networkId) - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) const privateKey = deriveHDWalletPrivateKey(session.secret, account.signer.keyType, account.signer.derivationIndex) return new PrivateKeyWallet({ privateKey, keyType: account.signer.keyType, nodeProvider }) } diff --git a/packages/extension/src/inpage/alephiumWindowObject.ts b/packages/extension/src/inpage/alephiumWindowObject.ts index f3d029d5..20a33fa1 100644 --- a/packages/extension/src/inpage/alephiumWindowObject.ts +++ b/packages/extension/src/inpage/alephiumWindowObject.ts @@ -130,7 +130,7 @@ export const alephiumWindowObject: AlephiumWindowObject = } this.#connectedAccount = account this.#connectedNetworkId = walletAccount.network.id - this.#nodeProvider = new NodeProvider(walletAccount.network.nodeUrl) + this.#nodeProvider = new NodeProvider(walletAccount.network.nodeUrl, walletAccount.network.nodeApiKey) if (walletAccount.network.explorerApiUrl) { this.#explorerProvider = new ExplorerProvider( walletAccount.network.explorerApiUrl, diff --git a/packages/extension/src/shared/network/defaults.ts b/packages/extension/src/shared/network/defaults.ts index 116c9e5a..c06bf7a5 100644 --- a/packages/extension/src/shared/network/defaults.ts +++ b/packages/extension/src/shared/network/defaults.ts @@ -14,15 +14,14 @@ export const defaultNetworks: Network[] = [ nodeUrl: 'https://node.mainnet.alephium.org', explorerApiUrl: 'https://backend.mainnet.alephium.org', explorerUrl: 'https://explorer.alephium.org', - name: 'Mainnet', - readonly: true + name: 'Mainnet' }, { id: 'testnet', nodeUrl: 'https://node.testnet.alephium.org', explorerApiUrl: 'https://backend.testnet.alephium.org', explorerUrl: 'https://testnet.alephium.org', - name: 'Testnet', + name: 'Testnet' }, DEVNET ] diff --git a/packages/extension/src/shared/network/schema.ts b/packages/extension/src/shared/network/schema.ts index 5d2f6f81..ae4edc0f 100644 --- a/packages/extension/src/shared/network/schema.ts +++ b/packages/extension/src/shared/network/schema.ts @@ -10,10 +10,11 @@ export const networkSchema: Schema = object() .required() .shape({ id: string().required().min(2).max(31), - name: string().required().min(2).max(128), + name: string().label("Network name").required().min(2).max(128), nodeUrl: string() .required() .matches(REGEX_URL_WITH_LOCAL, "${path} must be a valid URL"), + nodeApiKey: string().label("Node API Key").optional().min(32), explorerApiUrl: string() .required() .matches(REGEX_URL_WITH_LOCAL, "${path} must be a valid URL"), diff --git a/packages/extension/src/shared/network/type.ts b/packages/extension/src/shared/network/type.ts index 2e93c0c2..8935babe 100644 --- a/packages/extension/src/shared/network/type.ts +++ b/packages/extension/src/shared/network/type.ts @@ -4,6 +4,7 @@ export interface Network { nodeUrl: string explorerApiUrl: string explorerUrl?: string + nodeApiKey?: string readonly?: boolean } diff --git a/packages/extension/src/ui/features/accountNfts/alephium-nft.service.ts b/packages/extension/src/ui/features/accountNfts/alephium-nft.service.ts index b3267604..7561908f 100644 --- a/packages/extension/src/ui/features/accountNfts/alephium-nft.service.ts +++ b/packages/extension/src/ui/features/accountNfts/alephium-nft.service.ts @@ -24,21 +24,6 @@ export const fetchCollectionAndNfts = async ( } } - // TODO: Fix explorer backend for 000301 NFTs - if (nftMetadataz.length != nftIds.length) { - const nodeProvider = new NodeProvider(network.nodeUrl) - const otherNonFungibleTokenIds = nftIds.filter(id => nftMetadataz.findIndex((m) => m.id == id) == -1) - for (const tokenId of otherNonFungibleTokenIds) { - const nftMetadata = await fetchImmutable(`nft-metadata-${tokenId}`, () => nodeProvider.fetchNFTMetaData(tokenId)) - const collectionId = nftMetadata.collectionId - if (parentAndTokenIds[collectionId]) { - parentAndTokenIds[collectionId].push(tokenId) - } else { - parentAndTokenIds[collectionId] = [tokenId] - } - } - } - return parentAndTokenIds } @@ -48,7 +33,7 @@ export const fetchNFTCollection = async ( network: Network ): Promise => { try { - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) const collectionMetadata = await getCollectionMetadata(collectionId, nodeProvider) return { id: collectionId, @@ -63,7 +48,7 @@ export const fetchNFTCollection = async ( export async function getNFT(collectionId: string, nftId: string, network: Network): Promise { try { - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) const nftMetadata = await fetchImmutable(`nft-metadata-${nftId}`, () => nodeProvider.fetchNFTMetaData(nftId)) const metadataResponse = await fetch(nftMetadata.tokenUri) const metadata = await metadataResponse.json() diff --git a/packages/extension/src/ui/features/accountTokens/tokens.state.ts b/packages/extension/src/ui/features/accountTokens/tokens.state.ts index bea5502e..7b34a098 100644 --- a/packages/extension/src/ui/features/accountTokens/tokens.state.ts +++ b/packages/extension/src/ui/features/accountTokens/tokens.state.ts @@ -132,7 +132,7 @@ export const useNonFungibleTokensWithBalance = ( [getAccountIdentifier(selectedAccount), "accountNonFungibleTokens"], async () => { const network = await getNetwork(networkId) - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) const nonFungibleTokens: BaseTokenWithBalance[] = [] for (const token of potentialNonFungibleTokens) { @@ -248,7 +248,7 @@ export const useAllTokensWithBalance = ( const allTokens: BaseTokenWithBalance[] = [] const network = await getNetwork(networkId) - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) const tokenBalances = await getBalances(nodeProvider, account.address) for (const tokenId of tokenBalances.keys()) { @@ -323,7 +323,7 @@ async function getBalances(nodeProvider: NodeProvider, address: string): Promise } async function fetchFungibleTokenFromFullNode(network: Network, tokenId: string): Promise { - const nodeProvider = new NodeProvider(network.nodeUrl) + const nodeProvider = new NodeProvider(network.nodeUrl, network.nodeApiKey) try { const tokenType = await fetchImmutable(`token-type-${tokenId}`, () => nodeProvider.guessStdTokenType(tokenId)) if (tokenType !== 'fungible') { diff --git a/packages/extension/src/ui/features/settings/NetworkSettingsFormScreen.tsx b/packages/extension/src/ui/features/settings/NetworkSettingsFormScreen.tsx index 6b6cb91a..0f8da93c 100644 --- a/packages/extension/src/ui/features/settings/NetworkSettingsFormScreen.tsx +++ b/packages/extension/src/ui/features/settings/NetworkSettingsFormScreen.tsx @@ -5,9 +5,6 @@ import { useNavigate } from "react-router-dom" import styled from "styled-components" import { Network, addNetwork, networkSchema } from "../../../shared/network" -import { settingsStore } from "../../../shared/settings" -import { defaultBlockExplorers } from "../../../shared/settings/defaultBlockExplorers" -import { useKeyValueStorage } from "../../../shared/storage/hooks" import { useAppState } from "../../app.state" import { ControlledInputText } from "../../components/InputText" import { FormError, P } from "../../theme/Typography" @@ -38,24 +35,9 @@ export const NetworkSettingsFormScreen: FC = ( const { t } = useTranslation() const navigate = useNavigate() - const blockExplorerKey = useKeyValueStorage(settingsStore, "blockExplorerKey") - const settingsBlockExplorer = defaultBlockExplorers[blockExplorerKey] - const defaultNetwork = useMemo(() => { if (props.mode === "add") { - return { id: "", name: "", chainId: 0, explorerApiUrl: "", nodeUrl: "" } - } - /** display selected block explorer url from settings for readonly network */ - if ( - props.network.readonly && - (props.network.id === "mainnet-alpha" || - props.network.id === "goerli-alpha") - ) { - const blockExplorerUrl = settingsBlockExplorer.url[props.network.id] - return { - ...props.network, - blockExplorerUrl, - } + return { name: "", id: "", nodeUrl: "", explorerApiUrl: "", explorerUrl: "" } } return props.network // due to an or type we need to check different values depending on the mode @@ -102,7 +84,6 @@ export const NetworkSettingsFormScreen: FC = ( })} > -

{t("Here you can add your own custom network.")}

= ( placeholder={t("Network name")} name="name" type="text" - disabled={defaultNetwork.readonly} - /> - = ( placeholder={t("Node URL")} name="nodeUrl" type="url" - disabled={defaultNetwork.readonly} + /> + = ( placeholder={t("Explorer API URL")} name="explorerApiUrl" type="url" - disabled={defaultNetwork.readonly} /> = ( placeholder={t("Explorer URL")} name="explorerUrl" type="url" - disabled={defaultNetwork.readonly} /> {Object.keys(errors).length > 0 && ( diff --git a/packages/extension/src/ui/features/settings/NetworkSettingsScreen.tsx b/packages/extension/src/ui/features/settings/NetworkSettingsScreen.tsx index b8cfe6f0..b215e9ca 100644 --- a/packages/extension/src/ui/features/settings/NetworkSettingsScreen.tsx +++ b/packages/extension/src/ui/features/settings/NetworkSettingsScreen.tsx @@ -6,12 +6,12 @@ import { Link, useNavigate } from "react-router-dom" import styled from "styled-components" import { + defaultNetworks, removeNetwork, restoreDefaultCustomNetworks, } from "../../../shared/network" -import { defaultCustomNetworks } from "../../../shared/network/storage" import { IconButton } from "../../components/IconButton" -import { AddIcon, RefreshIcon } from "../../components/Icons/MuiIcons" +import { RefreshIcon } from "../../components/Icons/MuiIcons" import { ResponsiveFixedBox } from "../../components/Responsive" import { Spinner } from "../../components/Spinner" import { routes } from "../../routes" @@ -77,7 +77,7 @@ export const NetworkSettingsScreen: FC = () => { const [errorMessage, setErrorMessage] = useState("") const isDefaultCustomNetworks = useMemo(() => { - return isEqual(customNetworks, defaultCustomNetworks) + return isEqual(customNetworks, defaultNetworks) }, [customNetworks]) const removeNetworkClick = useCallback(async (networkId: string) => { @@ -124,7 +124,7 @@ export const NetworkSettingsScreen: FC = () => { setSelectedCustomNetwork(network) navigate(routes.settingsEditCustomNetwork()) }} - hideRemove={network.readonly} + hideRemove={true} onRemoveClick={() => { removeNetworkClick(network.id) }} @@ -133,12 +133,6 @@ export const NetworkSettingsScreen: FC = () => { )} - - - - - - {!isDefaultCustomNetworks && ( )} diff --git a/yarn.lock b/yarn.lock index bc981069..1bcc8000 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,13 @@ # yarn lockfile v1 -"@alephium/cli@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@alephium/cli/-/cli-1.5.0.tgz#4d8d1ac4ab86a9ea606495e537148c5beebdb117" - integrity sha512-/A8wqC1ylfdC1ED+15YtBe6SB61shJmhh67TS+FywCcj4ujzihg8Qn/V6lGnhTAk+Deb3tVP0ojEo7zSCeZqVg== +"@alephium/cli@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@alephium/cli/-/cli-1.7.3.tgz#85555c25dd7f3e8e3e33addf9fa74eda435a3083" + integrity sha512-mz7VcqUlfW8812AMw3lKrhHIrbcGTtFeRwiuoEXGE+zgIOWrZNu1E+648/rC89ekV/xxGIxPlesCMDET67ULPA== dependencies: - "@alephium/web3" "^1.5.0" - "@alephium/web3-wallet" "^1.5.0" + "@alephium/web3" "^1.7.3" + "@alephium/web3-wallet" "^1.7.3" "@swc/core" "^1.4.1" commander "^9.5.0" cross-fetch "^3.1.5" @@ -18,12 +18,12 @@ jest "^28.1.3" prettier "^2.8.7" -"@alephium/get-extension-wallet@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@alephium/get-extension-wallet/-/get-extension-wallet-1.5.0.tgz#77554e47fbbf63d9c2744c8d48aebc9414019d4b" - integrity sha512-5uuM6i10oVGiacrI+EacA1Z2mZB557maVW3DZ5NMMYuA/mbpSDKphMBxRTH/EdgN6SjEo0UiHVGH6sYGiPZIQQ== +"@alephium/get-extension-wallet@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@alephium/get-extension-wallet/-/get-extension-wallet-1.7.3.tgz#72974a691cf0c15c1e8eb7bea8888131ede35140" + integrity sha512-g/Pw3rg2P0aVIPRJ4Nnpyb41WTfzaZTvE+8Ge6HBPzpWP9w95gzj8CqEHfoV2zg2MkmbU6gL0x0rtoDTOYkSKQ== dependencies: - "@alephium/web3" "^1.5.0" + "@alephium/web3" "^1.7.3" bowser "^2.11.0" "@alephium/ledger-app@0.6.0": @@ -42,20 +42,20 @@ dependencies: cross-fetch "^3.1.8" -"@alephium/web3-test@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@alephium/web3-test/-/web3-test-1.5.0.tgz#553bb729032e88fd33ff78de974bd93eee09e753" - integrity sha512-IKFsMYgOnFcyjkVLnFzubZYXx/p+X4AMNQQaiCmryRMV6xe4z5+zMgg3FRPL0oJ+ZLe86v84TTqi0ZiHNn+zgg== +"@alephium/web3-test@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@alephium/web3-test/-/web3-test-1.7.3.tgz#b26c5ce51e6d57f14a0fb75d7abc9f1f63540e56" + integrity sha512-Tz32fxXgyMREWz6Q9rCGYnPDoGIdf18kNZeBlQCZYgHc255okIW7CXPmvftUUS1gTStQJ9W7rFhtbje0MzzsDg== dependencies: - "@alephium/web3" "^1.5.0" - "@alephium/web3-wallet" "^1.5.0" + "@alephium/web3" "^1.7.3" + "@alephium/web3-wallet" "^1.7.3" -"@alephium/web3-wallet@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@alephium/web3-wallet/-/web3-wallet-1.5.0.tgz#f012ca9900061e47c6d82ea0043577fe459e3f9a" - integrity sha512-WBXA4Nm/0PnLkSK1lbjaSWMohQy9JZOHSA/uk9N4PXOn8OvCeF31aT/XnXauFCR6PTjE9YhyKlt3PYKCw4PxLw== +"@alephium/web3-wallet@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@alephium/web3-wallet/-/web3-wallet-1.7.3.tgz#7ff34b25853689b906ddfb12948104a6fe40437f" + integrity sha512-jR5hq4dZX7qkslZBMILK5wuZ/3nfQzfIWkOrT9Gln/lZ9ilLdBMIpIbVPKHbHz40fihWJDCu1UOvtw8B8p8dUg== dependencies: - "@alephium/web3" "^1.5.0" + "@alephium/web3" "^1.7.3" "@noble/secp256k1" "1.7.1" "@types/node" "^16.18.23" bip32 "3.1.0" @@ -80,6 +80,23 @@ path-browserify "^1.0.1" stream-browserify "^3.0.0" +"@alephium/web3@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@alephium/web3/-/web3-1.7.3.tgz#4ebaa45fca0bb7cbce1fc6c55e047c51b197d472" + integrity sha512-TvhHorYNctw9f31cuhpECpo2Ym3sMvBmCWquVqEMZ/gsF2PVeMLAFtG7QsHG625x41OSRAsfbBuQzT3lq2K/yw== + dependencies: + "@noble/secp256k1" "1.7.1" + base-x "4.0.0" + bignumber.js "^9.1.1" + blakejs "1.2.1" + bn.js "5.2.1" + cross-fetch "^3.1.5" + crypto-browserify "^3.12.0" + elliptic "6.5.4" + eventemitter3 "^4.0.7" + path-browserify "^1.0.1" + stream-browserify "^3.0.0" + "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" @@ -21269,7 +21286,16 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -21369,7 +21395,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -21383,6 +21409,13 @@ strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -23702,7 +23735,7 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -23720,6 +23753,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"