diff --git a/apps/daimo-mobile/eas.json b/apps/daimo-mobile/eas.json index 62ae27fda..50e1dff1c 100644 --- a/apps/daimo-mobile/eas.json +++ b/apps/daimo-mobile/eas.json @@ -11,7 +11,8 @@ "simulator": true }, "env": { - "NEXT_PUBLIC_DOMAIN": "daimo.xyz" + "DAIMO_CHAIN": "baseGoerli", + "DAIMO_DOMAIN": "daimo.xyz" } }, "dev": { @@ -25,21 +26,20 @@ "buildConfiguration": "Debug" }, "env": { - "NEXT_PUBLIC_DOMAIN": "daimo.xyz" + "DAIMO_CHAIN": "baseGoerli", + "DAIMO_DOMAIN": "daimo.xyz" } }, - "stage": { + "prod": { "resourceClass": "large", "autoIncrement": true, "node": "20.3.0", "env": { "DAIMO_APP_API_URL": "https://daimo-api-prod.onrender.com", - "NEXT_PUBLIC_DOMAIN": "daimo.xyz" + "DAIMO_BUNDLER_RPC": "https://api.pimlico.io/v1/base/rpc?apikey=70ecef54-a28e-4e96-b2d3-3ad67fbc1b07", + "DAIMO_CHAIN": "base", + "DAIMO_DOMAIN": "daimo.xyz" } - }, - "prod": { - "autoIncrement": true, - "resourceClass": "large" } }, "submit": { diff --git a/apps/daimo-mobile/src/action/useExistingAccount.ts b/apps/daimo-mobile/src/action/useExistingAccount.ts index 7b099fa16..fe6a543b1 100644 --- a/apps/daimo-mobile/src/action/useExistingAccount.ts +++ b/apps/daimo-mobile/src/action/useExistingAccount.ts @@ -2,8 +2,8 @@ import { useEffect } from "react"; import { useActStatus } from "./actStatus"; import { useLoadOrCreateEnclaveKey } from "./key"; +import { useTime } from "../logic/time"; import { rpcFunc } from "../logic/trpc"; -import { useTime } from "../logic/useTime"; import { defaultEnclaveKeyName, useAccount } from "../model/account"; export function useExistingAccount() { diff --git a/apps/daimo-mobile/src/action/useSendAsync.ts b/apps/daimo-mobile/src/action/useSendAsync.ts index ed44cb106..10d097049 100644 --- a/apps/daimo-mobile/src/action/useSendAsync.ts +++ b/apps/daimo-mobile/src/action/useSendAsync.ts @@ -106,7 +106,7 @@ function loadOpSender( }; }; - return await DaimoOpSender.init(address, signer); + return await DaimoOpSender.initFromEnv(address, signer); })(); accountCache.set([address, keySlot], promise); diff --git a/apps/daimo-mobile/src/logic/chainConfig.ts b/apps/daimo-mobile/src/logic/chainConfig.ts deleted file mode 100644 index 4756c0fe9..000000000 --- a/apps/daimo-mobile/src/logic/chainConfig.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { baseGoerli, goerli } from "viem/chains"; - -export const chainConfig = { - testnet: true, - l1: goerli, - l2: baseGoerli, -}; diff --git a/apps/daimo-mobile/src/logic/useTime.ts b/apps/daimo-mobile/src/logic/time.ts similarity index 56% rename from apps/daimo-mobile/src/logic/useTime.ts rename to apps/daimo-mobile/src/logic/time.ts index 22e692182..433248af8 100644 --- a/apps/daimo-mobile/src/logic/useTime.ts +++ b/apps/daimo-mobile/src/logic/time.ts @@ -1,3 +1,5 @@ +import { guessTimestampFromNum } from "@daimo/common"; +import { chainConfig } from "@daimo/contract"; import { useEffect, useState } from "react"; /** Returns the current time in Unix seconds. Ticks every `secs`. */ @@ -11,3 +13,8 @@ export function useTime(secs: number = 1) { return Math.floor(time / 1000); } + +/** Returns the timestamp, in Unix seconds, for a given L2 block number. */ +export function timestampForBlock(blockNum: number) { + return guessTimestampFromNum(blockNum, chainConfig.chainL2.network); +} diff --git a/apps/daimo-mobile/src/sync/sync.ts b/apps/daimo-mobile/src/sync/sync.ts index ccd582995..b0062554a 100644 --- a/apps/daimo-mobile/src/sync/sync.ts +++ b/apps/daimo-mobile/src/sync/sync.ts @@ -4,11 +4,10 @@ import { TransferOpEvent, amountToDollars, assert, - guessTimestampFromNum, } from "@daimo/common"; import { useEffect } from "react"; -import { chainConfig } from "../logic/chainConfig"; +import { timestampForBlock } from "../logic/time"; import { rpcFunc } from "../logic/trpc"; import { Account, getAccountManager } from "../model/account"; @@ -239,10 +238,7 @@ function addTransfers( amount: Number(transfer.amount), nonceMetadata: transfer.nonceMetadata, - timestamp: guessTimestampFromNum( - transfer.blockNumber!, - chainConfig.l2.network - ), + timestamp: timestampForBlock(transfer.blockNumber!), txHash: transfer.txHash, blockNumber: transfer.blockNumber, blockHash: transfer.blockHash, diff --git a/apps/daimo-mobile/src/view/HomeStack.tsx b/apps/daimo-mobile/src/view/HomeStack.tsx index 046caf244..27c567320 100644 --- a/apps/daimo-mobile/src/view/HomeStack.tsx +++ b/apps/daimo-mobile/src/view/HomeStack.tsx @@ -1,4 +1,4 @@ -import { tokenMetadata } from "@daimo/contract"; +import { chainConfig } from "@daimo/contract"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; import { useEffect, useMemo, useState } from "react"; @@ -46,7 +46,7 @@ export function HomeStackNav() { /> diff --git a/apps/daimo-mobile/src/view/screen/DeviceScreen.tsx b/apps/daimo-mobile/src/view/screen/DeviceScreen.tsx index 6d94a2313..cda8681bd 100644 --- a/apps/daimo-mobile/src/view/screen/DeviceScreen.tsx +++ b/apps/daimo-mobile/src/view/screen/DeviceScreen.tsx @@ -1,18 +1,18 @@ -import { assert, guessTimestampFromNum, timeString } from "@daimo/common"; +import { assert, timeString } from "@daimo/common"; import { - DaimoOpSender, DaimoNonce, DaimoNonceMetadata, DaimoNonceType, + DaimoOpSender, } from "@daimo/userop"; import { NativeStackScreenProps } from "@react-navigation/native-stack"; import { ReactNode, useCallback, useEffect, useMemo } from "react"; import { ActivityIndicator, Alert, View } from "react-native"; import { useSendAsync } from "../../action/useSendAsync"; -import { chainConfig } from "../../logic/chainConfig"; import { keySlotToDeviceIdentifier } from "../../logic/device"; import { deleteEnclaveKey } from "../../logic/enclave"; +import { timestampForBlock } from "../../logic/time"; import { useAccount } from "../../model/account"; import { getAmountText } from "../shared/Amount"; import { ButtonBig } from "../shared/Button"; @@ -127,10 +127,7 @@ export function DeviceScreen({ route, navigation }: Props) { } })(); - const addedAtS = guessTimestampFromNum( - device.addedAt, - chainConfig.l2.network - ); + const addedAtS = timestampForBlock(device.addedAt); return ( diff --git a/apps/daimo-mobile/src/view/screen/HistoryOpScreen.tsx b/apps/daimo-mobile/src/view/screen/HistoryOpScreen.tsx index eb006088a..2fdcbaaac 100644 --- a/apps/daimo-mobile/src/view/screen/HistoryOpScreen.tsx +++ b/apps/daimo-mobile/src/view/screen/HistoryOpScreen.tsx @@ -4,13 +4,13 @@ import { timeString, TransferOpEvent, } from "@daimo/common"; +import { chainConfig } from "@daimo/contract"; import { DaimoNonceMetadata } from "@daimo/userop"; import Octicons from "@expo/vector-icons/Octicons"; import { NativeStackScreenProps } from "@react-navigation/native-stack"; import { useCallback, useEffect } from "react"; import { Linking, StyleSheet, Text, View } from "react-native"; -import { chainConfig } from "../../logic/chainConfig"; import { useAccount } from "../../model/account"; import { syncFindSameOp } from "../../sync/sync"; import { TitleAmount } from "../shared/Amount"; @@ -55,7 +55,7 @@ export function HistoryOpScreen({ route, navigation }: Props) { } function LinkToExplorer({ txHash }: { txHash: string }) { - const explorer = chainConfig.l2.blockExplorers.default; + const explorer = chainConfig.chainL2.blockExplorers!.default; const url = `${explorer.url}/tx/${txHash}`; const openURL = useCallback(() => Linking.openURL(url), []); diff --git a/apps/daimo-mobile/src/view/screen/OnboardingScreen.tsx b/apps/daimo-mobile/src/view/screen/OnboardingScreen.tsx index 6832b7dee..95997f270 100644 --- a/apps/daimo-mobile/src/view/screen/OnboardingScreen.tsx +++ b/apps/daimo-mobile/src/view/screen/OnboardingScreen.tsx @@ -1,5 +1,5 @@ import { assertNotNull, validateName } from "@daimo/common"; -import { tokenMetadata } from "@daimo/contract"; +import { chainConfig } from "@daimo/contract"; import Octicons from "@expo/vector-icons/Octicons"; import * as Device from "expo-device"; import * as Notifications from "expo-notifications"; @@ -163,6 +163,8 @@ function IntroPages({ setPageIndex(page); }; + const { tokenSymbol } = chainConfig; + return ( @@ -180,10 +182,10 @@ function IntroPages({ technology. Use at your own risk. - + - Daimo lets you send and receive money using the{" "} - {tokenMetadata.symbol} stablecoin. 1 {tokenMetadata.symbol} is $1. + Daimo lets you send and receive money using the {tokenSymbol}{" "} + stablecoin. 1 {tokenSymbol} is $1. { if (!account) return; const url = `${explorer.url}/address/${account.address}`; @@ -81,7 +80,7 @@ export function SettingsScreen() { {account.name} {` \u00A0 `} - {tokenMetadata.name} · {chainConfig.l2.name} + {chainConfig.tokenSymbol} · {chainConfig.chainL2.name} @@ -157,7 +156,7 @@ function DeviceRow({ const viewDevice = () => nav.navigate("Device", { pubKey: keyData.pubKey }); - const addAtS = guessTimestampFromNum(keyData.addedAt, chainConfig.l2.network); + const addAtS = timestampForBlock(keyData.addedAt); return ( diff --git a/apps/daimo-mobile/src/view/screen/link/NoteScreen.tsx b/apps/daimo-mobile/src/view/screen/link/NoteScreen.tsx index 5fff20c6c..3a79b8621 100644 --- a/apps/daimo-mobile/src/view/screen/link/NoteScreen.tsx +++ b/apps/daimo-mobile/src/view/screen/link/NoteScreen.tsx @@ -6,7 +6,7 @@ import { dollarsToAmount, getAccountName, } from "@daimo/common"; -import { ephemeralNotesAddress } from "@daimo/contract"; +import { daimoEphemeralNotesAddress } from "@daimo/contract"; import { DaimoNonce, DaimoNonceMetadata, @@ -105,7 +105,7 @@ function NoteDisplay({ pendingOp: { type: "transfer", status: OpStatus.pending, - from: ephemeralNotesAddress, + from: daimoEphemeralNotesAddress, to: account.address, amount: Number(dollarsToAmount(noteStatus.dollars)), timestamp: Date.now() / 1e3, diff --git a/apps/daimo-mobile/src/view/screen/receive/DepositScreen.tsx b/apps/daimo-mobile/src/view/screen/receive/DepositScreen.tsx index ec96f1a3f..e686b068a 100644 --- a/apps/daimo-mobile/src/view/screen/receive/DepositScreen.tsx +++ b/apps/daimo-mobile/src/view/screen/receive/DepositScreen.tsx @@ -1,12 +1,11 @@ import { AddrLabel, assert } from "@daimo/common"; -import { tokenMetadata } from "@daimo/contract"; +import { chainConfig } from "@daimo/contract"; import Octicons from "@expo/vector-icons/Octicons"; import * as Clipboard from "expo-clipboard"; import { useCallback, useEffect, useState } from "react"; import { StyleSheet, Text, TouchableHighlight, View } from "react-native"; import { Address, getAddress } from "viem"; -import { chainConfig } from "../../../logic/chainConfig"; import { rpcHook } from "../../../logic/trpc"; import { useAccount } from "../../../model/account"; import { ButtonMed } from "../../shared/Button"; @@ -18,15 +17,17 @@ export default function DepositScreen() { const [account] = useAccount(); if (account == null) return null; + const { chainL2, tokenSymbol } = chainConfig; + return ( - {chainConfig.testnet && } - {chainConfig.testnet && } + {chainL2.testnet && } + {chainL2.testnet && } - Deposit {tokenMetadata.symbol} on {chainConfig.l2.name} only. + Deposit {tokenSymbol} on {chainL2.name} only. {" "} Use the following address. @@ -99,7 +100,7 @@ function TestnetFaucet({ recipient }: { recipient: Address }) { {" "} Testnet version. This unreleased version of Daimo - runs on {chainConfig.l2.name}. + runs on {chainConfig.chainL2.name}. - DESIGN SOON + + {text} ); } diff --git a/apps/daimo-mobile/src/view/shared/nav.ts b/apps/daimo-mobile/src/view/shared/nav.ts index 6706780d2..d3c4b7bb5 100644 --- a/apps/daimo-mobile/src/view/shared/nav.ts +++ b/apps/daimo-mobile/src/view/shared/nav.ts @@ -9,7 +9,7 @@ import { import { useNavigation } from "@react-navigation/native"; import type { NativeStackNavigationProp } from "@react-navigation/native-stack"; import { addEventListener, getInitialURL } from "expo-linking"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useRef } from "react"; import { Hex } from "viem"; import { useAccount } from "../../model/account"; diff --git a/apps/daimo-testbed/App.tsx b/apps/daimo-testbed/App.tsx index 02a90fdee..a8af4de45 100644 --- a/apps/daimo-testbed/App.tsx +++ b/apps/daimo-testbed/App.tsx @@ -42,7 +42,7 @@ export default function App() { "P-256 Public Key, deploy corresponding account by calling createAccount on factory:", derPublicKey ); - const account = await DaimoOpSender.init(accAddress, signer); + const account = await DaimoOpSender.initFromEnv(accAddress, signer); console.log( "account, give it some eth + usdc magically:", account.getAddress() diff --git a/apps/daimo-web/src/components/PerformWalletAction.tsx b/apps/daimo-web/src/components/PerformWalletAction.tsx index fc4fc1c8f..dd21237ac 100644 --- a/apps/daimo-web/src/components/PerformWalletAction.tsx +++ b/apps/daimo-web/src/components/PerformWalletAction.tsx @@ -5,11 +5,7 @@ import { DaimoRequestStatus, getNoteClaimSignature, } from "@daimo/common"; -import { - ephemeralNotesABI, - ephemeralNotesAddress, - tokenMetadata, -} from "@daimo/contract"; +import { daimoEphemeralNotesConfig, chainConfig } from "@daimo/contract"; import { ConnectButton } from "@rainbow-me/rainbowkit"; import { useEffect, useMemo, useState } from "react"; import { Address, Hex, InsufficientFundsError, parseUnits } from "viem"; @@ -43,11 +39,11 @@ async function linkStatusToAction( const { recipient } = linkStatus as DaimoRequestStatus; const parsedAmount = parseUnits( linkStatus.link.dollars, - tokenMetadata.decimals + chainConfig.tokenDecimals ); return { wagmiPrep: { - address: tokenMetadata.address, + address: chainConfig.tokenAddress, abi: erc20ABI as readonly unknown[], functionName: "transfer" as const, args: [recipient.addr, parsedAmount] as const, @@ -65,8 +61,7 @@ async function linkStatusToAction( return { wagmiPrep: { - address: ephemeralNotesAddress, - abi: ephemeralNotesABI as readonly unknown[], + ...daimoEphemeralNotesConfig, functionName: "claimNote" as const, args: [linkStatus.link.ephemeralOwner, signature] as const, }, diff --git a/apps/daimo-web/src/components/Providers.tsx b/apps/daimo-web/src/components/Providers.tsx index cb8f22081..d216309ba 100644 --- a/apps/daimo-web/src/components/Providers.tsx +++ b/apps/daimo-web/src/components/Providers.tsx @@ -1,17 +1,17 @@ "use client"; +import { chainConfig } from "@daimo/contract"; import { RainbowKitProvider, - getDefaultWallets, connectorsForWallets, + getDefaultWallets, } from "@rainbow-me/rainbowkit"; import * as React from "react"; -import { configureChains, createConfig, WagmiConfig } from "wagmi"; -import { baseGoerli } from "wagmi/chains"; +import { WagmiConfig, configureChains, createConfig } from "wagmi"; import { publicProvider } from "wagmi/providers/public"; const { chains, publicClient, webSocketPublicClient } = configureChains( - [baseGoerli], + [chainConfig.chainL2], [publicProvider()] ); diff --git a/apps/scratchpad/src/checkAccount.ts b/apps/scratchpad/src/checkAccount.ts index ee816061c..df9bd5274 100644 --- a/apps/scratchpad/src/checkAccount.ts +++ b/apps/scratchpad/src/checkAccount.ts @@ -1,8 +1,8 @@ import { + chainConfig, entryPointABI, erc20ABI, nameRegistryProxyConfig, - tokenMetadata, } from "@daimo/contract"; import { Constants } from "userop"; import { @@ -14,7 +14,6 @@ import { http, stringToHex, } from "viem"; -import { baseGoerli } from "viem/chains"; export function checkAccountDesc() { return `Check the balance, nonce, etc of a Daimo account.`; @@ -24,14 +23,17 @@ export async function checkAccount() { const input = process.argv[3]; if (!input) throw new Error("Usage: check "); - const chain = baseGoerli; - console.log(`Daimo account on ${chain.name}`); + const { tokenDecimals, tokenSymbol, chainL2 } = chainConfig; + console.log(`Daimo account on ${chainL2.name}`); console.log(""); // Resolve name or address let name: string, addr: Address; - const publicClient = createPublicClient({ chain, transport: http() }); + const publicClient = createPublicClient({ + chain: chainL2, + transport: http(), + }); if (input.startsWith("0x")) { addr = getAddress(input); const nameHex = await publicClient.readContract({ @@ -56,12 +58,11 @@ export async function checkAccount() { // Get balance from coin contract const bal = await publicClient.readContract({ abi: erc20ABI, - address: tokenMetadata.address, + address: chainConfig.tokenAddress, functionName: "balanceOf", args: [addr], }); - const { decimals, symbol } = tokenMetadata; - const balStr = formatUnits(bal, decimals) + " " + symbol; + const balStr = formatUnits(bal, tokenDecimals) + " " + tokenSymbol; console.log(`BAL - ${balStr}`); // Get account info from the EntryPoint contract @@ -76,7 +77,7 @@ export async function checkAccount() { console.log(); console.log(`...NameReg ${nameRegistryProxyConfig.address}`); - console.log(`... ERC20 ${tokenMetadata.address}`); + console.log(`... ERC20 ${chainConfig.tokenAddress}`); console.log(`EntryPoint ${Constants.ERC4337.EntryPoint}`); console.log(); } diff --git a/apps/scratchpad/src/createAccount.ts b/apps/scratchpad/src/createAccount.ts index d3f69f1be..7b4437e78 100644 --- a/apps/scratchpad/src/createAccount.ts +++ b/apps/scratchpad/src/createAccount.ts @@ -1,8 +1,8 @@ import { - accountFactoryConfig, + daimoAccountFactoryConfig, + chainConfig, entryPointABI, erc20ABI, - tokenMetadata, } from "@daimo/contract"; import { DaimoNonce, @@ -14,6 +14,7 @@ import { import crypto from "node:crypto"; import { Constants } from "userop"; import { + Chain, Hex, PublicClient, Transport, @@ -23,7 +24,6 @@ import { http, } from "viem"; import { privateKeyToAccount } from "viem/accounts"; -import { baseGoerli } from "viem/chains"; export function createAccountDesc() { return `Create a Daimo account. Fund with faucet. Send a test userop from that account.`; @@ -31,7 +31,7 @@ export function createAccountDesc() { export async function createAccount() { // Viem - const chain = baseGoerli; + const chain = chainConfig.chainL2; const publicClient = createPublicClient({ chain, transport: http() }); console.log(`Connected to ${chain.name}, ${publicClient.transport.url}`); @@ -82,7 +82,7 @@ export async function createAccount() { const args = [0, [key1, key2], [], salt] as const; const address = await publicClient.readContract({ - ...accountFactoryConfig, + ...daimoAccountFactoryConfig, functionName: "getAddress", args, }); @@ -98,7 +98,7 @@ export async function createAccount() { // Deploy account const hash = await walletClient.writeContract({ - ...accountFactoryConfig, + ...daimoAccountFactoryConfig, functionName: "createAccount", args, value: 0n, @@ -107,14 +107,14 @@ export async function createAccount() { const tx = await publicClient.waitForTransactionReceipt({ hash }); console.log(`[API] deploy transaction ${tx.status}`); - const account = await DaimoOpSender.init(address, signer); + const account = await DaimoOpSender.initFromEnv(address, signer); const addr = account.getAddress(); console.log(`Burner Daimo account: ${addr}`); // Fund it from the faucet const usdcTxHash = await walletClient.writeContract({ abi: erc20ABI, - address: tokenMetadata.address, + address: chainConfig.tokenAddress, functionName: "transfer", args: [addr, 1000000n], }); @@ -147,7 +147,7 @@ export async function createAccount() { } async function waitForTx( - publicClient: PublicClient, + publicClient: PublicClient, hash: Hex ) { const receipt = await publicClient.waitForTransactionReceipt({ diff --git a/apps/scratchpad/src/index.ts b/apps/scratchpad/src/index.ts index 8207a1bae..530f49adc 100644 --- a/apps/scratchpad/src/index.ts +++ b/apps/scratchpad/src/index.ts @@ -1,9 +1,9 @@ -import { getViemClientFromEnv } from "@daimo/api/src/chain"; import { CoinIndexer } from "@daimo/api/src/contract/coinIndexer"; import { NameRegistry } from "@daimo/api/src/contract/nameRegistry"; import { OpIndexer } from "@daimo/api/src/contract/opIndexer"; +import { getViemClientFromEnv } from "@daimo/api/src/viemClient"; import { guessTimestampFromNum } from "@daimo/common"; -import { nameRegistryProxyConfig, tokenMetadata } from "@daimo/contract"; +import { nameRegistryProxyConfig, chainConfig } from "@daimo/contract"; import csv from "csvtojson"; import { checkAccount, checkAccountDesc } from "./checkAccount"; @@ -73,8 +73,8 @@ async function metrics() { addMetric(signups, ts, 1); } - const tm = tokenMetadata; - console.log(`[METRICS] compiling ${tm.symbol} transfers ${tm.address}`); + const { tokenSymbol, tokenAddress } = chainConfig; + console.log(`[METRICS] compiling ${tokenSymbol} transfers ${tokenAddress}`); const transfers = new Map(); coinIndexer.pipeAllTransfers(async (logs) => { for (const log of logs) { diff --git a/doc/architecture.excalidraw.svg b/doc/architecture.excalidraw.svg index ce07a56a7..cd2e5e8ba 100644 --- a/doc/architecture.excalidraw.svg +++ b/doc/architecture.excalidraw.svg @@ -1,16 +1,17 @@ - eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1daVNcIkuz/j6/gpj78Vx1MDAxZeqtfXkjbtxAxV1EcWE884aB0GIrmyyC3jj//Wa2jnRcdTAwMDPNouD0zMiJM2p3011dlU8+mVlZWf/3JZX62n1seV//nfrqXHLKpZpfaZf6X//C41x1MDAwZl674zdcdTAwMWJwilx1MDAwN393mr12Objyptttdf79r3/VS+07r9uqlcpcdTAwMWV58Du9Uq3T7VX8Jik36//yu16987/4b65U9/6n1axXum0yfEjaq/jdZvv5WV7Nq3uNblx1MDAwN+7+N/ydSv1f8G+odW2v3C01qjUv+EJwathApu3o0Vxcs1x1MDAxMTSWMWqloUrq1yv8zlx1MDAwNjyv61Xg9DW02Vx1MDAxYp7BQ1+zfuYky6s7p49cdTAwMTW/dPao6o3m+tXwsdd+rVboPtaeu6JUvum1Q43qdNvNO+/cr3Rv8Okjx1+/12lCL1xmv9Vu9qo3XHKv04l8p9kqlf3uI1x1MDAxZaP09ehzL/w7NTwygL+M4IRpSTVXr8fxm5wqYrVh1qiRtqw3a9D90Jb/osFn2JqrUvmuXG5NalRer+m2S41Oq9SGQVx1MDAxYV7X//GW0pCRR994fvWmXHUwMDBi55whTlxi5UT4+V7Q95xcdKWstWw4ePjU1k4lkIP/hHunUXnpnVx1MDAxZoIxXHUwMDE0XHLxcuSfYfvx+uyoSIXFKlwiWl1vMHypkFx1MDAxYzxwcXrqXHLS7dt+TfknJe5Kp9++vl73z1+Tb/v85XTvXGZcdTAwMDR8j3Urpa1Bo3dh++XL7ehTfjy/1G43+/PeN3vOXHUwMDBmPLu9QYv9Qumo33vi27mz+e778tuwX3utSulcdTAwMTlcdTAwMDZcdTAwMDAgJ6xxkjruXs/X/MZcdTAwMWScbPRqteGxZvluiJwvoVx1MDAwNo9BNtKvYbRKXHUwMDE5h1ZuXHUwMDFjU1xcODs3WCdcdTAwMGZS0sGqXHUwMDE50VpKXHUwMDBlyokpKaKIlZxcYlx1MDAwMX0gxVxuMWst0cI5aqzQjlx1MDAwMXjHocvHXHUwMDEwa4xRxlx1MDAwMtBcdTAwMTdcdTAwMDBsRHrGkLlMYVx1MDAxY1x1MDAwZXqz0S34T4FA0cjRzVLdrz1Gxi2QUuitSsmvN9Ollv81cipT86sotF/L0GSvXHUwMDFkkeeuXHUwMDBmZPZ6Qd2vVML0VIbnlfyG196Zh1Wabb/qN0q1k/jmQFx1MDAwZnjbP1x1MDAwNoeR0PBcXJU6XHUwMDFlnsXjdiomp9IolyZcdTAwMTaYlDsjlbTz02i/kl3rnLauTrZ217PHx4N25rx4k3hkXG5FXHUwMDA0IDDCl/hVyVx1MDAwNKFCcCpcdTAwMTj/ZNJcdTAwMDWZlFx1MDAxZN1l93q1zO1lfc/ub9nz01x1MDAwMq0vzEyChqGwXG5m4pzFXHUwMDAxgFFFQSdcdTAwMGIl51x1MDAwNsDkt046XHUwMDAwXHUwMDE0J0A9IE2aXHUwMDBiKrWLokA6skLpZ8B8zFmruFx1MDAxMm4yXG5cdTAwMTJASlx1MDAwYsnhMkipXFzzI/21VF6aoaYn89Joi5ZBTXGgNDSWlZh2lDKtXHUwMDE3XHUwMDAwpddn5+VbmVsrr63ts0qrs9Zw2aSDUmpNXHUwMDA0QMJw6bgyw/5cYuxFRomUXHUwMDAwPFx1MDAwZbacXHUwMDExMnR6XGagrvJ2dHLwMMFktNhcdTAwMDLLJmEz/Fwir8xEtVx1MDAxNtCyX1x1MDAwN51MR45OQWcmv5PqeG1cdTAwMTDK7410qoC/dVKl1Mlxfj1cdTAwMDXn8OBWs1RL+Z1Ut5m68lKnuZPj08JJduN7I5V68EupXHUwMDFh9lxc6lx1MDAxOU2pVrvZvO58b/yda1a8/0ZYdMptv9X9T1xm8mvedXdcbu67zVZcdTAwMWPoIz0yivCPf6u5tIeTU7XHs7M7QX24WO1hKChcdTAwMGUw6IZcdTAwMDIzS3mUXHUwMDBmt/bb+XvXyTbzXHUwMDE5vlPtnbR2XHUwMDA2SVdcdTAwMWVAjUTqUXtWXHUwMDE4Q5SiUSRPIPS361x1MDAwYkqiVvSrmpCCjJuwjDlccspN0EVcdTAwMTTFuFx0y2ebsCvRXHUwMDFmnW6p3V3zXHUwMDFiXHUwMDE1v1FcdTAwMWT9iteoxJyplTrd9Wa97nehXHUwMDE5+abf6I5eXHUwMDEx3DeDsn3jlcagXHUwMDBid1x1MDAwZZ9cdTAwMWJcdTAwMDVBXHUwMDBi71x1MDAxODXbh7+lhmJcdTAwMTL88fr7f/6aeHV6ZDyDY8FQXHUwMDBlv/kl/HNRntc0NizEQCxcdTAwMTTT4JfNXHJVtW/b24V6pmRPXHUwMDFmXG5nZ6YnSlvHiYeqYERYR5U0zFEjh+5cXFx1MDAwMFkwzaVcdTAwMDCmN1Jcbse4m1x1MDAwMtz3XHUwMDEwPVx1MDAxM5IwhlxycMpiXHUwMDE4atiMoVx1MDAxOf5nMX1AfruFw1xcXG5++Vg6jnn0fFx1MDAxNvd0zpxcdTAwMWFcZpKh3lx1MDAxOYWjtdxcdTAwMDB5LFx1MDAxMFxmcqdH5nrLN5liIXPVdP18gdXvk1x1MDAwZUfQSFx1MDAwNFxmajFCnUo5XHUwMDAylrimbpVcdTAwMDHa3zRcdTAwMTRUOK5cdTAwMWVvb7iq2i7c791m9rL3XHUwMDA3V4N5Jz/43qCZLVx1MDAxY29u9jpcdTAwMTfN5mZX7uTd4zInP1ZcdTAwMWZiXHUwMDEyVsXBymluXGZ3XHUwMDBizFRO7sykoyogOWmEYsBknEUjTMppwoJcdIlcdTAwMTWGWZ0kXHUwMDAyJz+ksYqpzzjTS1Sn713FcNt7g0wz1P/kIFOkOSuf/FBcItb8XHUwMDE0zHHp3Fx1MDAwMrOS69Xy6eVpml/btvLWXHUwMDBmbtd73Es83TmKc4JCaqlcdTAwMDFcdTAwMTRcdTAwMDDRXHUwMDEx1jOEOydcdTAwMTWwvzE2pKU+mS9cImVxzFe5y1fK22eDfrV+7GVorrr7mMknkKFcdTAwMTSLj7dcdTAwMWHQmkqy+SMmk1866UDgkmhcdTAwMGJcdTAwMDBgilx1MDAwMiPb6Pw8XGJcdTAwMWYxXHUwMDFhnFFrgLBXXG5cdTAwMDSmiFx1MDAxMs5cdTAwMWHGmbI49fjJU0hcZvXmlVx1MDAxZlbiS6WqXHUwMDE5qnsyVY22aFx1MDAxOWxcdTAwMTVcdTAwMWLRXHUwMDE0QoxcdTAwMWV9XHUwMDA1KFx1MDAxN6BcdTAwMDHDPvgsgE43qVx1MDAxM1xuUO04XHUwMDAx2Vx1MDAwM1xcXGKnmFQjTCU0MZRLXHUwMDA1mowprldcdTAwMTTf5Fx1MDAwME6joa+dgidcdTAwMWEpJlmRlkijwbSAXHUwMDBiQJOYkMf8W8Y9Q1xye0npnMf+XHUwMDBicF/uYSvTlEhcdTAwMTGY5FJcdGqoXHUwMDBiXVMttfBNXHUwMDA1oVx1MDAxY/QhRu7RiVx1MDAxOH/z3yPeXHUwMDFhL174SY9L1vCGX8I/XHUwMDE3Vy86Plx0XHUwMDAyzDLHnHXzXHUwMDFiXHUwMDAwl1uZ897VXHUwMDFkq5eK9cHV7sk3V6e9pOtcdTAwMTcnJFFOXHUwMDAyiSouhVx1MDAxMdFcdFdcdTAwMTBMMFx1MDAwZqhcdTAwMDFbmYI1PGW69Z3qhVx1MDAwM1x1MDAwMMTEmVbOyEhK7++oTX7HWZRcdMP6fPxlRFx1MDAxN0RxnFx1MDAxMW9lrI2gQKtquchcXMqTn/dvKptbp+2z68zDxYlcdTAwMWIoL5N0XGZjai2hilNcdTAwMDdcdTAwMTZcdTAwMDCl4bhbXHUwMDAwYjirXGbY8pqBRqNcXIw0bGlzKVx1MDAwZTSJs1b+SFx1MDAxZVx1MDAxY1x1MDAwN7P8s+ZSzks1XHUwMDEwtu+Nv7ODVvPnpTnM0Yy5rHgxfY4lNqspPi9cdTAwMDFE1oDPp+YnWbm/Nlx1MDAxOGRcdTAwMGZ2bi6Ozy4rxe0nV9nwklx1MDAwZVApXHUwMDA1kcw6yVx1MDAxNbWS65G0JmVcctj4XHUwMDAwXHUwMDAzo8BcdTAwMTNcdTAwMDcgr1xioJJcdTAwMTKmXHUwMDAwoPBcdTAwMGYzTttcdJOdf1x1MDAxOEAzrVZcbp/xmlx1MDAwNfR3XHUwMDBlzsyB1HbQX8uH6lwiXHJaXHUwMDA2ZqfHiUOSOO59M1x1MDAwZWbh/MDtX1x1MDAxZTW269Vs89ydnlx1MDAxZnSbhaK7uk46cIFZXHUwMDFkwSxcdTAwMDRrjKBuLEeYg3lcZr5cdTAwMTm430IoXHUwMDE5mt/5XGZcdTAwMTRHxCwuUJw952rnrFlaO9p6XHUwMDE4rHnftlx1MDAwZo7ZbVx1MDAxMlx1MDAwM8VcIt5RhFFR4Dex+Vx1MDAxM3Mnv3XSocAoI1x1MDAwZehcdTAwMWG8RaGoXHUwMDFjmTORylx1MDAxMDD2OVih1K5cdTAwMTZcbuA/6Fx1MDAxOTT2Z4WKPTDr0l6jXFwrPawqVDxDe4/S2ORcdTAwMTYtI1RcdTAwMWNcXDVcdTAwMDGhmK1cdTAwMWRcdTAwMGJRp0FKpF4g26DcS1dvN6uVTI4+KptcdTAwMTZcIlcrxSB0XHUwMDA0aT9cdTAwMGKfwEFEKCNBXHUwMDE1SVx1MDAxMPZQWCSAJyXSUW25kriMgI+2a1xiTyHEVGz+1/X19TgorSWcafA0XHJQplx1MDAxMGbCXHUwMDFhS8ZcdTAwMDSx4IdSNHPBXGJcdTAwMGU14SWiXHUwMDAzLMqFpaGYf1x1MDAxOKNDVjo9svns2uPAM/16Zu/h4XC7c7H7gzU+XHUwMDAzP3NcdTAwMDR+XCLnllx1MDAxYfWhhDswmrhcdTAwMDMpXHUwMDEwglx0bUT4+1ZjoFx1MDAwMsDIOdVMXHUwMDFiO/t+XHUwMDE0bsJcdTAwMDSIXHUwMDE1SLalKGXhXHUwMDFiOkWsdFpcdTAwMDBcclx1MDAxYsuknnlDSZRcdTAwMTRcdTAwMDLBwOHOZpjxiVx1MDAxZoBcdTAwMTmhlmsrXHKHXHUwMDExVuFQ8+TbgVx1MDAwNSiAhbhVgCtAl1x1MDAxNNH7XHSiteJcZtooqKZGzGyeJlx1MDAwZd5cdTAwMDNe2SglnNLR20liMFx1MDAxY6ucY1xuundm81xmJ1LhqiFcdTAwMDXtg6/x6O04MDp2XHUwMDFlXHUwMDEwMrysmXU3q+B6XHUwMDA2SkRLXHUwMDAwqlx1MDAxY8aD8eMsMZixa3FRXHUwMDFih5vOvFx1MDAxYtitcD0u5WHSOuNGxpVheJdcdTAwMTltJEhcdTAwMDCfeTdLXHUwMDAwm9ZcdTAwMDI4oYVsmOLy8ihQOOB/g91cInCuYZ62KSvhRbhjzPFIv8HNmFx1MDAxM9CtRjrQuMLNcTewl6iBl6Fcblx1MDAxNEc0XHUwMDFlXG5cdTAwMTIkMe9cdTAwMDbMJriZ4LNH1TJigdSM4VxuZyjkSKY6Udo5XHUwMDA1XHUwMDAyXHUwMDAywFx1MDAwMJts5kBoR6xcdTAwMDMwgkfHoctHmlx1MDAwN3ZcdTAwMWQzXHUwMDE2ZChAjLZq1u0kJ1x1MDAwNl9cdTAwMTJaXHUwMDA3XHUwMDAzp1n0duBPQf9cdTAwMGJjNEM1IWdcIlx1MDAwMlx1MDAxMFx1MDAwNo2jXHUwMDAy5Fx1MDAxZCw4XHUwMDFkXHUwMDE1YWhcdTAwMWRAi3LsXHUwMDBlXHUwMDE4dveSXHUwMDA2POV2gqAlXGKjp1x1MDAxNLhzJqpN0lx1MDAwMFfAvkWBxPbPXHUwMDFlWlx1MDAxOD0qXHLcyFxuXHUwMDA3XG5cdTAwMDB4zdrR4aWKXHUwMDE5XHUwMDAwv0ZZ50zNXHUwMDFj3jiN+yX8c1FcdTAwMDOJmfhcdTAwMTW/QLtGSHjvuVxyJNox9lx1MDAxYqvaq6un/OVjml3kN7JxcfLEXHUwMDE4SFx1MDAxY4ZcbvFcdTAwMGb2XHTXIVx1MDAxM+X5+1xuVauFn4ZaOi3deZaFNKtcdTAwMTiFgPtbzVxyVlx1MDAxOeDDSODQnydwXG5EXuPUXHUwMDA1/Drmy2iLuVx1MDAwMDRk8H7aST9u9qvYSZxcYq6VsMB7aG+oiFZcdTAwMTNAjFxujFx1MDAxZbhcdTAwMDSNnzmYXHUwMDE5l5ODUSCcYHAv5lxcRFx1MDAwN1x1MDAxOVx1MDAwMrpcdTAwMTFGg4KBXHUwMDA0jKVnMlx1MDAwMlx1MDAwNzAwMFx0KFx1MDAwMIHDXGLKKNNcdTAwMDPTgulcdTAwMDZcdTAwMWNrKOq1mdxcZkaN5qAj4dFcdTAwMTJX/ERvXHUwMDA2t9FgioBUg1VoZ1x1MDAxYXCGXHUwMDExIFx1MDAwM66hbcDnWkR6zlx1MDAxMlxmsENXSPBEXHUwMDE42DtzmDTcOlx1MDAwN3ag5YbpkWGQXHUwMDE2XHUwMDE0XHUwMDAycFx1MDAxZvg0ks1jNsShXHUwMDFiP5jwXHUwMDAx3lx1MDAwZjTZKVx1MDAxY1+rRYj83qfc4Zmx3q+Fx2lcdTAwMTj4+WO1Jn/GbLnw7YlcdTAwMGaq3atDfb9fyz0lXbuDmVx1MDAwMEpcdTAwMTGUXHUwMDBlxqB01P01aJKAXHRcdTAwMDNCXHUwMDAzblx1MDAwNHPxiVxmP125M/ChXHL4MaE2fmr3XHUwMDFmN/vU7p/a/ffV7l6t5rc6k5coWlx1MDAxZbtmw4LzzuFcdTAwMDXmn4C4Mr2Le352uZcp6ie774RwjbOE63dcdE6qoDCKXGZcdTAwMWMtKaOzXHUwMDBmglx1MDAxM4lzXHUwMDAyWjDwXHUwMDAxXWg18ZLCm4aA/1x1MDAwYmqZXHUwMDA1k1x1MDAxYpOmXHUwMDFjmCHoVVBcdTAwMDE+pUW/d0yxg7I03Ei6XHUwMDAys/3jZiqmXG5wbIpcdTAwMTaNXWBcdTAwMGJcdTAwMTjXXHUwMDE01MZcdTAwMDJcdTAwMTPJrHZbcafl/KDQuFx1MDAxNzu9sjsvqqTPnmntQHcp0F5WaS5pNFx1MDAwMVx1MDAwNDQoY6C6XHUwMDE1WFx1MDAwNYwyXHUwMDE2L77vS1x1MDAwMFGgQMH6XHUwMDAx4ZRBQYxxKbZJyP9gXHUwMDBiyONw3N+S/5FvdrrVttfBSi/5Xucm1YXeblx1MDAwNH9cdTAwMTaazca/U+Wbkt9IeVx1MDAwZth0rPlCXGLBsi9Znt/62Fx1MDAxY67ltHSuXHUwMDE5OPPG8jNSxvsgoPbA4NVi/lxi09axWTu/Pi+enLVcdTAwMDeZ4kFtzaPrraTD3DBBXHUwMDE0WHyC4upmN1KgXHUwMDE4XGZ7XHUwMDEyxKaZREeFT4H5XHUwMDFmnE79JvQnwp/4pdKpp1dcdTAwMTl3U6pDcizM4lx1MDAxNsh3yV3Vd29214v9m1ZcdTAwMTawt1lVd+txs+mJgTKAl1hpJFx1MDAwM8pcdTAwMDZfSY7Mp4NcdTAwMTOnuVx1MDAxMsxYiXNBLH5p5NssTlxcloGuiUKHXHUwMDAzXHUwMDE0xoRkaiwuXHUwMDEwTO1pJ3FcdTAwMGUkXHUwMDE01HjGtFLCXGJcdTAwMWQyrVaU+7VMRE+V2djwXHUwMDE3j11cdTAwMDLAKciylmZcdTAwMDFcdTAwMDPz8ujUz7NK5qR0xbNb91x1MDAwZkf3g3bii+I7TYk2TMGrXHUwMDAy/aiRUlx1MDAxM5pcdTAwMTPLsKIrSIqNXHUwMDE0kVxcjrQynDfjXHUwMDFhnC/nKFiwoamJV3GlhHEwg8F9xlQyJ2QoRveDhFxmevbgPb1PZP9oXHUwMDEyWl1QK36Q8ZOeML7LpKRw9ZTxXHUwMDE0TFx1MDAxODbH+PzrfLZcdTAwMGWvM92T3N3NSe2oslNn9uZyRyZcdTAwMWXjYD9cdTAwMWFw3Vxmhf9cdTAwMTVjY5QkXHUwMDE0dDzXnHNcblx1MDAwNugnI/1ERlxuLcVcdTAwMWXLRuRcblx1MDAwNlxiVPHc0nqh1zZcdTAwMWF58bCTsZfNndszVuxv5pIuraBcdTAwMDQ4SIzFXHUwMDEwM+WOjjFcdTAwMTKnmjJlLMfMrrdPt38y0icj/Vx1MDAxY0Zcblx0xajVyXAzJi5cdTAwMTZgpOb9zc3dbbfZPCw8alo8PMp12jT5XHUwMDE4XHUwMDA3la+AdZhcdTAwMDOQsFCy58v6XHUwMDE4ojgwheDCMVx1MDAxNUqM+qSkn0BJJr7KpcY8QSpcdTAwMTbIkO+VXHUwMDBim4e7W5f9fuX0dOeukM1f0l9AXFyxuryR3FDOtdLR8JxcdTAwMDZRMVjtUjhcdTAwMDfSZM2yffpPTkp9ctJqOWlcbsi5XHUwMDAy7UfdXHUwMDAyZmc9kzlj5drm46CXKW2VWOvsId1OOsZcdTAwMWS3XHUwMDA0a1x1MDAxOEotpVVKXHLvgt93XHUwMDEy+99iSUypraLxy9Q+XHUwMDE5aeWMxGm8k8SF0oKJXHUwMDA1klx1MDAxYVpn7rKwa3k+v39/Xihdn/o7Mvn19zSWlce6y9pcdTAwMDDpRD163CRIg8NvXHKuMtDhXGaP5UirtsQ47GXwwqC/J01cYlNCOVx1MDAxMKJwXHUwMDFj/seqvXZcXGA/XHQpyYRcdTAwMTQ7yMG3J1xm7zL5iPP4qJ2hhnPDXHUwMDE3qOCnL8/Sj+XD/mDfbj/QXHUwMDBi61x1MDAxZFx1MDAxNvlW0iFcdTAwMGU+kiTQtVphYpLRIzU2XHUwMDFkYDxYa1x1MDAwMmRcdTAwMDBKX36G7VI/00eKZSTcPUdzXHUwMDA2ftLc4trf3G9cZlx1MDAwNufrO6fZcntLi2/eZqOffHHVjmDpY1xuTrtkemSZXGZcdTAwMDN/XzLcXHUwMDFkXHUwMDEz5JpcdTAwMGL5XHUwMDE5t/ukpFTifKTYRERcdTAwMTNf+TzIQ9Rq/lxmJXWRfzg9XyvVb/zNwk3ucr91vJP4erIsWIbPXHUwMDAxXHUwMDFiylCqRlOUcJcjoCqucLMsbaha1cY73OCqVydcdTAwMDTDXHLrJ2+e9WflXCLu89R/Q/9cdTAwMGKDu998b+T9es0vNz82y3BWXHUwMDFiVlkmzsZvXHUwMDE3XHUwMDAyZES1oHyBcPqh3Txpbd9cdTAwMTXvXHUwMDA31V1dza9cdTAwMWacm6viL1x1MDAwME5OLFx1MDAxOGJcdTAwMDauxUJcdTAwMWEj+YOUXHUwMDEzjOJcdTAwMDAymVx1MDAwNO05Jc39XeBUoJ6lcVpKY4LdacexmYhNsT5cdTAwMTCb7ON3w1x1MDAxYX3mMrbBis3d5fFxQ1x1MDAwN1RtXGZdYCdcdTAwMDR2e712lFx1MDAxZni5avbm+mq9tdV5TH6NRkYlI0y7oHIpSldcdTAwMDR6SnDgK8lxhaGmmsVHYt6XuiuIYHF13rgm0tIoWX5m7/5cdTAwMWHZu1x1MDAxM1x1MDAwNlx1MDAxNj/p0JguycRcdTAwMDW4xtMoOPlgTS+QhZ97ct9u2/dcIt3Y7OY2xfVuQzVcdTAwMWZcdTAwMTJcdTAwMGZlrrFQjaFg3VJAbXRcbkBCn+NcdTAwMTnOrFx1MDAwNZqj8Vx1MDAwMZf3WbiW49aS1lx1MDAxOGhAXGai9Z/Folx1MDAwNWBEwHHqznvs/JXqwF+lbi9Y07Jdalf60JFpOOI/eKly+7HVbX5v/F3o+9fdv1J7zS407oPLJi+xuXNxt3qb3VxmVmFssj74cUprvVx1MDAwMHc/5rbPVKZwVlnbzlx1MDAxYz3sn1t7nI5b+p9cdTAwMTjAa6RuTlx1MDAxZGDeXHRAWzRmhYBcdTAwMDdJx9I82lxuLtmKfFqDgXaHRaYwn4KpXHRm859cdTAwMDb4XHUwMDFi6KrK91x1MDAwNu6z/rxHOmDkpJCq+VdcdTAwMWZdWHm+pqxcdTAwMTKnXCJ+XHUwMDA1t5JaXHUwMDFi7lx1MDAxNoDpyY3OXaTT95li+WBXbd+vP9Y3LpNcdTAwMGVTQFx1MDAwN7GUa7C0wVhcdTAwMWSFaToowVx1MDAxNCTmoFx1MDAwNW4ke3uVjsmxZY7LIHBcdTAwMGJcdTAwMDRthOV24vo4MWZbI2rAOVho9uOtXHUwMDAwtUwqpkVYXHUwMDFl31I51kaOTlx1MDAwMehcdTAwMDZu6ZUqtcs3ftcrdyNS8iGwnNaAucDI1VQwxjq8Lt5KdtSAXHUwMDA00lx1MDAwNerl3LODXnX7PHewmcn4vM28vfPNgyWjsdJEN2eZcLSUkmCzXHUwMDBlI1x1MDAxMG1cdTAwMTEwasZcYrj8VFKLwShcdTAwMWRcdTAwMWZpsta+XHUwMDAxitJcdTAwMTCca3bA2YJcdTAwMWGmJiBcdTAwMTFcdTAwMWFcdTAwMDB+uJVSU2UklWPAXHUwMDE04I0rS3/+XHUwMDE0XHUwMDBmXHUwMDBmi+ynz/vjXHUwMDEzO8b4SY9ccu/wdl/CP1x1MDAxN5/iiVxyI1x1MDAxYlx1MDAwM342pVx1MDAwYmTA9bqnXHUwMDBmd/v5m+bN5l5z96h9INeFTj7NXG5cdTAwMDK9XHJeMPxcdTAwMGLvO7LZiOHEYYFoXHUwMDE4XHUwMDE5ody0LVx1MDAwM99jXGZrLGnBXHUwMDFj7n6tY7adToIt/CbovslcdTAwMTYuvezs0flYJ3bCY5dcdTAwMTFInp70XHUwMDEzspVGIWiNXHUwMDEw2i2Q1neeM0+b99XiTk/11nq32fJdP534jd+xWjVRUnGNfqdw0XlcdTAwMWPBJKFUc8clLi3n06PJn/uGhM88XHUwMDBihV/VhU3xuCH2XHUwMDFliidcdTAwMTfr1Dye69bi+4Ysgv43kVx1MDAxMZexoVx1MDAxOaa4dErwXHUwMDA1tlqf/NZJh1x1MDAwMlx1MDAxM1jDXWncdVx1MDAwMN55JKFcYqxPoCNBYVCUWi1cdTAwMTbA+9POOU61ktxNzjlQY6T08Vx1MDAxYoe8l5NcdTAwMTbdY/p7o9fx2mF+WerWITNcdTAwMTT45F2mx9s0XHUwMDE3a71UXHUwMDEzf1x1MDAxM2tJXHUwMDEzy1rMcKFRm8+ff1C8fdo+6ns6U8ie9LtmV1nXu0s6Vlx1MDAxZHdAXHRYXHUwMDE5nVx1MDAwNsmgUdriVFx1MDAxMKeclOB4aSxkN2UjyU/amkRbJ1t6w9Xvj9JcdTAwMWJe9061XHUwMDBmXHUwMDBlspWLm1x1MDAxMG39Nfm2r7tGXHUwMDFkeHZ7g1x1MDAxNvuF0lG/98S3c2fRp0SjXHUwMDFlyaPD8KZRYytmMSCIXHUwMDFiIM5ccrHJvZl0iGnQXWBcdTAwMDFTsFx1MDAwYulYnWLOQbg5XHUwMDE2XGJkuL/eKiFmXHUwMDE1oVx1MDAwMjxzXHUwMDBl1jpugzBhtuLPJEOkr3ap3F1cdTAwMTFcdTAwMWTOIIY4Olx1MDAxY2/VMlxiMX5O0caSoVx1MDAwNOtcdMvpLlx1MDAxMFx1MDAxZa1QpbrropS56z+Z3Vxmc6dcdTAwMWKJX5nFuDaAVGmkomBcdTAwMWFE04GEZIRcdTAwMWGQTpzHMGbKdlrv3FL5uWAn1aBcZoCcJ9RcdTAwMTNPxIzix0VR1l9gkOq3/S5OxWONyyBh9dle7MycYFxcUZzlTVxyW8Z0Y+xcZodS8Sl96GwxucC+6HfKXFyZe/8p3zZcclE833JrXHUwMDA39Fx1MDAxN1jKXCJcdTAwMTSWJpfGOEXtyMIr6TTh6FxiSlx1MDAwMT4hXHUwMDE1U1x1MDAwMqHvTOljXHUwMDA2gYJ5hTj1OWlbdEusYk5cdTAwMGJcXGKEy8TGi0cnJsHvc7Jj4tXxw4yf9PhcYlx1MDAwZm/4JfxzYaZm8W4rZzBwKODzl/VcdTAwMTA736p7j1c7qr9/9rTdWs9sXHUwMDBlLmqJxzlmXHUwMDBlgM0smVVOKVx1MDAxNcU52tRSMJxtXHUwMDEyaOm6VZG1doQpZm1Qh1x1MDAxZdNcdTAwMGI+2fpcdTAwMDcp+mgzX5fKSIxVXHUwMDBmXGJcdTAwMTWblbpuN+upfqla9386a7+lgStlb1x1MDAxOb/3OniNUlitXHUwMDE22K5tt7O1u7d7WK5sbvXuWrSc62eO0omHNahKXHUwMDAyeMLtIaljYiRwXGYqlVkhXHUwMDE1oH+Wo/xcdTAwMGX2/rVraX+S9cSrl11LO1x1MDAxNsVhIVx1MDAxZttzXHUwMDExt0pdpFxu5PRcdTAwMDBgQkFsnVwiyjnLuUaNpaPJXGKYkUcpXHUwMDE2M7VSqLfXw4/J98M5WKzlhXtOOzDJhn1cdTAwMWRaS66U5LhVqVx1MDAxMcDF8N9cdTAwMTiasU6F0eBH/Fx1MDAwZWhcdTAwMGU1zHt+9HNYKutnTrK8unP6WPFLZ4+q3miuXHUwMDBmi15cdTAwMDdUX+51glx1MDAwZVx1MDAwM70smVx1MDAxNJxLzaTRNmTpfq2WWthoRcDjYlhcdTAwMTY9XHUwMDE481dr958w3Gc3anqsLNSoNCVcdTAwMWP0rVx1MDAxM8KCLSUxdmPHWqVJ0Fx1MDAxNmONZrij8HiY/1fSYfHCXHUwMDFkfH1MrJel0oRcdTAwMTk9OCzDjO40Vl6YW6XlXHUwMDA2u61mdTd/kS9cdTAwMWVt0Oa5Xq/cJX9Gm1JOwGaXNthjeTSPmeE6XHUwMDAwS3HTasMwwyo+jfltao1cdTAwMTKBe6c7ZWmweffEiFx1MDAwMsBcdTAwMTRLzYDSgFx1MDAwYqVcdNU5+7FcdTAwMWKVVIKiZv5cdTAwMWS02u9oo8RcdTAwMGZzcHpshFx1MDAxN1x1MDAwNHhsQFx1MDAwMW5cdTAwMTdrs1DKcOe7+Vx1MDAwMZ7vrt2e3mUvisfr25XefvH8ktZcdTAwMTK/ToFRQYm0IJ1cXONuJzZqtDClXGKoOdyp3VLc2nBFK1xioVx1MDAxMWBcdTAwMTiBhteSXHUwMDAzjU52Qf6sgMKD79U/NkJcdTAwMTB94spTJ42Ldftx609cdTAwMDNcdTAwMTS7QL20TqNKL3Lpg0G1f8mKhceT7cKVSTz6QFx1MDAwMVx1MDAxMdxcdTAwMTZcdTAwMTVsOCpGgnlCXHUwMDEzoS1cdTAwMTg+TDPH4Gd8jd73TpC7XHSVp0Js+YuknDT8NZ0uptP7NL9/eNqopW/yl4eLpIZYrONcdTAwMWZaUbSqLVwi4+NdzFx1MDAxOGVcdTAwMDNcdTAwMGZsbsGf/NaJXHUwMDE3fKPBV1aOMlx1MDAxZFx1MDAxOJBRu9JwYkOiP3W6atWZIXws5vWRmSGLi+Qk1pk/M2TFXHUwMDE5ITO09CgjvTFcdTAwMTOE2beZg1LH5mwxdH+MXmRn+cPrb5etxyv+UNnrXHUwMDE0i1eZisjnWfKBabGCJzhLjFlcdTAwMWTesz34vlTE4npcdTAwMWEmXHUwMDA1oEDwKZT0ruXllHDDnFx1MDAwNMZcdTAwMDFqnLhcdTAwMDfxT66YhnuGy5C7u2prcFx1MDAxM5vWfvze+DtcdTAwMThyXHUwMDE4zlx1MDAwZp4+mtqAhWqlfXmhYFxcr1PoQq++Wlx0MF5+5aVrho1Bu7S/NjligEGDLy9IR0R5gcnxz5d//lx1MDAxZlO1WsQifQ== + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO1da1NcIsuy/T6/gpjz8W7q1PuxI27cwLeOXCJcdTAwMGU+XHUwMDE4Z05cdTAwMThcYi22XHUwMDAyjTxEPLH/+83scaRcdTAwMWJoXHUwMDFlXG7unnMgYkalobq6KleuzKysrH9/ymQ+d1x1MDAwNy3v85+Zz95TpVxc96vtcv/zXHUwMDFm+P6j1+74QVx1MDAxMy7x8O9O0GtXwk/edrutzp///Gej3L73uq16ueKRR7/TK9c73V7VXHUwMDBmSCVo/NPveo3O/+H/+XLD+99W0Kh222R4k6xX9btB++e9vLrX8JrdXHUwMDBltP5cdTAwMWT+zmT+XHUwMDFk/lx1MDAxZuld26t0y81a3Vx1MDAwYr9cdTAwMTBeinSQitF380Ez7CxcdTAwMTNGUsq11q+f8DtbcL+uV4XLN9Bnb3hcdTAwMDXf+rzt5063eW3/bFD1y+dcdTAwMDPVaFx1MDAwNpvXw9ve+PV6sTuo/1x1MDAxY4py5bbXjnSq021cdTAwMDf33oVf7d7i3Ufef/1eJ4BRXHUwMDE4fqtcdTAwMWT0ardNr9OJfSdolSt+d4DvUfr67s9R+DMzfOdcdP4yzFx1MDAxMGmFUkIzLi1cdTAwMWS2MlxiXHUwMDA3SMFVXHUwMDE4XHTNXHJ18JOPdGwzqMNcXEDH/kHD17Br1+XKfVxy+tesvn6m2y43O61yXHUwMDFiZmz4uf6vR5aGaLyRer106/m12y5cXHOGOCGUXHUwMDEzZnix44VcdTAwMTPBXHUwMDE59N1ay+zrXHUwMDE1vGtrv1x1MDAxYVxuxb+Gw99cdTAwMDZx2sevNHv1enRcdTAwMDSb1ZdcdTAwMTH8JTxD8Vx1MDAxMS/v/DV8LPz89qjYRUUvJn5d72n4rFx1MDAxMVl55OLszHvKtu/6deWflrkrn337/Pq5v/6Y3OyLoF3wI8/ubdFSv1g+6fee+V7+PH6XX/cvt9tBP9Luy2/DYem1quWfXCLNNEywklx1MDAxYaSBXHUwMDBmZaTuN+9Hx6xcdTAwMWVU7oco+Fx1MDAxNOnwXHUwMDE4/GLPXHUwMDFmQVx1MDAxZYvM5CjyLFx1MDAwNzGkTsi5kTd5NNOOPKmJs8Ixzlx1MDAxY1x1MDAwMEuMIE8y4pRcdTAwMDRccsWkWi3yrCVaOEeNXHUwMDE12jGA4DhcdTAwMDD5XHUwMDE47owxyliA6/thXHUwMDE3uzCGrymiqrR02i4gqsNeXHUwMDA1zW7Rf/ZCXHUwMDE1XHUwMDE3e3en3PDrg9ikhjJcZoNYLfuNIFtu+Z9jl3J1v4ZcIv25XHUwMDAyXfbaMWnv+kBbr1x1MDAxZmj41WqUiCpwv7Lf9Nr78/BH0PZrfrNcXD9N7lx1MDAwZYyAt/drzlx1MDAxOInM2nW54+HVXHUwMDEwX29CrGHJXFxJqdZUcT4/V3p9dlG5k/mNysbGIau2Olx1MDAxYk23nXbESq2JUMJcdTAwMTkuXHUwMDFkV8bEXHUwMDAxyyiRYDJQXHUwMDBlODJCRi6PXHUwMDAx1lXfjlYuOMLVYlx1MDAwZiybxJbRXHUwMDA3eWVJmCFcdTAwMDE9+1vhKqywOiqsb4Ar07F3p8A1V9jPdLw2yOqPZjZTxN86mXLm9GthM1x1MDAwM9fwzd2gXFzP+J1MN8hcXHuZs/zp17Pi6fbWj2Ym8+iXM3VcdTAwMWPQTKXuw8NlWu0guOn8aH7PXHUwMDA3Ve9/XHUwMDEwLZ1K2291/5WgXHLq3k13ii7oXHUwMDA2rSRFXHUwMDEwXHUwMDFikVHUf/xTzaVUnHybUuFm9N1fSkUxID3B3FCWZ+lcdTAwMTR1aNt7xUaubM9cdTAwMWWL5+emJ8q7X9OuU5S2XHUwMDA0NFxuo0xcdTAwMTmKiiOmVIRcdTAwMDP7W4BacVx1MDAwNvSKXHUwMDE2K9IpTEjCXHUwMDE4jLVxyjorxZBUhyZASpWK01qKqLCuVKmEODsoXHUwMDFl5zPwy8dcIj/h1vNx/nR4TnWSJWej775cdTAwMTK/oVx1MDAxYaSGLWCqu7NcdTAwMTNzs+ubXFypmLtcdTAwMGVcXL9QZI2HtINUU0mA0qPuJ35RKUfAXHUwMDE20DTumK5cdTAwMWTjdzjGxa+1r3tbrqb2ilx1MDAwZl/ucl+2XHUwMDFmjq6f5nWM+ZenYLv4dWen17lcZoKdrtwvuMGyXHUwMDFj44XNlzcxoohcdTAwMTDeWEhKWWWgXHUwMDBm85vZk0cz7WhcdTAwMTOMXGIrjVCMXHUwMDFh0D4uXHUwMDBlOqdcdFx1MDAwYt1UvjrMOUlcdTAwMDS6xNJYxdRE6KXUJV6Gjb2oS9z3rlx1MDAxM6jwvS7xXGa2mOxcdTAwMTLHurNcZpd4Kj2CP5hcdTAwMDRYjmEsrsG4m1x1MDAxYrCbtcrZ1VmW39i28jaP7jZ73Es9PTqKXHUwMDExJCG11Fx1MDAwMFx1MDAxNoDuXGJLXHUwMDFhwp2TillrjJV6pF9rpnxcdTAwMWJTVu9cdTAwMGLVyt75U7/W+OrlaL52MMhcdTAwMTVSyGiK8ySAMCqkXHUwMDA1wYiozFlcdTAwMDCZ/NRpXHUwMDA3XGKXRMNYS6aoMdzGnTxcdTAwMTBKYrTm0lx1MDAxYc1XXHUwMDBiXHUwMDEwplxi6CtrXHUwMDE4Z8pibHnNa1N4rVx1MDAxMVxc+1Glv1Rqm6HpJ1PbaI+WwW4/LeFcdMDVNtFcdTAwMTRcdTAwMTWCg9SqXHUwMDA1gjPTTfOU4lY7R6Si1EmhhKTxgK9cdTAwMTKaXHUwMDE4yqVSzDDF9VRr9O2Y1Vx1MDAwNiAruJFIX+BuT1idYc5cdTAwMTJuKNqqQlx1MDAxYlxu/Vx1MDAxOYUwY05Lx1x1MDAwNV1cdTAwMDKGxymOz6a4qVx1MDAxMVx1MDAxY7CzXHUwMDE3WXCMjHO53d3wm1W/WYt37CUvYFx1MDAxZSMyVFx1MDAwNpVcdTAwMWX2MktcdPSEgoZ0jjknwFxcMZGP1cotfFhBKFx1MDAwN/WJS3Poo4w/vNesXHUwMDBlO1x1MDAxNX+Ocqe7XHUwMDE5NFx1MDAxYX5cdTAwMTdGoFx1MDAxMPjN7ugnwkfKIVwib73y2DRAy9Fro9BtYYtxi2L4W2Yo2+FcdTAwMWavv//rj4mfTpQ7fGXHRW7Y3qfoz0WtXHUwMDA1K5PNaeMkXHUwMDE3nM9vLDz7XHUwMDA1/7a6s3vWPr/JPV6euifl5dKudFx1MDAxOLWMUMXRdVx1MDAwMN0j7EjQXHSuKlx1MDAwM9pXg1x1MDAxN+woXHUwMDE3I1x1MDAxZFtaSNhcdTAwMTFAprWSglx1MDAxNIClMFx1MDAxY/VXvSNTXHUwMDFhXHUwMDEy/th1potyXHUwMDFkZPBH8/v2Uyv4+1x1MDAxNobm6MZcXNaCeNtKjp2SSlx1MDAwNXYvxVXT+YErXHUwMDBmN56eto/2by+/nl9VS3vPrrrlpVx1MDAxZLhSXG5cIplcdTAwMDUlpaiV4PeP2Fx1MDAwYtZcdTAwMTCw8DV4oOBcdFx1MDAwMMBXXHUwMDA0XFxJXHRTXHUwMDAwXFz4j1x1MDAxOafthLWcNXBxXHUwMDE4c61WXHUwMDA27/G6nvo9XHUwMDBmV+ZAcDtcdTAwMWPG5UN4kVx1MDAwZS1cdTAwMDPL0+NaKnFplmlccjaxY1x1MDAwYuR79K9OmnuN2nZw4c4ujrpBseSub9JcdTAwMGVoYGJHKDXgmFx1MDAxYlx1MDAwMU6AjkeiwVx1MDAwMiRcdTAwMWGMQHBcdTAwMDDARJKROPU6sPWewNb2XHUwMDA1V/vnQXnjZPfxacP7tnf0ld2lMbAldFwiQrjjymq6XHUwMDAwQiY/ddpcdTAwMTHCKCPOgVx1MDAxYoAuMpUjoV+pXGah4CODMUvtalx1MDAxMcJcdTAwMTnRM1hvXHUwMDFk2Vxus/VbQdZrVurlx1VFtmbo+lHWm9yjZUS2wk9NXHUwMDAwLvj3cvTtV+RKQVx1MDAxOcirmj+loVjpZWt3O7VqLk9cdTAwMDfKZoXI18tcdMhcdTAwMWRB4N+WdaRcdTAwMThcdTAwMTHKSCPgnzGRsFBcYltKpKPaciUpZZqP9mtcYlshxFTM/uPm5mZcdTAwMWOs1lx1MDAxMs40OLJcdTAwMDZcdTAwMThWXGIzKaTFXHUwMDA0seDmUrSWwZaOdOElolx1MDAwNaTLXHUwMDA1eFx1MDAxZEO3I4rdIVudndjC9sbgyTP9Ru7L4+PxXufy4Fx1MDAxN5v8vYGvNyN/JPA1XHUwMDFhI/qY6FPs2lJDT5RwXHUwMDA3plx1MDAxN3cgXHUwMDFjQmCASUS/bzWGRyy4WFx1MDAxY+NSxs5uj0IjTIC0gcBbisJcdTAwMTdt0ClipdNcdTAwMDJcXCdjmdQzXHUwMDFilERJIVx1MDAxMCNcdTAwMWNaNsN0OXxcdTAwMDH6XGK1XFxbabikXHUwMDBlzIBZzYFcdTAwMWQpgLS4VVx1MDAwMDdcdTAwMDCdXHUwMDE08fZcdTAwMDTRWnFwo52gmlx1MDAxYTGze7ixXHUwMDAwXHUwMDE0mWZGKeGUjjcnXHSMgVx1MDAwMbZ0TMHwzuye4UQq6Fx1MDAwMVx1MDAxOLqUwtd4vDlcdTAwMGVcdTAwMDZcdTAwMDBcdTAwMGVcdTAwMWXwNzysmdWaVfB5XHUwMDA2ukVLwC+Y1rGZsFx1MDAwNLddXHUwMDE5MFoxnVxcsJmtgfVcdTAwMGKfx5RrJq0zbmReXHUwMDE5Rr2Z0UaCXHUwMDA08JmtWcLAdFx1MDAwMFhcdTAwMWHoYSSt7eVWoIfAu6e4X1xumpynb8pKeFx1MDAxMO5cdTAwMThzPDZu0Fx1MDAxOHNcdTAwMDKG1UhcdTAwMDeKWLg5Wlx1MDAwM/OKXHUwMDFheFx1MDAxOKoofDXaWlx1MDAxNiRIXG6GXCIkoTHBZ8+qZcQyp43hYDY5KuPtgYRr51x1MDAxNFxiXGJcdTAwMDBcdTAwMDNMuJlcdTAwMTOhXHUwMDFksVx1MDAwZcDIuFx1MDAwMdtXjHRcdTAwMGbMQGYsyFCIXHUwMDE4bdVMXHUwMDEx5sTgQ0LvYOI0izdcdTAwMDdeXHUwMDE5jL8wRjNUXHUwMDEzciZcIlx1MDAwMGHQOSpA3sHg03FcdTAwMTGG3lx1MDAwMbQox+GAaXcvyZJTmlx1MDAxM1x1MDAwNFxyR5g9pcApNHFtklx1MDAwNbhcdTAwMDL2LVxuJPZ/9tSG61x1MDAwZVx1MDAwNlx1MDAxYbLCgVx1MDAwMlx1MDAwMLqzdnR6McRcdTAwMGXg1yjrnKmZ05ukcT9Ffy5qODHDk11cdTAwMWVwd3CtbFx1MDAwMZeHdoz9xmr2+vq5cDXIssvC1nZSeD41hlx1MDAxM4e5Qlx1MDAwNVx1MDAwMHZcdTAwMGLXXHUwMDEx0+Xn91x1MDAxNepWXHUwMDBiP1xytXRaVugsy2nWji1cdTAwMDHtW81cclpcdTAwMTKRJPphWIDAJZB5XHJqVsKvY76PXHUwMDA2YVNcdTAwMTjhWNtP/2n2XHUwMDEzJ4JrXHUwMDE4XHUwMDFk4EO0Q1RM21x0IExcdTAwMDXGXHUwMDEwfFx1MDAwNI2iOVx1MDAxOJtBe2AsXGInXHUwMDE4tMWAXHUwMDE24kRcdTAwMDY6XHUwMDEzXGKTguFcdTAwMDRMpmcyXHUwMDA1XHUwMDA3jDAwXHUwMDE1KOCD4zbPuFx1MDAwNVx1MDAwMFxmXGYmXHUwMDFkcK+hqO9mcjZcdTAwMTg7moNAwK0leG0jjUEzXHUwMDFhTFx1MDAxNFx1MDAxMHawXHUwMDE27UzDzjBcdTAwMDIkwTX0XHJ4XovYyFmCYX1cdTAwMThcblx0jlx1MDAwYlx1MDAwMztoXHUwMDBlU4db58A+tNxEkpzwJYDNQU9cdTAwMDAnglx1MDAwYiTZPOZEXHUwMDEy6PFcdTAwMDVcZlx1MDAwMcpcdTAwMTfMQ1x1MDAwMDXOr9VcIkKK71P6dsrOP1xyXHUwMDFkcWKB/H9TOGe2Uvz2zJ9q3etj/XBYzz+nXeeD9aBwR7LFSJaOO8tcdTAwMDYtXHUwMDE1sGxAZsC7YC55i87frvJhJo1cdTAwMDH3JtLHtc7PrHX+hObWOv/n6z9cXOd79brf6kze9lx1MDAwNZ5QktrH5T/F+Fx1MDAwMnnt16Z3+cDPr77kSvrZXHUwMDFlXHUwMDAyZbjmecrVvlx1MDAwNJdWUJhFXHUwMDA2bpmU8aVccsGJxFx1MDAwNVx1MDAwNy1cdTAwMTh4jE7akX69O0ZqXGJ4y6CtWbhyMmk9g1x1MDAxOYIuXGKmVmiLXvKYvsd9o9zA/1x1MDAxZqbvP25cdTAwMTlkqlxcJ2apsMRcXHTAXHUwMDExjJRZZE2b1e+q7qxSeCo2XHUwMDFmxH6v4i5KKu0rdlo7UGlcbpSaVZqP5rSCYmVcZjS6XHUwMDAyXHUwMDFiglHGkqX6fTkqXG70KthKILNcdTAwMThUNFx1MDAxM4TbrlNUYFx1MDAxNFx1MDAwYkGnW2t7XHUwMDFk3NZf6HVuM12YhGb4ZzFcYpp/Ziq3Zb+Z8Vx1MDAxZbHruMGfXHUwMDEwgnv8t3lh92PTz5bT07lW/cz0rJbEfHaYvEQ/xoFcdTAwMTfDlFxcwJHZ/Wo2Lm4uSqfn7adcXOmovuHRzVba0W+YIFxu7ENcdTAwMDGKzmFcdTAwMTGTXHUwMDE4+sE7IGHcm0n0dvhcdTAwMTT0v2etXHUwMDFljEFOXHKmlE7aVsnAUrRcdTAwMTN8lzRnsP/eTslK08izXHUwMDEzZvvn+y9cdTAwMTO9oMU6NWdccmQk0WRcdTAwMDVaY8ZcckV6XHUwMDE2vvPXjYPbg81S/7a1XHKA3Kmp+82kVf3U4Fx1MDAxYlx1MDAxME2sNJJcdTAwMDG9UyxcdTAwMWZcdTAwMTZnd/BcdTAwMDM1V4JcdTAwMTkrcfGJJe80e5vRKiRoXHUwMDE3LFx1MDAwNYU+XHUwMDBiaJFcdDnjuLc7XFxL1E7iosvYVlx1MDAxNaWEXHUwMDExYPquXHUwMDAy5nOkrH2YiZpcdTAwMThui6jdUZaCiVx1MDAwMy+Vy/lcdTAwMTOpr07O/Fx1MDAwMqvmTsvXfHv34fHk4amd+pqUTlOiXHJTWoI5XHUwMDBlYlx1MDAxYU+71JxYZlx1MDAwNbhnUuKSolxcslx1MDAxMDNcXL/jXHUwMDFh3DrnKFx1MDAxOMGRXHUwMDE1klcppoRxsKTBMcdcZjgnZCQo+IuwXGbGXGbAL1uJJP9XXHUwMDEz1uqiaMlzj6/shGlfJn1xnpyWZiTGdlx1MDAxN9hwuXt8k+ue5u9vT+sn1f1cdTAwMDazt1f7MvXIXHUwMDA3XHUwMDBi1IBPaCj8U4yN8ZdQMO5cXHPOKZiwa/pKXHUwMDFmfZnkTcNcdTAwMWFTQ1x1MDAxY50/wnKpN7aaXHUwMDA18bifs1fB/t05K/V38mmXYdBcZlx1MDAxY+TIYqCbwuOOsVx1MDAxN6dcdTAwMWGrvVmO2Whvz1x1MDAxMFiz17yCvGYvfK2cvYY5X2M7d1x1MDAxOVx1MDAxYWxg2c5cdTAwMGb94OH29v6uXHUwMDFiXHUwMDA0x8WBpqXjk3ynTdNcdTAwMGZ94Fx1MDAwN1x1MDAwNVx1MDAxNMVcdTAwMWNgh+mRao5cdTAwMTL0XHUwMDAyZ7iHWTimXCI5Xmv+Slx1MDAwZn/ZxGqHQlx0TPtcdTAwMTXzx1x1MDAxMHqV4s7xwe5Vv189O9u/L25cdTAwMTeu6G8gxFjm2EhuKOda6XiMUINcdTAwMDBcdTAwMTkseiicXHUwMDAzXHUwMDE5s2bZMYQ1gY1L8prA8LVqXHUwMDAym1x1MDAwMn3mrJJgtC3gfzVyuXNWqe9cZp56ufJumbXOXHUwMDFms+20Y99xS1x1MDAxY5dOaimtUip+JoGTOFx1MDAwMVx1MDAxNisjSm1cdTAwMTVN3s635q+/i7+iSVx1MDAxOaNCrMAgXHUwMDAxw8PNv8jVOndXxVx1MDAwM8tcdTAwMGKFw4eLYvnmzN+X6a+2plx1MDAwNTFcbqv1alx1MDAwM1x1MDAxY1x1MDAxNY8hMHDOtNHSXHUwMDFh3HWhmVl2+FBbYpxgXHUwMDAyd5ZcbujBhLVtSihcdTAwMDf+XHUwMDE0uOjoNMeM/vGKTWv++v34K3Huw29PmPVl0lx1MDAxN1x1MDAxN8nRQ6XB51jI/9JX59lB5bj/dGj3XHUwMDFl6aX1jkt8N+3Ix3qSXHUwMDA0hlYrzMgyeqTQolx1MDAwM+iHW3KAOoBcIuQ6frgw6of9XZn/lchfOGhWUDv/6ld/57D59HSxuX+2XWnvavHN22n20y/EXHUwMDFhq1x1MDAwZcJAcFx1MDAwMVx1MDAxY6BHtlx1MDAxODFGlGRKglx1MDAxMUxcdTAwMDHUclx1MDAxZEBcXL0k/7fw18r9r8S8zGTUXHUwMDFijDK4XHUwMDA1at6ry8Lj2cVGuXHr71x1MDAxNG/zV4etr/uprzTKwoJcdTAwMDdcdTAwMWNcdTAwMTCjXGalajQzS4JFXHUwMDBitMZcdTAwMTWe+IT1XHUwMDE2p1x1MDAxNFx1MDAxYn1XYiY3uJHYXHTBqFx1MDAwMlx1MDAxZs9MyNBKc/GwN4H6TZmZhzzzPzAtwuBpLD+aXHUwMDA1v1H3K8HH5lxczurDSuv9ucRgXHT4X8pcdTAwMWGxwDrfsd05be3dl1x1MDAxZZ5qXHUwMDA3ulbYPLow16XfXHUwMDAwspxYXHUwMDEwPFx1MDAwM5/FQiYjyZSUw4hTXHUwMDBleGUyPFt1NZBVoLOlcVpKY5RwXHUwMDEzT29cXCNcdTAwMTbRwj7+zKbRey7jsKbE/GaeXHUwMDFjv8TxZsouXHUwMDEw+WF3N1x1MDAxYieFJy9f2769ud5s7XZcdTAwMDbpr8DJqGRcdTAwMDSkK6xXK6lcdTAwMWKpsy84kJvkuJVTU0BlMiDfld4siGBJ1fq4JtLSOLP+Llx1MDAxOc6/r8W80lxm51x0842vbGSql2QlO5NcdTAwMTjh4eE2L7vA/oX8s/t2135cdTAwMTDZ5k43vyNuXHUwMDBlmip4TD3AucbyQYaCgUxcdTAwMDHL8fVcdFx0Q45XOLNcdTAwMTY4cdqRye8yki3H01x1MDAxMq0x0IFcdTAwMDSc6zXlwjBcdTAwMTaBPlx1MDAwMd2Ze2/Q+SPTgb/K3V64SWiv3K72YXyz8I7/6GUq7UGrXHUwMDFi/Gh+L/b9m+5cdTAwMWaZL0FcdTAwMTc698EltJfY3bmIXr3N9Fx1MDAxNlwi0VlcdTAwMDZcdTAwMDGjli6QXHUwMDFmfnqr85fZ7EOuVDk6UHtcdTAwMGabg8bWVdq1gHGOWMo1sD1cdTAwMTAmk/FcYlk2rMJcdTAwMTPmLqBcdTAwMTVgJHt7SYbJITKOKeiYjKuNsHzyIcxijN8tRsSwRNLvjv/IXHUwMDA2hVx1MDAxOfjfwkNrMuV25dbvepVuTHg+pKL2tFx1MDAwZcxcdTAwMDVRrt5mi7Mp5fA1sFx1MDAxM1OLnGPxwI56tb2L/NFOLufzNvO+XFzsXHUwMDFjLVx1MDAxOaXVXHUwMDAwba1lwtRSSsLjI/A09Fx1MDAxMarWjFx1MDAxMXCaqaRcdTAwMTb9Z53sXHUwMDFjW2vfXHUwMDAwUWlcYi6wOeqcoIapXHRcYoVcdTAwMGWAj2Cl1FSB8STHXHUwMDAwKzj6THRcdTAwMWTB/r3s8cSpx1d2bNaXZJvbKclDXFxpKrBcdTAwMDbl3IDvdc9cdTAwMWXvXHUwMDBmXHUwMDBit8Htzpfg4KR9JDeFTj8tXHUwMDBiXHUwMDAyw1xyNjr8b+jocVmGXHUwMDEzh7WGYWqEctOOy3qPca51eJI5nlx1MDAxZqtcdTAwMTNcdTAwMGVuXZvmiMCXsyY6XHUwMDFma2JPuO3KXHUwMDBmMOcqOTFcdTAwMWS3aVx1MDAwMDLnT+u7yJvnnYdaab+nelx1MDAxYr277cp9P5v6XHUwMDEzlbHwMVx1MDAwMVx1MDAxMeNcdTAwMWE0XHUwMDFlXHUwMDE3Llx1MDAxZalcdTAwMTZMXHUwMDEyXG5urONcdTAwMTI3XHLz6YGx9UFcdTAwMTaj3088yMKv6eKOXHUwMDE4bIkvj6XTy01qXHUwMDA2XHUwMDE3urX4QVx1MDAxNkvLuUjiLi5cdTAwMTO3zWOpU6rmh8fkR047PJjAXHUwMDEy4UpjrXtcdTAwMDWjXHUwMDExdyjBgFx1MDAwNeZcdTAwMTLUXHUwMDAyb6nV4lx1MDAwM1x1MDAxY0vtnONUK8nd5PVXNcZfqTnG4t2e5YJcdTAwMDe0/mj2Ol47SkVLPchihq6ffETreJ/mXCK4l1x1MDAxYdZvXCI4aZJLXHUwMDA2KCtRnNj8m1ZKd897J31P54rbp/2uOVDW9e7TXHUwMDBlYcdcdTAwMWSwXHUwMDA31uOmYW5dnOE4XHUwMDE1xCknJbh0XHUwMDFhI+VTXHUwMDBlTVxcM1xcJjP6/USGO93VW67xcJLd8rr3qn10tF29vI0w3Fx1MDAxZpObfT3x6Mize1u01C+WT/q9Z76XP4/fJVx1MDAxZWdZhDk1XHUwMDFlXHUwMDBlsnLmlDaxRlwi+5mBLtX8yJs8mmlHnlx1MDAwNpUmtKNgWdKx6ricg8xzLDTHXHUwMDA0Wy3yrFwiVIDPz7miWJN/QlwixJo6IzSFZNcuV7orXCLPXHUwMDE5NJJEnuO9Wlx1MDAwNn0m4Vx1MDAxN4uxJlx1MDAwMdhZJeDfXHUwMDAyzPlQpUp1N0U5d99/Nlx1MDAwNznmzrZSv1uGcW1cdTAwMDDAXHUwMDEyJJFKQ+MpXHUwMDEzQjJCXHJgXG7XWYyZclx1MDAxMtQ7XHUwMDBmXHUwMDFi/llcdTAwMGZcdTAwMTLsXHUwMDE0boDKJ1x1MDAxNLdeL6jiKG6+oCPTb/tdXFyYxFx1MDAxMophXHUwMDA24E+jXHUwMDEz3vl+WszU/etcdTAwMGZeOn1Tx5axSJq4XHUwMDAyo3RyQFYp9K/sXHUwMDAytV7vlbk2XHUwMDBm/nOhbZqidLHrNo7ob7CTQCgslC2NcYrakd0w0mnC0cuUXHUwMDAyPFx1MDAwNCqmXHUwMDA0ZN+ZXHUwMDBlxVxmYMRhTlx1MDAxNi7ZTjpI3Fx1MDAxMlC0Tlx1MDAwYoGGM3OReMQ6Oeq3XoxJnn18Zccnftjgp+jPhYmdmURiZ1ZbgUwzf1hL7H+rfVx1MDAxOVxc76v+4fnzXmszt/N0WU89/DFcdTAwMTFcdTAwMDIsb8msckqpOPzRMpeC4WqYQHvZrYrbtSNcZqwoXHUwMDFiXHUwMDE2S+d2XHUwMDEy/tfkXHUwMDFl41BcdTAwMWYt75tyXHUwMDA1ebTmXHUwMDAx/2K3MjftoJHpl2tccv9vJ/m3dHClZC+nXHUwMDFjVo4nXHUwMDEzW9w8MzfaXHUwMDBmOrtcdTAwMDdfXHUwMDBljivVnd3efYtW8v3cSTb1aFx1MDAwN1xySlx1MDAwMGZ4XHUwMDEwXCJ1TIzEsEHTMiukXHUwMDAypTDLXHUwMDBif1x1MDAwN9f/R1Z2XlP7xE8vu7Jzci5VMrg5XHUwMDA1jlx1MDAxM+A+zlx1MDAwZu7pUceUgttaPMAyLC2Ax/voeE1Brlx1MDAxOdGaW2eYtphcdTAwMTP5dngnZFNxXHUwMDAy+ESQgmJhwk3cXHUwMDEyXGZWlbRcbiw551x1MDAxOFx1MDAxN3LCjmCKa+064nWlXHUwMDA356CBXCI5aG/HeaRj3s9b/4yGbfu5021e2z9cdTAwMWJU/fL5QDWaweawXHUwMDBlc2hcdTAwMWJUep1wXHUwMDFjQZHDXHUwMDFjXG7OpWbSaFx1MDAxYrGYP9fKrVx1MDAxMFx1MDAxMFx1MDAwNFx1MDAxYzqGXHUwMDA1vPE0U/NqNVx1MDAwZlx1MDAxZj6mYpI6NT1EXHUwMDE36VSWXHUwMDEyXHUwMDBlXHUwMDAy4Fx1MDAwNKhDbiSGjOxYrzRcdPtirNFcZlx1MDAwZttcdTAwMWRfdPidtFuiyIffXHUwMDFlXHUwMDEz9mXpulxibEZUneVcdTAwMTKLXHUwMDAyLFx1MDAxMI7MP1x1MDAxZLSC2kHhslA62aLBhd6s3qd/LZ5STsDyh9HFw4dHk7uZsXjCKp7mbFx1MDAxOKaRJed2v03VUVwi8FBxpyxcck+1nlx1MDAxOK5cdTAwMDCQYnFcdTAwMTEnOHxQmkhcdTAwMWSsX1x1MDAwNy+B5UCVcytZzVubNCszaZJnP7w8NvFcdTAwMGLCPjFawU1yilx1MDAxYXWSc7VI6blCd+Pu7H77svR1c6/aOyxdXFzReuo3dTAqKJHWSdzYXHUwMDAxKtXG00eZUmBcdTAwMDFcdTAwMTk82txSPN1vRZu7oFx1MDAxM0YxZ4WWXHUwMDFjyHWyJ7NcdTAwMGVXwDA++l7jY+NcdTAwMGbxO648b9S45KCC1Uo7rlx1MDAxNiio1WnW6GU+e/RU61+xUnFwule8NqlcdTAwMDcl6DmCXHUwMDA3hoLBR8VIXHUwMDA0UWhcIrRV0jHNXHUwMDFjg5/JpWDfu7Y/yeOIkOvvnUTT9Dd0tpTNXHUwMDFl0sLh8Vmznr0tXFxcdTAwMWSnME3UTlx1MDAwYrJcdTAwMTmgKM3N/Nbp5KdOPVx1MDAxZYwmXG6PW2U6NEPj1qnh6Fx1MDAxOLxcImLqitqqc134WKDtvzDXZcU5LjN0+ih/vTG3hdm3XHUwMDE5lTL5KFx1MDAwZdCUkmG1+vm3JFx1MDAxZN98u2pccq75Y/VLp1S6zlVFocDSj1eLXHUwMDA1IcFcdTAwMTNjQNnRI9HD70tFLO5IYlJcdTAwMDA4XHUwMDA0n0Jg77EpXHIl3DAw45lcdTAwMDBcIp14lu+6qFx1MDAxNo7iXHUwMDBldq09+NH8XHUwMDFlSlx1MDAwMszyXHUwMDA3r3BN7cAyymklXHUwMDA2fixLTldcdTAwMTGWK2HoXHUwMDAy5Hr37Uv/ytRP6/dbO3zj4LTQft7/mnawOoq2JrPcofsnXTyTVOHRhlx1MDAwMGdqJaBa2CnL1e/agWFcYvj34V5cdTAwMGY8XHUwMDA1eZLhyYB9hWGCgVx1MDAwMyC5iVx1MDAxY9r1XHUwMDBiulx1MDAxNHBDhVhcdTAwMDZ0l1x1MDAxZP7RoO1cIjGtdfgn8oFs4uSHV8fmfdjep+hPNNjDO+Bux2JcdTAwMTfG/3VcdTAwMWVBXHUwMDBl/OqLWlx1MDAxYz4mOrb9jclcdTAwMTFKXGZSfnqZbMStXHUwMDE3XG7FX5/++n+63lxySyJ9 + - daimo-apidaimo-clientAPI server- Serves a TRPC API- Goal is to be UNTRUSTED via light client proofs[Node+typescript]TRPC JSON RPCdaimo-webdaimo-mobileWallet[Expo+typescript]App link server[Next+typescript]expo-enclavePostgres- Push tokens- Soon: chain events ...via E2PGL2 + 4337 RPCPimlicoL1 RPCSigning keys, signaturesHardware-native crypto[Swift, Kotlin]SharedAPI client[TS lib]Daimo architectureapp linksdaimo-useropdaimo-contractContract writesvia 4337 userops[TS lib]Contract interfacesgenerated from wagmi[TS lib]viemcontractFoundry[solidity] \ No newline at end of file + daimo-apiAPI server- Serves a TRPC API- Goal is to be UNTRUSTED via light client proofs[Node+typescript]TRPC JSON RPCdaimo-webdaimo-mobileWallet[Expo+typescript]App link server[Next+typescript]expo-enclavePostgres- Push tokens- Soon: chain events ...via E2PGL2 + 4337 RPCPimlicoL1 RPCSigning keys, signaturesHardware-native crypto[Swift, Kotlin]Daimo architectureapp linksdaimo-useropdaimo-contractContract writesvia 4337 userops[TS lib]Contract interfacesgenerated from wagmi[TS lib]viemcontractFoundry[solidity] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a2bd7cbf5..6b9d81542 100644 --- a/package-lock.json +++ b/package-lock.json @@ -255,85 +255,28 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { - "version": "7.22.9", + "version": "7.23.2", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.11", + "version": "7.23.2", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.11", - "@babel/parser": "^7.22.11", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.11", - "@babel/types": "^7.22.11", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", @@ -347,14 +290,33 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.23.0", "license": "MIT", "bin": { - "json5": "lib/cli.js" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6" + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/traverse": { + "version": "7.23.2", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/core/node_modules/semver": { @@ -365,10 +327,10 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.10", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.10", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -388,21 +350,21 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.10" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -430,13 +392,13 @@ "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.11", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -458,7 +420,7 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -480,7 +442,7 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", + "version": "0.4.3", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -494,18 +456,18 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", + "version": "7.22.20", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -522,34 +484,34 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -576,12 +538,12 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", + "version": "7.22.20", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -591,11 +553,11 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", + "version": "7.22.20", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -643,114 +605,86 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", + "version": "7.22.20", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", + "version": "7.22.20", "license": "MIT", "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.11", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.11", - "@babel/types": "^7.22.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.13", + "version": "7.23.2", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/@babel/helpers/node_modules/@babel/parser": { + "version": "7.23.0", "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", + "node_modules/@babel/helpers/node_modules/@babel/traverse": { + "version": "7.23.2", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", + "node_modules/@babel/highlight": { + "version": "7.22.20", "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.22.14", + "version": "7.22.5", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -760,7 +694,7 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -773,12 +707,12 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/plugin-transform-optional-chaining": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -835,7 +769,7 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.22.5", + "version": "7.22.17", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1234,12 +1168,12 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.11", + "version": "7.23.2", "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/helper-remap-async-to-generator": "^7.22.20", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1278,7 +1212,7 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.10", + "version": "7.23.0", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1320,16 +1254,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -1340,13 +1274,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.22.5", "license": "MIT", @@ -1362,7 +1289,7 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.10", + "version": "7.23.0", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1458,7 +1385,7 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1540,10 +1467,10 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -1554,10 +1481,10 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.11", + "version": "7.23.0", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1569,13 +1496,13 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.11", + "version": "7.23.0", "license": "MIT", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1654,14 +1581,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.11", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1699,7 +1626,7 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.12", + "version": "7.23.0", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1714,7 +1641,7 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1783,14 +1710,14 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1853,14 +1780,14 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.10", + "version": "7.23.2", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", "semver": "^6.3.1" }, "engines": { @@ -1944,11 +1871,11 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.11", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.22.5" }, @@ -2015,15 +1942,15 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.14", + "version": "7.23.2", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.10", + "@babel/compat-data": "^7.23.2", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -2044,39 +1971,39 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.11", + "@babel/plugin-transform-async-generator-functions": "^7.23.2", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-block-scoping": "^7.23.0", "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-classes": "^7.22.15", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-destructuring": "^7.23.0", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", "@babel/plugin-transform-dynamic-import": "^7.22.11", "@babel/plugin-transform-exponentiation-operator": "^7.22.5", "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.15", "@babel/plugin-transform-function-name": "^7.22.5", "@babel/plugin-transform-json-strings": "^7.22.11", "@babel/plugin-transform-literals": "^7.22.5", "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.11", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", + "@babel/plugin-transform-modules-amd": "^7.23.0", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-modules-systemjs": "^7.23.0", "@babel/plugin-transform-modules-umd": "^7.22.5", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.22.5", "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", "@babel/plugin-transform-object-super": "^7.22.5", "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.12", - "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-parameters": "^7.22.15", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-property-literals": "^7.22.5", @@ -2092,10 +2019,10 @@ "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.11", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", + "@babel/types": "^7.23.0", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -2114,11 +2041,11 @@ } }, "node_modules/@babel/preset-flow": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "@babel/plugin-transform-flow-strip-types": "^7.22.5" }, "engines": { @@ -2141,14 +2068,14 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.11", + "version": "7.23.2", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.11", - "@babel/plugin-transform-typescript": "^7.22.11" + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-typescript": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -2158,7 +2085,7 @@ } }, "node_modules/@babel/register": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", @@ -2174,20 +2101,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register/node_modules/source-map-support": { - "version": "0.5.21", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/@babel/regjsgen": { "version": "0.8.0", "license": "MIT" }, "node_modules/@babel/runtime": { - "version": "7.22.11", + "version": "7.23.2", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2197,29 +2116,39 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", + "version": "7.22.15", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.23.0", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/traverse": { - "version": "7.22.11", + "version": "7.22.5", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.11", - "@babel/types": "^7.22.11", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2227,19 +2156,12 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.22.11", + "version": "7.23.0", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2876,25 +2798,6 @@ "ws": "7.4.6" } }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/@ethersproject/random": { "version": "5.7.0", "funding": [ @@ -5441,7 +5344,7 @@ } }, "node_modules/@jest/create-cache-key-function": { - "version": "29.6.3", + "version": "29.7.0", "license": "MIT", "dependencies": { "@jest/types": "^29.6.3" @@ -5451,13 +5354,13 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.4", + "version": "29.7.0", "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.6.4", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5485,15 +5388,15 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.6.4", + "version": "29.7.0", "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -5767,6 +5670,64 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "license": "MIT", @@ -5818,7 +5779,7 @@ "license": "MIT" }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.1.1", + "version": "1.1.2", "license": "BSD-3-Clause" }, "node_modules/@lit/reactive-element": { @@ -6011,6 +5972,126 @@ "node": ">= 10" } }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.4.tgz", + "integrity": "sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.4.tgz", + "integrity": "sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.4.tgz", + "integrity": "sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.4.tgz", + "integrity": "sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.4.tgz", + "integrity": "sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.4.tgz", + "integrity": "sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.4.tgz", + "integrity": "sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.4.tgz", + "integrity": "sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", "dev": true, @@ -8110,6 +8191,47 @@ "prompts": "^2.4.0" } }, + "node_modules/@react-native-community/cli-clean/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/@react-native-community/cli-clean/node_modules/execa": { "version": "5.1.1", "license": "MIT", @@ -8131,6 +8253,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@react-native-community/cli-clean/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-clean/node_modules/human-signals": { "version": "2.1.0", "license": "Apache-2.0", @@ -8138,16 +8267,6 @@ "node": ">=10.17.0" } }, - "node_modules/@react-native-community/cli-clean/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@react-native-community/cli-clean/node_modules/npm-run-path": { "version": "4.0.1", "license": "MIT", @@ -8165,6 +8284,16 @@ "node": ">=6" } }, + "node_modules/@react-native-community/cli-clean/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-config": { "version": "11.3.6", "license": "MIT", @@ -8177,13 +8306,47 @@ "joi": "^17.2.1" } }, - "node_modules/@react-native-community/cli-config/node_modules/argparse": { - "version": "1.0.10", + "node_modules/@react-native-community/cli-config/node_modules/ansi-styles": { + "version": "4.3.0", "license": "MIT", "dependencies": { - "sprintf-js": "~1.0.2" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-config/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, + "node_modules/@react-native-community/cli-config/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/@react-native-community/cli-config/node_modules/cosmiconfig": { "version": "5.2.1", "license": "MIT", @@ -8197,6 +8360,13 @@ "node": ">=4" } }, + "node_modules/@react-native-community/cli-config/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-config/node_modules/import-fresh": { "version": "2.0.0", "license": "MIT", @@ -8208,23 +8378,12 @@ "node": ">=4" } }, - "node_modules/@react-native-community/cli-config/node_modules/js-yaml": { - "version": "3.14.1", + "node_modules/@react-native-community/cli-config/node_modules/parse-json": { + "version": "4.0.0", "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@react-native-community/cli-config/node_modules/parse-json": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { "node": ">=4" @@ -8237,6 +8396,16 @@ "node": ">=4" } }, + "node_modules/@react-native-community/cli-config/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-debugger-ui": { "version": "11.3.6", "license": "MIT", @@ -8275,6 +8444,47 @@ "node": ">=6" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/@react-native-community/cli-doctor/node_modules/execa": { "version": "5.1.1", "license": "MIT", @@ -8296,6 +8506,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-doctor/node_modules/human-signals": { "version": "2.1.0", "license": "Apache-2.0", @@ -8303,16 +8520,6 @@ "node": ">=10.17.0" } }, - "node_modules/@react-native-community/cli-doctor/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@react-native-community/cli-doctor/node_modules/npm-run-path": { "version": "4.0.1", "license": "MIT", @@ -8344,8 +8551,18 @@ "version": "9.2.1", "license": "MIT" }, + "node_modules/@react-native-community/cli-doctor/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-doctor/node_modules/yaml": { - "version": "2.3.2", + "version": "2.3.3", "license": "ISC", "engines": { "node": ">= 14" @@ -8362,6 +8579,64 @@ "ip": "^1.1.5" } }, + "node_modules/@react-native-community/cli-hermes/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@react-native-community/cli-hermes/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-hermes/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-platform-android": { "version": "11.3.6", "license": "MIT", @@ -8373,6 +8648,47 @@ "logkitty": "^0.7.1" } }, + "node_modules/@react-native-community/cli-platform-android/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { "version": "5.1.1", "license": "MIT", @@ -8394,6 +8710,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@react-native-community/cli-platform-android/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-platform-android/node_modules/human-signals": { "version": "2.1.0", "license": "Apache-2.0", @@ -8401,16 +8724,6 @@ "node": ">=10.17.0" } }, - "node_modules/@react-native-community/cli-platform-android/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@react-native-community/cli-platform-android/node_modules/npm-run-path": { "version": "4.0.1", "license": "MIT", @@ -8428,6 +8741,16 @@ "node": ">=6" } }, + "node_modules/@react-native-community/cli-platform-android/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-platform-ios": { "version": "11.3.6", "license": "MIT", @@ -8440,6 +8763,47 @@ "ora": "^5.4.1" } }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/@react-native-community/cli-platform-ios/node_modules/execa": { "version": "5.1.1", "license": "MIT", @@ -8461,6 +8825,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-platform-ios/node_modules/human-signals": { "version": "2.1.0", "license": "Apache-2.0", @@ -8468,16 +8839,6 @@ "node": ">=10.17.0" } }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@react-native-community/cli-platform-ios/node_modules/npm-run-path": { "version": "4.0.1", "license": "MIT", @@ -8495,6 +8856,16 @@ "node": ">=6" } }, + "node_modules/@react-native-community/cli-platform-ios/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-plugin-metro": { "version": "11.3.6", "license": "MIT", @@ -8512,7 +8883,48 @@ "readline": "^1.3.0" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/execa": { + "node_modules/@react-native-community/cli-plugin-metro/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/execa": { "version": "5.1.1", "license": "MIT", "dependencies": { @@ -8533,6 +8945,13 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/human-signals": { "version": "2.1.0", "license": "Apache-2.0", @@ -8540,16 +8959,6 @@ "node": ">=10.17.0" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { "version": "0.76.7", "license": "MIT", @@ -8578,6 +8987,16 @@ "node": ">=6" } }, + "node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-server-api": { "version": "11.3.6", "license": "MIT", @@ -8608,12 +9027,60 @@ } }, "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { - "version": "15.0.15", + "version": "15.0.16", "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, + "node_modules/@react-native-community/cli-server-api/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-server-api/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@react-native-community/cli-server-api/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-server-api/node_modules/pretty-format": { "version": "26.6.2", "license": "MIT", @@ -8631,6 +9098,16 @@ "version": "17.0.2", "license": "MIT" }, + "node_modules/@react-native-community/cli-server-api/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli-server-api/node_modules/ws": { "version": "7.5.9", "license": "MIT", @@ -8665,29 +9142,59 @@ "shell-quote": "^1.7.3" } }, - "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { - "version": "1.1.0", + "node_modules/@react-native-community/cli-tools/node_modules/ansi-styles": { + "version": "4.3.0", "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@react-native-community/cli-tools/node_modules/node-fetch": { - "version": "2.7.0", + "node_modules/@react-native-community/cli-tools/node_modules/chalk": { + "version": "4.1.2", "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=10" }, - "peerDependencies": { - "encoding": "^0.1.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@react-native-community/cli-tools/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/@react-native-community/cli-tools/node_modules/open": { @@ -8700,20 +9207,14 @@ "node": ">=8" } }, - "node_modules/@react-native-community/cli-tools/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@react-native-community/cli-tools/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@react-native-community/cli-tools/node_modules/whatwg-url": { - "version": "5.0.0", + "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { + "version": "7.2.0", "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@react-native-community/cli-types": { @@ -8723,6 +9224,47 @@ "joi": "^17.2.1" } }, + "node_modules/@react-native-community/cli/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@react-native-community/cli/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-native-community/cli/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/@react-native-community/cli/node_modules/commander": { "version": "9.5.0", "license": "MIT", @@ -8774,6 +9316,13 @@ "node": ">=6 <7 || >=8" } }, + "node_modules/@react-native-community/cli/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli/node_modules/human-signals": { "version": "2.1.0", "license": "Apache-2.0", @@ -8781,16 +9330,6 @@ "node": ">=10.17.0" } }, - "node_modules/@react-native-community/cli/node_modules/is-stream": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@react-native-community/cli/node_modules/jsonfile": { "version": "4.0.0", "license": "MIT", @@ -8848,6 +9387,16 @@ "node": ">=6" } }, + "node_modules/@react-native-community/cli/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@react-native-community/cli/node_modules/universalify": { "version": "0.1.2", "license": "MIT", @@ -8868,7 +9417,7 @@ "license": "MIT" }, "node_modules/@react-native/codegen": { - "version": "0.72.6", + "version": "0.72.7", "license": "MIT", "dependencies": { "@babel/parser": "^7.20.0", @@ -9178,46 +9727,12 @@ "ieee754": "^1.2.1" } }, - "node_modules/@solana/web3.js/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@solana/web3.js/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/@solana/web3.js/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/@solana/web3.js/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", + "node_modules/@stablelib/aead": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/@stablelib/binary": { + "version": "1.0.1", "license": "MIT", "dependencies": { "@stablelib/int": "^1.0.1" @@ -9467,7 +9982,8 @@ }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==" }, "node_modules/@trpc/client": { "version": "10.40.0", @@ -9728,14 +10244,14 @@ "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", + "version": "3.0.1", "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", + "version": "3.0.2", "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" @@ -9836,8 +10352,11 @@ } }, "node_modules/@types/node": { - "version": "20.5.7", - "license": "MIT" + "version": "20.8.6", + "license": "MIT", + "dependencies": { + "undici-types": "~5.25.1" + } }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -9860,7 +10379,7 @@ } }, "node_modules/@types/prop-types": { - "version": "15.7.5", + "version": "15.7.8", "license": "MIT" }, "node_modules/@types/qs": { @@ -9872,7 +10391,7 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.21", + "version": "18.2.28", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -9912,7 +10431,7 @@ } }, "node_modules/@types/scheduler": { - "version": "0.16.3", + "version": "0.16.4", "license": "MIT" }, "node_modules/@types/semver": { @@ -9992,14 +10511,14 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.24", + "version": "17.0.28", "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", + "version": "21.0.1", "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -10364,31 +10883,8 @@ "version": "3.3.4", "license": "MIT" }, - "node_modules/@wagmi/chains": { - "version": "1.8.0", - "dev": true, - "funding": [ - { - "type": "gitcoin", - "url": "https://wagmi.sh/gitcoin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "license": "MIT", - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@wagmi/cli": { - "version": "1.4.1", + "version": "1.5.2", "dev": true, "funding": [ { @@ -10402,7 +10898,6 @@ ], "license": "MIT", "dependencies": { - "@wagmi/chains": "1.8.0", "abitype": "0.8.7", "abort-controller": "^3.0.0", "bundle-require": "^3.1.2", @@ -10596,6 +11091,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@wagmi/cli/node_modules/node-fetch": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/@wagmi/cli/node_modules/ora": { "version": "6.3.1", "dev": true, @@ -11018,6 +11530,163 @@ "qrcode": "^1.5.1" } }, + "node_modules/@walletconnect/legacy-modal/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/camelcase": { + "version": "5.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/cliui": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@walletconnect/legacy-modal/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/pngjs": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/qrcode": { + "version": "1.5.3", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/wrap-ansi": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/y18n": { + "version": "4.0.3", + "license": "ISC" + }, + "node_modules/@walletconnect/legacy-modal/node_modules/yargs": { + "version": "15.4.1", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/legacy-modal/node_modules/yargs-parser": { + "version": "18.1.3", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@walletconnect/legacy-provider": { "version": "2.0.0", "license": "Apache-2.0", @@ -11079,25 +11748,182 @@ "version": "2.6.2", "license": "Apache-2.0", "dependencies": { - "@walletconnect/modal-core": "2.6.2", - "@walletconnect/modal-ui": "2.6.2" + "@walletconnect/modal-core": "2.6.2", + "@walletconnect/modal-ui": "2.6.2" + } + }, + "node_modules/@walletconnect/modal-core": { + "version": "2.6.2", + "license": "Apache-2.0", + "dependencies": { + "valtio": "1.11.2" + } + }, + "node_modules/@walletconnect/modal-ui": { + "version": "2.6.2", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/modal-core": "2.6.2", + "lit": "2.8.0", + "motion": "10.16.2", + "qrcode": "1.5.3" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/camelcase": { + "version": "5.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/cliui": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@walletconnect/modal-ui/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/pngjs": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/qrcode": { + "version": "1.5.3", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@walletconnect/modal-ui/node_modules/wrap-ansi": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@walletconnect/modal-core": { - "version": "2.6.2", - "license": "Apache-2.0", + "node_modules/@walletconnect/modal-ui/node_modules/y18n": { + "version": "4.0.3", + "license": "ISC" + }, + "node_modules/@walletconnect/modal-ui/node_modules/yargs": { + "version": "15.4.1", + "license": "MIT", "dependencies": { - "valtio": "1.11.2" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@walletconnect/modal-ui": { - "version": "2.6.2", - "license": "Apache-2.0", + "node_modules/@walletconnect/modal-ui/node_modules/yargs-parser": { + "version": "18.1.3", + "license": "ISC", "dependencies": { - "@walletconnect/modal-core": "2.6.2", - "lit": "2.8.0", - "motion": "10.16.2", - "qrcode": "1.5.3" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/@walletconnect/randombytes": { @@ -11374,7 +12200,7 @@ "license": "BSD-3-Clause" }, "node_modules/abitype": { - "version": "0.9.8", + "version": "0.9.10", "funding": [ { "type": "github", @@ -11384,7 +12210,7 @@ "license": "MIT", "peerDependencies": { "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" + "zod": "^3 >=3.22.0" }, "peerDependenciesMeta": { "typescript": { @@ -11587,16 +12413,13 @@ } }, "node_modules/ansi-styles": { - "version": "4.3.0", + "version": "3.2.1", "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/any-promise": { @@ -11623,12 +12446,19 @@ "license": "MIT" }, "node_modules/arg": { - "version": "4.1.0", + "version": "4.1.3", "license": "MIT" }, "node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "license": "BSD-3-Clause" }, "node_modules/aria-query": { "version": "5.3.0", @@ -11822,8 +12652,11 @@ } }, "node_modules/async": { - "version": "3.2.4", - "license": "MIT" + "version": "2.6.4", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } }, "node_modules/async-limiter": { "version": "1.0.1", @@ -12114,11 +12947,11 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", + "version": "0.4.6", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", + "@babel/helper-define-polyfill-provider": "^0.4.3", "semver": "^6.3.1" }, "peerDependencies": { @@ -12133,21 +12966,21 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", + "version": "0.8.5", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "@babel/helper-define-polyfill-provider": "^0.4.3", + "core-js-compat": "^3.32.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", + "version": "0.5.3", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" + "@babel/helper-define-polyfill-provider": "^0.4.3" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -12292,7 +13125,8 @@ }, "node_modules/basic-ftp": { "version": "5.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.3.tgz", + "integrity": "sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==", "engines": { "node": ">=10.0.0" } @@ -12471,7 +13305,7 @@ "license": "MIT" }, "node_modules/browserslist": { - "version": "4.21.10", + "version": "4.22.1", "funding": [ { "type": "opencollective", @@ -12488,10 +13322,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -12810,7 +13644,7 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001525", + "version": "1.0.30001549", "funding": [ { "type": "opencollective", @@ -12843,17 +13677,15 @@ "license": "0BSD" }, "node_modules/chalk": { - "version": "4.1.2", + "version": "2.4.2", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, "node_modules/change-case": { @@ -12945,7 +13777,7 @@ } }, "node_modules/ci-info": { - "version": "3.8.0", + "version": "3.9.0", "funding": [ { "type": "github", @@ -12979,7 +13811,7 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.0", + "version": "2.9.1", "license": "MIT", "engines": { "node": ">=6" @@ -12993,12 +13825,15 @@ "license": "MIT" }, "node_modules/cliui": { - "version": "7.0.4", + "version": "8.0.1", "license": "ISC", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone": { @@ -13050,17 +13885,14 @@ "license": "MIT" }, "node_modules/color-convert": { - "version": "2.0.1", + "version": "1.9.3", "license": "MIT", "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", + "version": "1.1.3", "license": "MIT" }, "node_modules/colorette": { @@ -13098,7 +13930,8 @@ }, "node_modules/component-emitter": { "version": "1.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "node_modules/component-type": { "version": "1.2.1", @@ -13203,12 +14036,13 @@ } }, "node_modules/convert-source-map": { - "version": "1.9.0", + "version": "2.0.0", "license": "MIT" }, "node_modules/cookiejar": { "version": "2.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" }, "node_modules/copy-to-clipboard": { "version": "3.3.3", @@ -13218,10 +14052,10 @@ } }, "node_modules/core-js-compat": { - "version": "3.32.1", + "version": "3.33.0", "license": "MIT", "dependencies": { - "browserslist": "^4.21.10" + "browserslist": "^4.22.1" }, "funding": { "type": "opencollective", @@ -13334,40 +14168,6 @@ "node-fetch": "^2.6.12" } }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/cross-fetch/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/cross-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/cross-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "license": "MIT", @@ -13506,6 +14306,7 @@ }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 12" @@ -13552,7 +14353,7 @@ } }, "node_modules/dayjs": { - "version": "1.11.9", + "version": "1.11.10", "license": "MIT" }, "node_modules/debug": { @@ -13943,7 +14744,8 @@ }, "node_modules/degenerator": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", @@ -13955,7 +14757,8 @@ }, "node_modules/degenerator/node_modules/ast-types": { "version": "0.13.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dependencies": { "tslib": "^2.0.1" }, @@ -13965,7 +14768,8 @@ }, "node_modules/degenerator/node_modules/tslib": { "version": "2.6.2", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/del": { "version": "6.1.1", @@ -14183,17 +14987,6 @@ "node": ">=10.17.0" } }, - "node_modules/detect-package-manager/node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/detect-package-manager/node_modules/npm-run-path": { "version": "4.0.1", "dev": true, @@ -14215,7 +15008,8 @@ }, "node_modules/dezalgo": { "version": "1.0.4", - "license": "ISC", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -14396,7 +15190,7 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.508", + "version": "1.4.554", "license": "ISC" }, "node_modules/elliptic": { @@ -14426,6 +15220,10 @@ "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, "node_modules/encode-utf8": { "version": "1.0.3", "license": "MIT" @@ -14720,13 +15518,10 @@ "license": "MIT" }, "node_modules/escape-string-regexp": { - "version": "4.0.0", + "version": "1.0.5", "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/escodegen": { @@ -15500,6 +16295,17 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/execa/node_modules/mimic-fn": { "version": "4.0.0", "dev": true, @@ -16689,15 +17495,15 @@ "license": "Apache-2.0" }, "node_modules/fast-xml-parser": { - "version": "4.2.7", + "version": "4.3.2", "funding": [ - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" } ], "license": "MIT", @@ -16776,6 +17582,7 @@ }, "node_modules/fetch-blob": { "version": "3.2.0", + "dev": true, "funding": [ { "type": "github", @@ -17055,6 +17862,7 @@ }, "node_modules/formdata-polyfill": { "version": "4.0.10", + "dev": true, "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" @@ -17065,7 +17873,8 @@ }, "node_modules/formidable": { "version": "2.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", @@ -17144,8 +17953,11 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -17362,7 +18174,8 @@ }, "node_modules/get-uri": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz", + "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.0", @@ -17375,14 +18188,16 @@ }, "node_modules/get-uri/node_modules/data-uri-to-buffer": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz", + "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==", "engines": { "node": ">= 14" } }, "node_modules/get-uri/node_modules/fs-extra": { "version": "8.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -17394,14 +18209,16 @@ }, "node_modules/get-uri/node_modules/jsonfile": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/get-uri/node_modules/universalify": { "version": "0.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "engines": { "node": ">= 4.0.0" } @@ -17481,6 +18298,13 @@ "which": "bin/which" } }, + "node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/globalthis": { "version": "1.0.3", "license": "MIT", @@ -17578,11 +18402,8 @@ "license": "0BSD" }, "node_modules/has": { - "version": "1.0.3", + "version": "1.0.4", "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, "engines": { "node": ">= 0.4.0" } @@ -17606,10 +18427,10 @@ } }, "node_modules/has-flag": { - "version": "4.0.0", + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-property-descriptors": { @@ -17722,7 +18543,8 @@ }, "node_modules/hexoid": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "engines": { "node": ">=8" } @@ -18206,10 +19028,10 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", + "version": "3.0.0", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/is-generator-fn": { @@ -18418,10 +19240,10 @@ } }, "node_modules/is-stream": { - "version": "3.0.0", + "version": "2.0.1", "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -18562,7 +19384,7 @@ } }, "node_modules/isows": { - "version": "1.0.2", + "version": "1.0.3", "funding": [ { "type": "github", @@ -18700,49 +19522,23 @@ "json-stringify-safe": "^5.0.1", "JSONStream": "^1.3.5", "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "license": "MIT" - }, - "node_modules/jayson/node_modules/commander": { - "version": "2.20.3", - "license": "MIT" - }, - "node_modules/jayson/node_modules/uuid": { - "version": "8.3.2", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/jayson/node_modules/ws": { - "version": "7.5.9", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "ws": "^7.4.5" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" } }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "license": "MIT" + }, + "node_modules/jayson/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, "node_modules/jest": { "version": "29.7.0", "license": "MIT", @@ -19292,15 +20088,15 @@ } }, "node_modules/jest-environment-node": { - "version": "29.6.4", + "version": "29.7.0", "license": "MIT", "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -19438,7 +20234,7 @@ } }, "node_modules/jest-message-util": { - "version": "29.6.3", + "version": "29.7.0", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", @@ -19447,7 +20243,7 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -19455,13 +20251,71 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-mock": { - "version": "29.6.3", + "version": "29.7.0", "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.3" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -19849,7 +20703,7 @@ } }, "node_modules/jest-util": { - "version": "29.6.3", + "version": "29.7.0", "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -19863,8 +20717,66 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-validate": { - "version": "29.6.3", + "version": "29.7.0", "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", @@ -19872,12 +20784,70 @@ "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-watch-select-projects": { "version": "2.0.0", "license": "MIT", @@ -20216,7 +21186,7 @@ } }, "node_modules/joi": { - "version": "17.10.1", + "version": "17.11.0", "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", @@ -20247,10 +21217,11 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", + "version": "3.14.1", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -20299,6 +21270,64 @@ "@babel/preset-env": "^7.1.6" } }, + "node_modules/jscodeshift/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jscodeshift/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jscodeshift/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jscodeshift/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jscodeshift/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jscodeshift/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jsdom": { "version": "20.0.3", "license": "MIT", @@ -20479,13 +21508,13 @@ "license": "ISC" }, "node_modules/json5": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, + "version": "2.2.3", + "license": "MIT", "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonfile": { @@ -20608,7 +21637,8 @@ }, "node_modules/libhoney": { "version": "4.1.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/libhoney/-/libhoney-4.1.0.tgz", + "integrity": "sha512-U8oCouZXzjlO67wAhDyvnskn9MJFIzTWkxpzsAawUU4nQLMSdISgaGL64eqAeElLRnjlA4hhREr8zOz1So0+yg==", "dependencies": { "proxy-agent": "^6.3.0", "superagent": "^8.0.0", @@ -20620,7 +21650,8 @@ }, "node_modules/libhoney/node_modules/url-join": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", + "integrity": "sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -20780,6 +21811,64 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/logkitty": { "version": "0.7.1", "license": "MIT", @@ -20792,6 +21881,19 @@ "logkitty": "bin/logkitty.js" } }, + "node_modules/logkitty/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/logkitty/node_modules/camelcase": { "version": "5.3.1", "license": "MIT", @@ -20808,6 +21910,20 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/logkitty/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/logkitty/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/logkitty/node_modules/find-up": { "version": "4.1.0", "license": "MIT", @@ -21061,7 +22177,8 @@ }, "node_modules/methods": { "version": "1.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "engines": { "node": ">= 0.6" } @@ -21172,13 +22289,6 @@ "node": ">=16" } }, - "node_modules/metro-config/node_modules/argparse": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/metro-config/node_modules/cosmiconfig": { "version": "5.2.1", "license": "MIT", @@ -21203,17 +22313,6 @@ "node": ">=4" } }, - "node_modules/metro-config/node_modules/js-yaml": { - "version": "3.14.1", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/metro-config/node_modules/metro-runtime": { "version": "0.76.7", "license": "MIT", @@ -21293,12 +22392,53 @@ } }, "node_modules/metro-file-map/node_modules/@types/yargs": { - "version": "16.0.5", + "version": "16.0.6", "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, + "node_modules/metro-file-map/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/metro-file-map/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/metro-file-map/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/metro-file-map/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/metro-file-map/node_modules/debug": { "version": "2.6.9", "license": "MIT", @@ -21306,6 +22446,13 @@ "ms": "2.0.0" } }, + "node_modules/metro-file-map/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/metro-file-map/node_modules/jest-regex-util": { "version": "27.5.1", "license": "MIT", @@ -21340,11 +22487,7 @@ "node": ">= 10.13.0" } }, - "node_modules/metro-file-map/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/metro-file-map/node_modules/supports-color": { + "node_modules/metro-file-map/node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "license": "MIT", "dependencies": { @@ -21357,6 +22500,20 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/metro-file-map/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/metro-file-map/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/metro-inspector-proxy": { "version": "0.76.7", "license": "MIT", @@ -21374,18 +22531,6 @@ "node": ">=16" } }, - "node_modules/metro-inspector-proxy/node_modules/cliui": { - "version": "8.0.1", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/metro-inspector-proxy/node_modules/debug": { "version": "2.6.9", "license": "MIT", @@ -21397,40 +22542,6 @@ "version": "2.0.0", "license": "MIT" }, - "node_modules/metro-inspector-proxy/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/metro-inspector-proxy/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/metro-inspector-proxy/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/metro-inspector-proxy/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/metro-inspector-proxy/node_modules/ws": { "version": "7.5.9", "license": "MIT", @@ -21450,22 +22561,6 @@ } } }, - "node_modules/metro-inspector-proxy/node_modules/yargs": { - "version": "17.7.2", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/metro-minify-terser": { "version": "0.76.7", "license": "MIT", @@ -21780,22 +22875,55 @@ "node": ">=0.10.0" } }, + "node_modules/metro/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/metro/node_modules/async": { + "version": "3.2.4", + "license": "MIT" + }, + "node_modules/metro/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/metro/node_modules/ci-info": { "version": "2.0.0", "license": "MIT" }, - "node_modules/metro/node_modules/cliui": { - "version": "8.0.1", - "license": "ISC", + "node_modules/metro/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" + "node": ">=7.0.0" } }, + "node_modules/metro/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/metro/node_modules/debug": { "version": "2.6.9", "license": "MIT", @@ -21803,6 +22931,13 @@ "ms": "2.0.0" } }, + "node_modules/metro/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/metro/node_modules/jest-worker": { "version": "27.5.1", "license": "MIT", @@ -21815,6 +22950,19 @@ "node": ">= 10.13.0" } }, + "node_modules/metro/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/metro/node_modules/metro-react-native-babel-preset": { "version": "0.76.7", "license": "MIT", @@ -21898,24 +23046,6 @@ "version": "2.0.0", "license": "MIT" }, - "node_modules/metro/node_modules/node-fetch": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/metro/node_modules/ob1": { "version": "0.76.7", "license": "MIT", @@ -21938,32 +23068,13 @@ } }, "node_modules/metro/node_modules/supports-color": { - "version": "8.1.1", + "version": "7.2.0", "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/metro/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "node_modules/metro/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "node_modules/metro/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node": ">=8" } }, "node_modules/metro/node_modules/ws": { @@ -21985,22 +23096,6 @@ } } }, - "node_modules/metro/node_modules/yargs": { - "version": "17.7.2", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/micromatch": { "version": "4.0.5", "license": "MIT", @@ -22130,13 +23225,13 @@ } }, "node_modules/mkdirp": { - "version": "0.5.6", + "version": "1.0.4", "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, "bin": { "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/mock-property": { @@ -22306,7 +23401,8 @@ }, "node_modules/netmask": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "engines": { "node": ">= 0.4.0" } @@ -22400,6 +23496,7 @@ }, "node_modules/node-domexception": { "version": "1.0.0", + "dev": true, "funding": [ { "type": "github", @@ -22416,19 +23513,21 @@ } }, "node_modules/node-fetch": { - "version": "3.3.2", + "version": "2.7.0", "license": "MIT", "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "4.x || >=6.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-forge": { @@ -22568,7 +23667,7 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", + "version": "1.13.0", "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -22778,6 +23877,64 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/os-homedir": { "version": "1.0.2", "license": "MIT", @@ -22866,7 +24023,8 @@ }, "node_modules/pac-proxy-agent": { "version": "7.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", + "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.0.2", @@ -22883,7 +24041,8 @@ }, "node_modules/pac-proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dependencies": { "debug": "^4.3.4" }, @@ -22893,7 +24052,8 @@ }, "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -22904,7 +24064,8 @@ }, "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -22915,7 +24076,8 @@ }, "node_modules/pac-resolver": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz", + "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==", "dependencies": { "degenerator": "^5.0.0", "ip": "^1.1.8", @@ -23468,7 +24630,7 @@ } }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.3.2", + "version": "2.3.3", "license": "ISC", "engines": { "node": ">= 14" @@ -23591,7 +24753,7 @@ } }, "node_modules/pretty-format": { - "version": "29.6.3", + "version": "29.7.0", "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", @@ -23714,7 +24876,8 @@ }, "node_modules/proxy-agent": { "version": "6.3.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.1.tgz", + "integrity": "sha512-Rb5RVBy1iyqOtNl15Cw/llpeLH8bsb37gM1FUfKQ+Wck6xHlbAhWGUFiTRHtkjqGTA5pSHz6+0hrPW/oECihPQ==", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -23731,7 +24894,8 @@ }, "node_modules/proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dependencies": { "debug": "^4.3.4" }, @@ -23741,7 +24905,8 @@ }, "node_modules/proxy-agent/node_modules/http-proxy-agent": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -23752,7 +24917,8 @@ }, "node_modules/proxy-agent/node_modules/https-proxy-agent": { "version": "7.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dependencies": { "agent-base": "^7.0.2", "debug": "4" @@ -23763,7 +24929,8 @@ }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "engines": { "node": ">=12" } @@ -23810,7 +24977,7 @@ "license": "MIT" }, "node_modules/qrcode": { - "version": "1.5.3", + "version": "1.5.0", "license": "MIT", "dependencies": { "dijkstrajs": "^1.0.1", @@ -23831,6 +24998,19 @@ "qrcode-terminal": "bin/qrcode-terminal.js" } }, + "node_modules/qrcode/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/qrcode/node_modules/camelcase": { "version": "5.3.1", "license": "MIT", @@ -23847,6 +25027,20 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/qrcode/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/qrcode/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/qrcode/node_modules/find-up": { "version": "4.1.0", "license": "MIT", @@ -24085,32 +25279,13 @@ } }, "node_modules/react-devtools-core": { - "version": "4.28.0", + "version": "4.28.4", "license": "MIT", "dependencies": { "shell-quote": "^1.6.1", "ws": "^7" } }, - "node_modules/react-devtools-core/node_modules/ws": { - "version": "7.5.9", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/react-dom": { "version": "18.2.0", "license": "MIT", @@ -24417,42 +25592,88 @@ "css-select": "^5.1.0", "css-tree": "^1.1.3" }, - "peerDependencies": { - "react": "*", - "react-native": "*" + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native/node_modules/@jest/types": { + "version": "26.6.2", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/react-native/node_modules/@types/yargs": { + "version": "15.0.16", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/react-native/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-native/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/react-native/node_modules/@jest/types": { - "version": "26.6.2", + "node_modules/react-native/node_modules/color-convert": { + "version": "2.0.1", "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 10.14.2" + "node": ">=7.0.0" } }, - "node_modules/react-native/node_modules/@types/yargs": { - "version": "15.0.15", + "node_modules/react-native/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/react-native/node_modules/has-flag": { + "version": "4.0.0", "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" + "engines": { + "node": ">=8" } }, - "node_modules/react-native/node_modules/cliui": { - "version": "8.0.1", - "license": "ISC", + "node_modules/react-native/node_modules/mkdirp": { + "version": "0.5.6", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "minimist": "^1.2.6" }, - "engines": { - "node": ">=12" + "bin": { + "mkdirp": "bin/cmd.js" } }, "node_modules/react-native/node_modules/pretty-format": { @@ -24490,27 +25711,21 @@ "loose-envify": "^1.1.0" } }, - "node_modules/react-native/node_modules/ws": { - "version": "6.2.2", + "node_modules/react-native/node_modules/supports-color": { + "version": "7.2.0", "license": "MIT", "dependencies": { - "async-limiter": "~1.0.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/react-native/node_modules/yargs": { - "version": "17.7.2", + "node_modules/react-native/node_modules/ws": { + "version": "6.2.2", "license": "MIT", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" + "async-limiter": "~1.0.0" } }, "node_modules/react-refresh": { @@ -24735,7 +25950,7 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", + "version": "10.1.1", "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -24876,7 +26091,7 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.4", + "version": "1.22.8", "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -24916,10 +26131,10 @@ } }, "node_modules/resolve-from": { - "version": "4.0.0", + "version": "5.0.0", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/resolve-pkg-maps": { @@ -24986,7 +26201,7 @@ } }, "node_modules/rollup": { - "version": "3.29.1", + "version": "3.29.4", "dev": true, "license": "MIT", "bin": { @@ -25018,11 +26233,23 @@ "utf-8-validate": "^5.0.2" } }, - "node_modules/rpc-websockets/node_modules/uuid": { - "version": "8.3.2", + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.14.2", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/rtl-detect": { @@ -25496,27 +26723,13 @@ "node": ">=6" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, "engines": { "node": ">=4" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, "node_modules/slugify": { "version": "1.6.6", "license": "MIT", @@ -25526,7 +26739,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -25548,7 +26762,8 @@ }, "node_modules/socks": { "version": "2.7.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" @@ -25560,7 +26775,8 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", @@ -25572,7 +26788,8 @@ }, "node_modules/socks-proxy-agent/node_modules/agent-base": { "version": "7.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dependencies": { "debug": "^4.3.4" }, @@ -25582,7 +26799,8 @@ }, "node_modules/socks/node_modules/ip": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" }, "node_modules/solady": { "version": "0.0.90", @@ -25611,8 +26829,7 @@ } }, "node_modules/source-map-support": { - "version": "0.5.13", - "dev": true, + "version": "0.5.21", "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -25644,7 +26861,7 @@ } }, "node_modules/sprintf-js": { - "version": "1.0.3", + "version": "1.1.2", "license": "BSD-3-Clause" }, "node_modules/ssri": { @@ -25824,17 +27041,6 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.10", "license": "MIT", @@ -26017,7 +27223,8 @@ }, "node_modules/superagent": { "version": "8.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.4", @@ -26039,13 +27246,13 @@ "license": "MIT" }, "node_modules/supports-color": { - "version": "7.2.0", + "version": "5.5.0", "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-hyperlinks": { @@ -26443,7 +27650,7 @@ } }, "node_modules/terser": { - "version": "5.19.3", + "version": "5.21.0", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -26530,14 +27737,6 @@ "version": "2.20.3", "license": "MIT" }, - "node_modules/terser/node_modules/source-map-support": { - "version": "0.5.21", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "license": "ISC", @@ -26730,6 +27929,10 @@ "node": ">= 4.0.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, "node_modules/traverse": { "version": "0.6.7", "license": "MIT", @@ -27172,7 +28375,7 @@ } }, "node_modules/tsup/node_modules/bundle-require": { - "version": "4.0.1", + "version": "4.0.2", "dev": true, "license": "MIT", "dependencies": { @@ -27251,17 +28454,6 @@ "node": ">=10.17.0" } }, - "node_modules/tsup/node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tsup/node_modules/npm-run-path": { "version": "4.0.1", "dev": true, @@ -27273,14 +28465,6 @@ "node": ">=8" } }, - "node_modules/tsup/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/tsup/node_modules/source-map": { "version": "0.8.0-beta.0", "dev": true, @@ -27534,6 +28718,10 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.25.3", + "license": "MIT" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "license": "MIT", @@ -27613,7 +28801,7 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", + "version": "1.0.13", "funding": [ { "type": "opencollective", @@ -27791,10 +28979,10 @@ } }, "node_modules/uuid": { - "version": "3.4.0", + "version": "8.3.2", "license": "MIT", "bin": { - "uuid": "bin/uuid" + "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { @@ -27857,7 +29045,7 @@ } }, "node_modules/viem": { - "version": "1.16.0", + "version": "1.16.5", "funding": [ { "type": "github", @@ -27872,7 +29060,7 @@ "@scure/bip32": "1.3.2", "@scure/bip39": "1.2.1", "abitype": "0.9.8", - "isows": "1.0.2", + "isows": "1.0.3", "ws": "8.13.0" }, "peerDependencies": { @@ -27884,6 +29072,47 @@ } } }, + "node_modules/viem/node_modules/abitype": { + "version": "0.9.8", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wagmi-dev" + } + ], + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.19.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/viem/node_modules/ws": { + "version": "8.13.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/vlq": { "version": "1.0.1", "license": "MIT" @@ -27974,11 +29203,16 @@ }, "node_modules/web-streams-polyfill": { "version": "3.2.1", + "dev": true, "license": "MIT", "engines": { "node": ">= 8" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, "node_modules/webpack": { "version": "5.89.0", "license": "MIT", @@ -28064,7 +29298,7 @@ } }, "node_modules/whatwg-fetch": { - "version": "3.6.18", + "version": "3.6.19", "license": "MIT" }, "node_modules/whatwg-mimetype": { @@ -28074,6 +29308,14 @@ "node": ">=12" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "license": "ISC", @@ -28178,6 +29420,33 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, "node_modules/wrappy": { "version": "1.0.2", "license": "ISC" @@ -28192,14 +29461,14 @@ } }, "node_modules/ws": { - "version": "8.13.0", + "version": "7.4.6", "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -28294,19 +29563,19 @@ } }, "node_modules/yargs": { - "version": "16.2.0", + "version": "17.7.2", "license": "MIT", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { @@ -28316,13 +29585,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "20.2.9", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/yauzl": { "version": "2.10.0", "license": "MIT", @@ -28349,7 +29611,7 @@ } }, "node_modules/zod": { - "version": "3.22.2", + "version": "3.22.4", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/packages/contract/broadcast/DeployAccountFactory.s.sol/8453/run-latest.json b/packages/contract/broadcast/DeployAccountFactory.s.sol/8453/run-latest.json index 8976e902f..01791a4e8 100644 --- a/packages/contract/broadcast/DeployAccountFactory.s.sol/8453/run-latest.json +++ b/packages/contract/broadcast/DeployAccountFactory.s.sol/8453/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0xf2c43a024066b13a058c2866d9436f766e1071bf61b5b4dbb242a6fc038f1cbd", + "hash": "0x2f7b0381d3cb6bb20f87f5b4065766f076ce76552e5424fceab392016a54cd76", "transactionType": "CREATE2", - "contractName": "AccountFactory", - "contractAddress": "0xe5a1744d42a30c3Bb87f16FbC4484B984594cD7C", + "contractName": "DaimoAccountFactory", + "contractAddress": "0xED5F5066de0c177729Eb0D5FECEC4BF87CA6Bf3C", "function": null, "arguments": [ "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", @@ -16,14 +16,14 @@ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "gas": "0x4033ae", "value": "0x0", - "data": "0x000000000000000000000000000000000000000000000000000000000000000060c0346100f3576134bb906001600160401b0390601f38849003908101601f1916820190838211838310176100dd57808391604096879485528339810103126100f35780516001600160a01b03808216929091908382036100f357602001519182168092036100f35760a0528351926126b091828501918211858310176100dd5785938593610e0b8539825260208201520301906000f080156100d25760805251610d1290816100f9823960805181818161016c015281816105e8015261082e015260a05181818160e101526106910152f35b50513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60808060405260043610156200001457600080fd5b600090813560e01c90816311464fbe1462000120575080632a0c114d1462000105578063b0d691fe14620000945763cca14965146200005257600080fd5b346200009157602062000073620000693662000205565b9392909262000761565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b80fd5b50346200009157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126200009157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b602062000073620001163662000205565b9392909262000510565b9050346200019057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112620001905760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620001d657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112620002c45760043560ff81168103620002c457918060431215620002c45760405191604083019167ffffffffffffffff9284811084821117620001d65760405283606494828611620002c4576024905b868210620002c9575050933590838211620002c45780602383011215620002c4578160040135938411620002c45760248460051b83010111620002c457602401919060843590565b600080fd5b81358152602091820191016200027c565b60ff909116815260809391602091908582019060008484015b600282106200046b575050508360609187838501525260a0820160a08560051b84010196866000945b878610620003305750505050505050505090565b9091929394959697987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6082820301855289357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa184360301811215620002c4578301803573ffffffffffffffffffffffffffffffffffffffff8116809103620002c45782528881013589830152604090818101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215620002c45701898101903567ffffffffffffffff8111620002c4578036038213620002c457837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83808f97968c968f808b9a60019d0152870152868601376000858286010152011601019b019501960194939796959291906200031c565b8251815291850191600191909101908501620002f3565b60005b838110620004965750506000910152565b818101518382015260200162000485565b90601f60609373ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0931684526040602085015262000509815180928160408801526020888801910162000482565b0116010190565b93919362000522838587858562000761565b936000943462000679575b803b620006595750906200058b620005b89273ffffffffffffffffffffffffffffffffffffffff976040519586947fc73ba52600000000000000000000000000000000000000000000000000000000602087015260248601620002da565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528262000194565b6040519061042c8083019083821067ffffffffffffffff8311176200062c57916200060f918493620008b18539877f00000000000000000000000000000000000000000000000000000000000000001690620004a7565b039083f59081156200062057501690565b604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b73ffffffffffffffffffffffffffffffffffffffff169695505050505050565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001690813b156200075d5787906024604051809481937fb760faf90000000000000000000000000000000000000000000000000000000083528716600483015234905af18015620007525762000707575b506200052d565b67ffffffffffffffff81979297116200072557604052943862000700565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d89823e3d90fd5b8780fd5b90600b93926200088b620008986055979461042c936020958692620007d460409a8b519462000793878b018762000194565b89865286860199620008b18b398c519485947fc73ba526000000000000000000000000000000000000000000000000000000008987015260248601620002da565b03620008077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09182810184528362000194565b620008628a519182620008558782019573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001687620004a7565b0390810183528262000194565b89519586936200087b868601998a925192839162000482565b8401915180938684019062000482565b0103808452018262000194565b5190208351938401528201523081520160ff8153209056fe60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212203e27870c29c906c7a4abb622ab67817dc9be875182a3cce06cf0e3a1a85323ee64736f6c63430008150033a2646970667358221220ba5568a7517ac7ee1e76d8caf9dc7b31ff8eb71dfb21a2e55e2408ff6939d74a64736f6c63430008150033610100346200018557601f620026b038819003918201601f19168301916001600160401b038311848410176200018a578084926040948552833981010312620001855780516001600160a01b039182821682036200018557602001519182168203620001855730608052601460e05260a05260c05260005460ff8160081c16620001305760ff80821610620000f4575b60405161250f9081620001a182396080518181816103cd0152818161085001526108fc015260a0518181816102cc015281816105fc01528181610caa0152611975015260c05181818161020a0152611d41015260e051818181610d8201526121eb0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80631626ba7e1461010b578063290f32331461010657806334fcd5be146101015780633659cfe6146100fc5780633a871cdd146100f75780634f1ef286146100f257806352d1902d146100ed578063595f20d6146100e857806388b25709146100e35780639875b4db146100de578063b0d691fe146100d9578063b3033ef2146100d4578063bafa7108146100cf578063c73ba526146100ca5763c90e3c5b0361000e57610f2e565b610da6565b610d4a565b610cce565b610c5f565b610c1d565b610b1c565b610a10565b6108b6565b6107c9565b610587565b610379565b61025f565b6101bf565b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5767ffffffffffffffff6024358181116101ba57366023820112156101ba5780600401359182116101ba5736602483830101116101ba576101b69160246101839201600435611a9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681529081906020820190565b0390f35b600080fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156101ba5782359167ffffffffffffffff83116101ba576020808501948460051b0101116101ba57565b346101ba576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5760043567ffffffffffffffff81116101ba576102af90369060040161022e565b6102f373ffffffffffffffffffffffffffffffffffffffff9392937f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60005b8181106102ff57005b8061035161031161035693858861181b565b3561031b8161035b565b8561032784878a61181b565b013561034b61034461033a86898c61181b565b604081019061186a565b3691610792565b91611fd5565b6117e9565b6102f6565b73ffffffffffffffffffffffffffffffffffffffff8116036101ba57565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356103b48161035b565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916103fa8330141561107b565b6104297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611106565b610434303314611ffd565b60405190610441826106af565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561047b575050610019915061139e565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610557575b50610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6100199361055291146111ac565b61148a565b61057991925060203d8111610580575b6105718183610708565b810190611191565b90386104ba565b503d610567565b346101ba577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101ba576004359067ffffffffffffffff82116101ba576101609082360301126101ba576101b69061062f6044359161062373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60243590600401611e0c565b9080610647575b506040519081529081906020820190565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506106796115c9565b5038610636565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176106cb57604052565b610680565b6040810190811067ffffffffffffffff8211176106cb57604052565b6060810190811067ffffffffffffffff8211176106cb57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106cb57604052565b60405190610756826106d0565b565b67ffffffffffffffff81116106cb57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261079e82610758565b916107ac6040519384610708565b8294818452818301116101ba578281602093846000960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356107ff8161035b565b6024359067ffffffffffffffff82116101ba57366023830112156101ba57610834610019923690602481600401359101610792565b906108a673ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169061087d8230141561107b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614611106565b6108b1303314611ffd565b611237565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361094d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b6004359060ff821682036101ba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610a476109d1565b60ff6024359116600052600160205260406000209060028110156101ba576020910154604051908152f35b60409081810191808252835180935260608201926020809501916000905b828210610ad657505050508281830391015281808451928381520193019160005b828110610abf575050505090565b835160ff1685529381019392810192600101610ab1565b9091929594858288519280936000905b60028210610b035750989991019750019392600101919050610a90565b80518652948401948a9487945060019092019101610ae6565b346101ba576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c1a5760ff9081815460101c16610b5f8161207a565b91610b69826120f0565b93815b6101008110610b9157505090610b829114611bd6565b6101b660405192839283610a72565b818116610bab8160ff166000526001602052604060002090565b54610bc0575b50610bbb906117e9565b610b6c565b610bbb919361035182610beb610be6610c139560ff166000526001602052604060002090565b612153565b610bf5848b61213f565b52610c00838a61213f565b50610c0b838b61213f565b9060ff169052565b9290610bb1565b80fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060ff60005460101c16604051908152f35b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610d056109d1565b36604312156101ba57604051610d1a816106d0565b809160643681116101ba576024935b818510610d3a576100198484612186565b8435815260209485019401610d29565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610ddd6109d1565b366064116101ba5760643567ffffffffffffffff81116101ba57610e08610e6891369060040161022e565b9060005493610e2e60ff8660081c161580968197610f20575b8115610f00575b5061172f565b84610e5f60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b610eca576118d3565b610e6e57005b610e9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610efb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b6118d3565b303b15915081610f12575b5038610e28565b6001915060ff161438610f0b565b600160ff8216109150610e21565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610f656109d1565b610f70303314611ffd565b60009060ff811682526001602052610f8d604083205415156123e1565b610faa600160ff610fa3855460ff9060101c1690565b1611612446565b7fb1c618be842f3c0e753cfc3569dd3eafd446296dbe6db8af1d8cc92c7d0ba053611075610fe8610be68460ff166000526001602052604060002090565b611018610ff3610749565b8681528660208201526110138660ff166000526001602052604060002090565b612371565b61106761103261102d875460ff9060101c1690565b6124ab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055565b6040519182913095836123a7565b0390a280f35b1561108257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561110d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b908160209103126101ba575190565b6040513d6000823e3d90fd5b156111b357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b906112637f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1690565b1561127257506107569061139e565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff85165afa6000938161137e575b5061134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6113797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61075694146111ac565b611569565b61139791945060203d8111610580576105718183610708565b92386112c1565b803b156114065773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b906114948261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611561575b6114e3575050565b61155e91600080604051936114f7856106ec565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46115586115c9565b9161165e565b50565b5060006114db565b906115738261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906115c1576114e3575050565b5060016114db565b3d156115f4573d906115da82610758565b916115e86040519384610708565b82523d6000602084013e565b606090565b1561160057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b919290156116815750815115611672575090565b61167e903b15156115f9565b90565b8251909150156116945750805190602001fd5b6044601f917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519384927f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152611703815180928160248801526020888801910161170c565b01168101030190fd5b60005b83811061171f5750506000910152565b818101518382015260200161170f565b1561173657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118165760010190565b6117ba565b919081101561185b5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156101ba570190565b6109e1565b3561167e8161035b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ba570180359067ffffffffffffffff82116101ba576020019181360383136101ba57565b6024602060409294939460ff60608201961681520137565b916118eb8360ff166000526001602052604060002090565b602460005b60028110611a0a5750505061192d620100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff6000541617600055565b60005b8181106119cb575050507f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b7746720187660405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f9b44a2c7f9f0b5aa4e7da60d8a2325796c57f93a45559d66515743ffbd8a6103600080a2806119c63094826118bb565b0390a2565b806103516119e56119e0611a0594868861181b565b611860565b60206119f284878961181b565b013561034b61034461033a86898b61181b565b611930565b6001906020833593019281850155016118f0565b15611a2557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c7920656e74727920706f696e74000000000000000000000000000000006044820152fd5b90611a966020928281519485920161170c565b0190565b6000611acb602092949394604051848101918252848152611aba816106d0565b60405192839283925192839161170c565b8101039060025afa15611b3057611ae491600051611c0c565b611b0c577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6111a0565b906041116101ba5760210190602090565b906007116101ba5760010190600690565b90929192836007116101ba5783116101ba57600701917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90190565b359060208110611ba0575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b901561185b5790565b15611bdd57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b91806021116101ba5760008282611d3d611c6796611d11611c93611c8d611c5e611c58899a7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89c611b35565b90611b92565b9a8b9688611bcd565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b611cdb611cd1611cc8611cb38460ff166000526001602052604060002090565b549360ff166000526001602052604060002090565b60010190600090565b90549060031b1c90565b9060405195869460016020870199013590899192608093969594919660a084019784526020840152604083015260608201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610708565b51907f00000000000000000000000000000000000000000000000000000000000000005afa91611d74611d6e6115c9565b93611bd6565b11611d9257611d8e81602080600194518301019101611191565b1490565b50600090565b604051906060820182811067ffffffffffffffff8211176106cb5760405260006040838281528260208201520152565b7fffffffffffff00000000000000000000000000000000000000000000000000009035818116939260068110611dfd57505050565b60060360031b82901b16169150565b611e14611d98565b916101408201611e24818461186a565b80915015611fc057611e45611c8d611c67611e3f858861186a565b90611bcd565b9060ff8216600103611fca57604803611fc057611f3082611f2486611f13600095611ea6611e9f611e97611e91611e8b611e85611d119f9d60209e61186a565b90611b46565b90611dc8565b60d01c90565b96879561186a565b8091611b57565b9a909a996040519485938b8501917fffffffffffff0000000000000000000000000000000000000000000000000000907fff000000000000000000000000000000000000000000000000000000000000006027959360f81b16845260d01b16600183015260078201520190565b65ffffffffffff9092166040890152565b60405191828092611a83565b039060025afa15611b3057611f4791600051611c0c565b611f515750600190565b61167e907fffffffffffff0000000000000000000000000000000000000000000000000000602073ffffffffffffffffffffffffffffffffffffffff83511679ffffffffffff0000000000000000000000000000000000000000604085015160a01b161792015160d01b161790565b5050505050600190565b505050505050600190565b916000928392602083519301915af1611fec6115c9565b9015611ff55750565b602081519101fd5b1561200457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c792073656c6600000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116106cb5760051b60200190565b9061208482612062565b604061209281519283610708565b8382527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06120c08395612062565b019160005b8381106120d25750505050565b60209083516120e0816106d0565b84368237828285010152016120c5565b906120fa82612062565b6121076040519182610708565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06121358294612062565b0190602036910137565b805182101561185b5760209160051b010190565b60405191906000835b6002821061217057505050610756826106d0565b600160208192855481520193019101909161215c565b90612192303314611ffd565b60ff82166000526001602052604060002054612249576119c6816121d97f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b77467201876935115156122a7565b6000546122139060101c60ff1660ff807f00000000000000000000000000000000000000000000000000000000000000001691161061230c565b61222e816110138660ff166000526001602052604060002090565b61106761103261224460005460ff9060101c1690565b612396565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920616c72656164792065786973747300000000000000000000000000006044820152fd5b156122ae57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6577206b65792063616e6e6f742062652030000000000000000000000000006044820152fd5b1561231357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d6178206b6579732072656163686564000000000000000000000000000000006044820152fd5b9060005b6002811061238257505050565b600190602083519301928185015501612375565b60ff1660ff81146118165760010190565b9291909260ff606082019416815260208091016000905b600282106123cc5750505050565b828060019286518152019401910190926123be565b156123e857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920646f6573206e6f7420657869737400000000000000000000000000006044820152fd5b1561244d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f63616e6e6f742072656d6f7665206f6e6c79207369676e696e67206b657900006044820152fd5b60ff168015611816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212206eb0c9fdeec3efa6e2dd90117bd6ed77a4251496c080965433196a4b8f93eb3464736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000c2b78104907f722dabac4c69f826a522b2754de4", - "nonce": "0x0", + "data": "0x000000000000000000000000000000000000000000000000000000000000000060c0346100f3576134bb906001600160401b0390601f38849003908101601f1916820190838211838310176100dd57808391604096879485528339810103126100f35780516001600160a01b03808216929091908382036100f357602001519182168092036100f35760a0528351926126b091828501918211858310176100dd5785938593610e0b8539825260208201520301906000f080156100d25760805251610d1290816100f9823960805181818161016c015281816105e8015261082e015260a05181818160e101526106910152f35b50513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60808060405260043610156200001457600080fd5b600090813560e01c90816311464fbe1462000120575080632a0c114d1462000105578063b0d691fe14620000945763cca14965146200005257600080fd5b346200009157602062000073620000693662000205565b9392909262000761565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b80fd5b50346200009157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126200009157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b602062000073620001163662000205565b9392909262000510565b9050346200019057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112620001905760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620001d657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112620002c45760043560ff81168103620002c457918060431215620002c45760405191604083019167ffffffffffffffff9284811084821117620001d65760405283606494828611620002c4576024905b868210620002c9575050933590838211620002c45780602383011215620002c4578160040135938411620002c45760248460051b83010111620002c457602401919060843590565b600080fd5b81358152602091820191016200027c565b60ff909116815260809391602091908582019060008484015b600282106200046b575050508360609187838501525260a0820160a08560051b84010196866000945b878610620003305750505050505050505090565b9091929394959697987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6082820301855289357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa184360301811215620002c4578301803573ffffffffffffffffffffffffffffffffffffffff8116809103620002c45782528881013589830152604090818101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215620002c45701898101903567ffffffffffffffff8111620002c4578036038213620002c457837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83808f97968c968f808b9a60019d0152870152868601376000858286010152011601019b019501960194939796959291906200031c565b8251815291850191600191909101908501620002f3565b60005b838110620004965750506000910152565b818101518382015260200162000485565b90601f60609373ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0931684526040602085015262000509815180928160408801526020888801910162000482565b0116010190565b93919362000522838587858562000761565b936000943462000679575b803b620006595750906200058b620005b89273ffffffffffffffffffffffffffffffffffffffff976040519586947fc73ba52600000000000000000000000000000000000000000000000000000000602087015260248601620002da565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528262000194565b6040519061042c8083019083821067ffffffffffffffff8311176200062c57916200060f918493620008b18539877f00000000000000000000000000000000000000000000000000000000000000001690620004a7565b039083f59081156200062057501690565b604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b73ffffffffffffffffffffffffffffffffffffffff169695505050505050565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001690813b156200075d5787906024604051809481937fb760faf90000000000000000000000000000000000000000000000000000000083528716600483015234905af18015620007525762000707575b506200052d565b67ffffffffffffffff81979297116200072557604052943862000700565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d89823e3d90fd5b8780fd5b90600b93926200088b620008986055979461042c936020958692620007d460409a8b519462000793878b018762000194565b89865286860199620008b18b398c519485947fc73ba526000000000000000000000000000000000000000000000000000000008987015260248601620002da565b03620008077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09182810184528362000194565b620008628a519182620008558782019573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001687620004a7565b0390810183528262000194565b89519586936200087b868601998a925192839162000482565b8401915180938684019062000482565b0103808452018262000194565b5190208351938401528201523081520160ff8153209056fe60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212203e27870c29c906c7a4abb622ab67817dc9be875182a3cce06cf0e3a1a85323ee64736f6c63430008150033a26469706673582212204b81d3631c33034d30903269659a6836155f344ddb50d3ceee6b9b8cb32c69f764736f6c63430008150033610100346200018557601f620026b038819003918201601f19168301916001600160401b038311848410176200018a578084926040948552833981010312620001855780516001600160a01b039182821682036200018557602001519182168203620001855730608052601460e05260a05260c05260005460ff8160081c16620001305760ff80821610620000f4575b60405161250f9081620001a182396080518181816103cd0152818161085001526108fc015260a0518181816102cc015281816105fc01528181610caa0152611975015260c05181818161020a0152611d41015260e051818181610d8201526121eb0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80631626ba7e1461010b578063290f32331461010657806334fcd5be146101015780633659cfe6146100fc5780633a871cdd146100f75780634f1ef286146100f257806352d1902d146100ed578063595f20d6146100e857806388b25709146100e35780639875b4db146100de578063b0d691fe146100d9578063b3033ef2146100d4578063bafa7108146100cf578063c73ba526146100ca5763c90e3c5b0361000e57610f2e565b610da6565b610d4a565b610cce565b610c5f565b610c1d565b610b1c565b610a10565b6108b6565b6107c9565b610587565b610379565b61025f565b6101bf565b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5767ffffffffffffffff6024358181116101ba57366023820112156101ba5780600401359182116101ba5736602483830101116101ba576101b69160246101839201600435611a9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681529081906020820190565b0390f35b600080fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156101ba5782359167ffffffffffffffff83116101ba576020808501948460051b0101116101ba57565b346101ba576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5760043567ffffffffffffffff81116101ba576102af90369060040161022e565b6102f373ffffffffffffffffffffffffffffffffffffffff9392937f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60005b8181106102ff57005b8061035161031161035693858861181b565b3561031b8161035b565b8561032784878a61181b565b013561034b61034461033a86898c61181b565b604081019061186a565b3691610792565b91611fd5565b6117e9565b6102f6565b73ffffffffffffffffffffffffffffffffffffffff8116036101ba57565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356103b48161035b565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916103fa8330141561107b565b6104297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611106565b610434303314611ffd565b60405190610441826106af565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561047b575050610019915061139e565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610557575b50610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6100199361055291146111ac565b61148a565b61057991925060203d8111610580575b6105718183610708565b810190611191565b90386104ba565b503d610567565b346101ba577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101ba576004359067ffffffffffffffff82116101ba576101609082360301126101ba576101b69061062f6044359161062373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60243590600401611e0c565b9080610647575b506040519081529081906020820190565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506106796115c9565b5038610636565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176106cb57604052565b610680565b6040810190811067ffffffffffffffff8211176106cb57604052565b6060810190811067ffffffffffffffff8211176106cb57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106cb57604052565b60405190610756826106d0565b565b67ffffffffffffffff81116106cb57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261079e82610758565b916107ac6040519384610708565b8294818452818301116101ba578281602093846000960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356107ff8161035b565b6024359067ffffffffffffffff82116101ba57366023830112156101ba57610834610019923690602481600401359101610792565b906108a673ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169061087d8230141561107b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614611106565b6108b1303314611ffd565b611237565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361094d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b6004359060ff821682036101ba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610a476109d1565b60ff6024359116600052600160205260406000209060028110156101ba576020910154604051908152f35b60409081810191808252835180935260608201926020809501916000905b828210610ad657505050508281830391015281808451928381520193019160005b828110610abf575050505090565b835160ff1685529381019392810192600101610ab1565b9091929594858288519280936000905b60028210610b035750989991019750019392600101919050610a90565b80518652948401948a9487945060019092019101610ae6565b346101ba576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c1a5760ff9081815460101c16610b5f8161207a565b91610b69826120f0565b93815b6101008110610b9157505090610b829114611bd6565b6101b660405192839283610a72565b818116610bab8160ff166000526001602052604060002090565b54610bc0575b50610bbb906117e9565b610b6c565b610bbb919361035182610beb610be6610c139560ff166000526001602052604060002090565b612153565b610bf5848b61213f565b52610c00838a61213f565b50610c0b838b61213f565b9060ff169052565b9290610bb1565b80fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060ff60005460101c16604051908152f35b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610d056109d1565b36604312156101ba57604051610d1a816106d0565b809160643681116101ba576024935b818510610d3a576100198484612186565b8435815260209485019401610d29565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610ddd6109d1565b366064116101ba5760643567ffffffffffffffff81116101ba57610e08610e6891369060040161022e565b9060005493610e2e60ff8660081c161580968197610f20575b8115610f00575b5061172f565b84610e5f60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b610eca576118d3565b610e6e57005b610e9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610efb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b6118d3565b303b15915081610f12575b5038610e28565b6001915060ff161438610f0b565b600160ff8216109150610e21565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610f656109d1565b610f70303314611ffd565b60009060ff811682526001602052610f8d604083205415156123e1565b610faa600160ff610fa3855460ff9060101c1690565b1611612446565b7fb1c618be842f3c0e753cfc3569dd3eafd446296dbe6db8af1d8cc92c7d0ba053611075610fe8610be68460ff166000526001602052604060002090565b611018610ff3610749565b8681528660208201526110138660ff166000526001602052604060002090565b612371565b61106761103261102d875460ff9060101c1690565b6124ab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055565b6040519182913095836123a7565b0390a280f35b1561108257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561110d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b908160209103126101ba575190565b6040513d6000823e3d90fd5b156111b357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b906112637f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1690565b1561127257506107569061139e565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff85165afa6000938161137e575b5061134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6113797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61075694146111ac565b611569565b61139791945060203d8111610580576105718183610708565b92386112c1565b803b156114065773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b906114948261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611561575b6114e3575050565b61155e91600080604051936114f7856106ec565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46115586115c9565b9161165e565b50565b5060006114db565b906115738261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906115c1576114e3575050565b5060016114db565b3d156115f4573d906115da82610758565b916115e86040519384610708565b82523d6000602084013e565b606090565b1561160057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b919290156116815750815115611672575090565b61167e903b15156115f9565b90565b8251909150156116945750805190602001fd5b6044601f917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519384927f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152611703815180928160248801526020888801910161170c565b01168101030190fd5b60005b83811061171f5750506000910152565b818101518382015260200161170f565b1561173657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118165760010190565b6117ba565b919081101561185b5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156101ba570190565b6109e1565b3561167e8161035b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ba570180359067ffffffffffffffff82116101ba576020019181360383136101ba57565b6024602060409294939460ff60608201961681520137565b916118eb8360ff166000526001602052604060002090565b602460005b60028110611a0a5750505061192d620100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff6000541617600055565b60005b8181106119cb575050507f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b7746720187660405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f9b44a2c7f9f0b5aa4e7da60d8a2325796c57f93a45559d66515743ffbd8a6103600080a2806119c63094826118bb565b0390a2565b806103516119e56119e0611a0594868861181b565b611860565b60206119f284878961181b565b013561034b61034461033a86898b61181b565b611930565b6001906020833593019281850155016118f0565b15611a2557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c7920656e74727920706f696e74000000000000000000000000000000006044820152fd5b90611a966020928281519485920161170c565b0190565b6000611acb602092949394604051848101918252848152611aba816106d0565b60405192839283925192839161170c565b8101039060025afa15611b3057611ae491600051611c0c565b611b0c577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6111a0565b906041116101ba5760210190602090565b906007116101ba5760010190600690565b90929192836007116101ba5783116101ba57600701917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90190565b359060208110611ba0575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b901561185b5790565b15611bdd57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b91806021116101ba5760008282611d3d611c6796611d11611c93611c8d611c5e611c58899a7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89c611b35565b90611b92565b9a8b9688611bcd565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b611cdb611cd1611cc8611cb38460ff166000526001602052604060002090565b549360ff166000526001602052604060002090565b60010190600090565b90549060031b1c90565b9060405195869460016020870199013590899192608093969594919660a084019784526020840152604083015260608201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610708565b51907f00000000000000000000000000000000000000000000000000000000000000005afa91611d74611d6e6115c9565b93611bd6565b11611d9257611d8e81602080600194518301019101611191565b1490565b50600090565b604051906060820182811067ffffffffffffffff8211176106cb5760405260006040838281528260208201520152565b7fffffffffffff00000000000000000000000000000000000000000000000000009035818116939260068110611dfd57505050565b60060360031b82901b16169150565b611e14611d98565b916101408201611e24818461186a565b80915015611fc057611e45611c8d611c67611e3f858861186a565b90611bcd565b9060ff8216600103611fca57604803611fc057611f3082611f2486611f13600095611ea6611e9f611e97611e91611e8b611e85611d119f9d60209e61186a565b90611b46565b90611dc8565b60d01c90565b96879561186a565b8091611b57565b9a909a996040519485938b8501917fffffffffffff0000000000000000000000000000000000000000000000000000907fff000000000000000000000000000000000000000000000000000000000000006027959360f81b16845260d01b16600183015260078201520190565b65ffffffffffff9092166040890152565b60405191828092611a83565b039060025afa15611b3057611f4791600051611c0c565b611f515750600190565b61167e907fffffffffffff0000000000000000000000000000000000000000000000000000602073ffffffffffffffffffffffffffffffffffffffff83511679ffffffffffff0000000000000000000000000000000000000000604085015160a01b161792015160d01b161790565b5050505050600190565b505050505050600190565b916000928392602083519301915af1611fec6115c9565b9015611ff55750565b602081519101fd5b1561200457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c792073656c6600000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116106cb5760051b60200190565b9061208482612062565b604061209281519283610708565b8382527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06120c08395612062565b019160005b8381106120d25750505050565b60209083516120e0816106d0565b84368237828285010152016120c5565b906120fa82612062565b6121076040519182610708565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06121358294612062565b0190602036910137565b805182101561185b5760209160051b010190565b60405191906000835b6002821061217057505050610756826106d0565b600160208192855481520193019101909161215c565b90612192303314611ffd565b60ff82166000526001602052604060002054612249576119c6816121d97f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b77467201876935115156122a7565b6000546122139060101c60ff1660ff807f00000000000000000000000000000000000000000000000000000000000000001691161061230c565b61222e816110138660ff166000526001602052604060002090565b61106761103261224460005460ff9060101c1690565b612396565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920616c72656164792065786973747300000000000000000000000000006044820152fd5b156122ae57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6577206b65792063616e6e6f742062652030000000000000000000000000006044820152fd5b1561231357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d6178206b6579732072656163686564000000000000000000000000000000006044820152fd5b9060005b6002811061238257505050565b600190602083519301928185015501612375565b60ff1660ff81146118165760010190565b9291909260ff606082019416815260208091016000905b600282106123cc5750505050565b828060019286518152019401910190926123be565b156123e857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920646f6573206e6f7420657869737400000000000000000000000000006044820152fd5b1561244d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f63616e6e6f742072656d6f7665206f6e6c79207369676e696e67206b657900006044820152fd5b60ff168015611816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212206eb0c9fdeec3efa6e2dd90117bd6ed77a4251496c080965433196a4b8f93eb3464736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000c2b78104907f722dabac4c69f826a522b2754de4", + "nonce": "0x6", "accessList": [] }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0x7cc0CeFDEcc1fcD10688A6f1B57fcE280400bC5F", + "address": "0x5951B697Ced7e0C496590F0386608391Eaff97EF", "initCode": "0x610100346200018557601f620026b038819003918201601f19168301916001600160401b038311848410176200018a578084926040948552833981010312620001855780516001600160a01b039182821682036200018557602001519182168203620001855730608052601460e05260a05260c05260005460ff8160081c16620001305760ff80821610620000f4575b60405161250f9081620001a182396080518181816103cd0152818161085001526108fc015260a0518181816102cc015281816105fc01528181610caa0152611975015260c05181818161020a0152611d41015260e051818181610d8201526121eb0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80631626ba7e1461010b578063290f32331461010657806334fcd5be146101015780633659cfe6146100fc5780633a871cdd146100f75780634f1ef286146100f257806352d1902d146100ed578063595f20d6146100e857806388b25709146100e35780639875b4db146100de578063b0d691fe146100d9578063b3033ef2146100d4578063bafa7108146100cf578063c73ba526146100ca5763c90e3c5b0361000e57610f2e565b610da6565b610d4a565b610cce565b610c5f565b610c1d565b610b1c565b610a10565b6108b6565b6107c9565b610587565b610379565b61025f565b6101bf565b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5767ffffffffffffffff6024358181116101ba57366023820112156101ba5780600401359182116101ba5736602483830101116101ba576101b69160246101839201600435611a9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681529081906020820190565b0390f35b600080fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156101ba5782359167ffffffffffffffff83116101ba576020808501948460051b0101116101ba57565b346101ba576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5760043567ffffffffffffffff81116101ba576102af90369060040161022e565b6102f373ffffffffffffffffffffffffffffffffffffffff9392937f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60005b8181106102ff57005b8061035161031161035693858861181b565b3561031b8161035b565b8561032784878a61181b565b013561034b61034461033a86898c61181b565b604081019061186a565b3691610792565b91611fd5565b6117e9565b6102f6565b73ffffffffffffffffffffffffffffffffffffffff8116036101ba57565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356103b48161035b565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916103fa8330141561107b565b6104297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611106565b610434303314611ffd565b60405190610441826106af565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561047b575050610019915061139e565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610557575b50610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6100199361055291146111ac565b61148a565b61057991925060203d8111610580575b6105718183610708565b810190611191565b90386104ba565b503d610567565b346101ba577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101ba576004359067ffffffffffffffff82116101ba576101609082360301126101ba576101b69061062f6044359161062373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60243590600401611e0c565b9080610647575b506040519081529081906020820190565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506106796115c9565b5038610636565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176106cb57604052565b610680565b6040810190811067ffffffffffffffff8211176106cb57604052565b6060810190811067ffffffffffffffff8211176106cb57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106cb57604052565b60405190610756826106d0565b565b67ffffffffffffffff81116106cb57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261079e82610758565b916107ac6040519384610708565b8294818452818301116101ba578281602093846000960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356107ff8161035b565b6024359067ffffffffffffffff82116101ba57366023830112156101ba57610834610019923690602481600401359101610792565b906108a673ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169061087d8230141561107b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614611106565b6108b1303314611ffd565b611237565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361094d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b6004359060ff821682036101ba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610a476109d1565b60ff6024359116600052600160205260406000209060028110156101ba576020910154604051908152f35b60409081810191808252835180935260608201926020809501916000905b828210610ad657505050508281830391015281808451928381520193019160005b828110610abf575050505090565b835160ff1685529381019392810192600101610ab1565b9091929594858288519280936000905b60028210610b035750989991019750019392600101919050610a90565b80518652948401948a9487945060019092019101610ae6565b346101ba576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c1a5760ff9081815460101c16610b5f8161207a565b91610b69826120f0565b93815b6101008110610b9157505090610b829114611bd6565b6101b660405192839283610a72565b818116610bab8160ff166000526001602052604060002090565b54610bc0575b50610bbb906117e9565b610b6c565b610bbb919361035182610beb610be6610c139560ff166000526001602052604060002090565b612153565b610bf5848b61213f565b52610c00838a61213f565b50610c0b838b61213f565b9060ff169052565b9290610bb1565b80fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060ff60005460101c16604051908152f35b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610d056109d1565b36604312156101ba57604051610d1a816106d0565b809160643681116101ba576024935b818510610d3a576100198484612186565b8435815260209485019401610d29565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610ddd6109d1565b366064116101ba5760643567ffffffffffffffff81116101ba57610e08610e6891369060040161022e565b9060005493610e2e60ff8660081c161580968197610f20575b8115610f00575b5061172f565b84610e5f60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b610eca576118d3565b610e6e57005b610e9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610efb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b6118d3565b303b15915081610f12575b5038610e28565b6001915060ff161438610f0b565b600160ff8216109150610e21565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610f656109d1565b610f70303314611ffd565b60009060ff811682526001602052610f8d604083205415156123e1565b610faa600160ff610fa3855460ff9060101c1690565b1611612446565b7fb1c618be842f3c0e753cfc3569dd3eafd446296dbe6db8af1d8cc92c7d0ba053611075610fe8610be68460ff166000526001602052604060002090565b611018610ff3610749565b8681528660208201526110138660ff166000526001602052604060002090565b612371565b61106761103261102d875460ff9060101c1690565b6124ab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055565b6040519182913095836123a7565b0390a280f35b1561108257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561110d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b908160209103126101ba575190565b6040513d6000823e3d90fd5b156111b357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b906112637f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1690565b1561127257506107569061139e565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff85165afa6000938161137e575b5061134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6113797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61075694146111ac565b611569565b61139791945060203d8111610580576105718183610708565b92386112c1565b803b156114065773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b906114948261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611561575b6114e3575050565b61155e91600080604051936114f7856106ec565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46115586115c9565b9161165e565b50565b5060006114db565b906115738261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906115c1576114e3575050565b5060016114db565b3d156115f4573d906115da82610758565b916115e86040519384610708565b82523d6000602084013e565b606090565b1561160057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b919290156116815750815115611672575090565b61167e903b15156115f9565b90565b8251909150156116945750805190602001fd5b6044601f917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519384927f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152611703815180928160248801526020888801910161170c565b01168101030190fd5b60005b83811061171f5750506000910152565b818101518382015260200161170f565b1561173657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118165760010190565b6117ba565b919081101561185b5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156101ba570190565b6109e1565b3561167e8161035b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ba570180359067ffffffffffffffff82116101ba576020019181360383136101ba57565b6024602060409294939460ff60608201961681520137565b916118eb8360ff166000526001602052604060002090565b602460005b60028110611a0a5750505061192d620100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff6000541617600055565b60005b8181106119cb575050507f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b7746720187660405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f9b44a2c7f9f0b5aa4e7da60d8a2325796c57f93a45559d66515743ffbd8a6103600080a2806119c63094826118bb565b0390a2565b806103516119e56119e0611a0594868861181b565b611860565b60206119f284878961181b565b013561034b61034461033a86898b61181b565b611930565b6001906020833593019281850155016118f0565b15611a2557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c7920656e74727920706f696e74000000000000000000000000000000006044820152fd5b90611a966020928281519485920161170c565b0190565b6000611acb602092949394604051848101918252848152611aba816106d0565b60405192839283925192839161170c565b8101039060025afa15611b3057611ae491600051611c0c565b611b0c577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6111a0565b906041116101ba5760210190602090565b906007116101ba5760010190600690565b90929192836007116101ba5783116101ba57600701917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90190565b359060208110611ba0575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b901561185b5790565b15611bdd57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b91806021116101ba5760008282611d3d611c6796611d11611c93611c8d611c5e611c58899a7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89c611b35565b90611b92565b9a8b9688611bcd565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b611cdb611cd1611cc8611cb38460ff166000526001602052604060002090565b549360ff166000526001602052604060002090565b60010190600090565b90549060031b1c90565b9060405195869460016020870199013590899192608093969594919660a084019784526020840152604083015260608201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610708565b51907f00000000000000000000000000000000000000000000000000000000000000005afa91611d74611d6e6115c9565b93611bd6565b11611d9257611d8e81602080600194518301019101611191565b1490565b50600090565b604051906060820182811067ffffffffffffffff8211176106cb5760405260006040838281528260208201520152565b7fffffffffffff00000000000000000000000000000000000000000000000000009035818116939260068110611dfd57505050565b60060360031b82901b16169150565b611e14611d98565b916101408201611e24818461186a565b80915015611fc057611e45611c8d611c67611e3f858861186a565b90611bcd565b9060ff8216600103611fca57604803611fc057611f3082611f2486611f13600095611ea6611e9f611e97611e91611e8b611e85611d119f9d60209e61186a565b90611b46565b90611dc8565b60d01c90565b96879561186a565b8091611b57565b9a909a996040519485938b8501917fffffffffffff0000000000000000000000000000000000000000000000000000907fff000000000000000000000000000000000000000000000000000000000000006027959360f81b16845260d01b16600183015260078201520190565b65ffffffffffff9092166040890152565b60405191828092611a83565b039060025afa15611b3057611f4791600051611c0c565b611f515750600190565b61167e907fffffffffffff0000000000000000000000000000000000000000000000000000602073ffffffffffffffffffffffffffffffffffffffff83511679ffffffffffff0000000000000000000000000000000000000000604085015160a01b161792015160d01b161790565b5050505050600190565b505050505050600190565b916000928392602083519301915af1611fec6115c9565b9015611ff55750565b602081519101fd5b1561200457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c792073656c6600000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116106cb5760051b60200190565b9061208482612062565b604061209281519283610708565b8382527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06120c08395612062565b019160005b8381106120d25750505050565b60209083516120e0816106d0565b84368237828285010152016120c5565b906120fa82612062565b6121076040519182610708565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06121358294612062565b0190602036910137565b805182101561185b5760209160051b010190565b60405191906000835b6002821061217057505050610756826106d0565b600160208192855481520193019101909161215c565b90612192303314611ffd565b60ff82166000526001602052604060002054612249576119c6816121d97f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b77467201876935115156122a7565b6000546122139060101c60ff1660ff807f00000000000000000000000000000000000000000000000000000000000000001691161061230c565b61222e816110138660ff166000526001602052604060002090565b61106761103261224460005460ff9060101c1690565b612396565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920616c72656164792065786973747300000000000000000000000000006044820152fd5b156122ae57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6577206b65792063616e6e6f742062652030000000000000000000000000006044820152fd5b1561231357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d6178206b6579732072656163686564000000000000000000000000000000006044820152fd5b9060005b6002811061238257505050565b600190602083519301928185015501612375565b60ff1660ff81146118165760010190565b9291909260ff606082019416815260208091016000905b600282106123cc5750505050565b828060019286518152019401910190926123be565b156123e857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920646f6573206e6f7420657869737400000000000000000000000000006044820152fd5b1561244d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f63616e6e6f742072656d6f7665206f6e6c79207369676e696e67206b657900006044820152fd5b60ff168015611816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212206eb0c9fdeec3efa6e2dd90117bd6ed77a4251496c080965433196a4b8f93eb3464736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000c2b78104907f722dabac4c69f826a522b2754de4" } ], @@ -32,41 +32,41 @@ ], "receipts": [ { - "transactionHash": "0xf2c43a024066b13a058c2866d9436f766e1071bf61b5b4dbb242a6fc038f1cbd", - "transactionIndex": "0x1", - "blockHash": "0xa51db5beacee46bb0e38ca7740ef02aa04f406a3241fbb663512d269044b9a7e", - "blockNumber": "0x4eb17f", + "transactionHash": "0x2f7b0381d3cb6bb20f87f5b4065766f076ce76552e5424fceab392016a54cd76", + "transactionIndex": "0x2", + "blockHash": "0x571854fb0349ced5566c8118092b4560b589a5cf998a343eccdf79a0890db419", + "blockNumber": "0x514996", "from": "0x2A6d311394184EeB6Df8FBBF58626B085374Ffe7", "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", - "cumulativeGasUsed": "0x2c9d48", + "cumulativeGasUsed": "0x2da8e9", "gasUsed": "0x2be613", - "contractAddress": null, + "contractAddress": "0xED5F5066de0c177729Eb0D5FECEC4BF87CA6Bf3C", "logs": [ { - "address": "0x7cc0CeFDEcc1fcD10688A6f1B57fcE280400bC5F", + "address": "0x5951B697Ced7e0C496590F0386608391Eaff97EF", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xa51db5beacee46bb0e38ca7740ef02aa04f406a3241fbb663512d269044b9a7e", - "blockNumber": "0x4eb17f", - "transactionHash": "0xf2c43a024066b13a058c2866d9436f766e1071bf61b5b4dbb242a6fc038f1cbd", - "transactionIndex": "0x1", - "logIndex": "0x0", + "blockHash": "0x571854fb0349ced5566c8118092b4560b589a5cf998a343eccdf79a0890db419", + "blockNumber": "0x514996", + "transactionHash": "0x2f7b0381d3cb6bb20f87f5b4065766f076ce76552e5424fceab392016a54cd76", + "transactionIndex": "0x2", + "logIndex": "0x1", "removed": false } ], "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400080000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000800000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0xb2dc3479" + "effectiveGasPrice": "0xb2d874d6" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1697103847, + "timestamp": 1697443893, "chain": 8453, "multi": false, - "commit": "1c7dc19" + "commit": "ae7d64e" } \ No newline at end of file diff --git a/packages/contract/broadcast/DeployAccountFactory.s.sol/84531/run-latest.json b/packages/contract/broadcast/DeployAccountFactory.s.sol/84531/run-latest.json index 02a43334e..7719aff8f 100644 --- a/packages/contract/broadcast/DeployAccountFactory.s.sol/84531/run-latest.json +++ b/packages/contract/broadcast/DeployAccountFactory.s.sol/84531/run-latest.json @@ -1,26 +1,29 @@ { "transactions": [ { - "hash": "0xf7f66a2731bd4861a7f9cf7c3225b44640abdf5f2c5df431d83284a3e20913a5", + "hash": "0xe36b918623be6530cf8367c11e2833e2d750240421b4432cda1e31a7039fb28b", "transactionType": "CREATE2", - "contractName": "AccountFactory", - "contractAddress": "0xe5a1744d42a30c3Bb87f16FbC4484B984594cD7C", + "contractName": "DaimoAccountFactory", + "contractAddress": "0xED5F5066de0c177729Eb0D5FECEC4BF87CA6Bf3C", "function": null, - "arguments": null, + "arguments": [ + "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789", + "0xc2b78104907F722DABAc4C69f826a522B2754De4" + ], "transaction": { "type": "0x02", "from": "0x2a6d311394184eeb6df8fbbf58626b085374ffe7", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "gas": "0x4033ae", "value": "0x0", - "data": "0x000000000000000000000000000000000000000000000000000000000000000060c0346100f3576134bb906001600160401b0390601f38849003908101601f1916820190838211838310176100dd57808391604096879485528339810103126100f35780516001600160a01b03808216929091908382036100f357602001519182168092036100f35760a0528351926126b091828501918211858310176100dd5785938593610e0b8539825260208201520301906000f080156100d25760805251610d1290816100f9823960805181818161016c015281816105e8015261082e015260a05181818160e101526106910152f35b50513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60808060405260043610156200001457600080fd5b600090813560e01c90816311464fbe1462000120575080632a0c114d1462000105578063b0d691fe14620000945763cca14965146200005257600080fd5b346200009157602062000073620000693662000205565b9392909262000761565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b80fd5b50346200009157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126200009157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b602062000073620001163662000205565b9392909262000510565b9050346200019057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112620001905760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620001d657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112620002c45760043560ff81168103620002c457918060431215620002c45760405191604083019167ffffffffffffffff9284811084821117620001d65760405283606494828611620002c4576024905b868210620002c9575050933590838211620002c45780602383011215620002c4578160040135938411620002c45760248460051b83010111620002c457602401919060843590565b600080fd5b81358152602091820191016200027c565b60ff909116815260809391602091908582019060008484015b600282106200046b575050508360609187838501525260a0820160a08560051b84010196866000945b878610620003305750505050505050505090565b9091929394959697987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6082820301855289357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa184360301811215620002c4578301803573ffffffffffffffffffffffffffffffffffffffff8116809103620002c45782528881013589830152604090818101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215620002c45701898101903567ffffffffffffffff8111620002c4578036038213620002c457837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83808f97968c968f808b9a60019d0152870152868601376000858286010152011601019b019501960194939796959291906200031c565b8251815291850191600191909101908501620002f3565b60005b838110620004965750506000910152565b818101518382015260200162000485565b90601f60609373ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0931684526040602085015262000509815180928160408801526020888801910162000482565b0116010190565b93919362000522838587858562000761565b936000943462000679575b803b620006595750906200058b620005b89273ffffffffffffffffffffffffffffffffffffffff976040519586947fc73ba52600000000000000000000000000000000000000000000000000000000602087015260248601620002da565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528262000194565b6040519061042c8083019083821067ffffffffffffffff8311176200062c57916200060f918493620008b18539877f00000000000000000000000000000000000000000000000000000000000000001690620004a7565b039083f59081156200062057501690565b604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b73ffffffffffffffffffffffffffffffffffffffff169695505050505050565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001690813b156200075d5787906024604051809481937fb760faf90000000000000000000000000000000000000000000000000000000083528716600483015234905af18015620007525762000707575b506200052d565b67ffffffffffffffff81979297116200072557604052943862000700565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d89823e3d90fd5b8780fd5b90600b93926200088b620008986055979461042c936020958692620007d460409a8b519462000793878b018762000194565b89865286860199620008b18b398c519485947fc73ba526000000000000000000000000000000000000000000000000000000008987015260248601620002da565b03620008077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09182810184528362000194565b620008628a519182620008558782019573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001687620004a7565b0390810183528262000194565b89519586936200087b868601998a925192839162000482565b8401915180938684019062000482565b0103808452018262000194565b5190208351938401528201523081520160ff8153209056fe60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212203e27870c29c906c7a4abb622ab67817dc9be875182a3cce06cf0e3a1a85323ee64736f6c63430008150033a2646970667358221220ba5568a7517ac7ee1e76d8caf9dc7b31ff8eb71dfb21a2e55e2408ff6939d74a64736f6c63430008150033610100346200018557601f620026b038819003918201601f19168301916001600160401b038311848410176200018a578084926040948552833981010312620001855780516001600160a01b039182821682036200018557602001519182168203620001855730608052601460e05260a05260c05260005460ff8160081c16620001305760ff80821610620000f4575b60405161250f9081620001a182396080518181816103cd0152818161085001526108fc015260a0518181816102cc015281816105fc01528181610caa0152611975015260c05181818161020a0152611d41015260e051818181610d8201526121eb0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80631626ba7e1461010b578063290f32331461010657806334fcd5be146101015780633659cfe6146100fc5780633a871cdd146100f75780634f1ef286146100f257806352d1902d146100ed578063595f20d6146100e857806388b25709146100e35780639875b4db146100de578063b0d691fe146100d9578063b3033ef2146100d4578063bafa7108146100cf578063c73ba526146100ca5763c90e3c5b0361000e57610f2e565b610da6565b610d4a565b610cce565b610c5f565b610c1d565b610b1c565b610a10565b6108b6565b6107c9565b610587565b610379565b61025f565b6101bf565b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5767ffffffffffffffff6024358181116101ba57366023820112156101ba5780600401359182116101ba5736602483830101116101ba576101b69160246101839201600435611a9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681529081906020820190565b0390f35b600080fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156101ba5782359167ffffffffffffffff83116101ba576020808501948460051b0101116101ba57565b346101ba576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5760043567ffffffffffffffff81116101ba576102af90369060040161022e565b6102f373ffffffffffffffffffffffffffffffffffffffff9392937f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60005b8181106102ff57005b8061035161031161035693858861181b565b3561031b8161035b565b8561032784878a61181b565b013561034b61034461033a86898c61181b565b604081019061186a565b3691610792565b91611fd5565b6117e9565b6102f6565b73ffffffffffffffffffffffffffffffffffffffff8116036101ba57565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356103b48161035b565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916103fa8330141561107b565b6104297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611106565b610434303314611ffd565b60405190610441826106af565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561047b575050610019915061139e565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610557575b50610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6100199361055291146111ac565b61148a565b61057991925060203d8111610580575b6105718183610708565b810190611191565b90386104ba565b503d610567565b346101ba577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101ba576004359067ffffffffffffffff82116101ba576101609082360301126101ba576101b69061062f6044359161062373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60243590600401611e0c565b9080610647575b506040519081529081906020820190565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506106796115c9565b5038610636565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176106cb57604052565b610680565b6040810190811067ffffffffffffffff8211176106cb57604052565b6060810190811067ffffffffffffffff8211176106cb57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106cb57604052565b60405190610756826106d0565b565b67ffffffffffffffff81116106cb57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261079e82610758565b916107ac6040519384610708565b8294818452818301116101ba578281602093846000960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356107ff8161035b565b6024359067ffffffffffffffff82116101ba57366023830112156101ba57610834610019923690602481600401359101610792565b906108a673ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169061087d8230141561107b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614611106565b6108b1303314611ffd565b611237565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361094d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b6004359060ff821682036101ba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610a476109d1565b60ff6024359116600052600160205260406000209060028110156101ba576020910154604051908152f35b60409081810191808252835180935260608201926020809501916000905b828210610ad657505050508281830391015281808451928381520193019160005b828110610abf575050505090565b835160ff1685529381019392810192600101610ab1565b9091929594858288519280936000905b60028210610b035750989991019750019392600101919050610a90565b80518652948401948a9487945060019092019101610ae6565b346101ba576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c1a5760ff9081815460101c16610b5f8161207a565b91610b69826120f0565b93815b6101008110610b9157505090610b829114611bd6565b6101b660405192839283610a72565b818116610bab8160ff166000526001602052604060002090565b54610bc0575b50610bbb906117e9565b610b6c565b610bbb919361035182610beb610be6610c139560ff166000526001602052604060002090565b612153565b610bf5848b61213f565b52610c00838a61213f565b50610c0b838b61213f565b9060ff169052565b9290610bb1565b80fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060ff60005460101c16604051908152f35b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610d056109d1565b36604312156101ba57604051610d1a816106d0565b809160643681116101ba576024935b818510610d3a576100198484612186565b8435815260209485019401610d29565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610ddd6109d1565b366064116101ba5760643567ffffffffffffffff81116101ba57610e08610e6891369060040161022e565b9060005493610e2e60ff8660081c161580968197610f20575b8115610f00575b5061172f565b84610e5f60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b610eca576118d3565b610e6e57005b610e9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610efb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b6118d3565b303b15915081610f12575b5038610e28565b6001915060ff161438610f0b565b600160ff8216109150610e21565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610f656109d1565b610f70303314611ffd565b60009060ff811682526001602052610f8d604083205415156123e1565b610faa600160ff610fa3855460ff9060101c1690565b1611612446565b7fb1c618be842f3c0e753cfc3569dd3eafd446296dbe6db8af1d8cc92c7d0ba053611075610fe8610be68460ff166000526001602052604060002090565b611018610ff3610749565b8681528660208201526110138660ff166000526001602052604060002090565b612371565b61106761103261102d875460ff9060101c1690565b6124ab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055565b6040519182913095836123a7565b0390a280f35b1561108257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561110d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b908160209103126101ba575190565b6040513d6000823e3d90fd5b156111b357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b906112637f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1690565b1561127257506107569061139e565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff85165afa6000938161137e575b5061134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6113797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61075694146111ac565b611569565b61139791945060203d8111610580576105718183610708565b92386112c1565b803b156114065773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b906114948261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611561575b6114e3575050565b61155e91600080604051936114f7856106ec565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46115586115c9565b9161165e565b50565b5060006114db565b906115738261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906115c1576114e3575050565b5060016114db565b3d156115f4573d906115da82610758565b916115e86040519384610708565b82523d6000602084013e565b606090565b1561160057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b919290156116815750815115611672575090565b61167e903b15156115f9565b90565b8251909150156116945750805190602001fd5b6044601f917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519384927f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152611703815180928160248801526020888801910161170c565b01168101030190fd5b60005b83811061171f5750506000910152565b818101518382015260200161170f565b1561173657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118165760010190565b6117ba565b919081101561185b5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156101ba570190565b6109e1565b3561167e8161035b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ba570180359067ffffffffffffffff82116101ba576020019181360383136101ba57565b6024602060409294939460ff60608201961681520137565b916118eb8360ff166000526001602052604060002090565b602460005b60028110611a0a5750505061192d620100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff6000541617600055565b60005b8181106119cb575050507f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b7746720187660405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f9b44a2c7f9f0b5aa4e7da60d8a2325796c57f93a45559d66515743ffbd8a6103600080a2806119c63094826118bb565b0390a2565b806103516119e56119e0611a0594868861181b565b611860565b60206119f284878961181b565b013561034b61034461033a86898b61181b565b611930565b6001906020833593019281850155016118f0565b15611a2557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c7920656e74727920706f696e74000000000000000000000000000000006044820152fd5b90611a966020928281519485920161170c565b0190565b6000611acb602092949394604051848101918252848152611aba816106d0565b60405192839283925192839161170c565b8101039060025afa15611b3057611ae491600051611c0c565b611b0c577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6111a0565b906041116101ba5760210190602090565b906007116101ba5760010190600690565b90929192836007116101ba5783116101ba57600701917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90190565b359060208110611ba0575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b901561185b5790565b15611bdd57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b91806021116101ba5760008282611d3d611c6796611d11611c93611c8d611c5e611c58899a7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89c611b35565b90611b92565b9a8b9688611bcd565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b611cdb611cd1611cc8611cb38460ff166000526001602052604060002090565b549360ff166000526001602052604060002090565b60010190600090565b90549060031b1c90565b9060405195869460016020870199013590899192608093969594919660a084019784526020840152604083015260608201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610708565b51907f00000000000000000000000000000000000000000000000000000000000000005afa91611d74611d6e6115c9565b93611bd6565b11611d9257611d8e81602080600194518301019101611191565b1490565b50600090565b604051906060820182811067ffffffffffffffff8211176106cb5760405260006040838281528260208201520152565b7fffffffffffff00000000000000000000000000000000000000000000000000009035818116939260068110611dfd57505050565b60060360031b82901b16169150565b611e14611d98565b916101408201611e24818461186a565b80915015611fc057611e45611c8d611c67611e3f858861186a565b90611bcd565b9060ff8216600103611fca57604803611fc057611f3082611f2486611f13600095611ea6611e9f611e97611e91611e8b611e85611d119f9d60209e61186a565b90611b46565b90611dc8565b60d01c90565b96879561186a565b8091611b57565b9a909a996040519485938b8501917fffffffffffff0000000000000000000000000000000000000000000000000000907fff000000000000000000000000000000000000000000000000000000000000006027959360f81b16845260d01b16600183015260078201520190565b65ffffffffffff9092166040890152565b60405191828092611a83565b039060025afa15611b3057611f4791600051611c0c565b611f515750600190565b61167e907fffffffffffff0000000000000000000000000000000000000000000000000000602073ffffffffffffffffffffffffffffffffffffffff83511679ffffffffffff0000000000000000000000000000000000000000604085015160a01b161792015160d01b161790565b5050505050600190565b505050505050600190565b916000928392602083519301915af1611fec6115c9565b9015611ff55750565b602081519101fd5b1561200457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c792073656c6600000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116106cb5760051b60200190565b9061208482612062565b604061209281519283610708565b8382527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06120c08395612062565b019160005b8381106120d25750505050565b60209083516120e0816106d0565b84368237828285010152016120c5565b906120fa82612062565b6121076040519182610708565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06121358294612062565b0190602036910137565b805182101561185b5760209160051b010190565b60405191906000835b6002821061217057505050610756826106d0565b600160208192855481520193019101909161215c565b90612192303314611ffd565b60ff82166000526001602052604060002054612249576119c6816121d97f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b77467201876935115156122a7565b6000546122139060101c60ff1660ff807f00000000000000000000000000000000000000000000000000000000000000001691161061230c565b61222e816110138660ff166000526001602052604060002090565b61106761103261224460005460ff9060101c1690565b612396565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920616c72656164792065786973747300000000000000000000000000006044820152fd5b156122ae57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6577206b65792063616e6e6f742062652030000000000000000000000000006044820152fd5b1561231357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d6178206b6579732072656163686564000000000000000000000000000000006044820152fd5b9060005b6002811061238257505050565b600190602083519301928185015501612375565b60ff1660ff81146118165760010190565b9291909260ff606082019416815260208091016000905b600282106123cc5750505050565b828060019286518152019401910190926123be565b156123e857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920646f6573206e6f7420657869737400000000000000000000000000006044820152fd5b1561244d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f63616e6e6f742072656d6f7665206f6e6c79207369676e696e67206b657900006044820152fd5b60ff168015611816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212206eb0c9fdeec3efa6e2dd90117bd6ed77a4251496c080965433196a4b8f93eb3464736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000c2b78104907f722dabac4c69f826a522b2754de4", - "nonce": "0x3cd", + "data": "0x000000000000000000000000000000000000000000000000000000000000000060c0346100f3576134bb906001600160401b0390601f38849003908101601f1916820190838211838310176100dd57808391604096879485528339810103126100f35780516001600160a01b03808216929091908382036100f357602001519182168092036100f35760a0528351926126b091828501918211858310176100dd5785938593610e0b8539825260208201520301906000f080156100d25760805251610d1290816100f9823960805181818161016c015281816105e8015261082e015260a05181818160e101526106910152f35b50513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b600080fdfe60808060405260043610156200001457600080fd5b600090813560e01c90816311464fbe1462000120575080632a0c114d1462000105578063b0d691fe14620000945763cca14965146200005257600080fd5b346200009157602062000073620000693662000205565b9392909262000761565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b80fd5b50346200009157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126200009157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b602062000073620001163662000205565b9392909262000510565b9050346200019057817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112620001905760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117620001d657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b9060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112620002c45760043560ff81168103620002c457918060431215620002c45760405191604083019167ffffffffffffffff9284811084821117620001d65760405283606494828611620002c4576024905b868210620002c9575050933590838211620002c45780602383011215620002c4578160040135938411620002c45760248460051b83010111620002c457602401919060843590565b600080fd5b81358152602091820191016200027c565b60ff909116815260809391602091908582019060008484015b600282106200046b575050508360609187838501525260a0820160a08560051b84010196866000945b878610620003305750505050505050505090565b9091929394959697987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6082820301855289357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa184360301811215620002c4578301803573ffffffffffffffffffffffffffffffffffffffff8116809103620002c45782528881013589830152604090818101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215620002c45701898101903567ffffffffffffffff8111620002c4578036038213620002c457837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83808f97968c968f808b9a60019d0152870152868601376000858286010152011601019b019501960194939796959291906200031c565b8251815291850191600191909101908501620002f3565b60005b838110620004965750506000910152565b818101518382015260200162000485565b90601f60609373ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0931684526040602085015262000509815180928160408801526020888801910162000482565b0116010190565b93919362000522838587858562000761565b936000943462000679575b803b620006595750906200058b620005b89273ffffffffffffffffffffffffffffffffffffffff976040519586947fc73ba52600000000000000000000000000000000000000000000000000000000602087015260248601620002da565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528262000194565b6040519061042c8083019083821067ffffffffffffffff8311176200062c57916200060f918493620008b18539877f00000000000000000000000000000000000000000000000000000000000000001690620004a7565b039083f59081156200062057501690565b604051903d90823e3d90fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b73ffffffffffffffffffffffffffffffffffffffff169695505050505050565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001690813b156200075d5787906024604051809481937fb760faf90000000000000000000000000000000000000000000000000000000083528716600483015234905af18015620007525762000707575b506200052d565b67ffffffffffffffff81979297116200072557604052943862000700565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d89823e3d90fd5b8780fd5b90600b93926200088b620008986055979461042c936020958692620007d460409a8b519462000793878b018762000194565b89865286860199620008b18b398c519485947fc73ba526000000000000000000000000000000000000000000000000000000008987015260248601620002da565b03620008077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09182810184528362000194565b620008628a519182620008558782019573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001687620004a7565b0390810183528262000194565b89519586936200087b868601998a925192839162000482565b8401915180938684019062000482565b0103808452018262000194565b5190208351938401528201523081520160ff8153209056fe60406080815261042c908138038061001681610218565b93843982019181818403126102135780516001600160a01b038116808203610213576020838101516001600160401b0394919391858211610213570186601f820112156102135780519061007161006c83610253565b610218565b918083528583019886828401011161021357888661008f930161026e565b813b156101b9577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916841790556000927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28051158015906101b2575b61010b575b855160e790816103458239f35b855194606086019081118682101761019e578697849283926101889952602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b8a8901525190845af4913d15610194573d9061017a61006c83610253565b91825281943d92013e610291565b508038808080806100fe565b5060609250610291565b634e487b7160e01b84526041600452602484fd5b50826100f9565b855162461bcd60e51b815260048101859052602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761023d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b03811161023d57601f01601f191660200190565b60005b8381106102815750506000910152565b8181015183820152602001610271565b919290156102f357508151156102a5575090565b3b156102ae5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156103065750805190602001fd5b6044604051809262461bcd60e51b825260206004830152610336815180928160248601526020868601910161026e565b601f01601f19168101030190fdfe60806040523615605f5773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f35b3d90fd5b73ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54166000808092368280378136915af43d82803e15605b573d90f3fea26469706673582212203e27870c29c906c7a4abb622ab67817dc9be875182a3cce06cf0e3a1a85323ee64736f6c63430008150033a26469706673582212204b81d3631c33034d30903269659a6836155f344ddb50d3ceee6b9b8cb32c69f764736f6c63430008150033610100346200018557601f620026b038819003918201601f19168301916001600160401b038311848410176200018a578084926040948552833981010312620001855780516001600160a01b039182821682036200018557602001519182168203620001855730608052601460e05260a05260c05260005460ff8160081c16620001305760ff80821610620000f4575b60405161250f9081620001a182396080518181816103cd0152818161085001526108fc015260a0518181816102cc015281816105fc01528181610caa0152611975015260c05181818161020a0152611d41015260e051818181610d8201526121eb0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80631626ba7e1461010b578063290f32331461010657806334fcd5be146101015780633659cfe6146100fc5780633a871cdd146100f75780634f1ef286146100f257806352d1902d146100ed578063595f20d6146100e857806388b25709146100e35780639875b4db146100de578063b0d691fe146100d9578063b3033ef2146100d4578063bafa7108146100cf578063c73ba526146100ca5763c90e3c5b0361000e57610f2e565b610da6565b610d4a565b610cce565b610c5f565b610c1d565b610b1c565b610a10565b6108b6565b6107c9565b610587565b610379565b61025f565b6101bf565b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5767ffffffffffffffff6024358181116101ba57366023820112156101ba5780600401359182116101ba5736602483830101116101ba576101b69160246101839201600435611a9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681529081906020820190565b0390f35b600080fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156101ba5782359167ffffffffffffffff83116101ba576020808501948460051b0101116101ba57565b346101ba576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5760043567ffffffffffffffff81116101ba576102af90369060040161022e565b6102f373ffffffffffffffffffffffffffffffffffffffff9392937f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60005b8181106102ff57005b8061035161031161035693858861181b565b3561031b8161035b565b8561032784878a61181b565b013561034b61034461033a86898c61181b565b604081019061186a565b3691610792565b91611fd5565b6117e9565b6102f6565b73ffffffffffffffffffffffffffffffffffffffff8116036101ba57565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356103b48161035b565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916103fa8330141561107b565b6104297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611106565b610434303314611ffd565b60405190610441826106af565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561047b575050610019915061139e565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610557575b50610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6100199361055291146111ac565b61148a565b61057991925060203d8111610580575b6105718183610708565b810190611191565b90386104ba565b503d610567565b346101ba577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101ba576004359067ffffffffffffffff82116101ba576101609082360301126101ba576101b69061062f6044359161062373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60243590600401611e0c565b9080610647575b506040519081529081906020820190565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506106796115c9565b5038610636565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176106cb57604052565b610680565b6040810190811067ffffffffffffffff8211176106cb57604052565b6060810190811067ffffffffffffffff8211176106cb57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106cb57604052565b60405190610756826106d0565b565b67ffffffffffffffff81116106cb57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261079e82610758565b916107ac6040519384610708565b8294818452818301116101ba578281602093846000960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356107ff8161035b565b6024359067ffffffffffffffff82116101ba57366023830112156101ba57610834610019923690602481600401359101610792565b906108a673ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169061087d8230141561107b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614611106565b6108b1303314611ffd565b611237565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361094d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b6004359060ff821682036101ba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610a476109d1565b60ff6024359116600052600160205260406000209060028110156101ba576020910154604051908152f35b60409081810191808252835180935260608201926020809501916000905b828210610ad657505050508281830391015281808451928381520193019160005b828110610abf575050505090565b835160ff1685529381019392810192600101610ab1565b9091929594858288519280936000905b60028210610b035750989991019750019392600101919050610a90565b80518652948401948a9487945060019092019101610ae6565b346101ba576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c1a5760ff9081815460101c16610b5f8161207a565b91610b69826120f0565b93815b6101008110610b9157505090610b829114611bd6565b6101b660405192839283610a72565b818116610bab8160ff166000526001602052604060002090565b54610bc0575b50610bbb906117e9565b610b6c565b610bbb919361035182610beb610be6610c139560ff166000526001602052604060002090565b612153565b610bf5848b61213f565b52610c00838a61213f565b50610c0b838b61213f565b9060ff169052565b9290610bb1565b80fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060ff60005460101c16604051908152f35b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610d056109d1565b36604312156101ba57604051610d1a816106d0565b809160643681116101ba576024935b818510610d3a576100198484612186565b8435815260209485019401610d29565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610ddd6109d1565b366064116101ba5760643567ffffffffffffffff81116101ba57610e08610e6891369060040161022e565b9060005493610e2e60ff8660081c161580968197610f20575b8115610f00575b5061172f565b84610e5f60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b610eca576118d3565b610e6e57005b610e9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610efb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b6118d3565b303b15915081610f12575b5038610e28565b6001915060ff161438610f0b565b600160ff8216109150610e21565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610f656109d1565b610f70303314611ffd565b60009060ff811682526001602052610f8d604083205415156123e1565b610faa600160ff610fa3855460ff9060101c1690565b1611612446565b7fb1c618be842f3c0e753cfc3569dd3eafd446296dbe6db8af1d8cc92c7d0ba053611075610fe8610be68460ff166000526001602052604060002090565b611018610ff3610749565b8681528660208201526110138660ff166000526001602052604060002090565b612371565b61106761103261102d875460ff9060101c1690565b6124ab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055565b6040519182913095836123a7565b0390a280f35b1561108257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561110d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b908160209103126101ba575190565b6040513d6000823e3d90fd5b156111b357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b906112637f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1690565b1561127257506107569061139e565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff85165afa6000938161137e575b5061134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6113797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61075694146111ac565b611569565b61139791945060203d8111610580576105718183610708565b92386112c1565b803b156114065773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b906114948261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611561575b6114e3575050565b61155e91600080604051936114f7856106ec565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46115586115c9565b9161165e565b50565b5060006114db565b906115738261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906115c1576114e3575050565b5060016114db565b3d156115f4573d906115da82610758565b916115e86040519384610708565b82523d6000602084013e565b606090565b1561160057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b919290156116815750815115611672575090565b61167e903b15156115f9565b90565b8251909150156116945750805190602001fd5b6044601f917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519384927f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152611703815180928160248801526020888801910161170c565b01168101030190fd5b60005b83811061171f5750506000910152565b818101518382015260200161170f565b1561173657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118165760010190565b6117ba565b919081101561185b5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156101ba570190565b6109e1565b3561167e8161035b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ba570180359067ffffffffffffffff82116101ba576020019181360383136101ba57565b6024602060409294939460ff60608201961681520137565b916118eb8360ff166000526001602052604060002090565b602460005b60028110611a0a5750505061192d620100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff6000541617600055565b60005b8181106119cb575050507f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b7746720187660405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f9b44a2c7f9f0b5aa4e7da60d8a2325796c57f93a45559d66515743ffbd8a6103600080a2806119c63094826118bb565b0390a2565b806103516119e56119e0611a0594868861181b565b611860565b60206119f284878961181b565b013561034b61034461033a86898b61181b565b611930565b6001906020833593019281850155016118f0565b15611a2557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c7920656e74727920706f696e74000000000000000000000000000000006044820152fd5b90611a966020928281519485920161170c565b0190565b6000611acb602092949394604051848101918252848152611aba816106d0565b60405192839283925192839161170c565b8101039060025afa15611b3057611ae491600051611c0c565b611b0c577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6111a0565b906041116101ba5760210190602090565b906007116101ba5760010190600690565b90929192836007116101ba5783116101ba57600701917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90190565b359060208110611ba0575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b901561185b5790565b15611bdd57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b91806021116101ba5760008282611d3d611c6796611d11611c93611c8d611c5e611c58899a7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89c611b35565b90611b92565b9a8b9688611bcd565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b611cdb611cd1611cc8611cb38460ff166000526001602052604060002090565b549360ff166000526001602052604060002090565b60010190600090565b90549060031b1c90565b9060405195869460016020870199013590899192608093969594919660a084019784526020840152604083015260608201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610708565b51907f00000000000000000000000000000000000000000000000000000000000000005afa91611d74611d6e6115c9565b93611bd6565b11611d9257611d8e81602080600194518301019101611191565b1490565b50600090565b604051906060820182811067ffffffffffffffff8211176106cb5760405260006040838281528260208201520152565b7fffffffffffff00000000000000000000000000000000000000000000000000009035818116939260068110611dfd57505050565b60060360031b82901b16169150565b611e14611d98565b916101408201611e24818461186a565b80915015611fc057611e45611c8d611c67611e3f858861186a565b90611bcd565b9060ff8216600103611fca57604803611fc057611f3082611f2486611f13600095611ea6611e9f611e97611e91611e8b611e85611d119f9d60209e61186a565b90611b46565b90611dc8565b60d01c90565b96879561186a565b8091611b57565b9a909a996040519485938b8501917fffffffffffff0000000000000000000000000000000000000000000000000000907fff000000000000000000000000000000000000000000000000000000000000006027959360f81b16845260d01b16600183015260078201520190565b65ffffffffffff9092166040890152565b60405191828092611a83565b039060025afa15611b3057611f4791600051611c0c565b611f515750600190565b61167e907fffffffffffff0000000000000000000000000000000000000000000000000000602073ffffffffffffffffffffffffffffffffffffffff83511679ffffffffffff0000000000000000000000000000000000000000604085015160a01b161792015160d01b161790565b5050505050600190565b505050505050600190565b916000928392602083519301915af1611fec6115c9565b9015611ff55750565b602081519101fd5b1561200457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c792073656c6600000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116106cb5760051b60200190565b9061208482612062565b604061209281519283610708565b8382527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06120c08395612062565b019160005b8381106120d25750505050565b60209083516120e0816106d0565b84368237828285010152016120c5565b906120fa82612062565b6121076040519182610708565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06121358294612062565b0190602036910137565b805182101561185b5760209160051b010190565b60405191906000835b6002821061217057505050610756826106d0565b600160208192855481520193019101909161215c565b90612192303314611ffd565b60ff82166000526001602052604060002054612249576119c6816121d97f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b77467201876935115156122a7565b6000546122139060101c60ff1660ff807f00000000000000000000000000000000000000000000000000000000000000001691161061230c565b61222e816110138660ff166000526001602052604060002090565b61106761103261224460005460ff9060101c1690565b612396565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920616c72656164792065786973747300000000000000000000000000006044820152fd5b156122ae57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6577206b65792063616e6e6f742062652030000000000000000000000000006044820152fd5b1561231357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d6178206b6579732072656163686564000000000000000000000000000000006044820152fd5b9060005b6002811061238257505050565b600190602083519301928185015501612375565b60ff1660ff81146118165760010190565b9291909260ff606082019416815260208091016000905b600282106123cc5750505050565b828060019286518152019401910190926123be565b156123e857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920646f6573206e6f7420657869737400000000000000000000000000006044820152fd5b1561244d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f63616e6e6f742072656d6f7665206f6e6c79207369676e696e67206b657900006044820152fd5b60ff168015611816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212206eb0c9fdeec3efa6e2dd90117bd6ed77a4251496c080965433196a4b8f93eb3464736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000c2b78104907f722dabac4c69f826a522b2754de4", + "nonce": "0x480", "accessList": [] }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0x7cc0CeFDEcc1fcD10688A6f1B57fcE280400bC5F", + "address": "0x5951B697Ced7e0C496590F0386608391Eaff97EF", "initCode": "0x610100346200018557601f620026b038819003918201601f19168301916001600160401b038311848410176200018a578084926040948552833981010312620001855780516001600160a01b039182821682036200018557602001519182168203620001855730608052601460e05260a05260c05260005460ff8160081c16620001305760ff80821610620000f4575b60405161250f9081620001a182396080518181816103cd0152818161085001526108fc015260a0518181816102cc015281816105fc01528181610caa0152611975015260c05181818161020a0152611d41015260e051818181610d8201526121eb0152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200008f565b60405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80631626ba7e1461010b578063290f32331461010657806334fcd5be146101015780633659cfe6146100fc5780633a871cdd146100f75780634f1ef286146100f257806352d1902d146100ed578063595f20d6146100e857806388b25709146100e35780639875b4db146100de578063b0d691fe146100d9578063b3033ef2146100d4578063bafa7108146100cf578063c73ba526146100ca5763c90e3c5b0361000e57610f2e565b610da6565b610d4a565b610cce565b610c5f565b610c1d565b610b1c565b610a10565b6108b6565b6107c9565b610587565b610379565b61025f565b6101bf565b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5767ffffffffffffffff6024358181116101ba57366023820112156101ba5780600401359182116101ba5736602483830101116101ba576101b69160246101839201600435611a9a565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681529081906020820190565b0390f35b600080fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156101ba5782359167ffffffffffffffff83116101ba576020808501948460051b0101116101ba57565b346101ba576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5760043567ffffffffffffffff81116101ba576102af90369060040161022e565b6102f373ffffffffffffffffffffffffffffffffffffffff9392937f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60005b8181106102ff57005b8061035161031161035693858861181b565b3561031b8161035b565b8561032784878a61181b565b013561034b61034461033a86898c61181b565b604081019061186a565b3691610792565b91611fd5565b6117e9565b6102f6565b73ffffffffffffffffffffffffffffffffffffffff8116036101ba57565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356103b48161035b565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016916103fa8330141561107b565b6104297f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc938285541614611106565b610434303314611ffd565b60405190610441826106af565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561047b575050610019915061139e565b6020600491604094939451928380927f52d1902d00000000000000000000000000000000000000000000000000000000825286165afa60009181610557575b50610544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6100199361055291146111ac565b61148a565b61057991925060203d8111610580575b6105718183610708565b810190611191565b90386104ba565b503d610567565b346101ba577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6060813601126101ba576004359067ffffffffffffffff82116101ba576101609082360301126101ba576101b69061062f6044359161062373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314611a1e565b60243590600401611e0c565b9080610647575b506040519081529081906020820190565b600080808093337ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1506106796115c9565b5038610636565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176106cb57604052565b610680565b6040810190811067ffffffffffffffff8211176106cb57604052565b6060810190811067ffffffffffffffff8211176106cb57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106cb57604052565b60405190610756826106d0565b565b67ffffffffffffffff81116106cb57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261079e82610758565b916107ac6040519384610708565b8294818452818301116101ba578281602093846000960137010152565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba576004356107ff8161035b565b6024359067ffffffffffffffff82116101ba57366023830112156101ba57610834610019923690602481600401359101610792565b906108a673ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169061087d8230141561107b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614611106565b6108b1303314611ffd565b611237565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361094d576040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152602090f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b6004359060ff821682036101ba57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b346101ba5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610a476109d1565b60ff6024359116600052600160205260406000209060028110156101ba576020910154604051908152f35b60409081810191808252835180935260608201926020809501916000905b828210610ad657505050508281830391015281808451928381520193019160005b828110610abf575050505090565b835160ff1685529381019392810192600101610ab1565b9091929594858288519280936000905b60028210610b035750989991019750019392600101919050610a90565b80518652948401948a9487945060019092019101610ae6565b346101ba576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c1a5760ff9081815460101c16610b5f8161207a565b91610b69826120f0565b93815b6101008110610b9157505090610b829114611bd6565b6101b660405192839283610a72565b818116610bab8160ff166000526001602052604060002090565b54610bc0575b50610bbb906117e9565b610b6c565b610bbb919361035182610beb610be6610c139560ff166000526001602052604060002090565b612153565b610bf5848b61213f565b52610c00838a61213f565b50610c0b838b61213f565b9060ff169052565b9290610bb1565b80fd5b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060ff60005460101c16604051908152f35b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610d056109d1565b36604312156101ba57604051610d1a816106d0565b809160643681116101ba576024935b818510610d3a576100198484612186565b8435815260209485019401610d29565b346101ba5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101ba5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610ddd6109d1565b366064116101ba5760643567ffffffffffffffff81116101ba57610e08610e6891369060040161022e565b9060005493610e2e60ff8660081c161580968197610f20575b8115610f00575b5061172f565b84610e5f60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055565b610eca576118d3565b610e6e57005b610e9b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff60005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b610efb6101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff6000541617600055565b6118d3565b303b15915081610f12575b5038610e28565b6001915060ff161438610f0b565b600160ff8216109150610e21565b346101ba5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ba57610f656109d1565b610f70303314611ffd565b60009060ff811682526001602052610f8d604083205415156123e1565b610faa600160ff610fa3855460ff9060101c1690565b1611612446565b7fb1c618be842f3c0e753cfc3569dd3eafd446296dbe6db8af1d8cc92c7d0ba053611075610fe8610be68460ff166000526001602052604060002090565b611018610ff3610749565b8681528660208201526110138660ff166000526001602052604060002090565b612371565b61106761103261102d875460ff9060101c1690565b6124ab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055565b6040519182913095836123a7565b0390a280f35b1561108257565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152fd5b1561110d57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152fd5b908160209103126101ba575190565b6040513d6000823e3d90fd5b156111b357565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152fd5b906112637f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1690565b1561127257506107569061139e565b604051917f52d1902d00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff85165afa6000938161137e575b5061134b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608490fd5b6113797f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61075694146111ac565b611569565b61139791945060203d8111610580576105718183610708565b92386112c1565b803b156114065773ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152fd5b906114948261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2805115801590611561575b6114e3575050565b61155e91600080604051936114f7856106ec565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46115586115c9565b9161165e565b50565b5060006114db565b906115738261139e565b73ffffffffffffffffffffffffffffffffffffffff82167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28051158015906115c1576114e3575050565b5060016114db565b3d156115f4573d906115da82610758565b916115e86040519384610708565b82523d6000602084013e565b606090565b1561160057565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b919290156116815750815115611672575090565b61167e903b15156115f9565b90565b8251909150156116945750805190602001fd5b6044601f917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06040519384927f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152611703815180928160248801526020888801910161170c565b01168101030190fd5b60005b83811061171f5750506000910152565b818101518382015260200161170f565b1561173657565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118165760010190565b6117ba565b919081101561185b5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1813603018212156101ba570190565b6109e1565b3561167e8161035b565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ba570180359067ffffffffffffffff82116101ba576020019181360383136101ba57565b6024602060409294939460ff60608201961681520137565b916118eb8360ff166000526001602052604060002090565b602460005b60028110611a0a5750505061192d620100007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff6000541617600055565b60005b8181106119cb575050507f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b7746720187660405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f9b44a2c7f9f0b5aa4e7da60d8a2325796c57f93a45559d66515743ffbd8a6103600080a2806119c63094826118bb565b0390a2565b806103516119e56119e0611a0594868861181b565b611860565b60206119f284878961181b565b013561034b61034461033a86898b61181b565b611930565b6001906020833593019281850155016118f0565b15611a2557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c7920656e74727920706f696e74000000000000000000000000000000006044820152fd5b90611a966020928281519485920161170c565b0190565b6000611acb602092949394604051848101918252848152611aba816106d0565b60405192839283925192839161170c565b8101039060025afa15611b3057611ae491600051611c0c565b611b0c577fffffffff0000000000000000000000000000000000000000000000000000000090565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b6111a0565b906041116101ba5760210190602090565b906007116101ba5760010190600690565b90929192836007116101ba5783116101ba57600701917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90190565b359060208110611ba0575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b901561185b5790565b15611bdd57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b91806021116101ba5760008282611d3d611c6796611d11611c93611c8d611c5e611c58899a7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89c611b35565b90611b92565b9a8b9688611bcd565b357fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b611cdb611cd1611cc8611cb38460ff166000526001602052604060002090565b549360ff166000526001602052604060002090565b60010190600090565b90549060031b1c90565b9060405195869460016020870199013590899192608093969594919660a084019784526020840152604083015260608201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610708565b51907f00000000000000000000000000000000000000000000000000000000000000005afa91611d74611d6e6115c9565b93611bd6565b11611d9257611d8e81602080600194518301019101611191565b1490565b50600090565b604051906060820182811067ffffffffffffffff8211176106cb5760405260006040838281528260208201520152565b7fffffffffffff00000000000000000000000000000000000000000000000000009035818116939260068110611dfd57505050565b60060360031b82901b16169150565b611e14611d98565b916101408201611e24818461186a565b80915015611fc057611e45611c8d611c67611e3f858861186a565b90611bcd565b9060ff8216600103611fca57604803611fc057611f3082611f2486611f13600095611ea6611e9f611e97611e91611e8b611e85611d119f9d60209e61186a565b90611b46565b90611dc8565b60d01c90565b96879561186a565b8091611b57565b9a909a996040519485938b8501917fffffffffffff0000000000000000000000000000000000000000000000000000907fff000000000000000000000000000000000000000000000000000000000000006027959360f81b16845260d01b16600183015260078201520190565b65ffffffffffff9092166040890152565b60405191828092611a83565b039060025afa15611b3057611f4791600051611c0c565b611f515750600190565b61167e907fffffffffffff0000000000000000000000000000000000000000000000000000602073ffffffffffffffffffffffffffffffffffffffff83511679ffffffffffff0000000000000000000000000000000000000000604085015160a01b161792015160d01b161790565b5050505050600190565b505050505050600190565b916000928392602083519301915af1611fec6115c9565b9015611ff55750565b602081519101fd5b1561200457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6f6e6c792073656c6600000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff81116106cb5760051b60200190565b9061208482612062565b604061209281519283610708565b8382527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06120c08395612062565b019160005b8381106120d25750505050565b60209083516120e0816106d0565b84368237828285010152016120c5565b906120fa82612062565b6121076040519182610708565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06121358294612062565b0190602036910137565b805182101561185b5760209160051b010190565b60405191906000835b6002821061217057505050610756826106d0565b600160208192855481520193019101909161215c565b90612192303314611ffd565b60ff82166000526001602052604060002054612249576119c6816121d97f1d84cb7fa5da6303adc54870a915cbf91d2cf642fcc5ce470b79b77467201876935115156122a7565b6000546122139060101c60ff1660ff807f00000000000000000000000000000000000000000000000000000000000000001691161061230c565b61222e816110138660ff166000526001602052604060002090565b61106761103261224460005460ff9060101c1690565b612396565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920616c72656164792065786973747300000000000000000000000000006044820152fd5b156122ae57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f6e6577206b65792063616e6e6f742062652030000000000000000000000000006044820152fd5b1561231357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d6178206b6579732072656163686564000000000000000000000000000000006044820152fd5b9060005b6002811061238257505050565b600190602083519301928185015501612375565b60ff1660ff81146118165760010190565b9291909260ff606082019416815260208091016000905b600282106123cc5750505050565b828060019286518152019401910190926123be565b156123e857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f6b657920646f6573206e6f7420657869737400000000000000000000000000006044820152fd5b1561244d57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f63616e6e6f742072656d6f7665206f6e6c79207369676e696e67206b657900006044820152fd5b60ff168015611816577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea26469706673582212206eb0c9fdeec3efa6e2dd90117bd6ed77a4251496c080965433196a4b8f93eb3464736f6c634300081500330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789000000000000000000000000c2b78104907f722dabac4c69f826a522b2754de4" } ], @@ -29,41 +32,41 @@ ], "receipts": [ { - "transactionHash": "0xf7f66a2731bd4861a7f9cf7c3225b44640abdf5f2c5df431d83284a3e20913a5", + "transactionHash": "0xe36b918623be6530cf8367c11e2833e2d750240421b4432cda1e31a7039fb28b", "transactionIndex": "0x1", - "blockHash": "0xb5855e49b65145feea8010572f37922d26c1c9a0c740f9d91fb0001b583b4748", - "blockNumber": "0x9e4285", + "blockHash": "0x83386b8cc3b1d2ed1a7b8a510e5dfadd206b9b4202c846af1b378eb79652e8f8", + "blockNumber": "0xa9c0f2", "from": "0x2A6d311394184EeB6Df8FBBF58626B085374Ffe7", "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", - "cumulativeGasUsed": "0x2cdfe4", + "cumulativeGasUsed": "0x2c9d18", "gasUsed": "0x2be613", - "contractAddress": "0xe5a1744d42a30c3Bb87f16FbC4484B984594cD7C", + "contractAddress": "0xED5F5066de0c177729Eb0D5FECEC4BF87CA6Bf3C", "logs": [ { - "address": "0x7cc0CeFDEcc1fcD10688A6f1B57fcE280400bC5F", + "address": "0x5951B697Ced7e0C496590F0386608391Eaff97EF", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xb5855e49b65145feea8010572f37922d26c1c9a0c740f9d91fb0001b583b4748", - "blockNumber": "0x9e4285", - "transactionHash": "0xf7f66a2731bd4861a7f9cf7c3225b44640abdf5f2c5df431d83284a3e20913a5", + "blockHash": "0x83386b8cc3b1d2ed1a7b8a510e5dfadd206b9b4202c846af1b378eb79652e8f8", + "blockNumber": "0xa9c0f2", + "transactionHash": "0xe36b918623be6530cf8367c11e2833e2d750240421b4432cda1e31a7039fb28b", "transactionIndex": "0x1", "logIndex": "0x0", "removed": false } ], "status": "0x1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400080000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000800000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0xb2d05e3c" + "effectiveGasPrice": "0xb2d05e32" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1695937088, + "timestamp": 1697443596, "chain": 84531, "multi": false, - "commit": "287f1c7" + "commit": "ae7d64e" } \ No newline at end of file diff --git a/packages/contract/broadcast/DeployEphemeralNotes.s.sol/8453/run-latest.json b/packages/contract/broadcast/DeployEphemeralNotes.s.sol/8453/run-latest.json index bdce69200..459690907 100644 --- a/packages/contract/broadcast/DeployEphemeralNotes.s.sol/8453/run-latest.json +++ b/packages/contract/broadcast/DeployEphemeralNotes.s.sol/8453/run-latest.json @@ -1,21 +1,22 @@ { "transactions": [ { - "hash": "0x81785a9d837512fe1fd4ef0c4237b9dd96974107e4d35b2f36181fac598bf129", - "transactionType": "CREATE", - "contractName": "EphemeralNotes", - "contractAddress": "0x9471A2b4E680c383f4912bC0992cA6131888Bd36", + "hash": "0x8fb781abb84809727187c78f831c53876f0839e34ce766771ea4d3aebee91c79", + "transactionType": "CREATE2", + "contractName": "DaimoEphemeralNotes", + "contractAddress": "0x831967F433D9425Aa34D6A3dAC01a428d839De0f", "function": null, "arguments": [ - "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + "0x0000000000000000000000000000000000000000" ], "transaction": { "type": "0x02", "from": "0x2a6d311394184eeb6df8fbbf58626b085374ffe7", - "gas": "0xf7ff2", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x109f00", "value": "0x0", - "data": "0x60a03461007757601f610dd438819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b038116810361007757608052604051610d4190816100938239608051818181609a0152818161037d015261067f0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263311054bd146104e55750816360300b201461016c57508063bd93644a146100c25763fc0c546a1461005157600080fd5b346100be57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100be576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b5090346101695760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610169576101658273ffffffffffffffffffffffffffffffffffffffff928361011661072b565b1681528060205220926002838554169360018601541694015490519384938460409194939294606082019573ffffffffffffffffffffffffffffffffffffffff80921683521660208201520152565b0390f35b80fd5b839150346100be57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100be576101a561072b565b60249384359267ffffffffffffffff928385116104e157366023860112156104e15784820135906101d5826107fb565b916101e2855193846107ba565b808352602096368a83830101116104dd578189928b8a9301838701378401015273ffffffffffffffffffffffffffffffffffffffff809116908188528787528488209085519161023183610753565b8181541694858452600283600184015416928b86019384520154958885019687521561045c57826102c96102c187938d8c51818101903360601b82526014815261027a8161079e565b519020908d51908101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c81526102b981610753565b519020610c37565b919091610a9e565b16148015610450575b156103cf5786519251821683525116878201528251818601523360608201527fb45f3215e68b9bc29811df32d4910e77331ed2a01d8556bea2012566efa3292090608090a186528585528560028482208281558260018201550155517fa9059cbb0000000000000000000000000000000000000000000000000000000083519586015233878601526044850152604484526080840192848410908411176103a457506103a1939450527f0000000000000000000000000000000000000000000000000000000000000000610835565b80f35b84604187927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60848660318d8c8b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a20696e76616c6964207369676e6174757260448201527f6520616e64206e6f742063726561746f720000000000000000000000000000006064820152fd5b508181511633146102d2565b60848760238e8d8c51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a206e6f746520646f6573206e6f7420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152fd5b8880fd5b8580fd5b8385913461072757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126107275761051e61072b565b9060243573ffffffffffffffffffffffffffffffffffffffff809316908186526020928684528486882054166106a75750908593929181156106a35780156106a357857fedafcff52f9510e3fee14034ebd5cb6c302432e2b233738af47ce5596a5bbeed606061065194600288888761067d9b886103a19f9e7f23b872dd000000000000000000000000000000000000000000000000000000009f819051956105c687610753565b89875280870199338b5284880196875282525220925116947fffffffffffffffffffffffff000000000000000000000000000000000000000093868585541617845560018401915116809482541617905551928391015585519283528883015284820152a1519283019490945233602483015230604483015260648201939093529182906084820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826107ba565b7f0000000000000000000000000000000000000000000000000000000000000000610835565b8480fd5b8084897f08c379a00000000000000000000000000000000000000000000000000000000060849452820152602360248201527f457068656d6572616c4e6f7465733a206e6f746520616c72656164792065786960448201527f73747300000000000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361074e57565b600080fd5b6060810190811067ffffffffffffffff82111761076f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761076f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761076f57604052565b67ffffffffffffffff811161076f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff16906108c060405161085b8161079e565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d15610978573d916108a5836107fb565b926108b360405194856107ba565b83523d868885013e61097c565b8051806108ce575b50505050565b818491810103126100be578201519081159182150361016957506108f4578080806108c8565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6060915b919290156109f75750815115610990575090565b3b156109995790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015610a0a5750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610a87575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610a46565b6005811015610c085780610aaf5750565b60018103610b155760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103610b7b5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b600314610b8457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b906041815114600014610c6557610c61916020820151906060604084015193015160001a90610c6f565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311610cff5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15610cf257815173ffffffffffffffffffffffffffffffffffffffff811615610cec579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea264697066735822122081d3b5c264ea34c30302ab428fc421c9d545f7cfda295eddbb9c2a4ced6b6f8f64736f6c63430008150033000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913", - "nonce": "0x3", + "data": "0x000000000000000000000000000000000000000000000000000000000000000060803461015057601f610e4d38819003918201601f19168301916001600160401b038311848410176101555780849260209460405283398101031261015057516001600160a01b0381169081900361015057801561007b57600180546001600160a01b0319169190911790555b604051610ce1908161016c8239f35b5046612105036100b057600180546001600160a01b03191673833589fcd6edb6e08f4c7c32d4f71b54bda0291317905561006c565b4662014a33036100e557600180546001600160a01b031916731b85dede8178e18cde599b4c9d913534553c3dbf17905561006c565b60405162461bcd60e51b815260206004820152603460248201527f457068656d6572616c4e6f7465733a20756e6b6e6f776e20636861696e20616e60448201527f64206e6f20746f6b656e207370656369666965640000000000000000000000006064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263311054bd146104ab5750816360300b201461015057508063bd93644a146100a65763fc0c546a1461005157600080fd5b346100a257817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100a25760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b5080fd5b50903461014d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014d576101498273ffffffffffffffffffffffffffffffffffffffff92836100fa6106cb565b1681528060205220926002838554169360018601541694015490519384938460409194939294606082019573ffffffffffffffffffffffffffffffffffffffff80921683521660208201520152565b0390f35b80fd5b8383346100a257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100a2576101886106cb565b60249384359267ffffffffffffffff918285116104a757366023860112156104a75784810135936101b88561079b565b946101c58451968761075a565b808652602096368a83830101116104a3578189928b8a9301838a01378701015273ffffffffffffffffffffffffffffffffffffffff809116808852878752838820845190610212826106f3565b8381541697888352600285600184015416928b8501938452015498878401998a521561042257846102aa6102a286938d8b51818101903360601b82526014815261025b8161073e565b519020908c51908101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c815261029a816106f3565b519020610bd7565b919091610a3e565b16148015610416575b15610395577fb45f3215e68b9bc29811df32d4910e77331ed2a01d8556bea2012566efa329209184608092818951935116835251168a820152885187820152336060820152a1875286865286600284822082815582600182015501556001541693517fa9059cbb00000000000000000000000000000000000000000000000000000000835196870152338887015260448601526044855260808501928584109084111761036a5750610367949550526107d5565b80f35b85604188927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60848560318d8c8a51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a20696e76616c6964207369676e6174757260448201527f6520616e64206e6f742063726561746f720000000000000000000000000000006064820152fd5b508381511633146102b3565b60848660238e8d8b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a206e6f746520646f6573206e6f7420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152fd5b8880fd5b8580fd5b849184346106c757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c7576104e46106cb565b6024359273ffffffffffffffffffffffffffffffffffffffff8092169485875260209187835283858920541661064857505084156104a75783156104a7576106177f23b872dd0000000000000000000000000000000000000000000000000000000094610643937fedafcff52f9510e3fee14034ebd5cb6c302432e2b233738af47ce5596a5bbeed60606103679960028c8a51610580816106f3565b838152868c8b830193338552818401968b88528152808d5220915116937fffffffffffffffffffffffff0000000000000000000000000000000000000000928584845416178355886001840191511680948254161790555192839101558a519283528883015289820152a1600154955193840196909652336024840152306044840152606483015290939092169183906084820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810184528361075a565b6107d5565b916084927f08c379a0000000000000000000000000000000000000000000000000000000008352820152602360248201527f457068656d6572616c4e6f7465733a206e6f746520616c72656164792065786960448201527f73747300000000000000000000000000000000000000000000000000000000006064820152fd5b8380fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036106ee57565b600080fd5b6060810190811067ffffffffffffffff82111761070f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761070f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070f57604052565b67ffffffffffffffff811161070f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff16906108606040516107fb8161073e565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d15610918573d916108458361079b565b92610853604051948561075a565b83523d868885013e61091c565b80518061086e575b50505050565b818491810103126100a2578201519081159182150361014d575061089457808080610868565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6060915b919290156109975750815115610930575090565b3b156109395790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156109aa5750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610a27575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b8181018301518682016044015285935082016109e6565b6005811015610ba85780610a4f5750565b60018103610ab55760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103610b1b5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b600314610b2457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b906041815114600014610c0557610c01916020820151906060604084015193015160001a90610c0f565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311610c9f5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15610c9257815173ffffffffffffffffffffffffffffffffffffffff811615610c8c579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea26469706673582212206fdc3f66a8716be9706ad92be2a7d40279972342b3fb06ba7af6a4d96982f04664736f6c634300081500330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x5", "accessList": [] }, "additionalContracts": [], @@ -24,27 +25,27 @@ ], "receipts": [ { - "transactionHash": "0x81785a9d837512fe1fd4ef0c4237b9dd96974107e4d35b2f36181fac598bf129", + "transactionHash": "0x8fb781abb84809727187c78f831c53876f0839e34ce766771ea4d3aebee91c79", "transactionIndex": "0x1", - "blockHash": "0x1cfaa135912a49c22388117b20038f6dd622ac9c59b2b5a11d3d402e17a29345", - "blockNumber": "0x4eb2f2", + "blockHash": "0xd6ac0591e60d0396fa52ce916bbf0d54c8983746c865e81080c07add1641549d", + "blockNumber": "0x513a01", "from": "0x2A6d311394184EeB6Df8FBBF58626B085374Ffe7", - "to": null, - "cumulativeGasUsed": "0xce651", - "gasUsed": "0xbec44", - "contractAddress": "0x9471A2b4E680c383f4912bC0992cA6131888Bd36", + "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", + "cumulativeGasUsed": "0xd0299", + "gasUsed": "0xc088c", + "contractAddress": "0x831967F433D9425Aa34D6A3dAC01a428d839De0f", "logs": [], "status": "0x1", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0xb2d8beef" + "effectiveGasPrice": "0xb2d75192" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1697104606, + "timestamp": 1697435899, "chain": 8453, "multi": false, - "commit": "1c7dc19" + "commit": "ae7d64e" } \ No newline at end of file diff --git a/packages/contract/broadcast/DeployEphemeralNotes.s.sol/84531/run-latest.json b/packages/contract/broadcast/DeployEphemeralNotes.s.sol/84531/run-latest.json index 0a9e1d8f5..fc00682b0 100644 --- a/packages/contract/broadcast/DeployEphemeralNotes.s.sol/84531/run-latest.json +++ b/packages/contract/broadcast/DeployEphemeralNotes.s.sol/84531/run-latest.json @@ -1,21 +1,22 @@ { "transactions": [ { - "hash": "0x53663af931f3ebd817bc1f84f4972e12e6a28ccadac350d1d760efcd3273897f", - "transactionType": "CREATE", - "contractName": "EphemeralNotes", - "contractAddress": "0x1eec7E083C1a10C16470bEAc7839364853c7B81f", + "hash": "0x2e12ffab815d07ce38256ee400940a1b8fbf551e5f45b14693245ef5f162bd5d", + "transactionType": "CREATE2", + "contractName": "DaimoEphemeralNotes", + "contractAddress": "0x831967F433D9425Aa34D6A3dAC01a428d839De0f", "function": null, "arguments": [ - "0x1B85deDe8178E18CdE599B4C9d913534553C3dBf" + "0x0000000000000000000000000000000000000000" ], "transaction": { "type": "0x02", "from": "0x2a6d311394184eeb6df8fbbf58626b085374ffe7", - "gas": "0xf7ff2", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x11996c", "value": "0x0", - "data": "0x60a03461007757601f610dd438819003918201601f19168301916001600160401b0383118484101761007c5780849260209460405283398101031261007757516001600160a01b038116810361007757608052604051610d4190816100938239608051818181609a0152818161037d015261067f0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263311054bd146104e55750816360300b201461016c57508063bd93644a146100c25763fc0c546a1461005157600080fd5b346100be57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100be576020905173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5080fd5b5090346101695760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610169576101658273ffffffffffffffffffffffffffffffffffffffff928361011661072b565b1681528060205220926002838554169360018601541694015490519384938460409194939294606082019573ffffffffffffffffffffffffffffffffffffffff80921683521660208201520152565b0390f35b80fd5b839150346100be57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100be576101a561072b565b60249384359267ffffffffffffffff928385116104e157366023860112156104e15784820135906101d5826107fb565b916101e2855193846107ba565b808352602096368a83830101116104dd578189928b8a9301838701378401015273ffffffffffffffffffffffffffffffffffffffff809116908188528787528488209085519161023183610753565b8181541694858452600283600184015416928b86019384520154958885019687521561045c57826102c96102c187938d8c51818101903360601b82526014815261027a8161079e565b519020908d51908101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c81526102b981610753565b519020610c37565b919091610a9e565b16148015610450575b156103cf5786519251821683525116878201528251818601523360608201527fb45f3215e68b9bc29811df32d4910e77331ed2a01d8556bea2012566efa3292090608090a186528585528560028482208281558260018201550155517fa9059cbb0000000000000000000000000000000000000000000000000000000083519586015233878601526044850152604484526080840192848410908411176103a457506103a1939450527f0000000000000000000000000000000000000000000000000000000000000000610835565b80f35b84604187927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60848660318d8c8b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a20696e76616c6964207369676e6174757260448201527f6520616e64206e6f742063726561746f720000000000000000000000000000006064820152fd5b508181511633146102d2565b60848760238e8d8c51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a206e6f746520646f6573206e6f7420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152fd5b8880fd5b8580fd5b8385913461072757817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126107275761051e61072b565b9060243573ffffffffffffffffffffffffffffffffffffffff809316908186526020928684528486882054166106a75750908593929181156106a35780156106a357857fedafcff52f9510e3fee14034ebd5cb6c302432e2b233738af47ce5596a5bbeed606061065194600288888761067d9b886103a19f9e7f23b872dd000000000000000000000000000000000000000000000000000000009f819051956105c687610753565b89875280870199338b5284880196875282525220925116947fffffffffffffffffffffffff000000000000000000000000000000000000000093868585541617845560018401915116809482541617905551928391015585519283528883015284820152a1519283019490945233602483015230604483015260648201939093529182906084820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826107ba565b7f0000000000000000000000000000000000000000000000000000000000000000610835565b8480fd5b8084897f08c379a00000000000000000000000000000000000000000000000000000000060849452820152602360248201527f457068656d6572616c4e6f7465733a206e6f746520616c72656164792065786960448201527f73747300000000000000000000000000000000000000000000000000000000006064820152fd5b8280fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361074e57565b600080fd5b6060810190811067ffffffffffffffff82111761076f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761076f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761076f57604052565b67ffffffffffffffff811161076f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff16906108c060405161085b8161079e565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d15610978573d916108a5836107fb565b926108b360405194856107ba565b83523d868885013e61097c565b8051806108ce575b50505050565b818491810103126100be578201519081159182150361016957506108f4578080806108c8565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6060915b919290156109f75750815115610990575090565b3b156109995790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b825190915015610a0a5750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610a87575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b818101830151868201604401528593508201610a46565b6005811015610c085780610aaf5750565b60018103610b155760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103610b7b5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b600314610b8457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b906041815114600014610c6557610c61916020820151906060604084015193015160001a90610c6f565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311610cff5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15610cf257815173ffffffffffffffffffffffffffffffffffffffff811615610cec579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea264697066735822122081d3b5c264ea34c30302ab428fc421c9d545f7cfda295eddbb9c2a4ced6b6f8f64736f6c634300081500330000000000000000000000001b85dede8178e18cde599b4c9d913534553c3dbf", - "nonce": "0x3b4", + "data": "0x000000000000000000000000000000000000000000000000000000000000000060803461015057601f610e4d38819003918201601f19168301916001600160401b038311848410176101555780849260209460405283398101031261015057516001600160a01b0381169081900361015057801561007b57600180546001600160a01b0319169190911790555b604051610ce1908161016c8239f35b5046612105036100b057600180546001600160a01b03191673833589fcd6edb6e08f4c7c32d4f71b54bda0291317905561006c565b4662014a33036100e557600180546001600160a01b031916731b85dede8178e18cde599b4c9d913534553c3dbf17905561006c565b60405162461bcd60e51b815260206004820152603460248201527f457068656d6572616c4e6f7465733a20756e6b6e6f776e20636861696e20616e60448201527f64206e6f20746f6b656e207370656369666965640000000000000000000000006064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600092833560e01c918263311054bd146104ab5750816360300b201461015057508063bd93644a146100a65763fc0c546a1461005157600080fd5b346100a257817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100a25760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b5080fd5b50903461014d5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014d576101498273ffffffffffffffffffffffffffffffffffffffff92836100fa6106cb565b1681528060205220926002838554169360018601541694015490519384938460409194939294606082019573ffffffffffffffffffffffffffffffffffffffff80921683521660208201520152565b0390f35b80fd5b8383346100a257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100a2576101886106cb565b60249384359267ffffffffffffffff918285116104a757366023860112156104a75784810135936101b88561079b565b946101c58451968761075a565b808652602096368a83830101116104a3578189928b8a9301838a01378701015273ffffffffffffffffffffffffffffffffffffffff809116808852878752838820845190610212826106f3565b8381541697888352600285600184015416928b8501938452015498878401998a521561042257846102aa6102a286938d8b51818101903360601b82526014815261025b8161073e565b519020908c51908101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c815261029a816106f3565b519020610bd7565b919091610a3e565b16148015610416575b15610395577fb45f3215e68b9bc29811df32d4910e77331ed2a01d8556bea2012566efa329209184608092818951935116835251168a820152885187820152336060820152a1875286865286600284822082815582600182015501556001541693517fa9059cbb00000000000000000000000000000000000000000000000000000000835196870152338887015260448601526044855260808501928584109084111761036a5750610367949550526107d5565b80f35b85604188927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b60848560318d8c8a51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a20696e76616c6964207369676e6174757260448201527f6520616e64206e6f742063726561746f720000000000000000000000000000006064820152fd5b508381511633146102b3565b60848660238e8d8b51937f08c379a00000000000000000000000000000000000000000000000000000000085528401528201527f457068656d6572616c4e6f7465733a206e6f746520646f6573206e6f7420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152fd5b8880fd5b8580fd5b849184346106c757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106c7576104e46106cb565b6024359273ffffffffffffffffffffffffffffffffffffffff8092169485875260209187835283858920541661064857505084156104a75783156104a7576106177f23b872dd0000000000000000000000000000000000000000000000000000000094610643937fedafcff52f9510e3fee14034ebd5cb6c302432e2b233738af47ce5596a5bbeed60606103679960028c8a51610580816106f3565b838152868c8b830193338552818401968b88528152808d5220915116937fffffffffffffffffffffffff0000000000000000000000000000000000000000928584845416178355886001840191511680948254161790555192839101558a519283528883015289820152a1600154955193840196909652336024840152306044840152606483015290939092169183906084820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810184528361075a565b6107d5565b916084927f08c379a0000000000000000000000000000000000000000000000000000000008352820152602360248201527f457068656d6572616c4e6f7465733a206e6f746520616c72656164792065786960448201527f73747300000000000000000000000000000000000000000000000000000000006064820152fd5b8380fd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036106ee57565b600080fd5b6060810190811067ffffffffffffffff82111761070f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761070f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070f57604052565b67ffffffffffffffff811161070f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b73ffffffffffffffffffffffffffffffffffffffff16906108606040516107fb8161073e565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af13d15610918573d916108458361079b565b92610853604051948561075a565b83523d868885013e61091c565b80518061086e575b50505050565b818491810103126100a2578201519081159182150361014d575061089457808080610868565b608490604051907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b6060915b919290156109975750815115610930575090565b3b156109395790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156109aa5750805190602001fd5b604051907f08c379a000000000000000000000000000000000000000000000000000000000825281602080600483015282519283602484015260005b848110610a27575050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f836000604480968601015201168101030190fd5b8181018301518682016044015285935082016109e6565b6005811015610ba85780610a4f5750565b60018103610ab55760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152fd5b60028103610b1b5760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152fd5b600314610b2457565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b906041815114600014610c0557610c01916020820151906060604084015193015160001a90610c0f565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311610c9f5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15610c9257815173ffffffffffffffffffffffffffffffffffffffff811615610c8c579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fea26469706673582212206fdc3f66a8716be9706ad92be2a7d40279972342b3fb06ba7af6a4d96982f04664736f6c634300081500330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x47f", "accessList": [] }, "additionalContracts": [], @@ -24,15 +25,15 @@ ], "receipts": [ { - "transactionHash": "0x53663af931f3ebd817bc1f84f4972e12e6a28ccadac350d1d760efcd3273897f", - "transactionIndex": "0x4", - "blockHash": "0x897735922afbc7238456cabfe1107be44261a137fdde9b44b80aaf2b4aec375b", - "blockNumber": "0x9c6684", + "transactionHash": "0x2e12ffab815d07ce38256ee400940a1b8fbf551e5f45b14693245ef5f162bd5d", + "transactionIndex": "0x1", + "blockHash": "0x98698d05a35a4737bc2e6b34cb2028d3f5796aaed5cd959d4cc79a5631e5dabd", + "blockNumber": "0xa9b21a", "from": "0x2A6d311394184EeB6Df8FBBF58626B085374Ffe7", - "to": null, - "cumulativeGasUsed": "0xd9961", - "gasUsed": "0xbec44", - "contractAddress": "0x1eec7E083C1a10C16470bEAc7839364853c7B81f", + "to": "0x4e59b44847b379578588920cA78FbF26c0B4956C", + "cumulativeGasUsed": "0xcbfa7", + "gasUsed": "0xc08a2", + "contractAddress": "0x831967F433D9425Aa34D6A3dAC01a428d839De0f", "logs": [], "status": "0x1", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -43,8 +44,8 @@ "libraries": [], "pending": [], "returns": {}, - "timestamp": 1695693357, + "timestamp": 1697435994, "chain": 84531, "multi": false, - "commit": "b7badaf" + "commit": "ae7d64e" } \ No newline at end of file diff --git a/packages/contract/lcov.info b/packages/contract/lcov.info index 4827eed9e..d3430551f 100644 --- a/packages/contract/lcov.info +++ b/packages/contract/lcov.info @@ -133,8 +133,8 @@ BRH:6 end_of_record TN: SF:src/DaimoAccountFactory.sol -FN:30,AccountFactory.createAccount -FNDA:4,AccountFactory.createAccount +FN:30,DaimoAccountFactory.createAccount +FNDA:4,DaimoAccountFactory.createAccount DA:36,4 DA:39,4 BRDA:39,0,0,1 @@ -146,8 +146,8 @@ BRDA:45,1,0,3 BRDA:45,1,1,1 DA:46,1 DA:49,3 -FN:65,AccountFactory.getAddress -FNDA:5,AccountFactory.getAddress +FN:65,DaimoAccountFactory.getAddress +FNDA:5,DaimoAccountFactory.getAddress DA:71,5 DA:72,5 FNF:2 @@ -159,34 +159,34 @@ BRH:3 end_of_record TN: SF:src/DaimoEphemeralNotes.sol -FN:34,EphemeralNotes.createNote -FNDA:3,EphemeralNotes.createNote -DA:35,3 -BRDA:35,0,0,- -BRDA:35,0,1,- -DA:39,3 -BRDA:39,1,0,- -BRDA:39,1,1,- -DA:40,3 -BRDA:40,2,0,- -BRDA:40,2,1,- -DA:42,3 -DA:48,3 +FN:48,DaimoEphemeralNotes.createNote +FNDA:3,DaimoEphemeralNotes.createNote DA:49,3 -FN:53,EphemeralNotes.claimNote -FNDA:3,EphemeralNotes.claimNote -DA:57,3 -DA:58,3 -BRDA:58,3,0,- -BRDA:58,3,1,- +BRDA:49,0,0,- +BRDA:49,0,1,- +DA:53,3 +BRDA:53,1,0,- +BRDA:53,1,1,- +DA:54,3 +BRDA:54,2,0,- +BRDA:54,2,1,- +DA:56,3 +DA:62,3 DA:63,3 -DA:66,3 -DA:67,3 -BRDA:67,4,0,3 -BRDA:67,4,1,2 -DA:72,2 -DA:73,3 -DA:74,3 +FN:67,DaimoEphemeralNotes.claimNote +FNDA:3,DaimoEphemeralNotes.claimNote +DA:71,3 +DA:72,3 +BRDA:72,3,0,- +BRDA:72,3,1,- +DA:77,3 +DA:80,3 +DA:81,3 +BRDA:81,4,0,3 +BRDA:81,4,1,2 +DA:86,2 +DA:87,3 +DA:88,3 FNF:2 FNH:2 LF:14 diff --git a/packages/contract/script/DeployAccountFactory.s.sol b/packages/contract/script/DeployAccountFactory.s.sol index 43a7e63b1..36b95c530 100644 --- a/packages/contract/script/DeployAccountFactory.s.sol +++ b/packages/contract/script/DeployAccountFactory.s.sol @@ -18,7 +18,7 @@ contract DeployScript is Script { // From https://github.com/daimo-eth/eip-7212 address verifier = 0xc2b78104907F722DABAc4C69f826a522B2754De4; - AccountFactory factory = new AccountFactory{salt: 0}( + DaimoAccountFactory factory = new DaimoAccountFactory{salt: 0}( entryPoint, verifier ); diff --git a/packages/contract/script/DeployEphemeralNotes.s.sol b/packages/contract/script/DeployEphemeralNotes.s.sol index bcee1e8c3..68c0c3763 100644 --- a/packages/contract/script/DeployEphemeralNotes.s.sol +++ b/packages/contract/script/DeployEphemeralNotes.s.sol @@ -5,9 +5,10 @@ import "forge-std/Script.sol"; import "../src/DaimoEphemeralNotes.sol"; contract DeployEphemeralNotesScript is Script { - function run(IERC20 token) public { + function run() public { vm.startBroadcast(); - new EphemeralNotes(token); + // DaimoEphemeralNotes defaults to USDC on Base. + new DaimoEphemeralNotes{salt: 0}(IERC20(address(0x0))); vm.stopBroadcast(); } diff --git a/packages/contract/script/script.sh b/packages/contract/script/script.sh index 7ff3a3b95..6c37bb503 100755 --- a/packages/contract/script/script.sh +++ b/packages/contract/script/script.sh @@ -4,22 +4,17 @@ set -e # Build forge build -# Stablecoin, Base Goerli testnet USDC -# ADDR_TOKEN="0x1B85deDe8178E18CdE599B4C9d913534553C3dBf" - -ADDR_TOKEN=0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 - # Deploy Account factory -# forge script script/DeployAccountFactory.s.sol --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY +forge script script/DeployAccountFactory.s.sol --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY # # Deploy name registry # forge script script/DeployNameRegistry.s.sol --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY # # Deploy Ephemeral Notes using Test USDC -# forge script script/DeployEphemeralNotes.s.sol --sig "run(address)" $ADDR_TOKEN --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY +# forge script script/DeployEphemeralNotes.s.sol --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY # From DeployAccountFactory -ADDR_ACCOUNT_FACTORY="0xe5a1744d42a30c3bb87f16fbc4484b984594cd7c" +# ADDR_ACCOUNT_FACTORY="0xe5a1744d42a30c3bb87f16fbc4484b984594cd7c" # Deploy test Account and verify it on Etherscan -forge script script/DeployTestAccount.s.sol --sig "run(address)" $ADDR_ACCOUNT_FACTORY --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY \ No newline at end of file +# forge script script/DeployTestAccount.s.sol --sig "run(address)" $ADDR_ACCOUNT_FACTORY --fork-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $ETHERSCAN_API_KEY \ No newline at end of file diff --git a/packages/contract/src/DaimoAccountFactory.sol b/packages/contract/src/DaimoAccountFactory.sol index cd8896f2f..1e5b5c6b6 100644 --- a/packages/contract/src/DaimoAccountFactory.sol +++ b/packages/contract/src/DaimoAccountFactory.sol @@ -7,12 +7,12 @@ import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "./DaimoAccount.sol"; /** - * A sample factory contract for Account - * A UserOperations "initCode" holds the address of the factory, and a method call (to createAccount, in this sample factory). - * The factory's createAccount returns the target account address even if it is already installed. + * This factory deploys ERC-4337 DaimoAccount contracts using CREATE2. + * + * The factory's createAccount returns the target account address even if it it's already deployed. * This way, the entryPoint.getSenderAddress() can be called either before or after the account is created. */ -contract AccountFactory { +contract DaimoAccountFactory { DaimoAccount public immutable accountImplementation; IEntryPoint public immutable entryPoint; @@ -22,10 +22,10 @@ contract AccountFactory { } /** - * create an account, and return its address. - * returns the address even if the account is already deployed. + * Create an account, and return its address. + * Ceturns the address even if the account is already deployed. * Note that during UserOperation execution, this method is called only if the account is not deployed. - * This method returns an existing account address so that entryPoint.getSenderAddress() would work even after account creation + * This method returns an existing account address so that entryPoint.getSenderAddress() would work even after account creation. */ function createAccount( uint8 keySlot, @@ -60,7 +60,7 @@ contract AccountFactory { } /** - * calculate the counterfactual address of this account as it would be returned by createAccount() + * Calculate the counterfactual address of this account as it would be returned by createAccount() */ function getAddress( uint8 keySlot, diff --git a/packages/contract/src/DaimoEphemeralNotes.sol b/packages/contract/src/DaimoEphemeralNotes.sol index 214678302..fc9ad75dc 100644 --- a/packages/contract/src/DaimoEphemeralNotes.sol +++ b/packages/contract/src/DaimoEphemeralNotes.sol @@ -15,19 +15,33 @@ struct Note { * @notice Simple escrow notes, used for onboarding new accounts. * Notes are created by a user and can be redeemed by anyone who shows * a signature from the ephemeral key owner for their address. Additionally, - * the sender of the note can "revert" it without a signature. + * the sender of the note can reclaim it without a signature. */ -contract EphemeralNotes { +contract DaimoEphemeralNotes { using SafeERC20 for IERC20; mapping(address => Note) public notes; - IERC20 public immutable token; + IERC20 public token; event NoteCreated(Note note); event NoteRedeemed(Note note, address redeemer); + // Stablecoin token to use for notes, or 0x0 for USDC. + // This allows us to CREATE2-deploy this contract at the same address + // on Base and Base Goerli. constructor(IERC20 _token) { - token = _token; + uint256 chainId = block.chainid; + if (address(_token) != address(0)) { + token = _token; + } else if (chainId == 8453) { + // Base USDC + token = IERC20(0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913); + } else if (chainId == 84531) { + // Base Goerli testnet USDC + token = IERC20(0x1B85deDe8178E18CdE599B4C9d913534553C3dBf); + } else { + revert("EphemeralNotes: unknown chain and no token specified"); + } } // Call token.approve(
, amount) on the token contract before this diff --git a/packages/contract/test/AccountFactory.t.sol b/packages/contract/test/AccountFactory.t.sol index 972c6f8ee..231396d89 100644 --- a/packages/contract/test/AccountFactory.t.sol +++ b/packages/contract/test/AccountFactory.t.sol @@ -14,12 +14,12 @@ contract AccountFactoryTest is Test { address public verifier; EntryPoint public entryPoint; - AccountFactory public factory; + DaimoAccountFactory public factory; function setUp() public { verifier = address(new P256Verifier()); entryPoint = new EntryPoint(); - factory = new AccountFactory(entryPoint, verifier); + factory = new DaimoAccountFactory(entryPoint, verifier); } function testDeploy() public { diff --git a/packages/contract/test/AccountSendUserop.t.sol b/packages/contract/test/AccountSendUserop.t.sol index e411f46e1..61e9c9c19 100644 --- a/packages/contract/test/AccountSendUserop.t.sol +++ b/packages/contract/test/AccountSendUserop.t.sol @@ -15,12 +15,12 @@ contract AccountSendUseropTest is Test { address public verifier; EntryPoint public entryPoint; - AccountFactory public factory; + DaimoAccountFactory public factory; function setUp() public { verifier = address(new P256Verifier()); entryPoint = new EntryPoint(); - factory = new AccountFactory(entryPoint, verifier); + factory = new DaimoAccountFactory(entryPoint, verifier); console.log("verifier address:", address(verifier)); console.log("entryPoint address:", address(entryPoint)); console.log("factory address:", address(factory)); diff --git a/packages/contract/test/AccountSigningKeys.t.sol b/packages/contract/test/AccountSigningKeys.t.sol index 014924492..6bd5c29ed 100644 --- a/packages/contract/test/AccountSigningKeys.t.sol +++ b/packages/contract/test/AccountSigningKeys.t.sol @@ -14,12 +14,12 @@ contract AccountSigningKeysTest is Test { address public verifier; EntryPoint public entryPoint; - AccountFactory public factory; + DaimoAccountFactory public factory; function setUp() public { verifier = address(new P256Verifier()); entryPoint = new EntryPoint(); - factory = new AccountFactory(entryPoint, verifier); + factory = new DaimoAccountFactory(entryPoint, verifier); } event SigningKeyAdded( diff --git a/packages/contract/test/AccountVerify1271.t.sol b/packages/contract/test/AccountVerify1271.t.sol index 8c876f5bd..cb69dde2a 100644 --- a/packages/contract/test/AccountVerify1271.t.sol +++ b/packages/contract/test/AccountVerify1271.t.sol @@ -14,13 +14,13 @@ contract AccountVerify1271Test is Test { address public verifier; EntryPoint public entryPoint; - AccountFactory public factory; + DaimoAccountFactory public factory; DaimoAccount public account; function setUp() public { verifier = address(new P256Verifier()); entryPoint = new EntryPoint(); - factory = new AccountFactory(entryPoint, verifier); + factory = new DaimoAccountFactory(entryPoint, verifier); // Create test account with a single signing key uint256[2] memory pubKey = [ diff --git a/packages/contract/test/EphemeralNotes.t.sol b/packages/contract/test/EphemeralNotes.t.sol index 30834d4ba..f11d2890d 100644 --- a/packages/contract/test/EphemeralNotes.t.sol +++ b/packages/contract/test/EphemeralNotes.t.sol @@ -20,7 +20,7 @@ contract TestDAI is ERC20 { contract EphemeralNotesTest is Test { TestDAI public token; - EphemeralNotes public notes; + DaimoEphemeralNotes public notes; uint256 private constant ephemeralPrivateKey = 0x1010101010101010101010101010101010101010101010101010101010101010; address private ephemeralAddress = vm.addr(ephemeralPrivateKey); @@ -32,7 +32,7 @@ contract EphemeralNotesTest is Test { function setUp() public { token = new TestDAI("TestDAI", "DAI"); - notes = new EphemeralNotes(token); + notes = new DaimoEphemeralNotes(token); } // This is equivalent to what the users have to run on client side using ethers.js or equivalent diff --git a/packages/daimo-api/src/api/deployWallet.ts b/packages/daimo-api/src/api/deployWallet.ts index 85cf452e0..bd2a4a716 100644 --- a/packages/daimo-api/src/api/deployWallet.ts +++ b/packages/daimo-api/src/api/deployWallet.ts @@ -1,8 +1,8 @@ import { DaimoAccountCall } from "@daimo/common"; import { - ephemeralNotesAddress, + chainConfig, + daimoEphemeralNotesAddress, erc20ABI, - tokenMetadata, } from "@daimo/contract"; import { Address, Hex, encodeFunctionData } from "viem"; @@ -19,22 +19,22 @@ export async function deployWallet( const initCalls: DaimoAccountCall[] = [ { // Approve notes contract infinite spending on behalf of the account - dest: tokenMetadata.address, + dest: chainConfig.tokenAddress, value: 0n, data: encodeFunctionData({ abi: erc20ABI, functionName: "approve", - args: [ephemeralNotesAddress, maxUint256], + args: [daimoEphemeralNotesAddress, maxUint256], }), }, { // Approve paymaster contract infinite spending on behalf of the account - dest: tokenMetadata.address, + dest: chainConfig.tokenAddress, value: 0n, data: encodeFunctionData({ abi: erc20ABI, functionName: "approve", - args: [tokenMetadata.paymasterAddress, maxUint256], + args: [chainConfig.paymasterAddress, maxUint256], }), }, nameReg.getRegisterNameCall(name), // Register name diff --git a/packages/daimo-api/src/contract/accountFactory.ts b/packages/daimo-api/src/contract/accountFactory.ts index 912299814..54357dbc3 100644 --- a/packages/daimo-api/src/contract/accountFactory.ts +++ b/packages/daimo-api/src/contract/accountFactory.ts @@ -1,12 +1,12 @@ import { derKeytoContractFriendlyKey, DaimoAccountCall } from "@daimo/common"; -import { accountFactoryConfig } from "@daimo/contract"; +import { daimoAccountFactoryConfig } from "@daimo/contract"; import { Hex, TransactionReceipt } from "viem"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; const SALT = 0n; // Daimo Account Factory salt, always 0. -/* Interface to the AccountFactory contract. Creates Daimo accounts. */ +/* Interface to the DaimoAccountFactory contract. Creates Daimo accounts. */ export class AccountFactory { constructor(private vc: ViemClient) {} @@ -18,7 +18,7 @@ export class AccountFactory { */ async getAddress(pubKeyHex: Hex, initCalls: DaimoAccountCall[]) { const address = await this.vc.publicClient.readContract({ - ...accountFactoryConfig, + ...daimoAccountFactoryConfig, functionName: "getAddress", args: [0, derKeytoContractFriendlyKey(pubKeyHex), initCalls, SALT], }); @@ -34,7 +34,7 @@ export class AccountFactory { initCalls: DaimoAccountCall[] ): Promise { const hash = await this.vc.walletClient.writeContract({ - ...accountFactoryConfig, + ...daimoAccountFactoryConfig, functionName: "createAccount", args: [0, derKeytoContractFriendlyKey(pubKeyHex), initCalls, SALT], }); diff --git a/packages/daimo-api/src/contract/coinIndexer.ts b/packages/daimo-api/src/contract/coinIndexer.ts index 1ef648af2..ae7796a61 100644 --- a/packages/daimo-api/src/contract/coinIndexer.ts +++ b/packages/daimo-api/src/contract/coinIndexer.ts @@ -3,12 +3,12 @@ import { TransferOpEvent, guessTimestampFromNum, } from "@daimo/common"; -import { erc20ABI, tokenMetadata } from "@daimo/contract"; +import { erc20ABI, chainConfig } from "@daimo/contract"; import { DaimoNonce } from "@daimo/userop"; import { Address, Hex, Log, getAbiItem, numberToHex } from "viem"; import { OpIndexer } from "./opIndexer"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; const transferEvent = getAbiItem({ abi: erc20ABI, name: "Transfer" }); export type TransferLog = Log< @@ -30,7 +30,7 @@ export class CoinIndexer { async init() { await this.client.pipeLogs( { - address: tokenMetadata.address, + address: chainConfig.tokenAddress, event: transferEvent, }, this.parseLogs @@ -49,7 +49,7 @@ export class CoinIndexer { const blockNumber = BigInt(blockNum); return this.client.publicClient.readContract({ abi: erc20ABI, - address: tokenMetadata.address, + address: chainConfig.tokenAddress, functionName: "balanceOf", args: [addr], blockNumber, @@ -125,7 +125,10 @@ export class CoinIndexer { return { type: "transfer", status: OpStatus.confirmed, - timestamp: guessTimestampFromNum(Number(blockNumber), "base-goerli"), + timestamp: guessTimestampFromNum( + Number(blockNumber), + chainConfig.chainL2.network + ), from, to, amount: Number(value), @@ -153,9 +156,9 @@ export class CoinIndexer { const prevFee = opHashToFee.get(op.opHash) || 0; - if (op.to === tokenMetadata.paymasterAddress) { + if (op.to === chainConfig.paymasterAddress) { opHashToFee.set(op.opHash, prevFee + op.amount); - } else if (op.from === tokenMetadata.paymasterAddress) { + } else if (op.from === chainConfig.paymasterAddress) { // Account for fee refund opHashToFee.set(op.opHash, prevFee - op.amount); } @@ -165,8 +168,8 @@ export class CoinIndexer { .filter( // Remove paymaster logs (op) => - op.from !== tokenMetadata.paymasterAddress && - op.to !== tokenMetadata.paymasterAddress + op.from !== chainConfig.paymasterAddress && + op.to !== chainConfig.paymasterAddress ) .map((op) => { // Attach fee amounts to other transfers diff --git a/packages/daimo-api/src/contract/faucet.ts b/packages/daimo-api/src/contract/faucet.ts index da4156a98..8aa5820d9 100644 --- a/packages/daimo-api/src/contract/faucet.ts +++ b/packages/daimo-api/src/contract/faucet.ts @@ -1,9 +1,9 @@ import { OpStatus, TransferOpEvent } from "@daimo/common"; -import { erc20ABI, tokenMetadata } from "@daimo/contract"; +import { erc20ABI, chainConfig } from "@daimo/contract"; import { Address } from "viem"; import { CoinIndexer, TransferLog } from "./coinIndexer"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; export type FaucetStatus = | "unavailable" @@ -48,7 +48,7 @@ export class Faucet { const amount = 50_000_000n; const hash = await this.vc.walletClient.writeContract({ abi: erc20ABI, - address: tokenMetadata.address, + address: chainConfig.tokenAddress, functionName: "transfer", args: [address, amount], }); diff --git a/packages/daimo-api/src/contract/keyRegistry.ts b/packages/daimo-api/src/contract/keyRegistry.ts index a1a39c711..28c3b3c0b 100644 --- a/packages/daimo-api/src/contract/keyRegistry.ts +++ b/packages/daimo-api/src/contract/keyRegistry.ts @@ -2,7 +2,7 @@ import { KeyData, contractFriendlyKeyToDER } from "@daimo/common"; import { daimoAccountABI } from "@daimo/contract"; import { Address, Hex, Log, getAbiItem, getAddress } from "viem"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; const signingKeyAddedEvent = getAbiItem({ abi: daimoAccountABI, diff --git a/packages/daimo-api/src/contract/nameRegistry.ts b/packages/daimo-api/src/contract/nameRegistry.ts index 957db38be..686e37b0c 100644 --- a/packages/daimo-api/src/contract/nameRegistry.ts +++ b/packages/daimo-api/src/contract/nameRegistry.ts @@ -7,9 +7,9 @@ import { validateName, } from "@daimo/common"; import { - ephemeralNotesAddress, + daimoEphemeralNotesAddress, nameRegistryProxyConfig, - tokenMetadata, + chainConfig, } from "@daimo/contract"; import { Address, @@ -22,7 +22,7 @@ import { } from "viem"; import { normalize } from "viem/ens"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; const registeredName = "Registered"; const registeredEvent = getAbiItem({ @@ -34,12 +34,13 @@ type RegisteredLog = Log; const specialAddrLabels: { [_: Address]: AddrLabel } = { "0x2A6d311394184EeB6Df8FBBF58626B085374Ffe7": AddrLabel.Faucet, - // old notes contract addresses + // Old notes contract addresses "0x37Ac8550dA1E8d227266966A0b4925dfae648f7f": AddrLabel.PaymentLink, "0x450E09fc6C2a9bC4230D4e6f3d7131CCa48b48Ce": AddrLabel.PaymentLink, + "0x1eec7E083C1a10C16470bEAc7839364853c7B81f": AddrLabel.PaymentLink, }; -specialAddrLabels[ephemeralNotesAddress] = AddrLabel.PaymentLink; -specialAddrLabels[tokenMetadata.paymasterAddress] = AddrLabel.Paymaster; +specialAddrLabels[daimoEphemeralNotesAddress] = AddrLabel.PaymentLink; +specialAddrLabels[chainConfig.paymasterAddress] = AddrLabel.Paymaster; /* Interface to the NameRegistry contract. */ export class NameRegistry { diff --git a/packages/daimo-api/src/contract/noteIndexer.ts b/packages/daimo-api/src/contract/noteIndexer.ts index 61f9d3d5c..44bb0d3de 100644 --- a/packages/daimo-api/src/contract/noteIndexer.ts +++ b/packages/daimo-api/src/contract/noteIndexer.ts @@ -4,17 +4,15 @@ import { assert, getEAccountStr, } from "@daimo/common"; -import { ephemeralNotesABI, ephemeralNotesConfig } from "@daimo/contract"; +import { daimoEphemeralNotesConfig } from "@daimo/contract"; import { Address, Log, decodeEventLog, getAbiItem } from "viem"; import { NameRegistry } from "./nameRegistry"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; -const createEvent = getAbiItem({ abi: ephemeralNotesABI, name: "NoteCreated" }); -const redeemEvent = getAbiItem({ - abi: ephemeralNotesABI, - name: "NoteRedeemed", -}); +const notesABI = daimoEphemeralNotesConfig.abi; +const createEvent = getAbiItem({ abi: notesABI, name: "NoteCreated" }); +const redeemEvent = getAbiItem({ abi: notesABI, name: "NoteRedeemed" }); // TODO: getEventSelector returns incorrect results. // See https://goerli.basescan.org/tx/0xf1347cc24f8eafee1ff7ea88d964920ffccfe7667e71ac55afd0358840ed84b0#eventlog @@ -63,7 +61,7 @@ export class NoteIndexer { async init() { await this.client.pipeLogs( { - address: ephemeralNotesConfig.address, + address: daimoEphemeralNotesConfig.address, event: undefined, }, this.parseLogs @@ -85,7 +83,7 @@ export class NoteIndexer { for (const log of logs) { const { topics, data } = log; const selector = topics[0]; - const abi = ephemeralNotesABI; + const abi = daimoEphemeralNotesConfig.abi; const args = { abi, topics, data, strict: true } as const; const logInfo = () => `[${log.transactionHash} ${log.logIndex}]`; diff --git a/packages/daimo-api/src/contract/opIndexer.ts b/packages/daimo-api/src/contract/opIndexer.ts index aab239b7f..1dc78fb98 100644 --- a/packages/daimo-api/src/contract/opIndexer.ts +++ b/packages/daimo-api/src/contract/opIndexer.ts @@ -3,7 +3,7 @@ import { DaimoNonce, DaimoNonceMetadata } from "@daimo/userop"; import { Constants } from "userop"; import { Hex, Log, getAbiItem, numberToHex } from "viem"; -import { ViemClient } from "../chain"; +import { ViemClient } from "../viemClient"; const userOperationEvent = getAbiItem({ abi: entryPointABI, diff --git a/packages/daimo-api/src/contract/paymaster.ts b/packages/daimo-api/src/contract/paymaster.ts index 324cfe3c8..8300dfc1b 100644 --- a/packages/daimo-api/src/contract/paymaster.ts +++ b/packages/daimo-api/src/contract/paymaster.ts @@ -1,12 +1,6 @@ -import { tokenMetadata } from "@daimo/contract"; -import { parseAbi } from "viem"; +import { chainConfig, pimlicoPaymasterAbi } from "@daimo/contract"; -import { ViemClient } from "../chain"; - -const pimlicoPaymasterAbi = parseAbi([ - "function priceMarkup() view returns (uint32)", - "function previousPrice() view returns (uint192)", -]); +import { ViemClient } from "../viemClient"; /* Interface to on-chain paymaster and gas related data. */ export class Paymaster { @@ -54,7 +48,7 @@ export class Paymaster { const tokenAmount = (expectedFunding * this.priceMarkup * this.previousPrice) / 10n ** 24n; // 1e24 = 1e6 * 1e18, 1e6 is the priceDenominator constant, 1e18 is number of ETH decimals const dollars = - Number((tokenAmount * 100n) / 10n ** BigInt(tokenMetadata.decimals)) / + Number((tokenAmount * 100n) / 10n ** BigInt(chainConfig.tokenDecimals)) / 100; // normalize to dollars with 2 digits after decimal return dollars; } @@ -68,12 +62,12 @@ export class Paymaster { const priceMarkup = await this.vc.publicClient.readContract({ abi: pimlicoPaymasterAbi, - address: tokenMetadata.paymasterAddress, + address: chainConfig.paymasterAddress, functionName: "priceMarkup", }); const previousPrice = await this.vc.publicClient.readContract({ abi: pimlicoPaymasterAbi, - address: tokenMetadata.paymasterAddress, + address: chainConfig.paymasterAddress, functionName: "previousPrice", }); diff --git a/packages/daimo-api/src/pushNotifier.ts b/packages/daimo-api/src/pushNotifier.ts index 50f933ebc..c14472c98 100644 --- a/packages/daimo-api/src/pushNotifier.ts +++ b/packages/daimo-api/src/pushNotifier.ts @@ -4,7 +4,7 @@ import { assertNotNull, getAccountName, } from "@daimo/common"; -import { tokenMetadata } from "@daimo/contract"; +import { chainConfig } from "@daimo/contract"; import { DaimoNonceMetadata, DaimoNonceType } from "@daimo/userop"; import { Expo, ExpoPushMessage } from "expo-server-sdk"; import { Address, Hex, formatUnits, getAddress } from "viem"; @@ -160,8 +160,8 @@ export class PushNotifier { const pushTokens = this.pushTokens.get(addr); if (!pushTokens || pushTokens.length === 0) return []; - const { decimals, symbol } = tokenMetadata; - const rawAmount = formatUnits(value, decimals); + const { tokenDecimals, tokenSymbol } = chainConfig; + const rawAmount = formatUnits(value, tokenDecimals); const dollars = Math.abs(Number(rawAmount)).toFixed(2); // Get the other side @@ -178,11 +178,11 @@ export class PushNotifier { const title = value < 0 ? `Sent $${dollars}` : `Received $${dollars}`; let body; if (value < 0) { - body = `You sent ${dollars} ${symbol} to ${otherStr}`; + body = `You sent ${dollars} ${tokenSymbol} to ${otherStr}`; } else if (receivingRequestedMoney) { - body = `${otherStr} fulfilled your ${dollars} ${symbol} request`; + body = `${otherStr} fulfilled your ${dollars} ${tokenSymbol} request`; } else { - body = `You received ${dollars} ${symbol} from ${otherStr}`; + body = `You received ${dollars} ${tokenSymbol} from ${otherStr}`; } return [ @@ -197,7 +197,7 @@ export class PushNotifier { } getPushMessagesFromNoteOps(logs: NoteOpLog[]) { - const { symbol } = tokenMetadata; + const symbol = chainConfig.tokenSymbol; const messages: ExpoPushMessage[] = []; for (const log of logs) { diff --git a/packages/daimo-api/src/router.ts b/packages/daimo-api/src/router.ts index 930e2a304..790b7180b 100644 --- a/packages/daimo-api/src/router.ts +++ b/packages/daimo-api/src/router.ts @@ -14,7 +14,6 @@ import { normalize } from "viem/ens"; import { z } from "zod"; import { deployWallet } from "./api/deployWallet"; -import { ViemClient } from "./chain"; import { AccountFactory } from "./contract/accountFactory"; import { CoinIndexer } from "./contract/coinIndexer"; import { Faucet } from "./contract/faucet"; @@ -26,6 +25,7 @@ import { Paymaster } from "./contract/paymaster"; import { PushNotifier } from "./pushNotifier"; import { Telemetry } from "./telemetry"; import { trpcT } from "./trpc"; +import { ViemClient } from "./viemClient"; export function createRouter( vc: ViemClient, diff --git a/packages/daimo-api/src/server.ts b/packages/daimo-api/src/server.ts index aa42967de..e72628ca3 100644 --- a/packages/daimo-api/src/server.ts +++ b/packages/daimo-api/src/server.ts @@ -1,6 +1,5 @@ import { createHTTPServer } from "@trpc/server/adapters/standalone"; -import { getViemClientFromEnv } from "./chain"; import { AccountFactory } from "./contract/accountFactory"; import { CoinIndexer } from "./contract/coinIndexer"; import { Faucet } from "./contract/faucet"; @@ -14,6 +13,7 @@ import { PushNotifier } from "./pushNotifier"; import { createRouter } from "./router"; import { Telemetry } from "./telemetry"; import { createContext } from "./trpc"; +import { getViemClientFromEnv } from "./viemClient"; async function main() { console.log(`[API] starting...`); diff --git a/packages/daimo-api/src/chain.ts b/packages/daimo-api/src/viemClient.ts similarity index 93% rename from packages/daimo-api/src/chain.ts rename to packages/daimo-api/src/viemClient.ts index 964cf1348..cc1bdd34b 100644 --- a/packages/daimo-api/src/chain.ts +++ b/packages/daimo-api/src/viemClient.ts @@ -1,3 +1,4 @@ +import { chainConfig } from "@daimo/contract"; import type { AbiEvent } from "abitype"; import fs from "node:fs/promises"; import os from "os"; @@ -6,6 +7,7 @@ import { Abi, Account, Address, + Chain, GetContractReturnType, GetLogsReturnType, PublicClient, @@ -16,7 +18,6 @@ import { webSocket, } from "viem"; import { privateKeyToAccount } from "viem/accounts"; -import { Chain, baseGoerli, mainnet } from "viem/chains"; import { jsonBigParse, jsonBigStringify } from "./jsonBig"; @@ -27,12 +28,12 @@ import { jsonBigParse, jsonBigStringify } from "./jsonBig"; export function getViemClientFromEnv() { // Connect to L1 const l1Client = createPublicClient({ - chain: mainnet, + chain: chainConfig.chainL1, transport: webSocket(process.env.DAIMO_API_L1_RPC_WS), }); // Connect to L2 - const chain = baseGoerli; // TODO: DAIMO_API_CHAIN once mainnet is supported + const chain = chainConfig.chainL2; const account = getAccount(process.env.DAIMO_API_PRIVATE_KEY); const transport = webSocket(process.env.DAIMO_API_L2_RPC_WS); const publicClient = createPublicClient({ chain, transport }); @@ -41,7 +42,7 @@ export function getViemClientFromEnv() { return new ViemClient(l1Client, publicClient, walletClient); } -export function getAccount(privateKey?: string) { +function getAccount(privateKey?: string) { if (!privateKey) throw new Error("Missing private key"); return privateKeyToAccount(`0x${privateKey}`); } @@ -80,9 +81,9 @@ export class ViemClient { private lockLogProcessing = true; constructor( - public l1Client: PublicClient, - public publicClient: PublicClient, - public walletClient: WalletClient + public l1Client: PublicClient, + public publicClient: PublicClient, + public walletClient: WalletClient ) { fs.mkdir(this.logCacheDir, { recursive: true }); } @@ -207,7 +208,7 @@ export class ViemClient { const filter: LogFilter = { ...args, callback }; // Catch up to latest block - const isTestnet = this.publicClient.chain.id === baseGoerli.id; + const isTestnet = this.publicClient.chain.testnet; const startBlock = isTestnet ? 8750000n : 0n; const lastBlockNum = BigInt(this.lastBlock.number); const step = 5000n; diff --git a/packages/daimo-common/src/coin.ts b/packages/daimo-common/src/coin.ts index 4579b0628..278b8f5cf 100644 --- a/packages/daimo-common/src/coin.ts +++ b/packages/daimo-common/src/coin.ts @@ -1,20 +1,22 @@ -import { tokenMetadata } from "@daimo/contract"; +import { chainConfig } from "@daimo/contract"; import { parseUnits } from "viem"; +const { tokenDecimals } = chainConfig; + /** Returns token units, 6000000 for $6 USDC */ export function dollarsToAmount(dollars: number | string) { if (typeof dollars === "number") { dollars = `${dollars}`; } - return parseUnits(dollars, tokenMetadata.decimals); + return parseUnits(dollars, tokenDecimals); } /** Returns eg "6.00" for 6000000 USDC units. */ export function amountToDollars(amount: bigint | number): `${number}` { const dispDecimals = 2; - const { decimals } = tokenMetadata; - const totalCents = BigInt(amount) / BigInt(10 ** (decimals - dispDecimals)); + const totalCents = + BigInt(amount) / BigInt(10 ** (tokenDecimals - dispDecimals)); const dispStr = totalCents.toString().padStart(dispDecimals + 1, "0"); const dollars = dispStr.slice(0, -dispDecimals); const cents = dispStr.slice(-dispDecimals); diff --git a/packages/daimo-common/src/note.ts b/packages/daimo-common/src/note.ts index fe76a2b2f..2f3c692b9 100644 --- a/packages/daimo-common/src/note.ts +++ b/packages/daimo-common/src/note.ts @@ -1,6 +1,6 @@ +import { chainConfig } from "@daimo/contract"; import { Address, Hex, createWalletClient, http, keccak256 } from "viem"; import { privateKeyToAccount } from "viem/accounts"; -import { baseGoerli } from "viem/chains"; export async function getNoteClaimSignature( sender: Address, @@ -13,7 +13,7 @@ export async function getNoteClaimSignature( const ephemeralAccount = privateKeyToAccount(notePrivateKey); const ephemeralClient = createWalletClient({ account: ephemeralAccount, - chain: baseGoerli, + chain: chainConfig.chainL2, transport: http(), // unused }); const message = keccak256(recipient); diff --git a/packages/daimo-common/src/time.ts b/packages/daimo-common/src/time.ts index 49679b9da..c409b2f76 100644 --- a/packages/daimo-common/src/time.ts +++ b/packages/daimo-common/src/time.ts @@ -30,6 +30,8 @@ export function guessTimestampFromNum( switch (network) { case "base-goerli": return 1675193616 + blockNum * 2; + case "base": + return 1686789347 + blockNum * 2; default: throw new Error(`Unsupported network: ${network}`); } diff --git a/packages/daimo-contract/README.md b/packages/daimo-contract/README.md new file mode 100644 index 000000000..694c4d1a9 --- /dev/null +++ b/packages/daimo-contract/README.md @@ -0,0 +1,6 @@ +# `@daimo/contract` + +Provides all contract metadata needed by Daimo, across all supported chains. + +This includes ABIs and addresses. It includes our own contracts as well as +third-party contracts, eg. the stablecoin and paymaster contracts. diff --git a/packages/daimo-contract/package.json b/packages/daimo-contract/package.json index 91b6ba80e..99fb15bc2 100644 --- a/packages/daimo-contract/package.json +++ b/packages/daimo-contract/package.json @@ -6,7 +6,6 @@ "main": "./dist/index.js", "scripts": { "codegen": "wagmi generate", - "fetch-token": "ts-node script/fetchTokenMetadata.ts", "build": "tsc" }, "author": "", diff --git a/packages/daimo-contract/script/fetchTokenMetadata.ts b/packages/daimo-contract/script/fetchTokenMetadata.ts deleted file mode 100644 index e604f9c9f..000000000 --- a/packages/daimo-contract/script/fetchTokenMetadata.ts +++ /dev/null @@ -1,51 +0,0 @@ -import * as fs from "fs"; -import { Address, createPublicClient, http } from "viem"; -import { base, baseGoerli } from "viem/chains"; - -import * as Contracts from "../src/generated"; - -const abi = Contracts.erc20ABI; - -// This one spot is the only place where Daimo's stablecoin is hardcoded. -// Everything else is generated from the contract. -const chains = [ - { - chain: baseGoerli, - usdcAddress: "0x1B85deDe8178E18CdE599B4C9d913534553C3dBf" as Address, - paymasterAddress: "0x13f490FafBb206440F25760A10C21A6220017fFa" as Address, - }, - { - chain: base, - usdcAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" as Address, - paymasterAddress: "0x939263eafe57038a072cb4edd6b25dd81a8a6c56" as Address, - }, -]; - -async function main() { - const tokenMetadata = {} as any; - for (const { chain, usdcAddress, paymasterAddress } of chains) { - const publicClient = createPublicClient({ chain, transport: http() }); - - console.log("✔ Fetching erc20 metadata"); - const address = usdcAddress; - const [decimals, symbol, name] = await Promise.all([ - publicClient.readContract({ abi, address, functionName: "decimals" }), - publicClient.readContract({ abi, address, functionName: "symbol" }), - publicClient.readContract({ abi, address, functionName: "name" }), - ]); - const chainId = chain.id; - - const meta = { address, decimals, symbol, name, chainId, paymasterAddress }; - tokenMetadata[chain.id] = meta; - } - - const fileStr = `// Generated by script/fetchTokenMetadata.ts - -export const tokenMetadata = ${JSON.stringify(tokenMetadata, null, 2)} as const; -`; - - console.log("✔ Writing to src/tokenMetadata.ts"); - fs.writeFileSync("./src/tokenMetadata.ts", fileStr); -} - -main(); diff --git a/packages/daimo-contract/src/chainConfig.ts b/packages/daimo-contract/src/chainConfig.ts new file mode 100644 index 000000000..c803c69ea --- /dev/null +++ b/packages/daimo-contract/src/chainConfig.ts @@ -0,0 +1,40 @@ +import { Address, Chain } from "viem"; +import { base, baseGoerli, mainnet } from "viem/chains"; + +export interface ChainConfig { + chainL1: Chain; + chainL2: Chain; + tokenAddress: Address; + tokenSymbol: string; + tokenDecimals: number; + paymasterAddress: Address; +} + +export const chainConfig = getChainConfig(); + +function getChainConfig(): ChainConfig { + const daimoChain = process.env.DAIMO_CHAIN || ""; + switch (daimoChain) { + case "base": + return { + chainL1: mainnet, + chainL2: base, + tokenAddress: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", + tokenSymbol: "USDC", + tokenDecimals: 6, + paymasterAddress: "0x939263eafe57038a072cb4edd6b25dd81a8a6c56", + }; + case "baseGoerli": + case "": // Tests, etc default to testnet + return { + chainL1: mainnet, // ENS resolution = eth mainnet, read-only + chainL2: baseGoerli, + tokenAddress: "0x1B85deDe8178E18CdE599B4C9d913534553C3dBf", + tokenSymbol: "USDC", + tokenDecimals: 6, + paymasterAddress: "0x13f490FafBb206440F25760A10C21A6220017fFa", + }; + default: + throw new Error(`unknown DAIMO_CHAIN '${process.env.DAIMO_CHAIN}'`); + } +} diff --git a/packages/daimo-contract/src/generated.ts b/packages/daimo-contract/src/generated.ts index 6cd34e5ac..814876f49 100644 --- a/packages/daimo-contract/src/generated.ts +++ b/packages/daimo-contract/src/generated.ts @@ -1,92 +1,3 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// AccountFactory -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const accountFactoryABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { - name: '_entryPoint', - internalType: 'contract IEntryPoint', - type: 'address', - }, - { name: '_sigVerifier', internalType: 'address', type: 'address' }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'accountImplementation', - outputs: [ - { name: '', internalType: 'contract DaimoAccount', type: 'address' }, - ], - }, - { - stateMutability: 'payable', - type: 'function', - inputs: [ - { name: 'keySlot', internalType: 'uint8', type: 'uint8' }, - { name: 'key', internalType: 'bytes32[2]', type: 'bytes32[2]' }, - { - name: 'initCalls', - internalType: 'struct Call[]', - type: 'tuple[]', - components: [ - { name: 'dest', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - }, - { name: 'salt', internalType: 'uint256', type: 'uint256' }, - ], - name: 'createAccount', - outputs: [ - { name: 'ret', internalType: 'contract DaimoAccount', type: 'address' }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'entryPoint', - outputs: [ - { name: '', internalType: 'contract IEntryPoint', type: 'address' }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [ - { name: 'keySlot', internalType: 'uint8', type: 'uint8' }, - { name: 'key', internalType: 'bytes32[2]', type: 'bytes32[2]' }, - { - name: 'initCalls', - internalType: 'struct Call[]', - type: 'tuple[]', - components: [ - { name: 'dest', internalType: 'address', type: 'address' }, - { name: 'value', internalType: 'uint256', type: 'uint256' }, - { name: 'data', internalType: 'bytes', type: 'bytes' }, - ], - }, - { name: 'salt', internalType: 'uint256', type: 'uint256' }, - ], - name: 'getAddress', - outputs: [{ name: '', internalType: 'address', type: 'address' }], - }, -] as const - -export const accountFactoryAddress = - '0xe5a1744d42a30c3Bb87f16FbC4484B984594cD7C' as const - -export const accountFactoryConfig = { - address: accountFactoryAddress, - abi: accountFactoryABI, -} as const - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DaimoAccount ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -404,6 +315,197 @@ export const daimoAccountABI = [ { stateMutability: 'payable', type: 'receive' }, ] as const +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DaimoAccountFactory +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daimoAccountFactoryABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { + name: '_entryPoint', + internalType: 'contract IEntryPoint', + type: 'address', + }, + { name: '_sigVerifier', internalType: 'address', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'accountImplementation', + outputs: [ + { name: '', internalType: 'contract DaimoAccount', type: 'address' }, + ], + }, + { + stateMutability: 'payable', + type: 'function', + inputs: [ + { name: 'keySlot', internalType: 'uint8', type: 'uint8' }, + { name: 'key', internalType: 'bytes32[2]', type: 'bytes32[2]' }, + { + name: 'initCalls', + internalType: 'struct Call[]', + type: 'tuple[]', + components: [ + { name: 'dest', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'salt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'createAccount', + outputs: [ + { name: 'ret', internalType: 'contract DaimoAccount', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'entryPoint', + outputs: [ + { name: '', internalType: 'contract IEntryPoint', type: 'address' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [ + { name: 'keySlot', internalType: 'uint8', type: 'uint8' }, + { name: 'key', internalType: 'bytes32[2]', type: 'bytes32[2]' }, + { + name: 'initCalls', + internalType: 'struct Call[]', + type: 'tuple[]', + components: [ + { name: 'dest', internalType: 'address', type: 'address' }, + { name: 'value', internalType: 'uint256', type: 'uint256' }, + { name: 'data', internalType: 'bytes', type: 'bytes' }, + ], + }, + { name: 'salt', internalType: 'uint256', type: 'uint256' }, + ], + name: 'getAddress', + outputs: [{ name: '', internalType: 'address', type: 'address' }], + }, +] as const + +export const daimoAccountFactoryAddress = + '0xED5F5066de0c177729Eb0D5FECEC4BF87CA6Bf3C' as const + +export const daimoAccountFactoryConfig = { + address: daimoAccountFactoryAddress, + abi: daimoAccountFactoryABI, +} as const + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// DaimoEphemeralNotes +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +export const daimoEphemeralNotesABI = [ + { + stateMutability: 'nonpayable', + type: 'constructor', + inputs: [ + { name: '_token', internalType: 'contract IERC20', type: 'address' }, + ], + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'note', + internalType: 'struct Note', + type: 'tuple', + components: [ + { name: 'ephemeralOwner', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + ], + name: 'NoteCreated', + }, + { + type: 'event', + anonymous: false, + inputs: [ + { + name: 'note', + internalType: 'struct Note', + type: 'tuple', + components: [ + { name: 'ephemeralOwner', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + indexed: false, + }, + { + name: 'redeemer', + internalType: 'address', + type: 'address', + indexed: false, + }, + ], + name: 'NoteRedeemed', + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_ephemeralOwner', internalType: 'address', type: 'address' }, + { name: '_signature', internalType: 'bytes', type: 'bytes' }, + ], + name: 'claimNote', + outputs: [], + }, + { + stateMutability: 'nonpayable', + type: 'function', + inputs: [ + { name: '_ephemeralOwner', internalType: 'address', type: 'address' }, + { name: '_amount', internalType: 'uint256', type: 'uint256' }, + ], + name: 'createNote', + outputs: [], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [{ name: '', internalType: 'address', type: 'address' }], + name: 'notes', + outputs: [ + { name: 'ephemeralOwner', internalType: 'address', type: 'address' }, + { name: 'from', internalType: 'address', type: 'address' }, + { name: 'amount', internalType: 'uint256', type: 'uint256' }, + ], + }, + { + stateMutability: 'view', + type: 'function', + inputs: [], + name: 'token', + outputs: [{ name: '', internalType: 'contract IERC20', type: 'address' }], + }, +] as const + +export const daimoEphemeralNotesAddress = + '0x831967F433D9425Aa34D6A3dAC01a428d839De0f' as const + +export const daimoEphemeralNotesConfig = { + address: daimoEphemeralNotesAddress, + abi: daimoEphemeralNotesABI, +} as const + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DaimoNameRegistry ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1741,100 +1843,6 @@ export const entryPointABI = [ { stateMutability: 'payable', type: 'receive' }, ] as const -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// EphemeralNotes -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -export const ephemeralNotesABI = [ - { - stateMutability: 'nonpayable', - type: 'constructor', - inputs: [ - { name: '_token', internalType: 'contract IERC20', type: 'address' }, - ], - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'note', - internalType: 'struct Note', - type: 'tuple', - components: [ - { name: 'ephemeralOwner', internalType: 'address', type: 'address' }, - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - ], - name: 'NoteCreated', - }, - { - type: 'event', - anonymous: false, - inputs: [ - { - name: 'note', - internalType: 'struct Note', - type: 'tuple', - components: [ - { name: 'ephemeralOwner', internalType: 'address', type: 'address' }, - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - indexed: false, - }, - { - name: 'redeemer', - internalType: 'address', - type: 'address', - indexed: false, - }, - ], - name: 'NoteRedeemed', - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_ephemeralOwner', internalType: 'address', type: 'address' }, - { name: '_signature', internalType: 'bytes', type: 'bytes' }, - ], - name: 'claimNote', - outputs: [], - }, - { - stateMutability: 'nonpayable', - type: 'function', - inputs: [ - { name: '_ephemeralOwner', internalType: 'address', type: 'address' }, - { name: '_amount', internalType: 'uint256', type: 'uint256' }, - ], - name: 'createNote', - outputs: [], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [{ name: '', internalType: 'address', type: 'address' }], - name: 'notes', - outputs: [ - { name: 'ephemeralOwner', internalType: 'address', type: 'address' }, - { name: 'from', internalType: 'address', type: 'address' }, - { name: 'amount', internalType: 'uint256', type: 'uint256' }, - ], - }, - { - stateMutability: 'view', - type: 'function', - inputs: [], - name: 'token', - outputs: [{ name: '', internalType: 'contract IERC20', type: 'address' }], - }, -] as const - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TestUSDC ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/packages/daimo-contract/src/index.ts b/packages/daimo-contract/src/index.ts index b03061f24..ec08f4699 100644 --- a/packages/daimo-contract/src/index.ts +++ b/packages/daimo-contract/src/index.ts @@ -1,3 +1,5 @@ +import { parseAbi } from "viem"; + import { daimoNameRegistryABI, daimoNameRegistryProxyAddress, @@ -8,5 +10,22 @@ export const nameRegistryProxyConfig = { abi: daimoNameRegistryABI, } as const; -export * from "./generated"; -export * from "./tokenMetadata"; +export const pimlicoPaymasterAbi = parseAbi([ + "function priceMarkup() view returns (uint32)", + "function previousPrice() view returns (uint192)", + "function token() view returns (address)", +]); + +export { + daimoAccountABI, + daimoEphemeralNotesABI, + daimoEphemeralNotesAddress, + daimoEphemeralNotesConfig, + daimoAccountFactoryABI, + daimoAccountFactoryAddress, + daimoAccountFactoryConfig, + erc20ABI, + entryPointABI, +} from "./generated"; + +export * from "./chainConfig"; diff --git a/packages/daimo-contract/src/tokenMetadata.ts b/packages/daimo-contract/src/tokenMetadata.ts deleted file mode 100644 index fb1da2fdb..000000000 --- a/packages/daimo-contract/src/tokenMetadata.ts +++ /dev/null @@ -1,20 +0,0 @@ -// Generated by script/fetchTokenMetadata.ts - -export const tokenMetadata = { - "8453": { - address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", - decimals: 6, - symbol: "USDC", - name: "USD Coin", - chainId: 8453, - paymasterAddress: "0x939263eafe57038a072cb4edd6b25dd81a8a6c56", - }, - "84531": { - address: "0x1B85deDe8178E18CdE599B4C9d913534553C3dBf", - decimals: 6, - symbol: "USDC", - name: "testUSDC", - chainId: 84531, - paymasterAddress: "0x13f490FafBb206440F25760A10C21A6220017fFa", - }, -} as const; diff --git a/packages/daimo-contract/wagmi.config.ts b/packages/daimo-contract/wagmi.config.ts index 356e5bd7d..7a744ed70 100644 --- a/packages/daimo-contract/wagmi.config.ts +++ b/packages/daimo-contract/wagmi.config.ts @@ -5,8 +5,10 @@ import latestAccountFactory from "../contract/broadcast/DeployAccountFactory.s.s import latestEphemeralNotes from "../contract/broadcast/DeployEphemeralNotes.s.sol/8453/run-latest.json"; import latestNameReg from "../contract/broadcast/DeployNameRegistry.s.sol/8453/run-latest.json"; -// TODO: Base Mainnet -// Works on testnet too, because these are all CREATE2 contracts. +/** + * We get contract addresses from our latest Base mainnet deployments. + * Because of CREATE2, all except EphemeralNotes are deterministic. + */ const deployments = Object.fromEntries( [ ...latestNameReg.transactions, diff --git a/packages/daimo-userop/README.md b/packages/daimo-userop/README.md index 2826146fd..927b5e07e 100644 --- a/packages/daimo-userop/README.md +++ b/packages/daimo-userop/README.md @@ -1,3 +1,15 @@ # Daimo Userop -Simple wrapper over a `userop.js` custom Builder (supporting custom signatures, paymaster etc.). Used for sending userops from Daimo's mobile app. See usage in `apps/daimo-mobile`. \ No newline at end of file +This library constructs all userops sent by a Daimo account. + +Example usage: + +```ts +import { DaimoOpSender } from "@daimo/userop"; + +// Create DaimoOpConfig, then send some of that account's home coin (eg USDC). +const sender = DaimoOpSender.init(config); +sender.erc20Transfer(toAddress, amount, nonceMetadata); +``` + +See `apps/daimo-mobile` for more examples. Built with `userop.js`. diff --git a/packages/daimo-userop/src/daimoOpBuilder.ts b/packages/daimo-userop/src/daimoOpBuilder.ts index 629ebbb31..f95ea2c25 100644 --- a/packages/daimo-userop/src/daimoOpBuilder.ts +++ b/packages/daimo-userop/src/daimoOpBuilder.ts @@ -5,13 +5,13 @@ import { DaimoAccountCall, assert, } from "@daimo/common"; -import { daimoAccountABI, tokenMetadata } from "@daimo/contract"; +import { daimoAccountABI } from "@daimo/contract"; import { p256 } from "@noble/curves/p256"; import { IUserOperationMiddlewareCtx, UserOperationBuilder } from "userop"; import { Address, Hex, - bytesToBigint, + bytesToBigInt, bytesToHex, concat, encodeFunctionData, @@ -30,28 +30,33 @@ export type DaimoOpMetadata = { /** Creates userops from a Daimo account. */ export class DaimoOpBuilder extends UserOperationBuilder { - /** Daimo account address */ - private address: `0x${string}` = "0x"; - /** Execution deadline */ private validUntil = 0; - private constructor(private signer: SigningCallback) { + private constructor( + private accountAddress: Address, + private paymasterAddress: Address, + private signer: SigningCallback + ) { super(); } /** Client is used for simulation. Paymaster pays for userops. */ public static async init( - deployedAddress: Address, - signUserOperation: SigningCallback + accountAddress: Address, + accountSigner: SigningCallback, + paymasterAddress: Address ): Promise { - const instance = new DaimoOpBuilder(signUserOperation); - instance.address = deployedAddress; + const instance = new DaimoOpBuilder( + accountAddress, + paymasterAddress, + accountSigner + ); - console.log(`[OP]: init address ${instance.address}`); + console.log(`[OP]: init address ${instance.accountAddress}`); const base = instance .useDefaults({ - sender: instance.address, + sender: instance.accountAddress, verificationGasLimit: DEFAULT_USEROP_VERIFICATION_GAS_LIMIT, callGasLimit: DEFAULT_USEROP_CALL_GAS_LIMIT, }) @@ -60,7 +65,7 @@ export class DaimoOpBuilder extends UserOperationBuilder { return base; } - /** Signs userops. Signer can use the enclave, requesting user permission as needed. */ + /** Signs userops. Signer can use the enclave, which checks user presence. */ private signingCallback = async (ctx: IUserOperationMiddlewareCtx) => { const hexOpHash = ctx.getUserOpHash() as Hex; assert(hexOpHash.startsWith("0x")); @@ -83,7 +88,7 @@ export class DaimoOpBuilder extends UserOperationBuilder { const bS = bSig.slice(32); // Avoid malleability. Ensure low S (<= N/2 where N is the curve order) - let s = bytesToBigint(bS); + let s = bytesToBigInt(bS); const n = BigInt( "0xFFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551" ); @@ -111,7 +116,7 @@ export class DaimoOpBuilder extends UserOperationBuilder { executeBatch(calls: DaimoAccountCall[], opMetadata: DaimoOpMetadata) { return this.setOpMetadata(opMetadata) - .setPaymasterAndData(tokenMetadata.paymasterAddress) + .setPaymasterAndData(this.paymasterAddress) .setCallData( encodeFunctionData({ abi: daimoAccountABI, diff --git a/packages/daimo-userop/src/daimoOpSender.ts b/packages/daimo-userop/src/daimoOpSender.ts index a28e76ad1..1d5c17137 100644 --- a/packages/daimo-userop/src/daimoOpSender.ts +++ b/packages/daimo-userop/src/daimoOpSender.ts @@ -14,54 +14,93 @@ import { DaimoOpBuilder, DaimoOpMetadata } from "./daimoOpBuilder"; import { SigningCallback } from "./signingCallback"; import config from "../config.json"; +interface DaimoOpConfig { + /// Chain ID + chainId: number; + /// Bundler RPC URL. + bundlerRpcUrl: string; + /// Stablecoin token address. + tokenAddress: Address; + /// Decimals for that token. + tokenDecimals: number; + /// EphemeralNotes instance. The stablecoin used must match tokenAddress. + notesAddress: `0x${string}`; + /// Paymaster, payable in tokenAddress. + paymasterAddress: Address; + /// Daimo account address. + accountAddress: Address; + /// Signs userops. Must, in some form, check user presence. + accountSigner: SigningCallback; +} + /// DaimoOpSender constructs user operations for a Daimo account. /// Supports key rotations, token transfers, and ephemeral note ops. export class DaimoOpSender { /** Connection to the chain */ private provider: BundlerJsonRpcProvider; - private opBuilder: DaimoOpBuilder; - - private tokenAddress: Address; - private tokenDecimals: number; - - private notesAddress: `0x${string}`; - - constructor( - /// Userop builder, containing bundler and paymaster configuration. - _opBuilder: DaimoOpBuilder, - /// Stablecoin token address. - _tokenAddress: `0x${string}`, - /// Decimals for that token. - _tokenDecimals: number, - /// EphemeralNotes instance. The stablecoin used must match _tokenAddress. - _notesAddress: `0x${string}` + private constructor( + private opConfig: DaimoOpConfig, + private opBuilder: DaimoOpBuilder ) { this.provider = new BundlerJsonRpcProvider(config.bundlerRpcUrl); - this.opBuilder = _opBuilder; + } - this.tokenAddress = _tokenAddress; - this.tokenDecimals = _tokenDecimals; + /** + * Initializes using the DAIMO_CHAIN and DAIMO_BUNDLER_RPC env vars. + */ + public static async initFromEnv( + accountAddress: Address, + accountSigner: SigningCallback + ): Promise { + const { tokenAddress, tokenDecimals, paymasterAddress, chainL2 } = + Contracts.chainConfig; - this.notesAddress = _notesAddress; + let bundlerRpcUrl = process.env.DAIMO_BUNDLER_RPC || ""; + if (bundlerRpcUrl === "" && chainL2.network === "base-goerli") { + bundlerRpcUrl = // Default to testnet + "https://api.pimlico.io/v1/base-goerli/rpc?apikey=70ecef54-a28e-4e96-b2d3-3ad67fbc1b07"; + } + if (bundlerRpcUrl === "") { + throw new Error("Missing DAIMO_BUNDLER_RPC env var"); + } + + return DaimoOpSender.init({ + accountAddress, + accountSigner, + bundlerRpcUrl, + chainId: chainL2.id, + notesAddress: Contracts.daimoEphemeralNotesAddress, + paymasterAddress, + tokenAddress, + tokenDecimals, + }); } - public static async init( - deployedAddress: Address, - signer: SigningCallback - ): Promise { - const daimoBuilder = await DaimoOpBuilder.init(deployedAddress, signer); + /** + * Initializes with all configuration provided: no env vars required. + */ + public static async init(opConfig: DaimoOpConfig): Promise { + const { accountAddress, accountSigner, paymasterAddress } = opConfig; + const builder = await DaimoOpBuilder.init( + accountAddress, + accountSigner, + paymasterAddress + ); + const { tokenAddress, tokenDecimals } = opConfig; console.log( - `[OP] init. token ${Contracts.tokenMetadata.address}, decimals ${Contracts.tokenMetadata.decimals}` + `[OP] init: ${JSON.stringify({ + accountAddress, + tokenAddress, + tokenDecimals, + paymasterAddress, + notesAddress: opConfig.notesAddress, + bundlerRpcUrl: opConfig.bundlerRpcUrl, + })})}` ); - return new DaimoOpSender( - daimoBuilder, - Contracts.tokenMetadata.address, - Contracts.tokenMetadata.decimals, - Contracts.ephemeralNotesAddress - ); + return new DaimoOpSender(opConfig, builder); } public getAddress(): Address { @@ -72,7 +111,7 @@ export class DaimoOpSender { public async sendUserOp(opBuilder: DaimoOpBuilder): Promise { const builtOp = await opBuilder.buildOp( Constants.ERC4337.EntryPoint, - Contracts.tokenMetadata.chainId + this.opConfig.chainId ); console.log("[OP] built userOp:", builtOp); @@ -140,13 +179,15 @@ export class DaimoOpSender { amount: `${number}`, // in the native unit of the token opMetadata: DaimoOpMetadata ) { - const parsedAmount = parseUnits(amount, this.tokenDecimals); - console.log(`[OP] transfer ${parsedAmount} ${this.tokenAddress} to ${to}`); + const { tokenAddress, tokenDecimals } = this.opConfig; + + const parsedAmount = parseUnits(amount, tokenDecimals); + console.log(`[OP] transfer ${parsedAmount} ${tokenAddress} to ${to}`); const op = this.opBuilder.executeBatch( [ { - dest: this.tokenAddress, + dest: tokenAddress, value: 0n, data: encodeFunctionData({ abi: Contracts.erc20ABI, @@ -167,16 +208,18 @@ export class DaimoOpSender { amount: `${number}`, opMetadata: DaimoOpMetadata ) { - const parsedAmount = parseUnits(amount, this.tokenDecimals); + const { tokenDecimals, notesAddress } = this.opConfig; + + const parsedAmount = parseUnits(amount, tokenDecimals); console.log(`[OP] create ${parsedAmount} note for ${ephemeralOwner}`); const op = this.opBuilder.executeBatch( [ { - dest: this.notesAddress, + dest: notesAddress, value: 0n, data: encodeFunctionData({ - abi: Contracts.ephemeralNotesABI, + abi: Contracts.daimoEphemeralNotesABI, functionName: "createNote", args: [ephemeralOwner, parsedAmount], }), @@ -199,10 +242,10 @@ export class DaimoOpSender { const op = this.opBuilder.executeBatch( [ { - dest: this.notesAddress, + dest: this.opConfig.notesAddress, value: 0n, data: encodeFunctionData({ - abi: Contracts.ephemeralNotesABI, + abi: Contracts.daimoEphemeralNotesABI, functionName: "claimNote", args: [ephemeralOwner, signature], }), diff --git a/packages/daimo-userop/src/nonce.ts b/packages/daimo-userop/src/nonce.ts index dc4eee377..2cc640d00 100644 --- a/packages/daimo-userop/src/nonce.ts +++ b/packages/daimo-userop/src/nonce.ts @@ -1,4 +1,3 @@ -import { assert } from "@daimo/common"; import { Hex, bytesToHex, hexToBytes, numberToHex } from "viem"; import { generatePrivateKey } from "viem/accounts"; @@ -77,3 +76,7 @@ export class DaimoNonceMetadata { return (hexNonceType + hexIdentifier) as Hex; } } + +function assert(condition: boolean) { + if (!condition) throw new Error("Assertion failed"); +}